DOC PREVIEW
AUBURN COMP 7970 - Jini Motivation

This preview shows page 1-2-3-23-24-25-26-46-47-48 out of 48 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 48 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

A Look at JiniJini MotivationJini GoalsJini HistoryJini is intended to be used by:Getting JiniNetworked vs Distributed SystemsThe network cannot be ignoredHandling Partial FailuresHandling Partial Failures, Cont’d.Why CORBA isn’t enoughPeter Deutch’s Seven Network FallaciesJini adopts the programming model of JavaConventional wisdom is no longer valid.Strong typing is importantJini is built on Java RMIJava RMI, cont’dSlide 18Strong typing, cont’dWhat Jini is notWhat Jini is not, cont’dFive Key Concepts of JiniDiscoveryDiscovery, cont’dLookupLookup cont’dLookup, cont’dSlide 28Proxy scenariosUsing a Jini Service“How does client x know to call method y?”LeasingLeasing, cont’dSlide 34Third party leasingDelegationLease mechanicsLease mechanics, cont’dSlide 39EventsRemote EventsRemote Events, cont’dRemote events, cont’dRemote Events, contdTransactionsTwo-phase commitTwo-phase commit, cont’dJini implementation of two-phase commitA Look at JiniRichard ChapmanSept. 30, 1999Jini Motivation•Why must everyone be a sysadmin?•Why can’t computers scale like the phone system: added complexity without added configuration work?•Why can’t devices/services enter and leave the network without explicit reconfiguration?Jini Goals•Very robust software infrastructure•No configuration/administration required •Software must be evolvable•Devices can form spontaneous communitiesJini History•Fulfillment of original Java goals of an environment for embedded systems (Oak, 1990) •The word “Jini” does not stand for anything•Went public too soon, NYT reporter John Markoff broke story in 1998Jini is intended to be used by: •Information appliances (thin clients, set top boxes, PDA’s) •Desktop machines can benefit from a reduction in sysadmin duties•Enterprise systems (servers) also benefitGetting Jini•Source code distributed under Sun community source license (open source)•Need Java 2•Requires web server, RMI activation daemon, lookup service•http://www.javasoft.com/products/jini/Networked vs Distributed Systems•Move the data or move the code?•Conventional wisdom: since code has to be compiled and installed, move the data, and call a routine on the remote machine•Thus: make the remote function call look like a local function call as much as possible (RPC, CORBA, DCOM)The network cannot be ignored•Very high latency (orders of magnitude)•High variability in latency (has a component failed or is the link just very slow?)•New failure modes that do not exist on local machine (router down, nameserver crash, cable came loose)Handling Partial Failures•Partial Failures do not exist on local machines -- you know the state, for better or worse •Partial failures arise when some, but not all hosts, receive a message from a sender•May be difficult for sender to detect which hosts received messageHandling Partial Failures, Cont’d.•Even if server can detect which hosts have not received a message, what does it do•Can’t keep trying forever -- you run out of disk drives storing old messages you are trying to send•Don’t want to give up and cut off the host that failed to get a messageWhy CORBA isn’t enough•Ignores network performance issues (makes remote call look like local call)•An add-on to existing languages (not all machines implement C++ the same way)•Example problems: endianness, size of int, float, char, etc.Peter Deutch’s Seven Network Fallacies•The network is reliable•Latency is zero•Bandwidth is infinite•The network is secure•Topology doesn’t matter•There is one administrator•Transport cost is zeroJini adopts the programming model of Java•One language everywhere•Data in the same format everywhere (objects represented by bytecodes) •Strongly typed interfaces•Separate interface and implementation•Plus: a distributed storage model based on Linda (Gelernter, Yale)Conventional wisdom is no longer valid.•Code can easily move from machine to machine•Servers can be dynamically updated•Systems can evolve by updating interfaces with new code as needed, no need for recompilationStrong typing is important•In Java, an RMI defines the interface, while in CORBA, an IDL description is a wrapper around the interface•Polymorphism works in RMI -- you can define subinterfaces; you can pass an ojbect of a subtype to remote server and the subtype methods are appropriately used (doesn’t work in CORBA).Jini is built on Java RMI•RMI = Remote Method Invocation Public interface RemoteServer extends Remote { public int getlength(String S) throws RemoteException; }Java RMI, cont’d•If you change the (Java) interface declaration in Java, you are really changing the way the interface works•If you change the Java interface declaration in a CORBA system, you just break the interface, since the Java interface is generated automatically from the IDL descriptionJava RMI, cont’d•Thus from a software engineering point of view, the CORBA implementation is more complicated and error-prone•However, CORBA outperfromed RMI empirically (no longer true?)•For enterprise solutions, CORBA is essential -- we will always need glue to connect heterogeneous systemsStrong typing, cont’d•“Remoteness” is inherently part of the interface, not an implementation detail•Every interface must extend java.rmi.remote•Permits a reasonable definition of equality for remote objects -- you care if the remote objects are the same, not the local stubsWhat Jini is not•Jini is not a name server: lookup service is similar, but does more than provide references to objects•Jini is not Java Beans: beans communication based on direct method invocation, not remote. Also, beans do not automatically become aware of each other as do Jini objectsWhat Jini is not, cont’d•Jini is not Enterprise Java Beans: Enterprise Java Beans function across multiple address spaces well, but they put Java wrappers around legacy systems•Jini is not RMI: built on top of RMI•Jini is not a distributed OSFive Key Concepts of Jini•Discovery•Lookup•Leasing•Remote Events•TransactionsDiscovery•Services=Devices or Software•Services collect themselves into communities•The resources available to a community are kept track of by a lookup service•No one-to-one mapping between communities and lookup services•Discovery=finding available lookup servicesDiscovery, cont’d•Several discovery


View Full Document

AUBURN COMP 7970 - Jini Motivation

Download Jini Motivation
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Jini Motivation and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Jini Motivation 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?