Title: Components The OO way of designing software
1ComponentsThe OO way of designing software
- Stefan Negritoiu
- stefan.negritoiu_at_duke.edu
- March 26, 2001
2Outline
- Concepts
- Local scenarios
- Distributed scenarios
- The real world
- COM, DCOM, EJB, CORBA, RMI, SOAP, ROPE
- Samples and demos
- QA
3Concepts
- Object oriented abstractions
- Function
- Class
- Library
- Component
- Aspect
a language neutral, independently implemented
package of software services, delivered in an
encapsulated manner and replaceable container,
accessed via one or more published interfaces
4Concepts
5Concepts
- Instantiation
- Client language runtime calls component subsystem
which asks the component to create itself - Lifetime management
- Binding
- Offered by client language runtime
6Concepts
- Method invocation
- IDL
- Marshaling
- Serialization
7Concepts
- Distributed scenario needs common
- IDL
- proxy/stub
- Transport
- marshaling
8Real-world
- DCOM (Microsoft)
- Component subsystem COM/COM
- IDL MIDL
- Transport MS RPC
- Component subsystem includes
- Security, pooling, synchronization
- MSMQ (message queuing)
- MSCS (clustering)
- MTS (transactions)
9Windows DNA Object Model, The Middleware Company,
Dec 1999
10Real-world
- CORBA (OMG)
- Component subsystem ORB
- IDL OMG IDL
- Transport IIOP
- CORBA does not define a server side component
coordinator framework... It does not deal with
issues such as transactions, component packaging,
or automatic state management. The integration of
these pieces is left as an exercise for the
vendors
11Real-world
- EJB (Sun)
- Not a true distributed framework
- Component subsystem Java/JVM
- IDL none needed
- Transport IIOP-RMI
- Can be integrated with CORBA as an ORB
- Controversial Windows DNA vs. EJB
- Do not use this paper when trying to make a
decision on EJB vs. MTS/COM - just don't ever
choose Microsoft.
12The EJB Object Model, The Middleware Company, Dec
1999
13Real-world
- ? (SOAP)
- Component subsystem COM, any ORB
- IDL XML
- Transport HTTP
14Real World
POST /string_server/Object17 HTTP/1.1 Host
209.110.197.2 Content-Type text/xml Content-Lengt
h 152 SOAPMethodName urnstrings-comIStringrev
erse ltEnvelopegt ltBodygt ltmreverse
xmlnsm'urnstrings-comIString'gt
lttheStringgtHello, Worldlt/theStringgt
lt/mreversegt lt/Bodygt lt/Envelopegt
200 OK Content-Type text/xml Content-Length
162 ltEnvelopegt ltBodygt ltmreverseResponse
xmlnsm'urnstrings-comIString'gt
ltresultgtdlroW ,olleHlt/resultgt
lt/mreverseResponsegt lt/Bodygt lt/Envelopegt
15Samples
- IE, MS Office
- Any e-commerce
- MapQuest (fictional)
- EBay?
- ICCRC
- MyDuke
16Samples - MyDuke.com
17Samples MyDuke vs. IMP
18Demos
- Writing a component
- Using a component from various programming
languages - SOAP example
19QA
- Resources
- Understanding COM, David Platt
- Beginning ATL COM, Richard Grimes
- Mastering EJB, Ed Roman
- http//www.omg.org/gettingstarted/readingroom.htm
- http//msdn.microsoft.com
- http//java.sun.com/products/ejb
- Duke MUG (MSDN share \\jazz\msdn)