Chapter 3: Objects, Components, and the Web Textbook IT Architectures and Middleware, Second Edition Chris Britton and Peter Bye AIT 600 Jeff Schmitt September 30, 2008
History of Middleware ● Chapter 2 was history of middleware into 1980's ● Chapter 3 continues at end of 1980s with resurgence in OO programming and a new kind of OO middleware requestor calls a remote object like RPC, replaces RPC/transactional does not replace the two other kinds of middleware: message queue and remote DB notable example: CORBA
CORBA ● Common Object Request Broker ● a standard, not a product ● developed by Object Management Group (OMG) a consortium of software vendors ● influental but seldom seen in implementations, similar situation with ISO 7-layer network model ● Problem: its complexity, interoperativity ● Rise of component technology made it less important
Component Technology ● Key characteristics code file – can be interpreted or executed run-time code has its own private data and provides an interface can be deployed many times and on many different machines (reused) component object creates one or more objects and makes the interface of these available
Microsoft Components ● Microsoft COM (Component Object Model), by end of 1990s used extensively in windows called from any language ( C++, Visual Basic) don't need to know file name – find it in system registry ● Middleware Distributed COM (DCOM) call a COM object on another Windows machine
Java Components ● Java emerged as an important language by 1995 ● Java component model is called JavaBean ● Java runs in Java Virtual Machine (JVM) – macnine independent ● Middleware called Remote Method Invocation (RMI)
Transactional Component Middleware ● solves some problems of using object component ● Microsoft Transaction Server evolved into COM+ ● Enterprise JavaBeans (EJB) ● issue is management of sessions, discussed later
Using Object Middleware ● program must have a reference pointing to the object on the other machine ● works like a pointer (to ram) but details are hidden ● Two steps getting pointer to the object repeatedly calling an operation(s) on the object give up the reference
Object Interfaces ● Interface Definition Language interfaces more explicit than in OOP gives flexibility and encapsulation generates a stub that converts messages into operation calls marshalling, converting object reference to binary string interface is not the same as a class – one interface can be used by many classes
OO Middleware compared to RPC ● OO middleware is a natural for OOP languages ● OO middleware is more flexible interfaces delinked from the server program – this simplifies deployment by hiding details changes to an interface can be handled by adding a new interface to an object, rather than creating a new object – eventually old interface can be removed allowing time for rewriting dependent code
Transactional Component Middleware ● a term coined by the textbook authors ● fills same niche in object middleware as transaction monitors in RPCs ● makes transaction processing easier to implement and more scalable ● components can be deployed with different settings to behave in different ways ● examples: COM+ and EJB
COM+
EJB
More about TCM ● compare COM+ and EJB – which is better solution? Disciples cannot agree ● Go with the one your skill level and experience favors ● EJB is operating system independent ● COM+ is language independent ● COM+ is now called Enterprise Services, a part of.NET ● New development: SOA and Service Orientation (next chapter)
Internet Applications
Summary ● TCM is the dominant technology for