19
J1-717, Jim Waldo 1 The Jini Architecture Bruno Souza Java Technologist, Sun Microsystems

The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 1

The Jini™ Architecture

Bruno SouzaJava Technologist, Sun Microsystems

Page 2: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 2

Why Jini™ Technology

• Network plug and work

• Enables a service-based architecture

• Spontaneous networking

• Erase the distinction between hardwareand software

• A distributed computing infrastructureto making writing distributedprograms easier

Page 3: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 3

Jini™ TechnologyBuilds on Java™ Technology

Feature Java virtual machine

Portable object code

Downloadable code

Unified type system

Benefit Homogeneous network

Architecture independence

Dynamic environment

No impedance mismatch

Page 4: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 4

Simple, Reliable, and Flexible

• Based on the Java programming language

• Interfaces designed for robustness

• Services come and go withoutadministration

• Federation, not central control

Page 5: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 5

Java 2 Platform • Java RMI• Java VM

Jini ProgrammingModel

Jini Services

• Leasing• Distributed Events• Transactions

• JavaSpaces™

• Transaction Managers• Printing, Storage, Databases...

Jini Infrastructure• Discovery• Lookup Service

Structure of Jini™ Technology

Page 6: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 6

Jini Service Lookup Service

Discovery Request

Discovery ResponseServiceProxyObject

Service Registration

Registering a Service

Page 7: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 7

Finding a Service

Jini Service Lookup Service

ServiceProxyObject

Lookup Request

Lookup Response

Discovery Request

Discovery Response

Page 8: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 8

Using a Service

Jini Client Jini Service

ServiceProxyObject

Page 9: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 9

• Communication is between theservice and its proxy

• Wire protocol is a private matter– Standard protocol– Custom, one time protocol

• Protocol can change

• RMI semantics core to functionality

Wire Protocol Independence

Page 10: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 10

Federations of Services

• Minimal agreement– Discovery protocol– Lookup interface– Interfaces define a service

• Simple interaction patterns– Time-based resource allocation– Distributed event delivery– Voting for consensus

• Everything else is left to theparticipants

Page 11: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 11

More Than Devices

• Services can be hardware or software

• Dynamic lookup allows serviceintroduction– When services become available– When services are updated

• Services are network-availablecomponents

Page 12: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 12

Enabling Change Over Time

• Base interfaces can be extended– Add new functionality– Combine functionality

• Old clients can use base interface

• New clients can use extended interface

• Allows local evolution

Page 13: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 13

Objects on the Network

• Polymorphism allows change

• Moving code is key– Separates what from how– Allows changing behavior

• Object oriented design patterns apply

• Merges agent technology and morestandard approaches to distributedcomputing

Page 14: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 14

What About Legacy?

• We live in the real world– Not every program is written

in the Java programming language– Not every device can support

a Java virtual machine

• Most legacy code has yet to be written

Page 15: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 15

Objects to the Rescue

• Java technology is only required– For the proxy object– On the network

• Legacy code can offer a proxy object– Proxy is Java technology bytecodes– Speaks a private protocol to the legacy code

• Legacy code can be wrapped– Java programming language

calling via Java Native Interface (JNI)

Page 16: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 16

Network Proxies

• Devices can proxy via another device– Simple device provides service type,

code location– More competent device provides

Jini technology interaction– Proxy object can talk to either device

• One network proxy for multiple devices

• Network proxy can also bridge networks– TCP/IP to firewire/Bluetooth/IR/...– Jini technology-based system to HAVI

Page 17: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 17

Interface Definition

• The Jini™ Technology Community– Deciding on base interfaces and classes– Driven, shepherded, or independent– Currently groups for printing and storage

• Other standards groups– If it has a Java programming language interface,

it has a Jini service interface

• De facto– Let the market decide

Page 18: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 18

Where Next

• First services coming soon– Some shown in the exhibition

• Security

• Scaling up– Most scale issues are user issues

• Build the community

Page 19: The Jini Architecturejavaman.com.br/apres/files/jini.pdf · 2001-10-02 · • The Jini™ Technology Community – Deciding on base interfaces and classes – Driven, shepherded,

J1-717, Jim Waldo 19

For More Information

• http://sun.com/jini

• http://jini.org

• The Jini™ Technology Series– The Jini™ Specification– JavaSpaces™ : Principles, Patterns, and Practice