电子州技女学 Software Architecture Design Pattern University Electronic Scienceand eco 3.Middleware Systems Definition:Middleware is software that enables interprocess commmnication. It provides an API that isolates the application code from the underlying network communication formats and protocols (FAPs). -Middleware systems implement the various forms of distribution transparencies by creating the illusion of unity and homogeneity within the network,what is called in other words the "single-system image". +They act as glue between autonomous components and processes (e.g.,clients, server)by providing generic services on top of the OS. Com ponent Com ponent Com ponent Com ponent Com ponent Com ponent Middleware Network O perating System Com ponent = com ponent Hardw are Mid dlew are Host Network O perating System Hardware Ne tw ork Host Software Architecture and Design Pattern 6
Software Architecture & Design Pattern Software Architecture and Design Pattern 6
电子科技女学 Software Architecture Design Pattern University af Electronic Science and Technoloryf Chim -There are three kinds of middleware systems:transaction-oriented middleware,message-oriented middleware,and object-oriented middleware. +Transaction-oriented middleware supports distributed computing involving database applications. +Message-oriented middleware supports reliable,asynchronous communications among distributed components. +Object-oriented middleware systems are based on object-oriented paradigm,and primarily supports synchronous communications among distributed components. -The most popular object-oriented middleware paradigms include CORBA,DCOM,DotNET,and EJB (which is based on RMI) +All these middleware systems,also referred to as Object-Oriented middleware, are based on the Remote Procedure Call (RPC)framework foundation. They extend RPC framework by introducing object-oriented mechanisms. 6 Software Architecture and Design Pattern 7
Software Architecture & Design Pattern Software Architecture and Design Pattern 7
电子州妓女学 Software Architecture Design Pattern University af Electronic Science and Technoloryf Chim Example Middleware Home banking Credit Approval Application Apphcation Standard APIs Information Application-specifie 入fanagement Middleware Exchange senices Services Services (distributed services) Platform In适erfaces Bank branch server Credit Check Service DBMS Solaris on AIX on DBMS Server SPARC 1B入I段S6制 Server Example-Distributed Middleware with CORBA Domin-specific Home banking Credit Approva Application Apehcation for haoking bjoct Renuest Brok台r Bark beanch Credit Check Dircto. 9 Lile Cvele. Software Architecture and Design Pattern 8
Software Architecture & Design Pattern Software Architecture and Design Pattern 8
电子科技女学 Software Architecture Design Pattern Universitya ectronic Scienceand ecnol Remote Procedure Call (RPC) -RPC allows the invocation of operations across different hardware and operating system platforms. Provide the same mechanism as local procedure call but at the interprocess level. +Support a common Interface Definition Language (IDL). -The RPC mechanism is provided by a RPC software,which handles transparently all the steps involved.The functionality of the RPC software include: Home baakin redit Appro +Location of the server functions,and and concurrent requests. Parameters passing and data Rank hranch 阳 Credit Check Service representation. ÷Failure management D国 IBM 6000 ÷Security management -The RPC software provides an implementation of the session and presentation layer.Note that the transport layer(below)is 0 implemented as a socket. Software Architecture and Design Pattern 9
Software Architecture & Design Pattern Software Architecture and Design Pattern 9
电子州技女学 Software Architecture Design Pattern Universitya Electronic Scienceand ecolo RPC Mechanism Network Directory Service Client Server 2.locate server 1.publish (Start Up)】 Start Up】 3.call function 6.Receive RPC (Client Application) (Server runtime)】 4.pack arguments 7.unpack arguments (Client stub)】 (Server stub) RPC 5.Make RPC 8.Execute function (Client runtime) (Server application) Software Architecture and Design Pattern 10
Software Architecture & Design Pattern Software Architecture and Design Pattern 10