1 / 26

Seminarium on Component-based Software Engineering

Seminarium on Component-based Software Engineering. CORBA. Jan Willem Klinkenberg. Object Management Group (OMG). Consortium of Computing Industry Founded in 1989 Non profit around 800 members

yadid
Download Presentation

Seminarium on Component-based Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminarium onComponent-based Software Engineering CORBA Jan Willem Klinkenberg

  2. Object Management Group (OMG) • Consortium of Computing Industry • Founded in 1989 • Non profit • around 800 members • Goal: standardization of “whatever it takes” to achieve interoperability on all levels of an open market for “objects” Seminarium CBSE

  3. OMG • Original effort: fix “wiring” problem: How can distributed object-oriented systems implemented in different languages and running on different platforms interact? • Incompatibility between compilers • Differences in object models • Differences in platforms Solution: CORBA Seminarium CBSE

  4. CORBA • Common Object Request Broker Architecture. • Open standard • 1991 – version 1.0 • Initial version. • 1995 – version 2.0 • IIOP • OMA • More languages support • 2002 – version 3.0 • Corba Component Model (CCM) • Scripting languages support Seminarium CBSE

  5. CORBA • CORBA - Common Object Request Broker Architecture. Seminarium CBSE

  6. IDL • Interface Definition Language • Defines all object interfaces in a common language • Bindings are available for C, C++, Java, Python, Smalltalk, Cobol, etc… • An IDL compiler generates stubs and skeletons. • Stubs: • Looks like local object • Marhals arguments • Forwards all invocations through ORB to target object • Skeletons: • Receives invocations from ORB • Unmarshals arguments • Invokes target methods • Sends back return value Seminarium CBSE

  7. IDL – example module Example { struct Date { unsigned short Day; unsigned short Month; unsigned short Year; }; interface Ufo { readonly attribute unsigned long ID; readonly attribute string Name; readonly attribute Date FirstContact; unsigned long Contacts(); void RegisterContact(out Date dateOfContact); }; }; Seminarium CBSE

  8. IDL types • IDL distinguishes between basic and constructed type and CORBA object references. • Before CORBA 2.3, only references • Since CORBA 2.3, call by value is supported -> standard mapping by XML Seminarium CBSE

  9. DII and DSI Sometimes binding can be too static: • DII Dynamic invocation interface • DSI Dynamic skeleton interface (since Corba 2.0) These interfaces allow for dynamic selection of methods at client side or server side Seminarium CBSE

  10. ORB • Object Request Broker • Routes the method invocations • Interface repository • Implementation repository • Can load and start object servants • Can communicate with other ORBs using IIOP Seminarium CBSE

  11. CORBA and OMG IDL IDL source Applications Programs IDL compiler Object servants Dynamic invocation interface IDL stubs ORB interface Object Adapter IDL Skeletons Dynamic Skeleton interface Object Request Broker (ORB) Seminarium CBSE

  12. Object Adapter • Object servants register with ORB via the object adapter. • Servants are loaded and started by ORB via adapter. • BOA – Basic Object Adapter • Under specified, deprecated in 1998 • POA – Portable Object Adapter • Replaced the BOA • Essential for several CCM features • Creates object references • Several possible policies for object creation Seminarium CBSE

  13. Server, client or both • Separation of client and called object does not impose an asymetric architecture. • The same process can issue and receive calls. • Pure application programs do not require registration with ORB Seminarium CBSE

  14. CORBA v.1 - Problems • An ORB is essentially an remote incovation service • Replaces sockets and remote procedure calls in distributed applications with a cleaner model So what’s the problem? • Applictions still have to share many conventions to interoperate • OMG had to broaden it’s focus. Seminarium CBSE

  15. OMA - Object Management Architecure • Since CORBA 2.0 • Adds new areas of standardization: • CORBAservices • Common object services e.g.: naming, trader event, security • CORBAfacilities – defines a specific component framework than can be used to integrate components. • Horizontal: domain independent, focus on specific application models e.g. printing facilities • Vertical: domain specific e.g. healtcare, finance • Application object specifications (currently void) • CCM - CORBA Component Model (since 3.0) Seminarium CBSE

  16. CORBA Services supporting enterprise distributed computing • Naming service • White pages • Trader service • Yellow pages • Event service • Send event objects from event suppliers to event consumers. • Notification service • Add QoS, filtering, etc. to Event service • Object transaction service • Security Service • Encryption, authentication Seminarium CBSE

  17. CORBA Services supporting architecture using fine-grained objects • Concurrency control service • Lock and release resources • Licensing service • For non-freeware objects • Lifecycle service • Creation, copying, moving and deletion of objects • Relationship service • Not used or implemented • Persistant state service • Allows storing and retrieving of objects Seminarium CBSE

  18. CORBA Services continued… • Externalization service • Mapping of object into stream and back • Properties service • Add/delete and retrieve arbitrary properties to objects • Object query service (not implemented) • Locate object instance by attributes • Object collections service (not implemented) • Provides collection types like sets, trees, queues or lists. • Time service • Provides a universal time for the distributed system Seminarium CBSE

  19. CCM - Corba Component Model • Introduced with CORBA 3.0 in 2002 • Logical extension of Enterprise JavaBeans • Is an architecture for defining components and their interactions • Provides a packaging technology • Provides a container implementation framework (CIF) Seminarium CBSE

  20. CCM Component Component interface My Business Component Facets Receptacles OFFERED REQUIRED Event sinks Event sources Attributes Seminarium CBSE

  21. CCM Components features • Ports • Facet – provided interface • Receptacle – required interface • Event sources • Event sinks • Primary keys • Instance identification for client • Attributes • Home interfaces • Provides factory functionality Seminarium CBSE

  22. CCM packaging CCM Assembly CCM Component CCM Component Segments Deployment configuration Seminarium CBSE

  23. CCM Containers • Component instances are placed inside containers: Home interface Home for C Component C Callbacks Services Container Components interact with POA as well as transaction, security, persistence and notification services via interfaces on their container Seminarium CBSE

  24. Components types • There are different types of components: • Service • Session • Entity • Process Seminarium CBSE

  25. CIF • Component Implementation Framework • Described in CIDL, Component implementation Definition Language • Creates programming skeletons that automate many of the basic behaviors of components, including navigation, identity inquiries, activation, state management, lifecycle management, and so on. Seminarium CBSE

  26. Questions? ? Seminarium CBSE

More Related