Distributed Service ArchitecturesOutlineOverviewCORBAObject Interoperability – CORBA StyleCommunicationCORBA ORB ArchitectureCORBAservicesCORBAservices (continued)JINIJini – An OverviewKey ConceptsDiscoveryLookupDiscovery and LookupSlide 16Slide 17Slide 18PowerPoint PresentationSlide 20Slide 21LeasingRemote EventTransactionsOther issuesOther issues (continued)SummaryJini Surrogate ArchitectureCORBA Interoperable Object Reference (IOR)Binding of a persistent referenceDistributed Service ArchitecturesYitao [email protected]/19/2002OutlineOverviewCORBAJINISummaryOverviewHow different entities communicate with each other?How is a service discovered by client?How does the system adapt to faults?How is security addressed?Mobility? Scalability?CORBAThe OMG grew out of the object technology boom of the 1980s. Its founders were Data General, Hewlett-Packard, and Sun. Today some 800 (and growing) companies comprise the OMG. Together these companies have created and continue to create standards for object-oriented computingCORBA 1.0 (October 1991)CORBA 3.0 -- Pre-release Spring 1999, Commercial release late 1999Object Interoperability – CORBA StyleAll about Objects -Common Object Request Broker ArchitectureInterface defined in Interface Definition Language (IDL)A contract between objectsMarshaling/unmarshaling arguments and results.Independent of implementation. Heterogeneous language support, mapped to C, C++, Java, COBOL, Smalltalk, Ada, Lisp, Python etc.Objects live within server and are passed by referenceCommunicationORB1StubClientSkelObjectORB2StubClientSkelObjectIIOPOBR: Object Request BrokerCORBA ORB ArchitectureDII: Dynamic Invocation InterfaceDSI: Dynamic Skeleton InterfacePOA: Portable Object AdapterORB CoreClientDIIClient StubsORB InterfaceImpl SkeletonsDSIPOAObject ImplementationOBJ REFCORBAservicesOMG published 17 object servicesNaming ServiceAssociation of names to objectsLocate components by nameTrader Service – Object Yellow PageMatch services by type and propertiesConcurrency Control ServiceA lock manager for transaction or threadsCORBAservices (continued)Transaction Service2PC among recoverable components Flat or nested transactionsSecurity Serviceauthentication, access control, message protection, audit, non-repudiation, security managementJINIJini technology was publicly released on January 25, 1999.Current Release:Jini Technology Starter Kit v 1.2 (released 12/2001) http://developer.java.sun.com/developer/products/jini/Jini – An OverviewService centeredFulfillment of original Java vision – groups of devices exchanging data and code.The Jini vision: Networkanything, anytime, anywhere!Built on top of JavaN e t w o r k T r a n s p o r tO p e r a t i n g S y s t e mJ a v a T e c h n o l o g yJ i n i T e c h n o l o g yS e r v i c eA p p l i c a t i o nKey ConceptsDiscoveryLookupLeasingRemote EventsTransactionsDiscoveryProcess used to find communities on the network and join themEnable spontaneous Jini community-building= finding (and joining) lookup servicesProtocolsMulticast Request ProtocolMulticast Announcement ProtocolUnicast Discovery ProtocolLookupEnables a client to find a particular srvcMaintains a list of Service Items.Service Item = Downloadable proxy object + AttributesSearchable by object type, ID, or attributesServices join the lookup servicesClients download proxy objects and request service from themProxy: performs …Discovery and LookupJini Lookup ServiceJini ServiceJini ServiceDiscovery and LookupJini Lookup ServiceJini ServiceJini ServiceDiscovery and LookupJini Lookup ServiceJini ServiceJini ServiceProxy CodeProxy CodeDiscovery and LookupJini Lookup ServiceJini ServiceJini ServiceProxyAttributeAttributeAttributeProxyAttributeAttributeAttributeJini Lookup ServiceJini ServiceJini ServiceProxyAttributeAttributeAttributeProxyAttributeAttributeAttributePDAJini ClientDiscovery and LookupDiscovery and LookupJini Lookup ServiceJini ServiceJini ServiceProxy CodeProxyAttributeAttributeAttributeProxyAttributeAttributeAttributePDAJini ClientDiscovery and LookupJini Lookup ServiceJini ServiceJini ServiceProxy CodeProxyAttributeAttributeAttributeProxyAttributeAttributeAttributePDAJini ClientLeasingEnables Jini’s stable, self-healing, self-adapting nature.Acknowledges explicitly the fact that network is transientResources are allocated for a specific time period. If the resource is needed longer, the client must renew the lease, demonstrating its continued need.Remote EventProvide asynchronous notifications to Jini clients and servicesAdhere to Jini leasing so that event generation can survive the transient nature of clients on a network.TransactionsJini’s mechanism for allowing computations that may involve multiple services to reach a “safe” stateProtects against partial failureHelp address concurrency problemsOther issuesFault tolerance - Multiple lookup services in a community (also for load balancing)Mobility Discovery and lookup support spontaneous form of communities Leasing clears the system off any stale informationScalabilityLookup services are servicesSupporting multiple communitiesOther issues (continued)SecurityDistributed computing makes the issue tougherJini doesn’t provide additional security mechanismRelies on Java 2 securityBeing worked onSummaryCORBALow level primitives for distributed computingLanguage independentPass remote object by referencesNetwork transparentJiniFlexible framework for building complex distributed systemsLanguage-specific, OS independentPass remote object by value (instances)Network awareJini Surrogate ArchitectureCategory 1Category 2(MIDP, PersonalJava)Category 3 (J2ME CVM w/RMI Profile)Service NService 2Jini Lookup ServiceJini client #1Jini client #2Jini client #nPDATelephoneFaxPagerTV set-top boxVCRGateway ServiceProviderService 1InternetGateway ServerCORBA Interoperable Object Reference (IOR)Type Name (Repository ID)Protocol and Address DetailsObject Key (Adapter & Object Name)CORBA Interoperable Object Reference (IOR)Binding of a persistent
View Full Document