Computer and Automation Research Institute Hungarian Academy of Sciences. Jini and the Grid. P. Kacsuk

Similar documents
A Tutorial on The Jini Technology

Jini Architecture Specification

The Jini architecture. Johan Petrini and Henning Sundvall

Distributed Technologies - overview & GIPSY Communication Procedure

The Jini Architecture Bruno Souza Java Technologist, Sun Microsystems

Application Servers in E-Commerce Applications

Trading Services for Distributed Enterprise Communications. Dr. Jean-Claude Franchitti. Presentation Agenda

Distributed Objects. Object-Oriented Application Development

Page 1. Extreme Java G Session 8 - Sub-Topic 2 OMA Trading Services

CALIFORNIA SOFTWARE LABS

Screen Saver Science: Realizing Distributed Parallel Computing with Jini and JavaSpaces

Jini Technology Overview

Ubiquitous Computing Summer Supporting distributed applications. Distributed Application. Operating System. Computer Computer Computer.

Today: More Case Studies DCOM

Philadelphia Area Java Users' Group December 12, 2001

Wendy Lee CHAPTER 1 INTRODUCTION. Jini which is based on Java platform is a network technology from Sun

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Appendix A - Glossary(of OO software term s)

ICENI: An Open Grid Service Architecture Implemented with Jini Nathalie Furmento, William Lee, Anthony Mayer, Steven Newhouse, and John Darlington

Introduction. Enterprise Java Instructor: Please introduce yourself Name Experience in Java Enterprise Edition Goals you hope to achieve

THE JINI ARCH NETWORK-CENT

DS 2009: middleware. David Evans

UNIT 4 CORBA 4/2/2013 Middleware 59

UPnP Services and Jini Clients

Distributed Environments. CORBA, JavaRMI and DCOM

Iosif Legrand. California Institute of Technology

FIPA Agent Software Integration Specification

T NAF: Jini & EJB

PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM

Electronic Payment Systems (1) E-cash

MONitoring Agents using a Large Integrated Services Architecture. Iosif Legrand California Institute of Technology

Internetworking services have come a long

OO-Middleware. Computer Networking 2 DVGC02 Stefan Alfredsson. (slides inspired by Annika Wennström, Sören Torstensson)

Advanced Lectures on knowledge Engineering

Lecture 5: Object Interaction: RMI and RPC

Distributed systems. Distributed Systems Architectures

ANSAwise - CORBA Interoperability

Chapter 1: Distributed Information Systems

A Custom Lookup Service for UPnP Services and Jini Clients

REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

A Load Balancing technique through Jini in Distributed Processing

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Interoperability / Distribution. Fall 2005

JavaSpaces technology for distributed communication and collaboration. Chih-Yao Hsieh

A Marriage of Web Services and Reflective Middleware to Solve the Problem of Mobile Client Interoperability

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration

What is CORBA? CORBA (Common Object Request Broker Architecture) is a distributed object-oriented client/server platform.

Distributed Middleware. Distributed Objects

Distributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

CORBA and COM TIP. Two practical techniques for object composition. X LIU, School of Computing, Napier University

Virtual Credit Card Processing System

Jini and Universal Plug and Play (UPnP) Notes

Interconnection of Distributed Components: An Overview of Current Middleware Solutions *

Tutorial. Title: Implementing Agent Applications in Java: Using Mobile and Intelligent Agents.

Desarrollo de Aplicaciones en Red RMI. Introduction. Considerations. Considerations. RMI architecture

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

Remote Method Invocation

CptS 464/564 Lecture 18

CORBA (Common Object Request Broker Architecture)

JavaOne Topics. Keynotes Talks overview Interoperability, jini Real-time and Embedded XML and Java Cool Recommendations

Application Servers G Session 5 - Main Theme Object Management Architectures. Dr. Jean-Claude Franchitti

CAS 703 Software Design

Deccansoft Software Services. J2EE Syllabus

Distributed Systems. The main method of distributed object communication is with remote method invocation

Cpt. S 464/564 Lecture Auxiliary Material (not from text) January 29-31, Middleware in Context: 2016 David E. Bakken

Introduction to Web Services & SOA

Lookup. Michael Kircher & Prashant Jain Siemens AG, Corporate Technology Munich, Germany

Using JavaSpaces to create adaptive distributed systems

Chapter 3 Introduction to Distributed Objects

A Performance Evaluation of Distributed Algorithms on Shared Memory and Message Passing Middleware Platforms

Communication Framework

Experiences in the management of an EJB-based e- commerce application. Abstract

Distributed Systems/Middleware JavaSpaces

Distributed systems. Distributed Systems Architectures. System types. Objectives. Distributed system characteristics.

A Systematic Approach to Composing Heterogeneous Components

Chapter 16. Layering a computing infrastructure

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

Agent-Enabling Transformation of E-Commerce Portals with Web Services

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Jini technology as a solution to develop distributed instrumentation network in Engineering

Applications MW Technologies Fundamentals. Evolution. Applications MW Technologies Fundamentals. Evolution. Building Blocks. Summary.

Synchronized Web Surfing: A Web-Based Application for Interaction between Online Users

Distributed Programming in Java. Distribution (2)

Distributed Object Bridges and Java-based Object Mediator

OO-Middleware. Computer Networking 2 DVGC02 Stefan Alfredsson. (slides inspired by Annika Wennström, Sören Torstensson)

Jini Connection Technology Architecture Overview

Today: Distributed Objects. Distributed Objects

Distributed Systems Principles and Paradigms

Introduction to Web Services & SOA

A Strategic Comparison of Component Standards

Java Programming With CORBA (OMG) By Keith Duddy, Andreas Vogel

AN ARCHITECTURAL PATTERN FOR ADAPTABLE MIDDLEWARE INFRASTRUCTURE

Pini A Jini-Like Plug&Play Technology for the KVM/CLDC

Adaptive Cluster Computing using JavaSpaces

Agenda. Summary of Previous Session. Extreme Java G Session 3 - Main Theme Java Core Technologies (Part I)

CHAPTER - 4 REMOTE COMMUNICATION

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Transcription:

Computer and Automation Research Institute Hungarian Academy of Sciences Jini and the Grid P. Kacsuk Laboratory of Parallel and Distributed Systems MTA SZTAKI Research Institute kacsuk@sztaki.hu www.lpds.sztaki.hu

Jini: an overwiev Jini, in Arabic word meaning magic, is a dynamic distributed network computing architecture for providing networking of services Jini provides an infrastructure to enable this dynamic formation of services with 0% installation 0% configuration 100% service interaction Self-diagnosing, self-configurable architecture Protocol-independent architecture, it can interact with any distr. Object using any protocol (RMI, CORBA, DCOM, etc.)

Jini: : a dynamic network join join Jini Community dynamic networking zero installation zero configuration self-diagnosing self-configuring Protocol independent join join Leave Leave

Goals for Jini To provide an infrastructure to connect anything anytime anywhere To provide an infrastructure to enable network plug and play 0% installation 0% configuration To support a service-based architecture by abstracting the hardware/software distinction To provide an architecture to handle partial failure

Three basic elements of Jini Lookup service RMI Service provider Service requester

System Assumptions The existence of a network with reasonable latency Jini relies havily on Java s mobile-code feature Each Jini-enabled device has some memory and processing power Each device should be equipped with a JVM (Java Virtual Machine) Service components are implemented using Java All the service components should live as Java objects to facilitate the service requester to download and run code dynamically. However, Java does not expect a Java service implementation, only a Java wrapper

Relationship between Java and Jini Infrastructure component Programming model comp. Services component Jini-related functions Discovery&join Lookup Distr. security Leasing interface Transaction interface Distr. event interface JavaSpaces Transaction manager Core Java functions JVM RMI Java security Java APIs JavaBeans model Event delegation model JNDI EJB

Jini components Programming model Services Infrastructure Jini services Lookup service Discovery/join & security JVM JVM JVM JVM Leasing Transactions Event notification JVM federation

Infrastructure component Discovery and join protocol: defines the way how services discover other services services advertise themselves services become part of the federation RMI: enables service proxies to be downloaded Distributed security model Lookup service serves as a repository of services helps members to find each other in the Jini federation entries are Java-compliant byte-code objects, which can be written in Java or wrapped by Java

Services component Services component denotes the services that together form the Jini community The services are identified as Java objects Each service has an interface, which defines the operations that can be requested from the service The interface also reflects the service type Basic services of Jini: Lookup service JavaSpaces service: optional distr. Persistence mechanism Transaction manager service

Programming model component The programming model supports the following interfaces: Lease interface, which extends the Java programming model by adding time to the notion of holding a reference. Duration based model for allocating and freeing the resource references. Event notification interface, which extends the JavaBeans event delegation. Transaction interface, which allows OO transaction handling.

Operation in more detail 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

Service provider registering (discovery protocol) The service performs a multicast discovery to find lookup services on the network. A multicast message is received by everyone on a network Jini Jiniservice Lookup services respond if alive Service receives a proxy object of the LS Jinienabled network Jini Jini Client Client Lookup Lookup Service Lookup Lookup Service

Service provider registering 2 (join protocol) Using the LS proxy, the service uploads its object and attributes to the lookup service ServiceItem ServiceID serviceid Object service Entry[] attributesets Jini Jiniservice Jinienabled network Jini Jini Client Client Lookup Lookup Service Lookup Lookup Service

Client requesting service (lookup protocol) Finding a service The client (already discovered the LS(s)) specifies the interface of the required service Sends the lookup request to the LS(s) Receives the service object Lookup Executes object (if required, it can talk back to the service) Jini Jiniservice Jinienabled network Lookup Service Lookup Lookup Service Jini Jini Client Client

CORBA: Protocol-dependent system Client-side stub (proxy) owned by the client Server-side skeleton (service implementation) Server and client are tightly coupled Stub and skeleton communicate with agreed-upon protocols (IIOP) Service requester Service provider

RMI: Protocol-dependent system Client-side stub (proxy) lives on the server Server-side skeleton (service implementation) Server and client are not tightly coupled proxy can be downloaded on demand Stub and skeleton communicate with agreed-upon protocols (JRMP) Service requester Service provider

Jini: : Protocol-independent system Client-side stub (service proxy) Server and client are not tightly coupled proxy can be downloaded on demand Lookup service Server-side skeleton Service requester Stub can communicate with the skeleton by any protocols (IIOP, JRMP, etc.) Service provider

Comparison of Jini and RMI Similarity Both provide a mechanism for Java objects and applications (services) to communicate across JVMs. Differences 1 RMI handles protocol level issues method invocation passing parameter values Jini handles higher-level issues like service interaction Differences 2 (Fig. 3-29): RMI protocol-dependent, uses the JRMP protocol Jini is protocol-independent, acts with any distributed protocol (JRMP, IIOP, ORPC)

The role of RMI within Jini Jini is dependent on the RMI/Java environment and not the RMI protocol Jini uses the RMI/Java environment to download the stub but once the stub is downloaded it can use any protocol to communicate to its remote object

Jini on top of RMI RMI environment Lookup service registers Gets the remote object location and its associated code base information Jini client Remote JVM Downloads the proxy from the code base Remote JVM Code base Remote Object downloaded stub Client JVM Server skeleton Service method can use any protocol

Differences between Jini and CORBA CORBA provides a location- and protocol-specific distr. Architecture (Fig. 3-29): client must be prewired with the naming service client must have relevant ORB libraries (client stubs) client must use the IIOP protocol Jini is a location- and protocol-independent distr. Architecture (Fig. 3-29): client need not know the location of a lookup service client need not have stub libraries stub can use any protocol CORBA can support many languages through IDL Jini requires Java Object wrapping

Co-operation operation between Jini and CORBA A Jini proxy can be written that can wrap the CORBA client proxy and can be registered in a Jini lookup server Discovery, registration, reregistration and leasing can be handled by a third-party Java component. Any Jini client who would like to use the service can locate a lookup service and download the Java-wrapped CORBA client proxy The client proxy can now communicate to its CORBA server working in the same way as in a CORBA environment This design is suitable if you have an ORB running on the client system. Otherwise use a bridge scheme.

Gets the remote object location and its associated code base information (lookup) Jini client downloaded stub Client JVM Co-operation operation between Jini and CORBA Remote JVM Lookup service Download the Jiniwrapped CORBA stub The CORBA stub contacts the server skeleton using IIOP Registers (discovery, join) Code base Jini-wrapped CORBA stub CORBA Object server skeleton CORBA server Object adapter

Three levels of scalability in Jini Jini community (or Djinn): is a group of lookup services service providers service requesters A djinn can contain smaller subdjinns Djinns can be connected to form larger distributed Jini service networks

Structure of a djinn Lookup Lookup service Lookup service service 1 1 RMI 1-k RMI RMI Service Service provider Service provider Service provider provider 1 1 1 1-n Djinn Service Service requester Service requester requester 1 1-m 1

Levels of scalability in Jini Subdjinn12 Subdjinn14 Djinn1 Subdjinn11 Subdjinn13 WAN Subdjinn24 Subdjinn22 Djinn2 Subdjinn21 Subdjinn23

Applications and literature of Jini Remote access to clinical data Large-scale wish fulfilment support for organizing holidays, wedding, etc. Jini on wheels the car as a mobile infrastructure Using Jini to enable a framework for agent-based systems Sing Li: Professional Jini, Wrox Press, 2000 S. I. Kumaran: Jini Technology, Prentice Hall, 2002

?