CS 603 Jini April 10, 2002. What is Jini? Java Middleware Tools to construct federation –Multiple devices, each with Java Virtual Machine –Multiple services.

Slides:



Advertisements
Similar presentations
The Jini Technology Lookup Service. How Does It Work Services and clients find a lookup service using the discovery protocol Services advertise themselves.
Advertisements

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
Java Remote Method Invocation (RMI) In Java we implement object systems: O1O2 O3 thread 1thread 2 execution scheme JVM 1JVM 2 distribution scheme.
Remote Method Invocation
The road to reliable, autonomous distributed systems
Introduction to Jini & JavaSpaces
Jini™ Technology Registry Working Group International Virtual Observatory Alliance March, 2003 London, e-Science Center Registry Working Group International.
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.
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.
How Does Remote Method Invocation Work? –Systems that use RMI for communication typically are divided into two categories: clients and servers. A server.
Parallel Computing using JavaSpaces -Presented by Shilpi Basak Advisor: Prof: Dick Steflik.
A Study of Sun Microsystem’s Jini Architecture Casey Detorie CS December 2002.
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
Jini Connection Technology Kaushik Lahoti. Jini: A Vision n Areas to focus on –Simplicity –Reliability –Scalability.
Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.
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.
CHEP 2003 Iosif Legrand DIAMONDS DIstributed Agents for MObile & Dynamic Services Iosif C. Legrand California Institute of Technology.
A Look at Jini Jian He Roy Patrick Tan. Outline History Design Goals An Example Basic Components Top View Infrastructures --- Proxies, Discovery/join.
JavaSpaces TM By Stephan Roorda Source: JavaSpaces specification.
11/13/00 1 Design of a Home Network Rajesh Rajamani
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
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.
Distributed Systems Principles and Paradigms Chapter 12 Distributed Coordination-Based Systems 01 Introduction 02 Communication 03 Processes 04 Naming.
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.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Jini Architecture Alessandro Brawerman. Contents Jini definition Advantages Architecture How it works Websites to check.
Shuman Guo CSc 8320 Advanced Operating Systems
IBM TSpaces Lab 3 Transactions Event Registration.
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.
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.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
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.
11. Jini What is Jini? A "network technology that provides a simple (?) infrastructure for delivering services in a network and for creating interactions.
Java Remote Method Invocation (RMI)
Remote Method Invocation
Programming Models for Distributed Application
ICS 237- Distributed Systems Middleware Nalini Venkatasubramanian
Bina Ramamurthy Chapter 9
Jini Instructors: Geoffrey Fox and Bryan Carpenter
Bina Ramamurthy Chapter 9
Bond-Jini Interoperability
Bina Ramamurthy Chapter 9
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Java Remote Method Invocation
Presentation transcript:

CS 603 Jini April 10, 2002

What is Jini? Java Middleware Tools to construct federation –Multiple devices, each with Java Virtual Machine –Multiple services Uses (doesn’t replace) Java RMI Adds infrastructure to support distribution –Registration –Lookup –Security

Service Basic “unit” of JINI system –Members provide services –Federate to share access to services Services combined to accomplish tasks Communicate using service protocol –Initial set defined –Add more on the fly

Infrastructure: Key Components RMI –Basic communication model Distributed Security System –Integrated with RMI –Extends JVM security model Discovery/join protocol –How to register and advertise services Lookup services –Returns object implementing service (really a local proxy)

Programming Model Lookup Leasing –Extends Java reference with notion of time Events –Extends JavaBeans event model –Adds third-party transfer, delivery and timeliness guarantees, possibility of delay Transaction Interfaces

Jini Component Categories Infrastructure – Base features Programming Model – How you use them Services – What you build Java / Jini Comparison

Lookup Service Describes functionality Describes interface Lookup is a service –Can be referenced in another lookup service –Also register lookup with non-Jini naming Registering –Discovery protocol: Find a lookup service –Join protocol: Register with the lookup service

Registration

Sample Server public class SendHelloServer implements DiscoveryListener { protected LeaseRenewalManager leaseManager = new LeaseRenewalManager(); public static void main(String argv[]) { new SendHelloServer(); // keep server running to allow time for locator // discovery and keep re-registering the lease Thread.currentThread().sleep(Lease.FOREVER); } public SendHello() { LookupDiscovery discover = null; // Prepare for discovery - empty here // Discover a lookup service // This uses the asynchronous multicast protocol, // which calls back into the discovered() method discover = new LookupDiscovery( LookupDiscovery.ALL_GROUPS); discover.addDiscoveryListener(this); } public void discovered(DiscoveryEvent evt) { ServiceRegistrar registrar = evt.getRegistrars()[0]; // At this point we have discovered a lookup service // Create information about a service ServiceItem item = new ServiceItem(null, new SendHelloImpl(), null); // Export a service ServiceRegistration reg = registrar.register(item, Lease.FOREVER); // Renew leasing leaseManager.renewUntil(reg.getLease(), Lease.FOREVER, this); } } // SendHelloServer

Invocation

Sample Client public class Hello { public static void main(String argv[ ]) { new Hello(); } public Hello() { LookupLocator lookup = null; ServiceRegistrar registrar = null; FileClassifier classifier = null; // Prepare for discovery lookup = new LookupLocator( "jini:// // Discover a lookup service // This uses the synchronous unicast protocol registrar = lookup.getRegistrar(); // Prepare a template for lookup search Class[ ] classes = new Class[ ] {SendHello.class}; ServiceTemplate template = new ServiceTemplate( null, classes, null); // Lookup a service sender = (SendHello) registrar.lookup(template); // Call the service System.out.println( sender.SendHello()); } } // Hello

Security Principal: Authenticated user making request Access control list: What principals can use a service JVM security mechanisms ensure services don’t compromise local machine

Leasing Lease: Right to access a service –Guarantees access for specified time period Negotiated as part of service protocol Allows freeing resource by either end, without explicit negotiation –Fault tolerance Exclusive vs. Non-exclusive –Exclusive: Non-shared resource –Non-exclusive: Allows sharing resource

Transactions Operations can be wrapped in transaction –What is done in transaction is up to operation –Notion of what “commit” or “abort” means isn’t specified Abort may even change state of system! Jini provides two-phase commit protocol –Secure, fault tolerant commit / abort –No semantics enforced by Jini

Events Notification system Object must support/define events Other objects can register for notification Jini handles communication / reliability issues