A Look at Jini Jian He Roy Patrick Tan. Outline History Design Goals An Example Basic Components Top View Infrastructures --- Proxies, Discovery/join.

Slides:



Advertisements
Similar presentations
- 1 - Jini in the Enterprise O'Reilly Conference on Java Scott Oaks Sun Microsystems
Advertisements

An Introduction of Jini Technology Presenter: Carfield Yim, Gary Lam Date: 31-Jul-2002 How can JINI Technology Boost Our Business.
1 Jini Tutorial, Part 3 Jini Programming. 2 Tutorial outline Part 1 Introduction Distributed systems Java basics Remote Method Invocation (RMI) Part 2.
Jini Tutorial, Part 2 Jini Overview.
JINI Network Technology
Jini, third verse Richard Chapman October 13, 1999.
Mini project /2 Jini - a new computing paradigm.
JavaSpaces and TSpaces Theresa Tamash CDA 5937 November 4, 2002.
JINI Shashwat Shriparv InfinitySoft.
THE JINI TECHNOLOGY Alessio Zumbo
Introduction to Jini & JavaSpaces
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
I Dream of Jini An Independent Research Project By Noah J Ternullo & Dmitriy Gurlyand.
CS 603 Jini April 10, What is Jini? Java Middleware Tools to construct federation –Multiple devices, each with Java Virtual Machine –Multiple services.
Distributed Service Architectures Yitao Duan 03/19/2002.
A Look at Jini Richard Chapman Sept. 30, Jini Motivation Why must everyone be a sysadmin? Why can’t computers scale like the phone system: added.
Parallel Computing using JavaSpaces -Presented by Shilpi Basak Advisor: Prof: Dick Steflik.
490dp Prelude I: Group Membership Prelude II: Team Presentations Tuples Robert Grimm.
Jini Connection Technology Kaushik Lahoti. Jini: A Vision n Areas to focus on –Simplicity –Reliability –Scalability.
Pay As You Go – Associating Costs with Jini Leases By: Peer Hasselmeyer and Markus Schumacher Presented By: Nathan Balon.
Jini Technology Part 1: Jini Technology Introduction Part 2: JavaSpace & GigaSpace.
Jini™ Rashad Oreifej and Christopher Stricklan. Introduction ► Pronounced GEE-nee  Stands for (Java INference engine and networked Interactor)?  Loosely.
Presented by Mark Miyashita
Introduction - What is Jini Technology?
Nov 6, 2000CS851 Ubiquitous Computing1 The Jini Architecture Speaker: Weisheng Si Dept. of Computer Science University of Virginia.
JavaSpaces Prabhaker Mateti Wright State University.
January 26, Jim Waldo Copyright 1999 Sun Microsystems, Inc., all rights reserved.
JINI Gijung Yun © Realtime Embedded Systems Laboratory Inha University
1 Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay User Interfaces for Jini Services The Jini Pattern Language Workshop.
January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Jini™ Lookup Service Bob Scheifler Senior Staff Engineer Sun.
Sun’s Jini Lab 2 Service Registration Client Lookup.
JavaSpaces TM By Stephan Roorda Source: JavaSpaces specification.
11/13/00 1 Design of a Home Network Rajesh Rajamani
Jini tm NetworkingTechnology Directions Jim Waldo Jini Architect Sun Microsystems, Inc.
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
20-Sep-2000Jini™ Connection Technology1 Rochester Institute of Technology Jini™ Connection Technology Alan Kaminsky Information Technology Laboratory Rochester.
1 Lecture 16 Jini Technology Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology
JINI Design and Principles Ranjita Bhagwan CSE225: High-Performance Distributed Computing.
Distributed Coordination-Based Systems Adapted from: "Distributed Systems", Tanenbaum & van Steen, course slides.
Jini Architecture Alessandro Brawerman. Contents Jini definition Advantages Architecture How it works Websites to check.
Li Tak Sing COMPS311F. RMI callbacks In previous example, only the client can initiate a communication with the server. The server can only response to.
JavaSpaces ™ Nati Shalom CTO GigaSpaces Technologies.
1 JSK 1.1 A practical Approach Contents –Working with JSK 1.1 –Jini environments –Writing Jini software revisited –Important software packages in the JSK.
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
JINI Coordination-Based System By Anthony Friel * David Kiernan * Jasper Wood.
Jini Architecture Introduction System Overview An Example.
Jini Architectural Overview Li Ping
Overview of Jini CS Fall 2000 Jason I. Hong.
Case Study PrintService -dynamically networked products, services, and applications -network computer / consoles (powerful processor, several MB of memory)
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
January 26, Ken Arnold Copyright 1999 Sun Microsystems, Inc., all rights reserved.
Jini Technology 제 1 회 한국 자바 개발자 컨퍼런스 발표자 : 강신동 Mobile : 소속 : ㈜ idosi.com 대표이사 주최 : JavaCommunity.Org.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 20 A little more on RMI Getting started with.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Distributed and Parallel Processing George Wells.
JINI – A next Generation Networking Technology Part I – Introduction.
Java Distributed Object System
11. Jini What is Jini? A "network technology that provides a simple (?) infrastructure for delivering services in a network and for creating interactions.
Object Spaces 9/22/2018.
The Jini Technology: An overview
Event Pipeline Pattern
Bina Ramamurthy Chapter 9
An Introduction of Jini Technology
Jini Instructors: Geoffrey Fox and Bryan Carpenter
Bina Ramamurthy Chapter 9
Bina Ramamurthy Chapter 9
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Distribution Infrastructures
Jini B.Ramamurthy 5/15/2019 B.Ramamurthy.
Presentation transcript:

A Look at Jini Jian He Roy Patrick Tan

Outline History Design Goals An Example Basic Components Top View Infrastructures --- Proxies, Discovery/join and Lookup Programming Models --- Leasing, Events and Transactions Hello World! JavaSpaces Comparisons Jini and Corba Jini and EJB Jini and OAA Current State References

History 1990, Oak. 1994, WebRunner  HotJava 1995, Java made Internet history. Bill Joy leads Sun’s new project ---Jini “Jini Is Not Initials” 1999, Jini becomes public. “It is fulfillment of original Java idea of an environment for embedded systems.”

Design Goals Robust software infrastructure Enable a service-based architecture Support “plug and participate” networking Devices can form spontaneous communities Ease distributed computing – Network latency – Concurrency/Synchronization – Memory management – Inevitable partial failure

An Example - a Jini-enabled printer

An Example (cont.) Multicast query for lookup services

An Example (cont.) discover LUS (lookup service) is discovered.

An Example (cont.) Printer registers (joins) service object (proxy) with LUS.

Client asks LUS for printer. An Example (cont.)

LUS returns the printer service object (proxy) to client.

Client talks to the printer by using the service object (proxy). An Example (cont.)

Basic Components A service A client A lookup service

Top View

Top View (cont.) ?

Infrastructure --- Proxies Downloadable Zero-administration Proxy scenarios: – it may perform the service itself; – it may be an RMI stub for some remote service; – it may act as a “smart” adapter, which provides a Jini interface to legacy (non-Java) services (sockets, CORBA, hardware- dependent protocols, etc.).

Infrastructure --- Discovery/Join/Lookup Services: discover and join a group of services by using UDP multicast. Unicast is also supported to connect to a particular lookup service. Lookup services: store authenticated services as Java objects and periodically advertise to network by using UDP multicast. Clients: download service proxies on demand from lookup services.

Infrastructure (cont.)

Programming Model --- Leasing Why? -- Self-healing for partial failures. What? -- Time-based grants of – Services: the registered status in lookup services. – Clients: the allocated services. How? It can be – Renewed – Cancelled – Expired

Programming Model -- Leasing Service Lookup Service Lease register(proxy, lease) Proxy

Lookup Service Proxy Programming Model -- Leasing Service Lease renew() cancel() Lease

Programming Model --- Events Why? -- Interesting external changes. What? -- Extended Java event model – Asynchronous (JavaBeans, JFC) – Out of order delivery and partial failures How? – RemoteEvent class – RemoteListener interface – EventRegistration interface

Programming Model -- Transactions Jini supports transactions – distributed object coordination Two-phase commit Implemented as Transaction Manager service Not often used

Two Phase Commit: Prepare Transaction Manager Svc 2 Svc 1 Prepare Ok!

Two Phase Commit: Commit Transaction Manager Svc 2 Svc 1 Commit!

TransactionParticipant public interface TransactionParticipant extends Remote, TransactionConstants { int prepare(TransactionManager mgr, long id); void commit(TransactionManager mgr, long id); void abort(TransactionManager mgr, long id); int prepareAndCommit(TransactionManager mgr, long id); }

Hello World! First declare the interface public interface HelloWorldService { public string getMessage(); }

The Hello World Proxy Proxy – the code to be downloaded class HelloWorldServiceProxy implements Serializable, HelloWorldServiceInterface { public HelloWorldServiceProxy() { } public String getMessage() { return "Hello, world!"; }

The Hello World Service public class HelloWorldService implements Runnable { // 10 minute leases protected final int LEASE_TIME = 10 * 60 * 1000; … class Listener implements DiscoveryListener { … public void discovered(DiscoveryEvent ev) { ServiceRegistrar[] newregs = ev.getRegistrars(); … if (!registrations.containsKey(newregs[i])) { registerWithLookup(newregs[i]); }

Hello World Service (cont’d) protected synchronized void registerWithLookup(ServiceRegistrar registrar) { ServiceItem item; item = new ServiceItem(null, createProxy(), null); ServiceRegistration registration = null; try { registration = registrar.register(item, LEASE_TIME); } catch (RemoteException ex) { System.out.println("Couldn't register: " + ex.getMessage()); return; }

Hello World Client public class HelloWorldClient implements Runnable { … class Listener implements DiscoveryListener { … } public HelloWorldClient() throws IOException { Class[] types = { HelloWorldServiceInterface.class }; template = new ServiceTemplate(null, types, null); … // Only search the public group disco = new LookupDiscovery(new String[] { “Public" }); // Install a listener disco.addDiscoveryListener(new Listener()); }

Hello World Client (cont’d) protected Object lookForService(ServiceRegistrar lusvc) { Object o = null; try { o = lusvc.lookup(template); } catch (RemoteException ex) { System.err.println("Error doing lookup: "); } if(o != null) { System.out.println("Got a matching service."); System.out.println("It's message is: " + ((HelloWorldServiceInterface) o).getMessage()); } return o; }

JavaSpaces One of the first Jini services Based on tuple spaces (Linda) 3 fundamental operations: –Read –Write –Take

JavaSpaces

JavaSpaces has typed entries for example: Use transactions to move objects between JavaSpaces Import net.jini.core.entry.Entry public class Student implements Entry { public String pid; public String name; public Student() {} }

JavaSpaces Different approach to distributed computing Information Sharing -- shared message board. Compute serving -- Image Processing compute farm Workflow -- Document routing

Jini and CORBA Jini has code mobility (proxy objects are more than stubs) Jini solves initial reference problem CORBA is cross-language CORBA components can be wrapped as Jini services

Jini and EJB EJB is used for “static” server environment Jini is designed for more volatile services Jini can be used for web services as well. Example: travel services consolidator.

Jini and OAA Similar technologies Jini has code mobility Facilitator more intelligent than Jini lookup services Jini is Java based, OAA is multi- language

Current State of Jini Not very popular 75 Commercial Licensees 80,000 downloads Free to try: SCSL Licensing Reorienting from devices to (web) services

References W. Keith Edwards, Core Jini, Prentice Hall, 1999 W.Keith Edwards, Jini Example by Example, Prentice Hall, 2001 Stephen L. Halter, Java Spaces verview.ppt