110 likes | 133 Views
Component-based Software Engineering. Component Model Comparison. Marcello Bonsangue LIACS – Leiden University Fall 2005. Commercial Component Models. Open standard CORBA Microsoft COM/DCOM .Net SUN JavaBeans Enterprise JavaBeans Philips,Nokia et al. RoboCop.
E N D
Component-based Software Engineering Component Model Comparison Marcello Bonsangue LIACS – Leiden University Fall 2005
Commercial Component Models • Open standard • CORBA • Microsoft • COM/DCOM • .Net • SUN • JavaBeans • Enterprise JavaBeans • Philips,Nokia et al. • RoboCop Seminarium CBSE
Comparison criteria (I) • Components • Abstract components (Interfaces) • Concrete components (Implementations) • Basic communication • Composition of components • Adaptation (external and internal) • Reusability / Predefined services Seminarium CBSE
Abstract components • Corba • Interfaces generated from IDL • Multiple inheritance • DCOM • Interfaces generated from MIDL • Interfaces as first class objects • Multiple inheritance • Globally unique interfaces • JavaBeans/EJB • Defined by EJB designer • Multiple inheritance • .Net • Interfaces generated from concrete components • Multiple inheritance Seminarium CBSE
Concrete components • Corba classes (objects) • With reflection / transaction / persistency concept • Language + platform transparency • Inheritance of the implementation language • (D)COM objects and Interfaces • With reflection / transaction / persistency concept • Language transparency • Inheritance of the implementation language • JavaBeans, EJB • With reflection / transaction / persistency concept • Java but JNI • Platform transparency • Single inheritance of Java • Different roles in EJB (stateless, session, entity, message-driven) • .Net • With reflection / transaction / persistency concept • Language (but CLS) + platform transparency • Inheritance of the implementation language Seminarium CBSE
Basic communication • Corba • Object request broker – ORB • Remote procedure call (RPC) • GIOP/IIOP (General/Internet Inter ORB Protocol) • DCOM • Object oriented (RPC) • GUID (Globally Unique IDs) • JavaBeans • Asynchronous, Event based • EJB • EJB container and (web) server • Synchronous Remote Method Invocation (RMI) • Support for lease-based communication • Migration of Java code • .Net • Synchronous Remote Method Invocation (RMI) • Support for lease-based communication Seminarium CBSE
Category 1 (JavaBeans,.Net) Category 2 (EJB, COM, CORBA) Category 3 (Koala, RoboCop) Category 4 (ADL, UML 2.0) Composition of components Seminarium CBSE
Composition of components • Corba • Call via ORB • Aggregation with pattern façade (also dynamic) • DCOM • Call via (D)COM library • Delegation in components using wrappers • Aggregation of classes with pattern façade (only static) • Aggregation of interfaces • EJB • Call via container • Java language concepts for delegation • .Net • Call via CLR • Delegation Seminarium CBSE
Adaptation • Aspect separation (all) • Separation of interfaces and implementation • Multiple interfaces per implementation • Separation of persistency, transaction, distribution, … • External adaptation • Bridges between the worlds • EJB – Corba • Java – DCOM • Corba – DCOM Seminarium CBSE
Internal adaptation • Generation of glue code from interface descriptions • Corba • Stub-Skeleton generated from IDL • DCOM • Proxies and Interfaces generated from MIDL • EJB • Proxies generated from bean interfaces • Reflection to adapt dynamically • Corba, • DCOM • EJB • .Net Seminarium CBSE
Reusability / Services • Corba: standardized • general services (Facilities and Services) • domain specific services (Vertical Facilities) • DCOM • quasi standardized general services • Non-standard domain specific services • Microsoft applications • EJB • quasi standardized general services • quasi standardized domain specific services • AWT and Swing (JavaBeans) • Other Java libraries Seminarium CBSE