590 likes | 720 Views
Communication strategies for distributed embedded systems. Table of contents. Jini Java Embedded Server CORBA for Embedded Systems. Jini technology. Table of Contents for Jini. What is Jini? Why Jini? Features Architecture Example Advantage Disadvantage
E N D
Table of contents • Jini • Java Embedded Server • CORBA for Embedded Systems
Table of Contents for Jini • What is Jini? Why Jini? • Features • Architecture • Example • Advantage • Disadvantage • Comparison with other technology • Conclusion
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
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.
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
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.
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
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.
Special delivery • Jini technology services are available on demand, whenever they are needed. • Impromptucommunity • A community put together without any planning, installation, or human intervention.
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.
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
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
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 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.
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.
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.
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.
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
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.
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 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
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.
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
Disadvantages • Communication overhead, so some time it’s slow • High Learning curve and some cost involve
Comparisons 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.
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.
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.
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
Java Embedded Server • Java Embedded Server allows remote devices to upload, download, activate, and deploycustomized 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.
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.
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, 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
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.
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 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
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 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.
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.
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 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 main-tenance gateways that need to be remotely configured, upgraded, and managed.
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 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
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. • 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 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.