130 likes | 357 Views
OOPSLA 2000 Workshop. The History of the Jini™ Pattern Language. Michael Kircher, Prashant Jain, and Kirthika Parameswaran. How everything started. First question: Can Jini™ be implemented in some other programming language, e.g. C++? What exactly would that mean? We need:
E N D
OOPSLA 2000 Workshop The History of the Jini™ Pattern Language Michael Kircher, Prashant Jain, and Kirthika Parameswaran © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
How everything started • First question: Can Jini™ be implemented in some other programming language, e.g. C++? • What exactly would that mean?We need: • Communication framework, e.g. CORBA • Lookup service, e.g. CORBA Name Service • Mechanism to dynamically load services, e.g. Service Configurator[JaSc97] © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Next Steps • But can it actually all work together?Still many open questions: • How to represent services? As DLLs? Shared objects? • What are the interfaces? What is THE common service interface? • What is the right granularity? How to split into proxy and service? • How to package them? • How to bootstrap a service from a downloaded software package? © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Getting Feedback • Talking to others …Doug Schmidt: “.. not just a Java-centric technology, but a "pattern language" for "plug & play" component-centric development.” • This gave a boost to our efforts and we started abstracting away from implementation details. © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Patterns to the Rescue • Started identifying key aspects of Jini™ using patterns. • Came up with an initial list of: • Lookup • Leasing • Activator • On-Demand-Loading (Lazy Evaluation) • Evictor © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Lookup Pattern • Abstract • The Lookup pattern describes how to find and retrieve initial references to distributed objects and services. • Structure: • Lookup Service: Allows clients to look up services based on properties. • Service: Offers a service; registers itself with the Lookup Service • Client: Uses a service; finds it via the Lookup service © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Leasing Pattern • Abstract • The Leasing pattern simplifies resource management by specifying how resource users can get access to a resource from a resource provider for a pre-defined period of time. • Structure: • Resource: Provides some kind of functionality or service. • Lease: Provides a notion of time that can be associated with the availability of the Resource. • Grantor: Grants a Lease on the Resource. • Holder: Obtains a Lease on the Resource and then uses the Resource. © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Activator Pattern • Abstract: • The Activator pattern describes how services can be activated in a generic way. • Structure: • Activator: Responsible for activating services. • Service: Offers a service; can be activated and de-activated. • Client: Accesses a service via the Activator. © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
On-Demand-Loading Pattern(extension of Activator) • Abstract • The On-Demand-Loading pattern describes how services can be activated in a memory efficient way by putting the services into shared libraries and loading them only on demand. • Structure: • Service: Offers a service; is available as shared library • Activator: Activates the service by loading the shared library. © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Evictor Pattern • Abstract • The Evictor pattern describes a solution to free up unused resources based on policies. • Structure • Evictor: Manages a set of services based on available resources. If resources get scarce, it evicts services based on policies. • Service: Offers a service; can be activated and de-activated © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
On demand Loading The Jini™ Pattern Language Activator Service Evictor Lookup Service Provider Client Leasing Lookup Service © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
Is that all? • How do we extend the Jini™ Pattern Language? • Which problems are not solved, yet? • How would the implementations in different environments, as the Java environment, look like? • Could we bring in patterns from other domains? • How can the Jini™ Pattern Language be applied to other domains? © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000
References • [KiJa00] Michael Kircher, and Prashant Jain, Lookup Pattern, EuroPLoP 2000 conference, Irsee, Germany, July 5-9, 2000 • [JaKi00] Prashant Jain, and Michael Kircher, Leasing Pattern, PLoP 2000 conference, Allerton Park, Illinois, USA, August 13-16, 2000 • [JaSc97] Prashant Jain and Doug C. Schmidt, Service Configuratior - A Pattern for Dynamic Configuration of Services, C++ Report, SIGS, Vol. 9, No. 6, June, 1997 • [St00] Michael Stal, Activator Pattern, http://www.posa.uci.edu, 2000 • [HeVi99] Michi Henning and Steve Vinoski, Advanced CORBA Prgrogramming with C++, Chapter 12.6 – Evictor pattern, Addison-Wesley, 1999 © Michael Kircher, Prashant Jain, and Kirthika Parameswaran, 2000