Comparison of Client-Server MiddlewareMiddleware SystemsThe underlying networking protocols on which middleware systems are built are
The middleware systems we have looked at are
There are a number of others that we haven't looked at, including
There are a lot of middleware services that we haven't looked at
Data representation (what is moved)
Transport (how it is moved)
Service description
Locating services
Lookup matching
Language bindings
Language paradigm
Remote reference
SynchronicitySome middleware systems support event mechanisms for asynchronous processing, some only support synchronous processing
Garbage collectionSome systems will garbage collect objects/services and clean up registries. Others won't.
BridgesCan a Jini service talk to a CORBA client? Can a Web service be used by an ONC client? Generally not, even if the two middleware systems share lots of concepts (e.g. CORBA and RMI are both O/O based). Reasons
To allow services of one protocol to talk to clients of another, a bridge has to be built, where something understands enough of both protocols. Jini to CORBASee earlier lecture. Build a Jini service that is also a CORBA client to translate between protocols RMI to CORBAStandard RMI:
Since the client does not see the protocol, this can be changed
from JRMP to IIOP.
The server uses an object that uses IIOP instead of JRMP.
i.e. it uses CORBA 2.3 introduced "objects by value". An ORB that supports this concept knows how to handle RMI stub objects TunnellingMany RPC systems such as Sun ONC and RMI use a random port (above 1024) to perform the remote call. This means that it must be possible to connect to a random port. Network administrators do not like this, since attacks can be mounted on these ports. Foe security, network admins will close off as many ports as they can, and only leave a few open. Typically they will leave open
Tunnelling is the technique of wrapping a message as another protocol's message and sending it by the second protocol instead of the first. When the message arrives, it is unwrapped and sent to the correct receiver. HTTP tunnelling uses an HTTP server, and a CGI script (or equivalent). Messages are sent to the HTTP server which passes them to the CGI script. The CGI script knows how to handle the original message. Jan Newmarch (http://jan.netcomp.monash.edu.au) [email protected] |