Jini™ Rashad Oreifej and Christopher Stricklan. Introduction ► Pronounced GEE-nee  Stands for (Java INference engine and networked Interactor)?  Loosely.

Slides:



Advertisements
Similar presentations
An Introduction of Jini Technology Presenter: Carfield Yim, Gary Lam Date: 31-Jul-2002 How can JINI Technology Boost Our Business.
Advertisements

Welcome to Middleware Joseph Amrithraj
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.
Jini Tutorial, Part 2 Jini Overview.
JINI Network Technology
Mini project /2 Jini - a new computing paradigm.
JINI Shashwat Shriparv InfinitySoft.
THE JINI TECHNOLOGY Alessio Zumbo
The road to reliable, autonomous distributed systems
Introduction to Jini & JavaSpaces
Active Directory: Final Solution to Enterprise System Integration
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.
JAVA Technology. Java Technology Java technology is a portfolio of products that are based on the power of networks and the idea that the same software.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
© 2010, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet 1.
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.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
PROGRESS project: Internet-enabled monitoring and control of embedded systems (EES.5413)  Introduction Networked devices make their capabilities known.
Parallel Computing using JavaSpaces -Presented by Shilpi Basak Advisor: Prof: Dick Steflik.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 8 Introduction to Printers in a Windows Server 2008 Network.
© 2004, Robert K. Moniot Chapter 1 Introduction to Computers and the Internet.
Web Service What exactly are Web Services? To put it quite simply, they are yet another distributed computing technology (like CORBA, RMI, EJB, etc.).
Understanding and Managing WebSphere V5
CHAPTER FIVE Enterprise Architectures. Enterprise Architecture (Introduction) An enterprise-wide plan for managing and implementing corporate data assets.
Design Windows Media Services Infrastructure. Module 7: Design Windows Media Services Infrastructure Design Windows Media Services for live streaming.
Presented by Mark Miyashita
CGW 2003 Institute of Computer Science AGH Proposal of Adaptation of Legacy C/C++ Software to Grid Services Bartosz Baliś, Marian Bubak, Michał Węgiel,
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
GT Components. Globus Toolkit A “toolkit” of services and packages for creating the basic grid computing infrastructure Higher level tools added to this.
January 26, Bob Scheifler Copyright 1999 Sun Microsystems, Inc., all rights reserved. Jini™ Lookup Service Bob Scheifler Senior Staff Engineer Sun.
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.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Interoperable marine monitoring systems Toma Daniel Mihai Technical University of Catalonia Mentor: Tom O’Reilly MBARI 2010.
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.
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.
7DS - Node Cooperation and Information Exchange in Mostly Disconnected Networks Suman Srinivasan, Arezu Moghadam, Se Gi Hong, Henning Schulzrinne IRT Lab,
Jini Architectural Overview Li Ping
Virtualization Technology and Microsoft Virtual PC 2007 YOU ARE WELCOME By : Osama Tamimi.
Case Study PrintService -dynamically networked products, services, and applications -network computer / consoles (powerful processor, several MB of memory)
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
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.
January 26, Ann Wollrath Copyright 1999 Sun Microsystems, Inc., all rights reserved. Java ™ RMI Overview Ann Wollrath Senior Staff Engineer Sun Microsystems,
Netscape Application Server
11. Jini What is Jini? A "network technology that provides a simple (?) infrastructure for delivering services in a network and for creating interactions.
The Jini Technology: An overview
Getting Started.
Getting Started.
Bina Ramamurthy Chapter 9
An Introduction of Jini Technology
Bina Ramamurthy Chapter 9
Bina Ramamurthy Chapter 9
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
APACHE WEB SERVER.
Jini B.Ramamurthy 5/15/2019 B.Ramamurthy.
Distributed System using Web Services
More on Discovery and Advertisement
Presentation transcript:

Jini™ Rashad Oreifej and Christopher Stricklan

Introduction ► Pronounced GEE-nee  Stands for (Java INference engine and networked Interactor)?  Loosely derived from the Arabic for magician?  Some said it stands for Jini Is Not Initials  Some said it stands for Jini Is Not Initials Nobody really knows.. ► ► An open Java™ technology-based architecture enables organizations to build adaptive network-centric systems to allow services to be added, upgraded or removed dynamically, whilst the network remains up and running ► “Plug and Work” network

History ► Developed by Sun MicroSystems ► The idea started by Sun cofounder Bill Joy at Sun Aspen Smallworks R&D lab in 1994 ► Under the leadership of Bill Joy and Jim Waldo:  Ann Wollrath  Ken Arnold  Bob Scheifler

History ► Based on the unique distributed computing characteristics of Java technology and the RMI ► Introduced in January, 1999 by providing the first Jini Technology Starter Kit ► Sun currently has agreement with a wide range of technology companies to develop Jini technology services, both hardware and software.  Includes Axis, Canon, Datek, Epson, FedEx, Mitsubishi, Norwest Mortgage, Novell, ODI, Quantum, Seagate, Toshiba, Computer Associates, Oki, Salomon Brothers

Benefits ► Provides the infrastructure for creating dynamically networked components (SW/HW), applications, and services ► No configuration overhead and device drivers ► Extends the Java programming model to the network (moves data and executables via a Java object over a network) ► Consistent access to local and remote devices

Benefits ► Network self-healing and self-configuration (Leasing) ► Networks adapt to changes in the computing environment ► Allows fast, easy incorporation of legacy, current, and future network components ► Jini is available free of charge ► Enables computer networks to resemble phone networks in graceful connection/disconnection and scalability ► Enables all types of digital devices to work together in a community put together without extensive planning, installation, or human intervention

Limitations ► ( ► Sun Community Source License (SCSL) licensing model ► ► Lookup criteria that include ranges of values to match or sets of values to match, cannot be expressed with a single ServiceTemplate ► Low-resource clients

Success Stories ► ► Orange API 2 incorporates Jini technology as one of the first implementations of Jini in telephony network Web services environment ► ► RFID networks enable and support new business processes. Such a distributed network benefits from Jini’s robust self-managing and self- healing capabilities ► ► U.S. Army developed a battlefield-ready solution based on Jini connection technology that allows computers and other devices to interoperate immediately after being connected. ► ► Other many success stories:

Jini Logical Architecture

Jini Technology Flow Diagram

Jini Flow Example

Jini Architecture Diagrams

Implementation Components ► jini-core ► jini-ext ► Reggie -LUS Implementation ► jsk-policy -Security Implementation ► Many others… Discovery, Lookup, Lease, … Implementations }

Lookup Discovery Service (LDS) ► Unicast Discovery Protocol (Locator)  For LUS outside the LAN  Address is already known ► Multicast Discovery Protocol (Group)  LUS within the LAN  Address in not known.

Unicast Discovery Protocol ► Package: net.jini.core.discovery ► Client/service sends a unicast request (packet) using the TCP protocol Unicast TCP ► LUS unicast announcement reply Unicast TCP ► Client/Service downloads the LUS proxy ► Join (Send proxy class, Service ID, Attributes) Unicast TCP ► Lookup (Obtain RMI interface to service) Unicast TCP

Multicast Discovery Protocol ► Package: net.jini.discovery ► Client/service sends a multicast request (packet) that contains the groups of interest Multicast UDP ► LUS multicast announcement reply Multicast UDP ► Client/Service downloads the LUS proxy ► Join (Send proxy class, Service ID, Attributes) Unicast TCP ► Lookup (Obtain RMI interface to service) Unicast TCP

Jini Lookup ► Lookup types “Templates” rather than names ► Lookup by a class type “Super and Sub classes can be included” ► Lookup by multiple types (AND/OR operators) ► Lookup by specific attributes ► Lookup by Service ID

Lease Service ► Leasing concept is introduced to recover from the loss of services ► Prevents resource starving at the LUS due to allocations for dead services ► Each service is registered in the LUS for a certain time “Lease” ► Upon expiry either renew, or be removed ► Lease requester can cancel the lease any time

Distributed Events

► ► Discover an instance of a LUS ► ► Register with the LUS in order to be notified when a specific service (template) joins and leaves the Jini network ► ► Catch the join and leave remote notifications from the LUS

Code Snippet Examples ► Unicast Lookup import net.jini.core.discovery.LookupLocator; public class Locator{ public Locator{ LookupLocator lookup; try{ lookup = new LookupLocator(“jini://localhost”); lookup = new LookupLocator(“jini://localhost”); }catch(java.net.MalformedURLException e){ }}}

Code Snippet Examples ► Get Registrar … // Other imported packages import net.jini.core.lookup.ServiceRegistrar; public class UnicastRegister{ public UnicastRegister{ LookupLocator lookup = null; ServiceRegistrar registrar = null; … // Lookup Service code here try{ registrar = lookup.getRegistrar(); registrar = lookup.getRegistrar();}catch(){}}}

Code Snippet Examples ► Register a Service … // Other imported packages import net.jini.core.lookup.ServiceItem; import net.jini.core.lookup.ServiceRegistration; Public class SimpleService implements Serializable{ public SimpleService(){ … //Lookup Service Code … // Registrar Code ServiceItem item = new ServiceItem(null, this, null); ServiceRegistration reg = null; try{ reg = registrar.register(item, 10000); // Registers for 10 seconds reg = registrar.register(item, 10000); // Registers for 10 seconds }catch(jama.rmi.RemoteException e){} }}

Code Snippet Examples ► Consume a Service // First we need an Interface public interface Toaster extends java.io.Serializable{ public void setDarkness(int dark); public void startToasting(); } // The actual also needs to be implemented public class MySuperToaster implements Toaster{ public void setDarkness(int dark){ … // do something here } public void startToasting(){ … // Lets make the toast yummy }}

Code Snippet Examples ► Consume a Service contd. // Set a security manager otherwise we can’t load the codebase System.setSecurityManager(new RMISecurityManager()); Class[] toasterClasses = new Class[1]; toasterClasses[0] = Toaster.class; … // Do the usual Lookup and Registrar Creation // Prepare a seach template of serviceID, classes and entries ServiceTemplate template = new ServiceTemplate(null, toaterClasses, null); // Let us find the Toaster Toaster toaster = null; try{ toater = (Toaster) registrar.lookup(template); }catch(javam.rmi.RemoteException e){}

JINI Framework-based Services ► JavaSpaces  based on Tuple-Spaces  Provides a reliable distributed storage system for objects  Supports atomic access to objects  Built-in transactional mechanism  Object Leases  Events

JINI Framework-based Services ► Rio  Dynamically instantiate service component  Monitor service component  Manage service component  Pluggable load distribution and resource utilization analysis

JINI Framework-based Services ► Seven  Eases the development and deployment of Jini services  Administration interfaces for life-cycle and join management  Role based access control for remote method invocations  Security is dynamically configurable/reconfigurable  Resource efficiency by reducing the number of threads that are used by the Jini classes

JINI Framework-based Services ► Harvester  Claims to simplify Jini application development  Build services using a servlet-like API  Help manages codebase  Provides an HTTP server for codebase downloads  Supports writing Jini services with Python through a wrapper class called Jython

JINI Framework-based Services ► Newton  Moves code around the network installing on demand  Removes the code when no longer in use  Dynamically wires up runtime service dependencies  Rewires dependencies as services come and go.

Applications ► Distributed File System ► Directory Service ► Mobile Networks ► Auto Printer Configuration ► RFID ► Agent Implementations ► Grid Computing

Apache River Moved Jini from SCSL to Apache License v2.0 (ALv2) Occurred March 2005 ► Why Apache?  It was a community decision  Extensive, open, and collaborative discussions  ALv2 was determined to best meet the licensing requirements most important to Sun and the Jini Community.

Apache River ► Motivation  Allow Broader Adoption  Technical Advancement  Meet needs of expanding Jini community

Apache River ► Benefits  Develops a richer ecosystem for Jini technology users to operate within  Freely license, use and distribute Jini technology  Simplify prospective users license review process  Simplify the introduction of Jini technology into many companies

Other SOAs ► Zero Configuration Networking (Zeroconf)  Created by The Engineering Task Force  IPv4 Link-Local Addressing Based  Allocate addresses without a DHCP server  Translate between names and IP addresses without a DNS server  Find services, like printers, without a directory server

Other SOAs ► Bonjour  Created by Apple  Based off of ZeroConf  Open Source  Creates dynamic network of computers  JAVA library, MAC OS, and Windows Compatible  IP Based through UDP Port 5353  Allows discovery of services through web browser

Other SOAs ► UPnP  Created by Microsoft  Supports zero-cofiguration  Media and Device Independent  Platform Independence  Built on internet-based technologies (IP, TCP, UDP, HTTP, XML, etc.)  Extendable

Conclusions ► Jini  Developed by SUN  Dynamic Networking Architecture  Zero Configuration  Remote Method Invocation

Conclusions ► Pros  Create a Dynamic Environment  Open Source  Cross-Platform Support  Mobility of Code  Protocol Agnostic  Network Self-Healing  Network Self-Configuration

Conclusions ► Cons  Lookup Criteria  Limited Debugging Support  Type conflicts when mixing objects from different code bases  Changes in codebase may fail to reach client

References Jini and JavaSpaces Application Development, Robert Flenner. SAMS Publishing, The Power and Limitations of the ServiceRegistrar Interface, Bill Venners. Published in JavaWorld, 2000 JavaWorld datasheet0601.pdf datasheet0601.pdf onaljini/3552_Chap7_idx.pdf onaljini/3552_Chap7_idx.pdf

References html html dows.html dows.html A Programmer’s Guide to Jini Technology, Jan Newmarch, Apress, Class Loading Issues in Java™ RMI and Jini™ Network Technology, Michael Warres, Sun Microsystems, 2006

References