Download Jini Technology

Document related concepts

TV Everywhere wikipedia , lookup

Lag wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Remote Desktop Services wikipedia , lookup

Transcript
Communication strategies for
distributed embedded systems
1
Table of contents
• Jini
• Java Embedded Server
• CORBA for Embedded Systems
2
Jini technology
3
Table of Contents for Jini
•
•
•
•
•
•
•
•
What is Jini? Why Jini?
Features
Architecture
Example
Advantage
Disadvantage
Comparison with other technology
Conclusion
4
What is Jini?
• Jini technology promises to be a reality in
the immediate future as an architecture to
enable connections between devices any
time, anywhere
5
Devices
•
•
•
•
•
•
•
•
•
Printers
Storage devices such as disks
Personal digital assistants
Digital cameras
Cell phones
Residential gateways
Digital video cassette recorders
TV sets, DVD players
Industrial controls, and every sort of
imaginable consumer electronics device.
6
Why Jini technology?
• Today devices are unaware of their
surroundings
• They are rigid and they can not adapt
• We expend a lot of efforts to install it
• We need an expert to do it for us
7
Scenario
• Just before bed, the man with the laptop
reads his email, half-watching the local
news. The anchor mentions a brief
piece on the local zoo's Panda. His
daughter is doing a project on it, so he
records the piece on his laptop's drive.
Just before bed, he decides to email it
to her as a surprise.
8
Features
• Jini[TM] connection technology is based
on a simple concept.
• Devices should work together.
• They should simply connect.
• No drivers to find
• No operating system issues
• No weird cables and connectors
9
Architecture
10
Instant On
• When we plug a Jini technology-enabled
device into the network, it works. Right
away. No fuss.
• Its services and resources are immediately
available.
11
Special delivery
•
Jini technology services are available on
demand, whenever they are needed.
Impromptu community
A community put together without any
planning, installation, or human
intervention.
12
Impromptu community
• Jini software lets all devices work together, so
we can create our own personal network or
community--any time, anywhere.
• Connect our home appliances so we can
control them centrally.
• Connect our office equipment so people can
share resources.
• Interact with other Jini communities quickly
and easily.
13
Resilient
• Jini technology communities adapt very
quickly to changes
• Users come and go, the community lives
on.
• Jini community is always available, while
the Service Age allows the systems to be
more tolerant and redundant
14
Historical trends
• Three dimensions of improvements
– Size, cost, and computational power
•
•
•
•
Mainframe: a company
Mini: a department
Work stations: a group
Microcomputer: personal
• Web
 Community
15
Jini connection technology
requires a few things
• an infrastructure which operates as a
dynamically distributed system
• a common language and implementation that
enables low-overhead communication
between distributed objects
• a lookup service (which identifies objects that
supply those services)
• an add-in protocol which is implemented on
each device--we call this the discovery/join
protocol
• a subtract-out mechanism--providing
resilience when a device is unplugged--which 16
is called leasing
Services
• The most important concept within the Jini
connection architecture is that of a service.
• A service is an entity that can be used by a
person, a program, or another service.
• A service may be a computation, storage, a
communication channel to another user, a
software filter, a hardware device, or another
user.
17
Services
• Services may make use of other services,
and a client of one service may itself be a
service with clients of its own.
• Services to be added or withdrawn from a
federation at any time according to
demand,
need,
or
the
changing
requirements of the workgroup using it.
18
Look up server Operation
• Services are found and resolved by a
lookup server.
• The lookup server is the central
bootstrapping mechanism for the system
• It provides the major point of contact
between the system and users of the
system.
19
Discovery and Join
• A service is added to a lookup service by a
pair of protocols called discovery and join.
• First, the service locates an appropriate
lookup server, using the discovery protocol
• Secondly, it joins it using the join protocol.
• When a service joins a lookup server, a
service object for that service is loaded into
the lookup server.
20
Interfaces
• The client interacts with a service via a set of
interfaces written in the Java programming
language.
• These interfaces define the set of methods that
can be used to interact with the service.
• Programmatic interfaces are identified by the
type system of the Java programming language
21
How user interface works?
• Services can be found in a lookup service by
asking for those that support a particular
interface.
– this way ensures that the program looking for the
service will know how to use that service
– A user interface can also be stored in the lookup
service as an attribute of a registered service.
• A user interface stored in the lookup server is an
implementation that allows the service to be
directly manipulated by a user of the system.
22
How Jini works? (Process)
• To use a service, a person or a program
locates the service using the lookup service.
• The service's interface is copied from the
lookup service to the requesting device where
it will be used.
• The lookup service acts as a switchboard to
connect a client looking for a service with that
service.
• Once the connection is made, the lookup
service is not involved in any of the resulting
interactions between that client and that
23
service.
Main Challenges
• Defining and perfecting the underlying protocols
and infrastructure
– TCP/IP, HTTP, SMTP and FTP protocols and their
implementations
• Creating applications and services on the top
that infrastructure
– email composers and readers, file fetching programs,
Web browsers, and the Web stuff
24
Underlying Technology
• Jini connection architecture is only what is
needed to gather a group of devices into an
impromptu community that is simply
connected
• A simple protocol to discover a lookup service
and join it, a lookup service which acts as a
switchboard connecting clients to services,
• The Java programming language to provide
the underlying object model,
• RMI technology to provide federation and to
move objects.
25
Details of Architecture
26
An Example
27
Advantages
• We no longer need a computer to act as an
intermediary between a cell phone and a printer
• These devices can take care of themselves-they
are flexible, they adapt
• Self configure
• Self diagnose
• Self install
• Reduce need for expert help
• Lower total cost
28
Disadvantages
• Communication overhead, so some time it’s
slow
• High Learning curve and some cost involve
29
Comparisons with other similar
technology
• Bluetooth is a technology specification for lowcost, short range radio links between laptops,
mobile phones, and other portable devices.
When two Bluetooth devices come close
together, they automatically detect each other
and establish a network connection.
• Motorola's Piano, which can be built on top of
Bluetooth, specifies what sort of information they
exchange and how they communicate.
30
Comparisons with other similar
technology
• Hewlett Packard's JetSend technology is an
example of a service protocol that allows
devices like printers, digital cameras, and PCs to
intelligently negotiate information exchange-without user intervention.
• HAVi (Home Audio-Video interoperability) is a
specification for home networks of consumer
electronics devices such as CD players,
televisions, VCRs, digital cameras, and set top
boxes.
31
Conclusion
• by looking to simple devices as the
archetype of how to design devices and
• by creating a way to simply connect
them,
 We may at last begin to see advanced
computer technology simplify our lives.
32
References for Jini
•
•
•
•
•
•
•
1.
“Jini home page on Sun microsystem web site”,
http://www.sun.com/jini/
2.
“Jini™ Connection Technology Fact Sheet”,
http://www.sun.com/jini/factsheet/
3.
“Why Jini Technology Now?”
http://www.sun.com/jini/whitepapers/whyjininow.html
4.
“Jini™ Technology and Emerging Network Technologies”
http://www.sun.com/jini/whitepapers/technologies.html
5.
“Jini™ Technology and the Java Dynamic Management™ Kit
Demonstration” http://www.sun.com/software/java-dynamic/wp-jdmk.kit/
6.
“Jini specifications”, http://www.sun.com/jini/spec
7.
W. Keith Edwards, “Core JINI”, Sun Microsystems Press 1999
33
Embedded Java Server
34
Java Embedded Server
• Java Embedded Server allows remote devices
to upload, download, activate, and deploy
customized services and applications precisely
when they are needed.
• These services can also be automatically
removed from the device when their use is
completed, freeing memory.
• the ability to monitor a device, perform
diagnostic evaluations, set up remote
administration and more.
35
Why Java Embedded server?
• Today's rapid increase in the intelligence
of devices presents a unique opportunity
for the enterprise to extend applications
beyond the desktop.
• Gas pumps, vending machines, energy
meters, or ATMs that once stood alone
can now easily be connected to the
enterprise network.
36
Why Java Embedded server?
• Sun introduces the Java Embedded
Server™ product, a small application
server designed to be embedded in
remote devices.
• Using the Java Embedded Server product,
you can respond to changing market
requirements by installing and managing
new software and services on your
devices over the network-dynamically,
37
securely, and just in time.
Challenges for Providing Services to
Embedded Devices
• The challenge behind the opportunity is to provide
services to these embedded devices in a way that
matches the dynamics, simplicity, and ubiquity of the
Internet.
• The way to do this is to provide consistent reliable
mechanisms for service providers to develop, deliver,
and support "just-in-time" services to these devices.
Services will need to be:
– available on demand
– upgraded dynamically
– remotely managed
– secure
38
Solution with java Embedded
server
• By using the Java™ Embedded Server™ with
the Internet, services can be delivered,
upgraded, and managed as they are needed
and then fade off into the ether when they are
not in use.
• One example of this might be a Rolodex
service that gets loaded into a hand-held
device or television as it is needed, but when
it is no longer in use, its context is saved and
the service is pushed back to a server.
39
Features and benefits
• Communicate with remote devices and
equipment deployed in the field
• Extend the useful life of devices by dynamically
adding features and functionality, on demand
• Create Jini™ technology Federations for deviceto-device communications by hosting "registry"
and "look-up" services for Jini technology
• Leverage the portability, reusability, and
productivity of the Java™ programming
environment
40
Architecture of Java Embedded
Server
41
System architecture
• Java Embedded Server consists of two primary
components: the ServiceSpace and the Services.
• The ServiceSpace, only 100KB in size, provides a
runtime framework that manages the loading,
installation, activation, execution, and removal of
applications, called services.
• The Services are a set of useful pre-built and
customizable services.
• The Services include a set of pre-packaged application
services, including a lightweight HTTP server, an SNMP
agent, a scheduling service, and a Servlet manager.
• Device providers and developers can build their own
42
services using the Java Service Designer tool.
System Architecture
• Device providers and developers can build their
own services using the Java Service Designer
tool.
• The ServiceSpace is installed on a device
running an embedded operating system.
• ServiceSpace requires a Java runtime platform,
such as EmbeddedJava, PersonalJava, or the
standard JDK.
• The services can be stored anywhere on the
network, and they are downloaded and executed
as required.
43
Application Service Bundles
• An application service is deployed using
an application service bundle.
• A bundle comprises a Java archive (JAR)
file and a set of instructions for the Java
Embedded Server.
• The instructions come in the form of Java
objects called wizards.
44
Each bundle contains the
following:
– Manifest. The manifest defines the contents of the
bundle.
– Installer Wizard. The installer wizard installs the
service on the server.
– Activator Wizard. The activator wizard starts the
service and registers it with the server.
– Update Wizard. The update wizard automatically
manages version control and replaces older versions
of the service with the latest one.
– Dependencies Wizard. The dependencies wizard
identifies any dependencies this service may have
on other services and determines if the services are
available.
– Content. The content contains Java classes and
45
other files used by the service.
Example: Create Versatile
Gateway Solutions
• A gateway links devices in local networks in the
home or small office to the Internet and external
service providers.
• These gateways create a focal point for
enterprises and service providers to deliver
services to client devices internal to the gateway.
• Java Embedded Server technology is an ideal
solution for powering low-cost and zero maintenance gateways that need to be remotely
configured, upgraded, and managed.
46
Java Embedded Server in
Application: Versatile Gateway
47
Enable "Zero Latency"
Enterprises
• By connecting remote devices to enterprise applications,
Java Embedded Server technology enables enterprise
applications to instantly respond to all enterprise-wide
supply chain events and deploy customized and valueadded services to these devices, on demand. Usage
scenarios:
– A vending machine, linked to the enterprise supply
chain, can transmit consumption data and
automatically re-order replacement supplies
– A gasoline pump becomes a dynamic platform
capable of delivering targeted promotions to the
customer
– Routers (or copiers) can be remotely diagnosed and
repaired
48
Java Embedded Server VS Jini
• By using the Java™ Embedded Server™, services
can be delivered, upgraded, and managed as they
are needed
• The Java Embedded Server allows a device to
dynamically download and execute an application
from a remote location on the network.
• Jini provides a loosely coupled mechanism for
applications on different devices to communicate
and share services.
• Jini doesn't provide a mechanism to dynamically
load application services within a device.
• Java Embedded Server could provide a mechanism
to dynamically load Jini services.
49
• The two technologies are complementary.
Personal Java VS Embedded
java
• There are two primary subsets of Java that have
been endorsed by the industry:
– Personal Java (shortened as pJava)
– Embedded Java (eJava).
• Both of these are small-footprint versions of fullblown Java.
• they run the same bytecodes and have exactly
the same language semantics as full-blown
Java,
• they have significantly reduced sets of class
libraries available to them.
50
Personal Java VS Embedded
java
• Personal Java is largely intended for programmable
devices that have interfaces on them -- devices
such as cell phones and PDAs
• These devices are usually able to download applet
code and have at least AWT and sometimes the
Java Foundation Classes available for user
interfaces.
• The main things missing from pJava are the
"enterprise"-oriented APIs: database connectivity,
CORBA communications, and (sometimes) RMI.
• pJava devices that are intended to work with Jini
will almost certainly support RMI.
51
Personal Java VS Embedded
java
• For Embedded Java devices, the situation is
somewhat more restricted.
• eJava devices are less likely to be found in the
Jini context.
• Embedded Java is a more limited subset of Java
and Personal Java -- it makes most of the user
interfaces classes optional, along with most of
the networking classes
• an eJava device can participate in Jini if another
piece of software is working on its behalf to
make it visible through Jini.
52
References for java embedded
server
• http://www.sun.com/software/embeddedse
rver/
• http://www.sun.com/software/embeddedse
rver/whitepapers/whitepaper2.html
• http://www.sun.com/software/embeddedse
rver/whitepapers/whitepaper1.html
53
CORBA for embedded
Systems
54
Common Object Request Broker
Architecture (CORBA) for Embedded
Systems
• Object management group(OMG) is preparing
proposals for a stripped-down version of CORBA
– could be used in embedded computer systems to
enable developers to more easily define
communications between components and to
incorporate reusable objects.
• The Common Object Request Broker Architecture
extensions would provide developers with a
common interface to connect components within
embedded systems in household appliances,
cellular phones, cars and airplanes
55
CORBA for Embedded Systems
• The interface will allow users to build reusable
objects and to make writing, debugging and
maintaining applications easier
• To work in embedded systems, which have very
little memory, CORBA will have to be stripped
down to its essence,
• A minimal CORBA, however, would still support
multiple languages and interface easily with
remote objects through an ORB (object request
broker).
56
CORBA for Embedded Systems
• The standards also would have to be compatible
with existing versions of CORBA.
• An ORB based on the proposed standards also
would be stripped down, without services, to
50KB.
• While the design of the ORB may vary from
vendor to vendor, the way CORBA objects
communicate with the software would be the
same
57
References of CORBA for
Embedded Systems
• A set of references can be found at:
http://dpe.postech.ac.kr/~juht/emcorba/
• OMG Members Plot Embedded CORBA
Services By Antone Gonsalves, PC Week
February 27, 1998
58