Extreme Java G22.3033-007
Session 8 - Sub-Topic 2 OMA Trading Services
Dr. Jean-Claude Franchitti
New York University Computer Science Department Courant Institute of Mathematical Sciences
Trading Services for Distributed Enterprise Communications
Dr. Jean-Claude Franchitti
Page 1 Presentation Agenda
• Enterprise Systems Technology Classifications • Naming, Directory, and Trading Services in a Nutshell • CORBA as a Trading Service • Microsoft Active Directory Services • Jini as a Trading Service – Jini Component Architecture – Jini Programming Model – Jini Infrastructure – Jini Class Architecture and Development Process – Jini Service Example – From the Logical Infrastructure to a Physical Solution – Physical Solution Implementation Steps • Conclusions 2
Enterprise Systems Technology Classifications
Q User Interfacing
Q AWT, Swing, JMF, JavaBeans
Q Distributed Communications Enabling
Q TCP/IP, HTTP, CORBA, RMI/IIOP, COM+
Q Services for Distributed Communications
Q JNDI, CORBA Trading, JINI, Activation, JMS, JavaMail, JTA, JTS, etc.
Q Systems Assurance
Q Security, Reliability, Availability, Maintainability, Safety
Q Data Enabling
Q JDBC, RDBMs, ODBMSs
Q Web Enabling
Q HTML, XML, Applets, Servlets, JSPs
Q Applications Enabling
Q EJB, EAI 3
Page 2 Services for Distributed Communications
Q Naming
Q DNS, JNDI
Q Directory
Q NIS, NDS, LDAP, Microsoft Active Directory
Q Trading
Q CORBA Trading Service, JINI
Q Activation
Q CORBA LifeCycle Service, Java Activation Framework
Q Messaging
Q JMS, JavaMail, CORBA Event Service, CORBA Messaging Service, CORBA Notification Service
Q Transaction
Q CORBA OTS, JTS, JTA 4
Naming Service
Q Provides the ability to bind names to objects, and lookup objects by names (~ telephone white pages) e.g., COSNaming, DNS, LDAP, NIS, JNDI
5
Page 3 Directory Service
Q Provides a way to manage the storage and distribution of shared information (~ telephone yellow pages) e.g., NIS, NDS, LDAP, Microsoft Active Directory
6
Trading Service
Q Provide a framework for objects to identify themselves in a distributed system
Q Provides facilities for looking up and discovering other services
Q Provides services to remote objects
Q e.g., CORBA Trading, Jini, Microsoft Active Directory
7
Page 4 CORBA as a Trading Service
Q Provides a sophisticated directory service in which the directory objects contain:
§ Attributes and service type information on distributed objects
§ Distributed objects Handles
Q APIs: Admin, Link, Lookup, Proxy Register Microsoft Active Directory Service (ADS)
Q Maintains user, security, and network resource information used on a Windows 2000 network Q DCOM components can store their activation and connection information in the ADS Q COM objects can be exposed as APIs to ADS 8
Introducing Jini as a Trading Service
Q What is Jini Technology?
Q Who Developed Jini?
Q What are the Claimed Benefits?
Q What are the Limitations?
Q What is the Jini system architecture?
9
Page 5 Jini Technology Architecture
Q Jini provides “underware” (not middleware)
Q Jini helps services, clients, and users find other services (via lookup, registration, and leasing services)
10
What is Jini Technology?
Q Jini provides an infrastructure to federate services in a distributed system
Q Enable spontaneous networking
Q Simplify delivery of network services
Q Simplify access to network services
Q Jini provides a programming model for reliable, secure distributed services
Q Jini provides several basic services
11
Page 6 Who Developed Jini?
Q Jim Waldo (CORBA, RMI, JavaSpaces)
Q Ken Arnold (JavaSpaces)
Q Ann Wollrath (Java RMI)
Q Bob Sheifler (X Window System)
12
What are the Claimed Benefits?
Q Makes using a network more like using a phone
Q Allows software and hardware components to more easily provide network services
Q Makes adding and managing network services easier
13
Page 7 What are the Limitations?
Q Intended for workgroups of 2-100 nodes/services
Q Implies some agreement regarding trust, identity and policy within a single Jini federation
Q Requires Java, 48KB of memory
Q Licensing (SCSL new licensing model)
Q …
14
Key Concepts
Q Services
Q Discovery and Lookup
Q Extended RMI
Q Distributed Security
Q Leasing
Q Transactions
Q Distributed Events
15
Page 8 Services
Q Services may be added or withdrawn from a Jini federation at any time
Q Jini provides mechanisms for service registration, lookup, and use
Q Services communicate by using a service protocol (i.e., a set of Java interfaces)
Q Set of services is open-ended
16
Discovery and Lookup
Q Lookup service provides mapping:
Q Interfaces to objects
Q Hierarchical lookup:
Q Lookup service may include entry for other lookup services
Q Discovery is registering a new service with a lookup service (Jini federation discovers service)
17
Page 9 Extended RMI
Q Communication among services uses Java RMI
Q Extended with leases
Q RMI provides
Q Activation
Q Distributed garbage collection
Q Multicast
Q Replication
18
Distributed Security
Q Principal: entity on behalf of which a service is accessed
Q Access control list: associates access privileges with each object implementing a service
19
Page 10 Leasing
Q A lease is a grant of access over a time period
Q Negotiated as part of service protocol (~ CORBA licensing service role)
Q If lease expires without renewal, user and provider can free associated resource
Q Leases handle client and network failures, removal of services, …
Q Exclusive lease says service cannot be shared
20
Transactions
Q A series of operations may be wrapped in a transaction
Q Insure changes made atomically: all or none
Q Jini transaction interfaces supply service protocol for a two-phase commit
21
Page 11 Distributed Events
Q Jini supports distributed events (~ CORBA events)
Q Objects register interest in other object’s events
Q Notifications delivered to interested objects
22
Java + Jini
Q Base Java
Q Infrastructure:
Q Java VM, RMI, Java Security Model
Q Programming Model:
Q Java APIs, Java Beans, etc.
Q Services:
Q JNDI, EJBs, JTS, etc.
Q Java + Jini
Q Infrastructure:
Q Extended RMI, Discovery, Distributed Security, Lookup
Q Programming Model:
Q Leasing, Transactions, Distributed Events
Q Services:
Q JavaSpaces, Two-Phase Commit Manager 23
Page 12 Discovery Protocol
Q Service Joins a Jini Lookup Service
Q Provider uses multicast to locate Lookup service
Q Registers Interfaces
Q Loads Proxy object into Lookup Service
24
Lookup Protocol
Q Client looks up service when needed
Q Looks up by Java type, attributes
Q Copy of proxy moved to client
Q Uses proxy to invoke services
25
Page 13 Client / Service Interaction
Q Client uses service through proxy
Q Proxy might be complete service object or RMI stub
Q Or mixture of local/remote methods
Q Service protocol may be private to sender
26
Jini Component Architecture
Q Logical Component Architecture
Q Storage, JavaSpaces, Printing, TM
Q Jini Discovery, Join, and Lookup
Q Java 2 platform (RMI, security, networking)
Q Physical Component Architecture
Q JSTK JavaSpaces Starter Kit
Q Jini Starter Kit
Q Jini Software Kit (JSK) - com.sun.jini.*
Q Jini Extended Platform (JXP) - net.jini.*
Q Jini Core Platform (JCP) - net.jini.core.*
Q J2SE 27
Page 14 Jini Programming Model
Q Distributed Events API
Q Interface extending the JavaBeans event model
Q Distributed Leasing
Q Interfaces to obtain leases for use of distributed resources
Q Distributed Transactions
28
Jini Infrastructure
Q Service Discovery
Q Jini Community Joining
Q Services provide service items (meta-data attribute information, and proxy object)
Q Jini Lookup Services
Q Clients fill out a service template
Q Clients receive a set of service matches
Q Clients can extract the service proxy item to start using the service
29
Page 15 Jini Tools and Configuration
Q JSK: Jini System Software Starter Kit
Q JCP (jini-core.jar), JXP (jini-ext.jar), JSK (subset included in sun-util.jar)
Q JSK provides a lookup service with the codename “reggie”
Q JSK also provides a transaction management service with the codename “mahalo”
Q Sun provides a Jini service called JavaSpaces used to store and retrieve Java objects in a distributed network (codename is “outrigger”)
30
Jini Class Architecture and Development Process
Q Server side
Q Jini service implementation
Q Jini service proxy
Q Connectivity needed to a back-end device or process
Q Client side
Q Discover a lookup service
Q Create a Jini service template
Q Look up a Jini service
Q Handle Jini Service Lookup Matches
Q Use the Jini Service
31
Page 16 Jini Service Examples
Q Jini[TM] Technology Starter Kit (starter kit) and the Jini Technology Core Platform Compatibility Kit (TCK) are available to download under the Sun Community Source License v 3.0/Jini Technology Specific Attachment v 1.0 (SCSL3/Jini TSA v 1.0) program
Q Sample applications are provided with the Starter Kit
32
Conclusions
Q CORBA Trading Service provides support for associating distributed CORBA object references in a directory service
Q CORBA Trading Service is a somewhat complicated framework to use
Q ADS provides a directory service implementation and standard interfaces for COM/DCOM applications
Q ADS is platform dependent
Q Jini adds support for dynamic discovery of lookup services by servers and clients
Q Jini’s API is simple
Q Configuring Jini’s runtime infrastructure can be somewhat tedious. 33
Page 17 Links to more information
Jini home Jini FAQs Jini white papers Jini specs Jini licensing
34
Page 18