Middleware
Fatemeh Hendijanifard
1آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Middleware Definitions
“The glue which connects objects which are distributed across multiple
heterogeneous computer systems”
“ An extension of the operating system which provides a transparent communication layer to the applications”
“ A software layer that serves to shield the application of the heterogeneity of the underlying computer platforms and networks”
Categories
Transactional (Distributed Tuples)
Message oriented (Message-Oriented Middleware)
Procedural (Remote Procedure Call)
Object (Distributed Object Middleware)
3آزمايشگاه سيستم هاي هوشمند
(http://ce.aut.ac.ir/islab)
Transactional middleware tuple (SQL)ارایه مفهوم انتزاعی از
(DTP protocol )انجام تراکنش های توزیع شده Message oriented (MOM)
mailbox ارایه مفهوم انتزاعی از پیغام های آسنکرون
Procedural (RPC)procedure مفهوم انتزاعی از
تعامل سنکرون بین کاربر و کارگزار Object and component
objectمفهوم انتزاعی از تعامل )آ(سنکرون بین کاربر و کارگزار
Examples
XML-RPC
SOAP
CORBA
(D)COM
.NET
Transactions on distributed relational database
IBM CICS
BEA Tuxedo
LDAP (simple protocol to access remote directories, no transactions)
Message oriented middleware
Java Message Queue
IBM MQSeries
Remote procedure calls (RPC)
Unix RPC’s DCE RPC (Distributed Computing Environment)
Windows RPC’s
XML-RPC
Object middleware
CORBA
ActiveX
COM, DCOM
Java RMI, Enterprise Java Beans
Middleware examples
XML-RPC, SOAP RPC on top of HTTP
CORBA Distributed objects
COM / DCOM Microsoft’s Component Object Model
.NET Microsoft’s answer to J2EE
CORBA
Support for distributed object application.Allows remotely located objects to communicate with each other.
Real name: (Object Management Group’s Common Object Request Broker Architecture) : OMG’s CORBA
CORBA (cont. )
Introduced in 1991 by OMG Uses C/S models where clients issue requests to objects. (any object can be C or S or both)
Any interaction between objects is through requests.
Supports static binding. (identify objects at compile time)
An Interface Definition Language (IDL) has been defined specially for CORBA.
CORBA (cont. )
>800 companies: www.omg.org
Conceptual view:
CORBA (cont. )
Static interfaces
Specific for each object type
Dynamic interfaces
Same interface independent of target object
Object adapter
Object references, object (de) activation, method invocation... ,
ActiveX
Introduced by Microsoft at 1996.As a complete environment for components and distributed objects.
Server facilities such as SQL servers and legacy access gateways can be invoked from ActiveX.
Web technologies( java applets, browsers) can be intermixed with desktop tools( word
processor) for distributed applications .
C/S Middleware to Access the
Data Warehouse
MVS-DB2 warehouse
UNIX-RDBMS warehouse
PS2 RDBMS warehouse
PC Client 1 .DRDA for exchange protocol
2 .ODBC for API
1.DRDA for DB2 on UNIX
2.Proprietary exchange protocols for other RDBMSs
3.ODBC for API
1.DRDA for DB2 on PS2
2.Proprietary exchange protocols for other RDBMSs
3.ODBC for API
UNIX Client 1.DRDA for exchange protocol
2 .proprietary for API
1.DRDA for DB2 on UNIX
2.Proprietary exchange protocols for other RDBMSs
3 .Proprietary for API
1.DRDA for DB2 on PS2
2.Proprietary exchange protocols for other RDBMSs
3 .Proprietary for API
Mac Client
C/S Middleware to Access the Data Warehouse
ODBC may be used widely to access data warehouse databases from different database vendors.
DRDA may be used in centralized data warehouses to access DB2 data from client tools from different vendors.
Proprietary exchange protocols from different C/S vendors such as EDA/SQL, Informix,
Oracle and Sybase may be used .
More Details of the other two middle wares
ONC RPC
SOAP
XML-RPC protocol!?
XML-RPC protocol
Uses XML to transmit and receive RPC’s
Defines the bare minimum to get RPC’s across the network
Based on HTTP with the POST method
Request is an XML document containing a method name and parameters
Response is an XML document with returned values
SOAP (Simple Object Access protocol) Successor of XML-RPC
HTTP Header Content-Type: text/xml
Content-Length must be specified and correct User agent must be specified
Host must be specified Document content Root <methodCall>
Contains name of method: <methodName> Contains list of parameters: <params>
Each parameters is a pair <param>, <value> Data types supported
String, integer, float, date, binary, boolean Array, struct
Related topics
Evaluation
Marketing
Examples of Middleware
Database access technology - e.g ODBC (Open Data Base Connectors) Java’s database connectivity API : JDBC
Remote computation products - e.g ONC RPC, OSF RPC and RMI (Java Remote Method Invocation)
Distributed Computing Environment (DCE) products, Common Object Request Broker Architecture (CORBA), Distributed Component Object Model (DCOM)TP - Monitors