case study printservice -dynamically networked products, services, and applications -network...
DESCRIPTION
Infrastructure Requirements 2TRANSCRIPT
Case Study PrintService
- dynamically networked products, services, and applications
- network computer / consoles (powerful processor, several MB of memory)
©2001 Jerome Colombie
Infrastructure Requirements
• Java 2 platform, Standard Edition (J2SE) (May 8, 2000)
• Jini is written purely in Java• JVM (powerful processor, several MB
of memory)• JRE 1.3 / JDK1.2.* (Solaris / Windows / Linux)
• network (TCP/IP)
Infrastructure Requirements 2
Software Requirements
• http-server (Class files, centralized, distributed)
• lookup-service reggie• rmid (Activation, power saving, activatable hardware with
standby) lease manager, lookup manager
Programming Requirements
• Discovery (Unicast / Multicast for maximum flexibility)
• Three Tiers (Thin-Client, dynamic GUI/driver, Print-Service)
• Thin-Client searches for specific Interface (Attributes: Address (vendor), Location, ServiceInfo, ServiceType, Status)
• GUI/driver (Transformation of Input-File, Printer-Selection)
• PrintService (Hardware abstraction, job-scheduling, billing data)
Prgramming Requirements 2
Client PrintManager (GUI / Driver)Printer
PrintService
Interface Requirements
• Client / Server must share common Interface
• Beans (get and set methods for attributes)getAttribute(name, value)setAttribute(name, value)
• Attributes (Entry[], service specific attributes: driver, supported file-formats or languages, security-levels)
Attributes
• Find Service (Printer, Movieplayer, PCMCIA-Cards, wordprocessor)
• Load Interface (Entry[], TypeInfo, ServiceInfo, Manufacturer)
• Find Driver for Service (Printer driver, plug-ins, application from specific vendor)
Interface PrintService.java
PrintService.java
import java.rmi.*;
public interface PrintService { public String print(String file) throws RemoteException; public boolean setAttributes(String room, String device,
String format, String copies, boolean flagboolean psnup) throws RemoteException;
}
Interface PrintManager.java
PrintManager.java
import java.rmi.*;
public interface PrintManager { public boolean start(String clientinfo) throws RemoteException;}
What do we get?
• Dynamic loading of services without configuration or user-intervention
• the implementation of services is loaded dynamically, at runtime
• no administration (little) needed, ideal for dynamic environments
• A Jini Community is self-healing. (Printer failure)
Service registration
Client PrintManager (Driver)
PrintServicePrintService register
PrintManager register
LUS
Discovery / Loading
Client PrintManager (Driver)
LUS
1. Discover Print- Manager
2. Load PrintManager
(Local Execution)
Discovery / Printing
Client PrintManager (Driver)
LUS
1. Discover Print- Service
2. Print
Problems:
• Service Interfaces must be specified (a server is an implementation of a service)
• Interface is crucial. Both client and server know it.
• Jini Community (Developers) define set of common and ubiquitous interfaceshttp://www.jini.org/
• Generic Interface (Use object reflection to learn the interface of a service, extendible)
Areas of application
• large systems (scalability)• environments sensitive to security and
fail-safety (robustness)• distributed systems• Ad-hoc networks
Key Features:
• open standards based environment• Provides cross-platform compatibility,
safe network delivery, and smartcard to supercomputer scalability
• dynamically networked products, services, and applications that scale from device to the enterprise
• rapid and cost effective development
Official Case Study from Sun:
• Jini[tm] Network Technology Drafted for Service in the U.S. Army
• Tactical Operation Centers• control, execute, plan, and monitor battlefield maneuvers• introduce new computing and communications elements into
the network under battle conditions• independent of computer re-starts, device drivers, system re-
configurations, and extensive technical support• increased TOC mobility and functionality