Kein Folientitel

advertisement
OOPSLA 2000 Workshop
The History of the Jini™
Pattern Language
Michael Kircher,
Prashant Jain,
and Kirthika Parameswaran
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
1
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]
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
2
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?
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
3
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.
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
4
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
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
5
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
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
6
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.
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
7
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.
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
8
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.
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
9
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 deactivated
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
10
On demand
Loading
Activator
The Jini™ Pattern
Language
Service
Evictor
Client
Lookup
Lookup
Service
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
Service
Provider
Leasing
11
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?
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
12
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 1316, 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
OOPSLA 2000 Workshop The
Jini™ Pattern Language
© Michael Kircher, Prashant Jain,
and Kirthika Parameswaran, 2000
13
Download