Jini Tutorial, Part 2 Jini Overview.

Slides:



Advertisements
Similar presentations
1. XP 2 * The Web is a collection of files that reside on computers, called Web servers. * Web servers are connected to each other through the Internet.
Advertisements

1 Senn, Information Technology, 3 rd Edition © 2004 Pearson Prentice Hall James A. Senns Information Technology, 3 rd Edition Chapter 7 Enterprise Databases.
Distributed Systems Architectures
- 1 - Jini in the Enterprise O'Reilly Conference on Java Scott Oaks Sun Microsystems
What's a Proxy Printer Provider? PWG WIMS-CIM Working Group Rick Landau Dell, CTO Office 2008/08/08 v0.2.
©2003 aQute, All Rights Reserved Tokyo, August 2003 : 1 OSGi Service Platform Tokyo August 28, 2003 Peter Kriens CEO aQute, OSGi Fellow
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
Communicating over the Network
An Introduction of Jini Technology Presenter: Carfield Yim, Gary Lam Date: 31-Jul-2002 How can JINI Technology Boost Our Business.
1 Java Card Technology Prepared by:Ali Toyserkani Adopted from: Introduction to Java Card Technology C. Enrique Ortiz.
Configuration management
Mehdi Naghavi Spring 1386 Operating Systems Mehdi Naghavi Spring 1386.
Chapter 1: Introduction to Scaling Networks
1 The phone in the cloud Utilizing resources hosted anywhere Claes Nilsson.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering.
The Jini Technology Lookup Service. How Does It Work Services and clients find a lookup service using the discovery protocol Services advertise themselves.
1 Jini Tutorial, Part 3 Jini Programming. 2 Tutorial outline Part 1 Introduction Distributed systems Java basics Remote Method Invocation (RMI) Part 2.
IFIP Profs. Steven A. Demurjian and T.C. Ting J. Balthazar, H. Ren, and C. Phillips Computer Science & Engineering Department 191 Auditorium Road,
Campaign Overview Mailers Mailing Lists
JINI Network Technology
31242/32549 Advanced Internet Programming Advanced Java Programming
Chapter 10 Software Testing
Executional Architecture
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Modeling Main issues: What do we want to build How do we write this down.
JavaSpaces and TSpaces Theresa Tamash CDA 5937 November 4, 2002.
JINI Shashwat Shriparv InfinitySoft.
THE JINI TECHNOLOGY Alessio Zumbo
The road to reliable, autonomous distributed systems
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.
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.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 1 Introduction/Overview Wed. 9/6/00.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 2 Introduction/Overview Fri. 9/8/00.
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.
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.
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.
A Look at Jini Jian He Roy Patrick Tan. Outline History Design Goals An Example Basic Components Top View Infrastructures --- Proxies, Discovery/join.
11/13/00 1 Design of a Home Network Rajesh Rajamani
Jini tm NetworkingTechnology Directions Jim Waldo Jini Architect Sun Microsystems, Inc.
INTERNET AND ADHOC SERVICE DISCOVERY BY: NEHA CHAUDHARY.
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
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.
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 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.
Distributed Coordination-Based Systems
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.
Bina Ramamurthy Chapter 9
Unit V Mobile Middleware.
An Introduction of Jini Technology
Bina Ramamurthy Chapter 9
Bina Ramamurthy Chapter 9
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Jini B.Ramamurthy 5/15/2019 B.Ramamurthy.
More on Discovery and Advertisement
Presentation transcript:

Jini Tutorial, Part 2 Jini Overview

Tutorial outline Part 1 Introduction Part 2 Overview of Jini Part 3 Distributed systems Java basics Remote Method Invocation (RMI) Part 2 Overview of Jini Goals Architecture Basic concepts, protocols Part 3 Jini Programming Part 4 Advanced topics Mobile Jini access Adaptive user interfaces Security

Why Jini? Distributed computing is more difficult than local computing because of: Network latency, Concurrency issues, Memory management, Partial failure.

Jini goals Jini™ Network Technology by Sun Microsystems “Plug-and-use” A device should instantly usable when plugged into the network, just like a phone set – no installation, etc should be required Reliable service-based architecture Spontaneous networking based on discovery and mobile code Self-healing Erase the distinction between hardware and software (everything is a service) Protocol-independence To make writing distributed programs easier.

Properties Based on the Java programming language. Homogeneous network Architecture independence Dynamic environment Programming interfaces designed for robustness. Services may come and go without administration. Federation, not central control. Jini can be used with both hardware as well as software services: Everything is represented by Java Objects. Everything is located and accessed through Java Interfaces.

Tutorial outline Part 1 Introduction Part 2 Overview of Jini Part 3 Distributed systems Java basics Remote Method Invocation (RMI) Part 2 Overview of Jini Goals Architecture Basic concepts, protocols Part 3 Jini Programming Part 4 Advanced topics Mobile Jini access Adaptive user interfaces Security

Key participants Service Client Lookup Service A service is an entity that another program, service or user can use. It can be a piece of computation, a hardware device or software. Client A Jini device or component that becomes the member of the federation in order to use a Jini service. Lookup Service The central element of a Jini federation. The lookup service (also known as the service locator or service registrar) keeps track of the services offered in the federation. Repository of available services. Stores each service as Java objects. Clients download services on demand.

Basic terms Spontaneous networking Federation Discovery Leasing Communication is established dynamically without installing drivers and carrying out manual configuration Federation A set of software components and devices creating a distributed system that are part of a Jini network at a given time. Discovery The mechanism used to locate lookup services in order to advertise a new service in the network or find a service for use. Leasing Jini services grant resource usage in a time-based manner. If the period of the grant (lease) is not renewed before its expiration, the grant will be withdrawn at the end of the period. Distributed event Components of a Jini system can notify each other when some change in their state occurs. Transaction

Jini Technologies

Jini Architecture Jini Network services Applications JavaSpaces Other services Network services Lookup Jini Discovery/Join RMI Java Java Java Solaris Solaris Solaris Mac Windows SPARC PowerPC x86

Jini Extends the Java Platform

Jini Operation The fundamental behaviour is defined by three protocols Discovery – how to locate the Lookup Service Join – how to register with the LS and export services Lookup – how to find suitable services Main operation steps Services export their services (in the form of Java objects) Clients locate services and download objects or execution Client-Service interaction (formation of a federation) is governed by need

Jini Operation (cont’d) Lookup services are dynamically discovered by clients and services Services register service proxies in JLUSs Clients lookup and download service proxies from discovered JLUSs by interface and/ or attributes Lookup Service A Lookup Service B Jini Service backend service proxy ServiceItem ServiceID serviceID Object service Entry[] attributeSets Jini Client template

The notion of groups Group Aut Group IRT Group KNT LUS 3: Aut LUS 1: IRT LUS 5: IRT, KNT LUS 6: Aut, KNT LUS 4: Aut LUS 2: IRT

Tutorial outline Part 1 Introduction Part 2 Overview of Jini Part 3 Distributed systems Java basics Remote Method Invocation (RMI) Part 2 Overview of Jini Goals Architecture Basic concepts, protocols Part 3 Jini Programming Part 4 Advanced topics Mobile Jini access Adaptive user interfaces Security

The discovery protocol Two forms of discovery Multicast, using UDP multicast Finding services at unknown but multicast-reach locations using group names Unicast, using TCP/IP Finding services at known locations URL: jini://hostname:port/ Forms Client discovery At startup; problem with latecomer services Service announcement At startup; problem with latecomer clients

Multicast discovery protocol

Multicast announcement protocol

Unicast discovery protocol

Join protocol (services) Wait randomly at startup Up to 15 sec Perform unicast discovery with known LUSs If groups ≠{} perform multicast for given groups Register with discovered and/or announced LUSs Perform periodic lease renewal On connection failure Re-register with persistent LUSs Forget multicast discovered ones, wait for announcement Making changes Attribute change with all registered LUSs Register/unregister with specific LUSs Join/leave groups If a service is asked to join a group, it adds the name of that group to the persistent set of groups to join and either starts or continues to perform multicast discovery using this augmented group. If the service is requested to leave a group, the steps are a little more complex: 1. It removes that group from the persistent set of groups to join. 2. It removes all lookup services that match only that group in the set of groups it is interested in from the set it has discovered using multicast discovery, and unregisters from those lookup services. 3. It either continues to perform multicast discovery with the reduced set of groups or, if the set has been reduced to empty, ceases multicast discovery.

Lookup protocol Client creates template Sends template to LUS Describes the type of service sought after Sends template to LUS LUS performs template matching LUS returns result 1 or more ServiceItem objects

Matching Strict matching Match if Using marshalled objects Comparing fields Match if A) identical serviceIDs (tmpl can be null) and B) item service is instance of every tmpl service types and C) item attributes contain at least one match for each attribute in tmpl ServiceID Set of service interfaces Set of attribute objects ServiceTemplate ServiceID Object implementing interfaces Set of attribute objects ServiceItem

      Examples 2 null Template 1 null Template 2 1 Printer Location(VE,IRT) PrinterProp(15,colour) Service null Fax Template 3  null Printer Template 4  null Printer Location(VE,KNT) Template 5 2 Printer Location(VE,IRT) PrinterProp(null, colour) Template 6  

Leasing Problem Traditional solution: system administration: Partial failure in distributed systems can lead to unchecked resource consumption. Traditional solution: system administration: Error-prone, Costly, Only happens when it is too late.

What are Leases? Time-based grants of resources or services. Provides a method of managing resources in an environment where network failures can, and do, occur Loose contracts between grantor and holder. Negotiated for a set period of time. Can be shared or exclusive.

Distributed events in Jini Enables Java event model to work in a distributed network. Register interest, receive notification. Allows for use of event managers. Can use numerous distributed delivery models: Push, pull, filter... Uses leasing protocol.

Transaction model in Jini Designed for distributed object coordination: light weight, object-oriented. Supports: Nested transactions; Various levels of ACID properties (Atomicity, Consistency, Isolation, Durability). Uses leasing protocol. Implemented in Transaction Manager service – another Jini service (mahalo).

Nested Transactions

More Information The Jini Specification Home pages Online tutorials www.sun.com/jini www.jini.org Online tutorials pandonia.canberra.edu.au/java/jini/tutorial/ Jini.xml www.oreilly.com/catalog/jininut/chapter/ ch04.html www.eli.sdsu.edu/courses/spring99/cs696/ notes/index.html

Books (not all)