1 / 13

The History of the Jini™ Pattern Language

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:

admon
Download Presentation

The History of the Jini™ Pattern Language

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. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

More Related