Title: Communication strategies for distributed embedded systems
1Communication strategies for distributed
embedded systems
2Table of contents
- Jini
- Java Embedded Server
- CORBA for Embedded Systems
3Jini technology
4Table of Contents for Jini
- What is Jini? Why Jini?
- Features
- Architecture
- Example
- Advantage
- Disadvantage
- Comparison with other technology
- Conclusion
5What is Jini?
- Jini technology promises to be a reality in the
immediate future as an architecture to enable
connections between devices any time, anywhere
6Devices
- 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.
7Why 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
8Scenario
- 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.
9Features
- JiniTM 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
10Architecture
11Instant 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.
12Special 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.
13Impromptu 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.
14Resilient
- 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
15Historical trends
- Three dimensions of improvements
- Size, cost, and computational power
- Mainframe a company
- Mini a department
- Work stations a group
- Microcomputer personal
- Web
- Community
16Jini 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 is called
leasing
17Services
- 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.
18Services
- 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.
19Look 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.
20Discovery 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.
21Interfaces
- 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
22How 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.
23How 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
service.
24Main 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
25Underlying 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.
26Details of Architecture
27An Example
28Advantages
- 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
29Disadvantages
- Communication overhead, so some time its slow
- High Learning curve and some cost involve
30Comparisons with other similar technology
- Bluetooth is a technology specification for
low-cost, 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.
31Comparisons 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.
32Conclusion
- 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.
33References 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.htm
l - 4. Jini Technology and Emerging Network
Technologies http//www.sun.com/jini/whitepaper
s/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 -
-
34Embedded Java Server
35Java 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.
36Why 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.
37Why 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,
securely, and just in time.
38Challenges 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
39Solution 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.
40Features 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
device-to-device communications by hosting
"registry" and "look-up" services for Jini
technology - Leverage the portability, reusability, and
productivity of the Java programming environment
41Architecture of Java Embedded Server
42System 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 services using the Java Service Designer
tool.
43System 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.
44Application 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.
45Each 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
other files used by the service.
46Example 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
main-tenance gateways that need to be remotely
configured, upgraded, and managed.
47Java Embedded Server in Application Versatile
Gateway
48Enable "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 value-added
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
49Java 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. - The two technologies are complementary.
50Personal 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
full-blown 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.
51Personal 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.
52Personal 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.
53References for java embedded server
- http//www.sun.com/software/embeddedserver/
- http//www.sun.com/software/embeddedserver/whitepa
pers/whitepaper2.html - http//www.sun.com/software/embeddedserver/whitepa
pers/whitepaper1.html
54CORBA for embedded Systems
55Common 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
56CORBA 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).
57CORBA 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
58References 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