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.

Slides:



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

Welcome to Middleware Joseph Amrithraj
Mobile Agents Mouse House Creative Technologies Mike OBrien.
Jini Tutorial, Part 2 Jini Overview.
JINI Network Technology
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
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Technical Architectures
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.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Web Services Andrea Miller Ryan Armstrong Alex. Web services are an emerging technology that offer a solution for providing a common collaborative architecture.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
PROGRESS project: Internet-enabled monitoring and control of embedded systems (EES.5413)  Introduction Networked devices make their capabilities known.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 2 Introduction/Overview Fri. 9/8/00.
October 2003 Iosif Legrand Iosif Legrand California Institute of Technology.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
Cloud Computing.
Jini Technology Part 1: Jini Technology Introduction Part 2: JavaSpace & GigaSpace.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
Presented by Mark Miyashita
Introduction - What is Jini Technology?
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
January 26, Jim Waldo Copyright 1999 Sun Microsystems, Inc., all rights reserved.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
1 Vrijendra Gokhale, Bernard Menezes K. R. School of Information Technology IIT Bombay User Interfaces for Jini Services The Jini Pattern Language Workshop.
Lecture 15 Introduction to Web Services Web Service Applications.
Web Services Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
11/13/00 1 Design of a Home Network Rajesh Rajamani
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Jini tm NetworkingTechnology Directions Jim Waldo Jini Architect Sun Microsystems, Inc.
INTERNET AND ADHOC SERVICE DISCOVERY BY: NEHA CHAUDHARY.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
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.
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
Jini Architecture Introduction System Overview An Example.
Kemal Baykal Rasim Ismayilov
Jini Architectural Overview Li Ping
Overview of Jini CS Fall 2000 Jason I. Hong.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Globus and PlanetLab Resource Management Solutions Compared M. Ripeanu, M. Bowman, J. Chase, I. Foster, M. Milenkovic Presented by Dionysis Logothetis.
Seminar on Service Oriented Architecture Distributed Systems Architectural Models From Coulouris, 5 th Ed. SOA Seminar Coulouris 5Ed.1.
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
1 Active Directory Service in Windows 2000 Li Yang SID: November 2000.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Internet and Distributed Application Services
Distribution and components
#01 Client/Server Computing
The Jini Technology: An overview
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
Could Jiro™ Extend the Jini™ Pattern Lanuguage?
Jini B.Ramamurthy 5/15/2019 B.Ramamurthy.
#01 Client/Server Computing
Presentation transcript:

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. Please pull down the Jini architecture and specs to supplement this presentation.

there was a true distributed programming model? Jini What if … there was a true distributed programming model?

What is Jini? Key Concepts Spontaneous networking Federation Services Discovery The concept is that Jini is a system, in the sense that it has a number of interacting components that work together to give an effect greater than any of the individual pieces. It simplifies the task of building, maintaining and altering a network of devices, software and users. Spontaneous networking: The ability to establish dynamically (without drivers or network configuration) the communication, sharing, and exchange of services between HW and SW. Simplified interaction with networks. The real win with Jini has to do not so much with drivers, but with the ability to add new things to a network (or take existing things off the network) and have those changes reflected immediately and without the intervention of some system administrator. Federation allows interaction of services over the network by establishing a small number of minimal conventions and services that allow the interaction. All other parts of the interaction are determined by the entities involved. This both simplifies the system (there is no large set of rules to follow) and makes it more flexible (different rules can be followed indifferent situations that go beyond the base conventions of the system). Services enable users to share services and resources over a network Discovery has to do with the automatic installation of a service. Simply put, connect anything at anytime, anywhere

Current Enterprise Reality Video Server Web Server Solaris Workstation Telco Server Pager Firewall Public Internet Corporate Internet Thin Client The Current Enterprise complex and heterogeneous. Current network reality is static-- adding or removing a part of the network is difficult and requires considerable human intervention. This makes changing the network hard, and increases both the cost and the difficulty of maintaining a network. They are very difficult to develop, deploy and manage. Jini will simplify the task of building, maintaining and altering a network of disparate components. Cell Phone NT Workstation Thin Client Solaris Workstation Workgroup Server PDA

the Network really is the computer Jini: the Network really is the computer Today - All devices must be configured by SysAdm or user to access services. Note, keyboard & monitor associated with co-located CPU. With Jini - There will be no intervention, devices dynamically plug it to the net, become aware of resources, announce their services, and collaborate. Jini actually moves the notion of the system away from the combination of a motherboard and a disk and to the notion of a chip and the network. As such, it is the first major innovation in the way computer systems have been assembled in the last forty years. No CPU! Today Future

Jini Technology Introduction Invented by Sun Microsystems, 1999 Service-oriented framework for creating reliable distributed applications Designed with the network in mind Provides a spontaneous, self-healing environment Moves the Java platform to the network Infrastructure and a programming model

Properties of Distributed Systems The following assumptions do not hold in distributed systems: Networks are reliable Remote systems are fault-free Network latency is zero Bandwidth is infinite One administration domain Systems are homogeneous Successful systems must address these.

Service-oriented view Everything is a service on the network Hardware, software, etc. Services are represented by interfaces Only functionality not implementation matters to clients Implementation is a private business In Jini, services are described by Java interfaces Programs understand programs best Provides strong typing Proven programming model

Spontaneous networking Jini enables clients to automatically discover services at runtime Associative search Not by name lookup (e.g. http://some.url:port) Instead: find a service that does this or that Loose coupling Services and clients can join and leave the system (Jini federation) at any time without causing system failure

Jini Overview Jini ••• Java Spaces Other Services Lookup Network Services Java Spaces Other Services ••• Lookup Jini Discovery/Join RMI The Jini Technology can be broken into three categories: Infrastructure, Distributed Programming and network services that run on top of Jini. Infrastructure: Addresses how devices and software connect and register with the network. This is accomplished through Discovery and Join. Distributed Programming: Adds to Java additional functionality for building distributed systems. Jini Distributed programming proved leasing, distributed transactions, and distributed events. Services are what run and utilize the Jini infrastructure. RMI is the bottom layer of Jini, allowing the dynamic movement of code around the network. Java Java Java Solaris Mac Windows Sparc PPC x86

The role of the proxy The proxy is a Java object downloaded from the service provides service or transparently transfers method calls to the remote service Hides implementation and communication details Protocol independent (TCP/IP, HTTP, SOAP, etc.)

Jini and Java Jini is 100% Pure Java Write once, run anywhere Wide industry acceptance Designed for building robust network apps built on the Java standard RMI Jini is Java technology centered “Jini.. a networked federation of Java virtual machines”

RMI Jini uses RMI for object-object communication Full object module support Pass any Java object and its code Works in any compliant JVM Easy to implement (i.e. automatic serialization) Provides foundation for addition of multicast, replication and basic security Jini uses RMI for OO communication. This is the basic mechanism of communication between Jini components and services. RMI is more than the communication mechanism for Jini, it is the mechanism that allows the movement of objects (both data and code) around the network. In a sense, RMI objects can exist extended over the network, with part of the object (the proxy) located with the client of the service, and the rest of the service residing in some other network location (although conceptually the service really looks like it resides on the network). This allows a real notion of a distributed object rather than a notion of distributed computing. “RMI enables the simple, dynamic nature of the networked Jini system”

Jini Architecture Programming Model Services Infrastructure Lease JavaSpaces TX Manager Discovery Jini Lookup Event Extended Security Transaction Java VM Java API’s Enterprise Beans The purpose of the Jini Architecture is to federate groups of services (implemented in either hardware or software) and service clients into a single, dynamic distributed system. The Jini System consists of the following parts: Infrastructure A set of components that provide an infrastructure for federating services in a distributed system Programming model The programming model supports both the production *and use* of reliable distributed services. Services Services that can be made part of a Jini federation which offer functionality to any member of the federation. A single Jini federation is targeted to the workgroup. It is possible to hierarchically group such federations to span larger groups, or to place such federations into existing enterprise services such as directory or naming services. The most important concept within Jini is that of a service. A service is an entity that can be used by a person, a program, or other service. A service may be computational, storage, a communication channel, a software filter, a hardware device, or another user. JNDI Java RMI Beans ... JTS ... Security “Jini can be seen as an extension of the infrastructure, programming model, and services of Java”

Jini Infrastructure Programming Model Services Infrastructure Lease JavaSpaces TX Manager Discovery Jini Lookup Event Extended Security Transaction Lets now discuss the infrastructure components of Jini. I will discuss in further detail, Jini discovery, and lookup infrastructure. Java VM Java API’s Enterprise Beans JNDI Java RMI Beans ... JTS ... Security “The set of components that allow the building of a Jini system”

Discovery Allows Jini services (both HW and SW) to: Find and join a group of Jini devices Advertise its capabilities Provide any required SW and attributes Works with JVM-enabled or non-JVM devices Send out a multicast packet with reference to yourself Receive a RMI reference to the Lookup service Discovery allows services to join a federation by finding a lookup service (or a bunch of lookup services). The rest of this is really part of Lookup; once a lookup service is found, (via discovery) the registration of services (and their subsequent finding) occurs in the lookup service. “Discovery solves the problem of finding the place to start in an unknown network”

Discovery in Brief 2. Lookup Servers run instances of the discovery service which listen for multicast requests from discovering entities 1. The device advertises and looks for a service Discovering Entity Lookup Server 3. The discovering entity performs a multicast that requests references to the lookup service. Discover and Join - A device is plugged into the network and must discover the network and have the network discover the device or application. Step 1: When a Jini enabled device is plugged in it drops a 512 byte multi cast discovery packet onto the network on a well-known port. The packet contains a reference back to itself. Step 2: the Jini lookup listens on the well-known port. When a discovery packet is received, lookup uses the device’s interface to pass an interface to itself back o the plugged device or application. The device or application has now discovered the network and is ready to upload all its characteristics to to the Jini lookup. This aspect is the join aspects of discovery. The service will register a set of Java objects, some of which can be used by a client to utilize the service (proxies, in effect) and others of which can be used to further describe the service (attribute objects). 4. The lookup server calls a remote method on the discovering entity’s exported object instance passing a remote reference to its lookup service as the parameter

Lookup Registration, Access, Search, Removal Repository of available services Stores service as an extensible set of Java objects ID, interface, GUI’s, attributes, drivers ... Service objects downloaded to user as required May be federated with other Lookup services Lookup service interface: Registration, Access, Search, Removal Services are found and resolved by the lookup service. The lookup service is the central bootstrapping mechanism for the system and provides the major point of contact between the system and users of the system. It maps interfaces and the Java type indicating the functionality provided by a service to sets of objects that implement the service. The lookup service takes in a request for something of a particular (Java) type, and returns a object (including, if necessary, the code for the object) that is an implementation of that type. “The lookup service binds the federation together”

Distributed Security Extends the Java security model Identity carried in remote invocation Capabilities Authentication Integrity Confidentiality Delegation The Jini Security model as part of the infrastructure is built on the twin notions of a principal and access control list. It extends Java’s Security model. Jini Services are accessed on behalf of some entity - the principal. Services may request access to other services based on identity of the object that implements the service. Access to a service depends on the contents of the ACL associated with the object Jini uses all of the existing Java security mechanisms,including verification prior to code loading, sandboxing, code signing, the ability to communicate over cryptographically secure and verified channels, etc. The additional security features of Jini (verified principals,access control lists) will not be available until the second release of the system. “A simple model that minimizes the impact of security on the developer”

Jini Programming Model Services Infrastructure Discovery Lease JavaSpaces TX Manager Jini Lookup Event Extended Security Transaction Java VM Java API’s Enterprise Beans The programming model is an extension of the Java programming model to distributed, interconnected objects It provides the protocols that can be used by the services and infrastructure to communicate between themselves It has low resource requirements. It is extensible and flexible. Among the interfaces that make up the Jini programming model are the following: The leasing interface, which defines a way of allocating and freeing resources using a renewal, duration-based model The event and notification interface, which is an extension of the JavaBeansTM event model that enables event-based communications between Jini services The transactional interfaces provides a two-phase commit protocol, which enables entities to cooperate in such a way that either all of the changes made to a group occur atomically or none of them occur JNDI Java RMI Beans ... JTS ... Security “The set of interfaces that allow the construction of reliable services”

Jini Services Programming Model Services Infrastructure Lease JavaSpaces TX Manager Discovery Jini Lookup Event Extended Security Transaction Basic services required to support the Jini model The Jini infrastructure and programming model are built to enable services to be offered and found in the network federation. Services appear programmatically as objects written in the Java programming language. A single service may be implemented using other services. The initial Jini services include the following: JavaSpaces, which can be used for simple communication and for storage of related groups of Java objects A two-phase commit manager, which enables groups of objects to participate in the two-phase commit protocol defined by the programming model. Services may represent software hardware or a combination Service objects may be downloaded as required We expect partners to add value by supplying their own kinds of services in the areas in which they have particular competence. Java VM Java API’s Enterprise Beans JNDI Java RMI Beans ... JTS ... Security “Jini services provide simple solutions to complex problems faced by developers in the distributed environment”

Hardware Implementation Service Model 1 Service Client Service Provider Hardware Implementation Proxy Client Private Protocol Java VM An implementor of services has a number of ways it can be done. This slide and the next 2 show how it can be done. This allows maximum flexibility in the design and implementation without compromising the Jini architecture. In this example the JVM and the device’s services are integrated. As an example, this could be a disk drive or a hub/router/switch. RMI Network

Service Model 2 Service Client Service Provider Dev 1 Dev 2 Dev 3 Java Device Bay Proxy Client Private Protocol In this example the service is provided by a more complex device than previously. Here, the JVM services many devices contained in a single box. A good example would be a disk storage array. You wouldn’t want each disk to have a JVM as it would be less efficient in terms of access and design. NOTE that the protocol to the device is native. Java VM RMI

Service Model 3 Service Client Network Proxy Proxy Client Java VM Private Protocol In this last example the Jini device is separate from the devices it manages. An example might be a networked controller whose devices are scattered about the network. Note that the Jini device has drivers that talk the native protocol to the devices it controls. While all of these examples could be hardware, it could also be software. In the above example, the Jini device could be a network management DB talking to it’s agents represented by Dev 1, etc. RMI Dev 1 Dev 2 Dev 3

Conclusions http://www.sun.com/980713/jini/feature.jhtml Jini provides an elegant distributed programming model Check out our web sites... http://www.sun.com/980713/jini/feature.jhtml http://www.sun.com/developer/