160 likes | 316 Views
Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev. Enterprise Computing with Jini Technology. Sun: What is Jini ?. ( http://wwws.sun.com/software/jini/ ) An open architecture
E N D
Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev Enterprise Computing with Jini Technology
Sun: What is Jini ? (http://wwws.sun.com/software/jini/) • An open architecture • Enables developers to create network centric services (implemented in hardware or software) • Highly adaptive to change. Jini technology can be used to build adaptive networks that are scalable, evolvable and flexible as typically required in dynamic computing environments.
Sun : Jini at a Glance • Unique Qualities • Code Mobility: Extends the Java programming model to the network; i.e., moves data and executables via a Java object over a network • Protocol agnostic: Provides the ultimate in design flexibility • Leasing: Enables network self-healing and self-configuration; i.e. improving fault tolerance • Unique Benefits • Resiliency: Networks readily adapt to changes in the computing environment • Integration: Allows fast, easy incorporation of legacy, current, and future network components • Licensing: Jini network technology is available free of charge with an evergreen license
Jini : Traditional View Created for networking embedded systems: • For devices with microprocessors doing a specific task • Self Configuration • Self Management • Self Healing Although these are exactly the qualities that make Jini attractive for embedded systems, network plug&play would be useful for the enterprise as well.
Jini Features: Reliability Definition: how well a device or network performs in the presence of disturbances. • Handles changes in the network because it expects devices to randomly move in and out of the network. • Parallels the way machines communicate over the Internet: multiple routes & path hiding. • Transparently discovers alternate servers when one goes down.
Jini Features: Scalability • Definition: a system is scalable if the overhead required to add more functionality is less thatn the benefit that functionality provides. • Adding Jini services to a system gives clients more choices in the devices they can communicate with. • No centralized control • Dynamically discovers services needed for processing client requests.
Jini Features: Maintenance and Administration • The network location is hidden from the client (Jini discovers other components of the application on its own). • “Machine Gone Down” problem • offline backup machine • hot failover backup • Jini solution
Jini Features: Security • Security model : Similar to the J2EE model. • No viruses: before code can move to another machine, it must satisfy the client's security policy. • Rogue services: hijacking clients and providing invalid information
How Jini works • Dependencies : runs on top of a JVM (based and dependent on Java), will work in any IP-based network. • Jini Federations / communities • Jini client joins a federations to gain access to services, Jini services join a federation to offer services. • appearing and disappearing based on demand for Jini services.
How Jini Works : Service Based Model • Service: an entity that users can access over a network (storage device, software component, printer, home stereo, etc). • Services advertised and found through a lookup server. • Service discovers lookup server through multicast discovery • Service registers with lookup server using join. • Client discovers lookup server through multicast discovery • Client performs lookup directly to known lookup server and receives server location. • Client directly accesses the server and executes code on the server. • The lookup service mantains maps of services and attributes; clients request services with specific attributes.
How it works: Finding a Lookup Server • Multicast discovery message: sending a message to every Jini device within a certain number of hops. • Lookup servers respond with their addresses to the Jini client. • Client uses the join protocol to become a part of the federation. • Services may join multiple lookup servers for increased reliability.
How It Works: Transferring Executable Code • Similar to applets in a browser; however, only the code for the interface the client needs to communicate with the server. • In terms of network traffic, the system essentially transfers the requests and the results of whatever the server executes. • The server implements a specific interface only: no implementation details are mandated by the protocol. • Service Leases: • a guarantee that the client may access the resource for a specific length of time. • obtaining & releasing • exclusive and non-exclusive. • Transactions: maintaining data consistency. • Event notifications: notifying listeners of certain events.
How It Works : JavaSpaces Service. • Definition : stores and maintains a database of Java objects. • Not a replacement for relational or OO databases. • Allows storage and retrieval of objects via standard lookup. • No primary keys or table creation required: lookup done on a name and a number of attributes. • CRUD operations: • write: create and update functions • read: get a copy of an object • take: combined read and delete. • Notify: letting a program know when an object that matches some criteria has been written into the space.
How It Works : JavaSpaces Service. • Object Locking (take operation) • when an object is taken, it becomes unavailable • take operation has a transaction: if it fails or is rolled back, the object is released. • Examples: • Sharable Whiteboard: applications write sets, other programs can share into the space. • Compute Server: • a master server creates objects • slave processes take objects, perform calculations, return to into the space.
Enterprise Application Example: A License Server. • Definition: ensures that no more than the legally allowed copies are in use at one time. • License server: how it works. • Traditional Licence Server Problems: • if a user has the application open, it doesn't mean it's being used. • sometimes license reservations are never returned (e.g. machine crash) • client needs additional configuration with a license server with a known location. • application functionality is very dependent on the operation of the single license server. • Jini License Server • the number of available licenses represented by cookies : leasing cookies for a set period of time (solves first two problems) • if a Jini client loses connection to one server, it can look for a connection to another such service. • several instances of the Jini server can communicate with one another about the status of available licenses. • moving a server to another address allows the clients to continue working with the same server (via lookup) • Downside: • additional network traffic.