Jini an Infrastructure for Dynamic Service Networks
|
|
|
- Michael Pearson
- 9 years ago
- Views:
Transcription
1 Jini an Infrastructure for Dynamic Service Networks Peer Hasselmeyer IT Transfer Office (ITO) Darmstadt University of Technology - Java Intelligent Network Infrastructure - Jini Is Not Initials
2 Overview Jini, what s that? motivation overview RMI/Serialization Jini infrastructure lookup service discovery & join protocols programming example more details Jini programming model leasing distributed events Jini services transactions JavaSpaces Summary Jini: Talk Outline
3 Jini Infrastructure ( middleware ) for dynamic, cooperative, spontaneously networked systems facilitates writing / deploying distributed applications Jini: Motivation
4 Jini Infrastructure ( middleware ) for dynamic, cooperative, spontaneously networked systems facilitates writing framework / deploying of APIs distributed with useful applicationsfunctions / services helper services (discovery, lookup,...) suite of standard protocols and conventions Jini: Motivation
5 Jini Infrastructure ( middleware ) for dynamic, cooperative, spontaneously networked systems facilitates writing / deploying distributed applications Jini: Motivation services, devices, find each other automatically ( plug and play ) added, removed components changing communication relationships mobility
6 Jini Based on Java and implemented in Java may use RMI (Remote Method Invocation) typed (object-oriented) communication structure requires JVM / bytecode everywhere code shipping Strictly service-oriented Jini: Motivation
7 Service Paradigm Everything is a service (hardware / software / user) like object-orientation: everything is an object e.g. persistent storage, software filter, help desk, Services are defined by interfaces and provide their functionality via their interfaces services are further characterized by their attributes (e.g. 600 dpi, version 21.1 ) Jini: Motivation
8 Service Paradigm Jini s run-time infrastructure offers mechanisms for adding, removing, and finding services Services (and service users) spontaneously form a system ( federation ) Jini: Motivation
9 A Jini Federation Picture mailing service Network Picture storage service Jini: Motivation Camera 1 (client) Camera 2 (client) Print service
10 What Kind of Services? Devices: printer, fax machine,... storage, persistency, configuration,... computation,... Software: spell checking, format conversion,... online banking, stock trading,... tourist guide, local maps, hotels, restaurants,... Jini: Motivation
11 Spontaneous Networking Objects in an open, distributed, dynamic world find each other and form a transient community cooperation, service usage, Problem: no a priori knowledge about existence, interface, functionality, and trustworthiness of services traditional client/server model: server knows nothing about its clients, but client knows the server, its interface (API, protocol) and its functionality Jini: Motivation
12 Spontaneous Networking Objects must be able to find each other Must be fast, easy, and automatic me X Jini: Motivation who else? But: what for?
13 What Does Tomorrow Look Like? Increasing number of internet users Powerful PDAs and notebooks Increasing mobility New wireless information devices Numerous mobile networked devices Jini: Motivation
14 What Does Tomorrow Look Like? Numerous processors in embedded systems e.g. software updates for your washing machine, internet-ready microwave,... Trend towards ubiquitous networks and spontaneous networking / service access high bandwidth, wireless, cheap Jini: Motivation
15 Middleware Approach from a different direction: middleware components to help build and deploy distributed applications (development-time vs. run-time) located between the application logic and the underlying physical network and operating system Jini: Motivation
16 Middleware Application Service Application Service Service Application Service APIs Middleware Jini: Motivation Platform interface Platform OS network Platform OS network
17 Middleware Abstraction from tedious network programming wanted Abstraction from differing machine architectures wanted problem: data encoding (e.g. big/little endian, integer size, array storage layout,...) Components for recurring problems (e.g. naming service, security service,...) Jini: Motivation
18 Problems with Current Middleware Systems hide network from programmer programmers don t have to deal with the network and its inherent problems (unreliability, latency, bandwidth,...) no exception handling Data is moved to the computation classical client/server paradigm not always most efficient solution problem: different data formats (byte-order) but: program code is usually not available everywhere (different system architectures, installation,...) Jini: Motivation
19 Middleware: Partial Failure Difference between local and remote call: total vs. partial failure Components might be unreachable: server crash, broken network connection,... Problem: how to distinguish unreachable from slow server Jini: Motivation
20 Middleware: Partial Failure Components / middleware have to be able to deal with partial failure Unreachability of one component should not (or only minimally) affect other components e.g. Internet: server crash does not affect other servers Jini offers mechanisms to deal with partial failure Jini: Motivation
21 Some Fallacies of Common Distributed Computing Systems The idealistic view the network is reliable latency is zero bandwidth is infinite topology doesn t change there is one administrator isn t true in reality Jini addresses some of these issues at least it does not hide or ignore them Jini: Motivation
22 Bird s-eye View on Jini Jini consists of a number of APIs Is an extension to the Java 2 platform dealing with distributed computing Applications Services Jini technology Java technology Operating system Is a layer of abstraction Network between application and underlying infrastructure (network, OS) middleware Extension of Java in three dimensions Jini: Overview
23 Jini s Extensions to Java Extensions regarding networked systems Infrastructure Programming model Java JVM Swing RMI Beans Jini Discovery Lookup Join Transactions Leasing Distributed Events Distinction may seem blurred Services Transaction Service Enterprise JavaBeans JavaSpaces Transaction Manager Jini: Overview
24 Jini s Use of Java Jini requires JVM (as bytecode interpreter) and (currently) RMI homogeneity in a heterogeneous world is this realistic? But: devices that are not Jini-enabled can be managed by a software proxy which resides at some place in the net e.g. Device Bay Safety of Java applies to Jini as well type safety, array bounds, sand box,... Jini: Overview Able to perform discovery & join; have a JVM;...
25 Jini vs. Mobile Agents Jini is Java-based most mobile agent platforms are based on Java Java bytecode often used as a universal machine language applets are working instances of the mobile code paradigm Jini uses the mobile code paradigm service proxies are sent to the client (via the lookup service) Jini: Overview
26 Jini vs. Mobile Agents Mobile agents need an infrastructure Jini is an infrastructure for highly dynamic distributed systems Jini provides elementary services and functionality e.g. agent coordination with JavaSpaces But: Jini is not a mobile agent platform! further services required however: Jini (and similar systems) are of general interest to computer scientists ( ubiquitous computing, distributed systems) Jini: Overview
27 Overview Jini, what s that? motivation overview RMI/Serialization Jini infrastructure lookup service discovery & join protocols programming example more details Jini programming model leasing distributed events Jini services transactions JavaSpaces Summary Jini: Talk Outline
28 RMI: Introduction RMI: Remote Method Invocation Java s native middleware Regular Java: method invocation within one Java VM By using RMI objects can call methods of objects running in a different Java VM Java VMs can be distributed among multiple machines in a network RMI: Introduction
29 Remote Invocation Java VM Client Method invocation Result Network Java VM Server RMI: Introduction
30 What To Use RMI For? Server objects offer their functionality ( services : data, computation) to clients Clients can access them via a network RMI offers mechanism to bring clients and servers together Goal: clients can use remote server objects in (almost) the same way as they use local objects partial failure possible larger latency RMI: Introduction
31 How Does RMI Work? Basic difference between local and remote objects: different Java VMs Idea: create a proxy for the remote object in the local Java VM so-called stub signatures of methods are identical to methods in remote server object handles communication with remote object Skeleton in server is counterpart to stub forwards parameter to actual server object returns result to stub RMI: Introduction
32 How Does RMI Work? Java VM Client Network Java VM Server RMI: Introduction Stub Method invocation Result Skeleton
33 More Details Client Program Stub Remote Reference Layer Programmer's view Server Program Skeleton Remote Reference Layer RMI: Introduction Transport Layer Network Transport Layer
34 RMI Details Client: invokes methods of an object Stub: implements remote interface of server object, passes on parameters Remote Reference Layer: maps object references to machines and objects Transport Layer: manages connections between machines and handles data transfer Skeleton: passes data to server object Server: implements functionality RMI: Introduction
35 Getting Access to Objects Clients must get stubs for remote objects RMI registry: naming service mapping name (string) object location of registry (machine name and port number) must be known name of server object must be known e.g. //server.tud.de:2222/helloserver usually reference to first object only; grants access to further objects ( factory pattern ) e.g. root: database object, access to entries Jini RMI: Introduction
36 Example: Remote Interface Remote methods are defined by remote interfaces : public interface Hello extends java.rmi.remote { String sayhello() throws java.rmi.remoteexception; } RMI: Example Methods can always throw RemoteExceptions server or network may fail Interfaces are marked as remote by extending tag interface java.rmi.remote
37 Example: Server Object Server implements remote interface and extends UnicastRemoteObject public class HelloImpl extends java.rmi.server.unicastremoteobject implements Hello { public HelloImpl() throws java.rmi.remoteexception { super(); // UnicastRemoteObject } public String sayhello() throws java.rmi.remoteexception { return Hello World! ; } } RMI: Example
38 Example: Server Object public HelloImpl() throws java.rmi.remoteexception { super(); // UnicastRemoteObject } public String sayhello() throws java.rmi.remoteexception { return Hello World! ; } RMI: Example UnicastRemoteObject handles RMI related work (make object known to RMI, relay calls) Server has to realize interface s functionality
39 Example: Server Startup public class HelloStart { public static void main(string args[]) { try { HelloImpl obj = new HelloImpl(); java.rmi.naming.rebind( //server.tud.de/helloserver, obj); } catch (Exception e) {} [...wait and unregister object on exit...] } } RMI: Example Create server object Register it with RMI registry address/port of registry must be known name for object must be supplied
40 Example: Client public class HelloClient { public static void main(string args[]) { System.setSecurityManager( new java.rmi.rmisecuritymanager()); try { Hello obj = (Hello) java.rmi.naming.lookup( //server.tud.de/helloserver ); System.out.println(obj.sayHello()); } catch (Exception e) {} }} RMI: Example Security manager enables class download Get server s stub from RMI registry Use the server
41 Example: Deployment Naming Service must be running: rmiregistry Stub has to be created: rmic HelloImpl creates classes HelloImpl_Stub and HelloImpl_Skel no skeletons needed in Java 2 (option -v1.2) RMI: Example
42 Example: Deployment Security policy needed to access sockets: java -Djava.security.policy=policy HelloStart java -Djava.security.policy=policy HelloClient For non-local environments classes (here: HelloImpl_Stub) have to be put onto an HTTP server and server s codebase has to be supplied RMI: Example
43 Serialization Parameters and return values (arbitrary objects) have to be transferred between client and server Copy of object has to be sent to remote JVM Solution: transform objects into stream of bytes ( serialization ) Problem: objects may contain references to other objects all referenced objects have to be recursively serialized ( transitive closure ) RMI: Serialization
44 RMI: Serialization Serialization Source JVM Network Destination JVM Serialization Deserialization Byte stream...
45 Serialization Transforming an object into a stream of bytes Object consists of its code and its (data) state (values of variables) Code is stored in class files State is dynamic and only available at runtime Take a snapshot of this state RMI: Serialization
46 How Does Serialization Work? Realized by Java s introspection facilities All non-transient, non-static fields are recursively written to a byte-stream Simple types have predefined storage functions Objects types (full class names, e.g. java.util.list) and signatures are written RMI: Serialization
47 How Does Serialization Work? Objects are only written once, even if referenced multiple times Serial version UID to control versions calculated from the signature of a class can be overridden manually to mark compatible class evolution Objects have to implement tag interface java.io.serializable Predefined serialization semantics can be overridden by implementing certain functions (writeobject(), readobject()) RMI: Serialization
48 What Can Be Serialized? All primitive types (int, boolean, etc.) Remote objects (by sending serialized stubs) Base types (String, Integer,...) that implement java.io.serializable Most container classes (Hashtable, Vector,...) if and only if they only contain serializable objects Some AWT and Swing classes Your classes, if they implement java.io.serializable RMI: Serialization
49 What Cannot Be Serialized? Base types that do not implement Serializable wrapper classes possible (by inheritance) Low level classes: input and output streams threads peer classes Objects that reference non-serializable objects RMI: Serialization
50 What To Use Serialization For? Write to file: make objects persistent configurations (Enterprise) Java Beans to continue working on the same state later Write to socket: to transfer objects to another JVM parameter passing mobile agents RMI: Serialization
51 Code Mobility Objects consists of two parts: code (in Java class files) state (values of attributes, execution pointers) RMI transfers only data state Problem: code is usually not locally available at recipient (i.e. not listed in its classpath) Solution: code can be downloaded at run-time (e.g. from an HTTP server) RMI: Code Mobility
52 Code Mobility State a=5 b=7 Implementation a=? b=? Data from source JVM Reconstructed object a=5 b=7 RMI: Code Mobility Code from (web) server
53 Codebase Code can be downloaded, but: where from? Location of code is transferred together with its state ( codebase ) Codebase is a list of URLs URL might point to directory containing the class tree JAR file containing the classes Codebase is set as a property when starting a JVM RMI: Code Mobility
54 Security Unknown objects are executed on local machine (like applets) Access restrictions desired; specified by security policies fine-grained control of local resources (especially storage, network) possible rights are granted based on where code came from (network, local file) who signed code RMI: Code Mobility grant signedby sysadmin, codebase { permission java.net.socketpermission *:1024-, connect ; };
55 Overview Jini, what s that? motivation overview RMI/Serialization Jini infrastructure lookup service discovery & join protocols programming example more details Jini programming model leasing distributed events Jini services transactions JavaSpaces Summary Jini: Talk Outline
56 Jini Infrastructure Main components are: lookup service as repository / naming service / trader protocols based on TCP/UDP/IP discovery, join, lookup proxy objects transferred from service to clients represent the service locally at the client Jini: Infrastructure
57 Jini Infrastructure Goal: spontaneous networking and formation of federations without prior knowledge of local network environment Problem: How do service providers and clients get to know their local environment? Jini: Infrastructure
58 Lookup Service Similar to RMI registry and CORBA naming service Repository of service providers Tasks: registration of services ( advertising ) distribution of services (clients find services) Main component of every Jini federation May be redundant and hierarchically organized (similar to DNS) Jini: Lookup Service
59 Jini: Lookup Service Jini Federation Lookup - Service Client Service register lookup use
60 Lookup Service Reference implementation uses Java RMI for communication required: objects must be able to migrate through the net Not only name and address of a service are stored (as in traditional naming services), but also set of attributes e.g.: printer (color: true, dpi: 600,...) attributes may be complex classes e.g.: user interface(s) Jini: Lookup Service
61 Discovery: Finding a LUS Goal: Finding a lookup service without knowing anything about the network to advertise (register) a service to find (look up) an existing service Discovery protocol: multicast to well-known address/port lookup service replies with a serialized object (interface ServiceRegistrar) proxy object of lookup service gets loaded to discovering entity communication with LUS via this proxy Jini: Protocols
62 Where is the lookup service? Discovery foreign network??? Multicast Request Lookup Service Jini: Protocols Lookup Service Lookup Service Proxy Lookup Service Proxy That s me!!! Reply Lookup Service Lookup Service Proxy Communication
63 Join: Registering a Service Service provider already received a proxy of the lookup service Provider uses this proxy to register its service (register()) Provider sends the lookup service its service proxy attributes that further describe the service Provider can now be found and used in this Jini federation Jini: Protocols
64 Join Service Lookup Service Proxy Service proxy Entry 1 Entry 2 Registration... Entry n Lookup Service Jini: Protocols Registration Service proxy Entry1Entry Entry n Service database in LUS
65 Lookup: Searching Services Client knows lookup service (e.g. via discovery protocol) Looking for certain (type of) service Creates query for lookup service in form of a service template matching by service type and/or attributes and/or registration number of service wildcards possible Jini: Protocols
66 Lookup: Searching Services Lookup service returns one or more matches (or zero) Selection usually done by client Service use by calling functions of service proxy Any protocol between proxy and service provider possible Jini: Protocols
67 Lookup Client Lookup Service Proxy Communication Communication? Service proxy Lookup Entry1Entry2... Entry n?? Service proxy Service proxy Lookup Service Entry1Entry2... Entry1Entry Entry n Entry n Service database in LUS Jini: Protocols
68 Jini Programming Example How is a service implemented? How does a client get access to a service? How is a service described? Jini: Protocols
69 The Running Example Lookup Service Printer proxy Printer proxy Jini: Protocols Printer proxy Any protocol Office application Communication between application and printer via function calls of proxy
70 The Running Example Printer registers itself with the office s lookup service Printer provides print interface as its service Jini: Protocols public interface Print extends java.rmi.remote { public PrinterParams readprinterparams() throws java.rmi.remoteexception; public SuccessCode print(document doc) throws java.rmi.remoteexception; [...etc...] }
71 The Running Example Implementation of service consists of provider and proxy Proxy is stored in the lookup service and will be transferred to clients upon request Protocol between proxy and service provider depends on implementation and is not stipulated by Jini Example uses RMI Jini: Protocols
72 Implementing Service Provider public class PrintImpl extends UnicastRemoteObject implements Print { [...] public PrinterParams readprinterparams() throws RemoteException { // something should be done There s no } Jini in here! public SuccessCode print(document doc) throws RemoteException { // something else should be done here } [...] } Jini: Protocols
73 Registering a Service public class PrintRegistration { public static void main(string[] args) { System.setSecurityManager( new RMISecurityManager()); [...] Print service = new PrintImpl(); Entry[] attribute = new Entry[1]; attribute[0] = new ServiceInfo( Print Service, HyperClear, Shiny Inc., 2000,, 08/15 ); JoinManager jmgr = new JoinManager(service, attribute, (ServiceIDListener) new Listener(), new LeaseRenewalManager()); [...] }} Jini: Protocols
74 Multicast Discovery Client public class MCExample implements DiscoveryListener { public static void main(string[] args) { [...Security Manager etc...] LookupDiscovery ld = new LookupDiscovery(LookupDiscovery.ALL_GROUPS); ld.adddiscoverylistener(new MCExample()); [...] } public void discovered(discoveryevent ev) { ServiceRegistrar[] regs = ev.getregistrars(); ServiceRegistrar reg = regs[0]; Class[] cl = new Class[] { Print.class }; ServiceTemplate tmpl = new ServiceTemplate(null, cl, null); Print proxy = (Print) reg.lookup(tmpl); } public void discarded(discoveryevent e) {} } Jini: Protocols
75 Overview Jini, what s that? motivation overview RMI/Serialization Jini infrastructure lookup service discovery & join protocols programming example more details Jini programming model leasing distributed events Jini services transactions JavaSpaces Summary Jini: Talk Outline
76 Discovery Protocols to find lookup services Multicast request protocol client asks for local lookup services no prior knowledge of local network necessary Unicast request protocol used to contact known lookup services works across subnet boundaries and over the Internet Jini: More Details
77 Discovery Multicast announcement protocol protocol for lookup services to announce their presence Example: printer registers with the office via multicast, but gets service for software updates from a dedicated lookup server via unicast discovery Jini: More Details
78 Multicast Request Protocol No information about the host network needed Active search for lookup services Discovery request is multicast packet IP-centric multicast address for discovery is default port number of lookup services is 4160 hexadecimal subtraction: CAFE 16 - BABE 16 = Jini: More Details
79 Multicast Request Protocol Discovery request is multicast packet recommended time-to-live is 15 usually does not cross subnet boundaries Discovery reply is establishment of a TCP connection port for reply is included in multicast request packet Jini: More Details
80 Multicast Request Protocol Multicast request client Multicast response server Multicast request UDP packet TCP Service registrar Multicast request server Multicast response client Jini: More Details JavaVM client/service JavaVM lookup service
81 Multicast Request Packet Protocol version (int) Reply port (int) Number of known LUSes (int) LUS 1 (ServiceID)... LUS n (ServiceID) Number of groups (int) Group 1 (String)... Group m (String) max. 512 bytes Jini: More Details
82 Unicast Discovery Protocol Used to contact lookup services with known locations Uses TCP (unicast) connections to port 4160 Simple request-response protocol Jini: More Details JavaVM client/service Establish TCP connection Unicast request Service registrar Unicast response JavaVM lookup service
83 Unicast Packets Unicast Request (client lookup service) Protocol version (int) Unicast Response (lookup service client) Jini: More Details LUS proxy (MarshalledObject) Number of groups (int) Group 1 (String)... Group m (String)
84 Multicast Announcement Protocol Used by lookup services Announces the availability of lookup services Based on multicast UDP Announcements are sent periodically recommended: every 120 seconds Receivers listen for announcements on well-known port If not yet known, receiver starts unicast discovery of this service Jini: More Details
85 Multicast Announcement Packet Protocol version (int) Host for unicast discovery (String) Port for unicast discovery (int) Service id (ServiceID) Number of groups (int) Group 1 (String)... Group m (String) max. 512 bytes Jini: More Details
86 Jini: More Details Lookup Service Details Service Registration Lookup Service Lookup Service usage Client
87 Groups There may be lots of lookup services in a large Jini system Idea: split lookup services into groups group name: simple text identifier clients/services always announce interest in certain group(s) unwanted groups are ignored services do not explicitly register for certain groups, rather with LUS that carries group e.g. one lookup service per department: accounting, production, research,... Jini: More Details
88 LUS: Proxy Interface Used by service public providers interface ServiceRegistrar { public ServiceRegistration register(serviceitem item, long leaseduration) throws RemoteException; public java.lang.object lookup(servicetemplate tmpl) throws RemoteException; public ServiceMatches lookup(servicetemplate tmpl, int maxmatches) throws RemoteException; [...] } Used by clients Jini: More Details
89 Join: More Features To join, a service supplies: ServiceItem(Object service, ServiceID id, Entry[] attributes) its proxy its ServiceID (if previously assigned; universally unique identifier ) set of attributes set of groups (or ALL_GROUPS) (possibly empty) set of specific lookup services to join Jini: More Details
90 Join: Service IDs To join, a service supplies: ServiceItem(Object service, ServiceID id, Entry[] attributes) Service-ID is a 128 bit universally unique identifier generated by the lookup service when registering for the first time service has to reuse it for all later registrations service has to make it persistent Jini: More Details
91 Join: More Features Service waits a random amount of time after start-up prevents packet storm after restarting a network segment Registration with a lookup service is bound to a lease service has to renew its lease periodically Discovery and join can be handled by objects of class JoinManager Jini: More Details
92 Lookup: More Features Client looks for service(s) registered with a lookup service Any combination of search criteria possible: ServiceID service type certain attributes Jini: More Details
93 Lookup: More Features Client creates ServiceTemplate ServiceTemplate(ServiceID serviceid, java.lang.class[] servicetypes, Entry[] attrsettemplates) Template filled with interfaces, entries and/or ServiceID Wildcards possible, represented by null Attributes: only exact matching possible (no larger-than,..) No query language Jini: More Details
94 Entries Difference to traditional naming services Not only a name for a service Properties: set of attributes e.g.: PrinterParams (dpi: 600, type: color, ) every serializable data type is possible data and methods complex classes possible e.g. different user interfaces (AWT, Swing, speech,...) Jini: More Details
95 Entries (Examples) public class Name extends AbstractEntry { public String name; public Name() {} public Name(String name) { this.name = name; } } public class AWTGUIEntry extends AbstractEntry { public Panel panel; [...] public GUIEntry() {} public GUIEntry(Panel panel) { this.panel = panel; [...] } } public class PrinterEntry extends AbstractEntry { public PrinterType type; public Integer pagespersecond; [...] public PrinterEntry() {} public PrinterEntry(PT type) { this.type = type; [...] } } Jini: More Details
96 Entries (Examples) public class Name extends AbstractEntry { public String name; public Name() {} public Name(String name) { this.name = name; } } public class AWTGUIEntry extends AbstractEntry { public Panel panel; [...] public GUIEntry() {} public GUIEntry(Panel panel) { this.panel = panel; [...] } } Complex data structures public class PrinterEntry extends AbstractEntry { public PrinterType type; public Integer pagespersecond; [...] public PrinterEntry() {} public PrinterEntry(PT type) { this.type = type; [...] } } Jini: More Details
97 Lookup Service vs. Naming Service Naming service Description by name (text) only e.g. /devices/printers/ printers search by name only Name implies type Standardized naming conventions Usually no expiration of entries (heartbeat, keep-alive) Identified by (static) address; clients need to know address groups can be modeled by addresses Lookup service Description by ServiceItems type & attributes arbitrary search dimensions Type is explicit Standardized interfaces Services have to renew their entries in the lookup service periodically (leasing) Discovery; no network information necessary group concept Jini: More Details
98 Proxy: Features All communication between clients and services is handled by service s proxy Proxy object is stored in the lookup service upon registration Serialized object Implements one or more service interfaces Service type is defined by the type of the interface(s) Jini: More Details
99 Proxy: Features Upon request, stored object is sent to the client as a local proxy of the service If needed, client retrieves necessary classes class location is stored in codebase (URL) Client communicates with service provider via service proxy: client invokes methods of the proxy object Client only needs to know interface Proxy implementation hidden from client Jini: More Details
100 Proxy: Implementation Implementation of service functionality is independent from service interface Partition of service functionality depends on service implementer s choice Parts of or whole functionality may be executed by the client (within the proxy) Jini: More Details Client Service Client Service Proxy Communication Proxy Comm ication
101 Proxy: Implementation When dealing with large volumes of data, it usually makes sense to preprocess parts of or all the data e.g.: compressing video data before transfer Jini: More Details Client Service Client Service Proxy Communication Proxy Comm ication
102 Jini 1.1 More classes belong to standard Jini (i.e. net.jini.*), e.g. JoinManager Helper classes JoinManager, LeaseRenewalManager Discovery utilities, protocol utilities ServiceDiscoveryManager & LookupCache Helper services LookupDiscoveryService EventMailbox LeaseRenewalService Jini: More Details
103 ServiceDiscoveryManager Eases handling of multiple lookup services Supports different access patterns: on-demand, cached, reactive LookupCache states of LUSes are mirrored: increased communication and memory use immediate access to available services usefulness depends on usage scenario, especially useful for frequent and lowlatency queries Jini: More Details
104 LookupCache Example public class LCExample { public static void main(string[] args) { System.setSecurityManager( Groups, locators,... new RMISecurityManager()); [...] ServiceDiscoveryManager sdm = new ServiceDiscoveryManager(null, null); Class[] cl = new Class[] { Print.class }; ServiceTemplate tmpl = new ServiceTemplate(null, cl, null); LookupCache cache = sdm.createlookupcache(tmpl, null, null); [...] Print proxy = (Print) cache.lookup(null); [...] } } Jini: More Details Lease renewal manager Item Filter Item Filter Listener
105 Overview Jini, what s that? motivation overview RMI/Serialization Jini infrastructure lookup service discovery & join protocols programming example more details Jini programming model leasing distributed events Jini services transactions JavaSpaces Summary Jini: Talk Outline
106 Leases Lease is contract between two parties Leases introduce notion of time resource usage is restricted to a certain time frame interaction is modeled by repeatedly expressing interest in some resource: I m still interested in X renew lease periodically lease renewal can be denied I don t need X anymore cancel lease or let it expire lease grantor can use X for something else Jini: Programming Model
107 Leases Lease is a contract between two parties Lease grantor is willing to let lease taker (client) access a certain resource for a certain amount of time Lease can be extended (renewed) if resource access is still desired extension can be denied by grantor Resource is released upon lease expiration or cancellation (by client)
108 What To Use Leases For? For allocating hardware and software resources intelligently no administration necessary (for removal of stale resource reservations) e.g. persistent storage,... Distributed garbage collection lease expired garbage Inside Jini registrations with lookup services resources: transactions, event registrations Jini: Programming Model
109 Distributed Events Objects in a JVM can register interest in certain events of another object in a different (remote) JVM network failure crossing of event notifications late and lost messages publisher/subscriber model Architecture: Subscriber 1. Registration 3. Send notification Event source 2. Event occurs Jini: Programming Model
110 Distributed Events Delivery separated from event semantics Different delivery behaviors desired by applications, e.g. guaranteed, in-order, Interfaces do not reflect particular delivery behavior Event mechanism can be extended to accommodate different application semantics Jini: Programming Model
111 Distributed Events (Example) Management application wants to know about printers running out of paper Gets printer s proxy object from lookup service and registers for notifications Management application Lookup Service Proxy, attributes Proxy, attributes Jini: Programming Model Proxy, attributes Registration Events
112 Distributed Events (Example) Printer could implement the interface: Type of event to be notified about (e.g. out of paper). handback is returned to the notified object in every notification. Used to attach arbitrary information to events. public interface PrinterEvents extends Remote { public EventRegistration register( long eventid, MarshalledObject handback, RemoteEventListener toinform, long leaselength) throws RemoteException; } Registrations are leased. Reference to the object to be notified. Jini: Programming Model
113 Distributed Events (Example) Management application (or dedicated listener object) implements interface RemoteEventListener public interface RemoteEventListener extends Remote, java.util.eventlistener { void notify(remoteevent theevent) throws UnknownEventException, RemoteException; } Jini: Programming Model Method notify() will be called for every event
114 Distributed Events (Example) Printer informs clients about events by sending RemoteEvents toinform.notify(new RemoteEvent( this, eventid, seqnum, handback)); Recipient Event source Event type Sequence number Handback Event is unambiguously identified by tuple <source, id, sequencenumber> Notification is synchronous allows event source to know that event was delivered Jini: Programming Model
115 Overview Jini, what s that? motivation overview RMI/Serialization Jini infrastructure lookup service discovery & join protocols programming example more details Jini programming model leasing distributed events Jini services transactions JavaSpaces Summary Jini: Talk Outline
116 Transactions Transactions encapsulate a number of operations all or nothing semantics operations appear to happen simultaneously (from outside transaction) method to ensure consistency Two-phase commit protocol method to perform transactions Two phases: vote on transaction validity commit/abort operations Jini: Transactions
117 Transactions Central: a manager ensures consistency: each transaction participant will ultimately commit or abort performs 2PC protocol Example: transfer money from one bank account to another Jini: Transactions
118 Transactions: Properties Design goal: maximum flexibility, minimum number of interfaces Objects must implement certain interface to participate in transactions Traditionally transaction manager enforces certain semantics (ACID properties) Jini separates protocol from semantics: 2PC performed by manager semantics implemented by participants Jini: Transactions
119 Distributed Transactions in Jini are no transactions in a traditional (database) sense Lightweight transaction ACID properties atomicity / consistency / isolation / durability each participant implements these properties as he sees fit e.g.: transient objects do not need persistency main property is atomicity, other properties are sometimes optional Transactions are leased from manager Jini: Transactions
120 Transactions: Participants Transaction manager coordinates transaction Jini service implements interface TransactionManager Clients initiate transactions Transaction participants objects that perform transactional operations implement interface TransactionParticipant participation is initiated by join operation Jini: Transactions
121 Transactions: Semantic Objects Transactions have no fixed semantics Participants need to know the type of a transaction semantic objects Java type defines the kind of transaction class Transaction tells objects to use their standard transaction semantics Participants accept only certain transaction types e.g. DBTransaction requires database semantics transient objects not allowed (durability) Jini: Transactions
122 2PC Protocol: Details Client starts a transaction get transaction manager from lookup service (lookup TransactionManager) call to create() starts transaction usually indirectly via semantic object factory Participation in a transaction participants find out about transaction upon function invocation receive Transaction object call transaction manager s join() method implement TransactionParticipant Jini: Transactions
123 2PC Protocol: Details Client starts a transaction public interface TransactionManager { } TransactionManager.Created get transaction manager from create(...); lookup void commit(...) service (lookup TransactionManager) void abort(...) void call to join(...) create() starts transaction int getstate(...) usually indirectly via semantic object factory Participation in a transaction participants find out about transaction upon function invocation implement TransactionParticipant Jini: Transactions public interface TransactionParticipant { void commit(transactionmanager mgr, long id) void abort(transactionmanager mgr, long id) int prepare(transactionmanager receive objectmgr, long id) int prepareandcommit(transactionmanager mgr, long id) call transaction manager s join() method }
124 JavaSpaces Tool for developing distributed applications Platform for exchanging objects between distributed applications ( shared blackboard ) Bag full of objects Realizes distributed persistency Jini service implemented completely in Java (and RMI) interaction with service via local proxy Jini: JavaSpaces
125 What To Use JavaSpaces For? Models object flow e.g. producer / consumer applications load-balancing Job-oriented view jobs / events are put into the space and picked up eventually, e.g. workflow Build-in good properties concurrent access possible write / read are atomic operations access within transaction possible Jini: JavaSpaces
126 JavaSpaces: Objects JavaSpace = a bag full of objects Entries in a JavaSpace service: net.jini.core.entry.entry known as Entry interface in Jini strongly typed by Java type system two entries of different classes are not equal, even if they encapsulate the same data types Entry A {Integer, Char} Entry B {Integer, Char} Classes: include data/state and methods behavior Jini: JavaSpaces
127 Basic Operations: Write write puts an entry into a JavaSpace Uses copy of the object, never the object itself write returns a lease entry in a JavaSpace has a limited duration garbage collection in a JavaSpace service Jini: JavaSpaces Producer write(entry) Lease Java Space
128 Basic Operations: Read uses template (Entry) exact value match matches subclasses as well null matches everything if more than one match, select and return one entry at random Jini: JavaSpaces Producer Lease Renew lease Java Space read(entry) Consumer
129 Basic Operations: Read readifexists returns null if no match found read waits until matching entry was found take/takeifexists = read + removal of entry Jini: JavaSpaces Producer Lease Renew lease Java Space take(entry) Consumer
130 Basic Operations: Notify Notify listeners at arrival of certain entries Uses Jini distributed events Clients can register with a JavaSpace registration requires a matching template clients implement RemoteEventListener registration is leased Order of notification unspecified Note: first come, first serve for registered listeners on take Jini: JavaSpaces
131 Peculiarities Operations can be part of a transaction Entries can be lost : write/take may cause a RemoteException meaning: may or may not have been successful write: often unproblematic (may be repeated) take: entries may be lost transactions necessary example: moving entries between JavaSpaces (e.g. for load balancing) transactions required Jini: JavaSpaces
132 JavaSpaces and Linda Design based on Linda tuple spaces David Gelernter (Yale University) Differences: strong type checking and objects (methods/behavior) matching on tuple structure, not just data templates match subclasses as well all (serializable) data types can be used as data multiple spaces possible leasing no eval a JavaSpace is just a repository Jini: JavaSpaces
133 Overview Jini, what s that? motivation overview RMI/Serialization Jini infrastructure lookup service discovery & join protocols programming example more details Jini programming model leasing distributed events Jini services transactions JavaSpaces Summary Jini: Talk Outline
134 Summary Vision: everything will be networked everything will (be able to) communicate ubiquitous network access mobility/spontaneity as important paradigms Problems: getting to know the network neighborhood infrastructure should adapt to devices, not the other way round distribution: communication, partial failure,... Possible solution: Jini Jini: Summary
135 Conclusion A number of good ideas simplicity, less is more flexibility discovery, join, lookup extension of name services by attributes leases, events, transactions recurring design patterns Right direction ubiquitous networks mobility, spontaneity Individual concepts are not new, but together they offer new possibilities Jini: Summary
136 But... Resource usage each service usually requires a JVM Small devices JVM and RMI required on device adaptation to resource-restricted environment necessary (how?) proxy objects are moved to client (memory) Standardized (base) interfaces What about the competitors (SLP, UPnP, e-speak,...)? Jini: Summary
137 Problem Areas Security important in dynamic environments user requires confidentiality: encrypted communication trust: authentication services might use other services on behalf of the user what about charging for services? Java RMI security extension does not seem to be the solution Scalability does Jini scale to a global level? Jini: Summary
138 Suggested Reading Jini Homepage: Jini Community: Jini: Summary W. Keith Edwards: Core Jini, Prentice Hall, 1999 good motivation, very detailed don t be frightened by more than 700 pages (everything is said at least twice...)
139 Contact Information Peer Hasselmeyer IT Transfer Office (ITO) Darmstadt University of Technology WWW: Jini: Summary Slides: publs/presentations/asama00.pdf
Tuple spaces and Object spaces. Distributed Object Systems 12. Tuple spaces and Object spaces. Communication. Tuple space. Mechanisms 2.
Distributed Object Systems 12 Tuple spaces and Object spaces Tuple spaces and Object spaces Tuple spaces Shared memory as a mechanism for exchanging data in a distributed setting (i.e. separate from processes)
IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS
IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS Marietta A. Gittens (Dr. Sadanand Srivastava, Dr. James Gil De Lamadrid) {mgittens, ssrivas, gildelam}@cs.bowiestate.edu
Network Communication
Network Communication Outline Sockets Datagrams TCP/IP Client-Server model OSI Model Sockets Endpoint for bidirectional communication between two machines. To connect with each other, each of the client
Report of the case study in Sistemi Distribuiti A simple Java RMI application
Report of the case study in Sistemi Distribuiti A simple Java RMI application Academic year 2012/13 Vessio Gennaro Marzulli Giovanni Abstract In the ambit of distributed systems a key-role is played by
Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss
Lecture 7: Java RMI CS178: Programming Parallel and Distributed Systems February 14, 2001 Steven P. Reiss I. Overview A. Last time we started looking at multiple process programming 1. How to do interprocess
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
When the transport layer tries to establish a connection with the server, it is blocked by the firewall. When this happens, the RMI transport layer
Firewall Issues Firewalls are inevitably encountered by any networked enterprise application that has to operate beyond the sheltering confines of an Intranet Typically, firewalls block all network traffic,
Jini Technology Applied to Railway Systems
Jini Technology Applied to Railway Systems Txomin Nieva a, b,, Andreas Fabri b, Abdenbi Benammour a a Institute for computer Communications and Applications (ICA) Communication Systems Dept. (DSC) Swiss
Remote Method Invocation in JAVA
Remote Method Invocation in JAVA Philippe Laroque [email protected] $Id: rmi.lyx,v 1.2 2003/10/23 07:10:46 root Exp $ Abstract This small document describes the mechanisms involved
Mobile Devices: Server and Management Lesson 05 Service Discovery
Mobile Devices: Server and Management Lesson 05 Service Discovery Oxford University Press 2007. All rights reserved. 1 Service discovery An adaptable middleware in a device (or a mobile computing system)
Automatic Configuration and Service Discovery for Networked Smart Devices
Automatic Configuration and Service Discovery for Networked Smart Devices Günter Obiltschnig Applied Informatics Software Engineering GmbH St. Peter 33 9184 St. Jakob im Rosental Austria Tel: +43 4253
A Java-based system support for distributed applications on the Internet
A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have
SERVICE DISCOVERY AND MOBILITY MANAGEMENT
Objectives: 1) Understanding some popular service discovery protocols 2) Understanding mobility management in WLAN and cellular networks Readings: 1. Fundamentals of Mobile and Pervasive Computing (chapt7)
Event-based middleware services
3 Event-based middleware services The term event service has different definitions. In general, an event service connects producers of information and interested consumers. The service acquires events
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
Remote Method Invocation
Remote Method Invocation The network is the computer Consider the following program organization: method call SomeClass AnotherClass returned object computer 1 computer 2 If the network is the computer,
Agenda. Distributed System Structures. Why Distributed Systems? Motivation
Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)
Transparent Redirection of Network Sockets 1
Transparent Redirection of Network Sockets 1 Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,nsuri}@ai.uwf.edu
Clustering with Tomcat. Introduction. O'Reilly Network: Clustering with Tomcat. by Shyam Kumar Doddavula 07/17/2002
Page 1 of 9 Published on The O'Reilly Network (http://www.oreillynet.com/) http://www.oreillynet.com/pub/a/onjava/2002/07/17/tomcluster.html See this if you're having trouble printing code examples Clustering
Distribution transparency. Degree of transparency. Openness of distributed systems
Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science [email protected] Chapter 01: Version: August 27, 2012 1 / 28 Distributed System: Definition A distributed
Middleware. Peter Marwedel TU Dortmund, Informatik 12 Germany. technische universität dortmund. fakultät für informatik informatik 12
Universität Dortmund 12 Middleware Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: Alexandra Nolte, Gesine Marwedel, 2003 2010 年 11 月 26 日 These slides use Microsoft clip arts. Microsoft copyright
CHAPTER 1 INTRODUCTION
CHAPTER 1 INTRODUCTION 1.1 Introduction Service Discovery Protocols (SDPs) are network protocols which allow automatic detection of devices and services offered by these devices on a computer network [1].
Chapter 3. Internet Applications and Network Programming
Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure
Applets, RMI, JDBC Exam Review
Applets, RMI, JDBC Exam Review Sara Sprenkle Announcements Quiz today Project 2 due tomorrow Exam on Thursday Web programming CPM and servlets vs JSPs Sara Sprenkle - CISC370 2 1 Division of Labor Java
Infrastructure that supports (distributed) componentbased application development
Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL
CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL This chapter is to introduce the client-server model and its role in the development of distributed network systems. The chapter
Lecture 7: Class design for security
Lecture topics Class design for security Visibility of classes, fields, and methods Implications of using inner classes Mutability Design for sending objects across JVMs (serialization) Visibility modifiers
Simple Solution for a Location Service. Naming vs. Locating Entities. Forwarding Pointers (2) Forwarding Pointers (1)
Naming vs. Locating Entities Till now: resources with fixed locations (hierarchical, caching,...) Problem: some entity may change its location frequently Simple solution: record aliases for the new address
Introduction to Computer Networks
Introduction to Computer Networks Chen Yu Indiana University Basic Building Blocks for Computer Networks Nodes PC, server, special-purpose hardware, sensors Switches Links: Twisted pair, coaxial cable,
Virtual Credit Card Processing System
The ITB Journal Volume 3 Issue 2 Article 2 2002 Virtual Credit Card Processing System Geraldine Gray Karen Church Tony Ayres Follow this and additional works at: http://arrow.dit.ie/itbj Part of the E-Commerce
Elements of Advanced Java Programming
Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the
Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java
Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Oxford University Press 2007. All rights reserved. 1 C and C++ C and C++ with in-line-assembly, Visual Basic, and Visual C++ the
Service-Oriented Architecture and Software Engineering
-Oriented Architecture and Software Engineering T-86.5165 Seminar on Enterprise Information Systems (2008) 1.4.2008 Characteristics of SOA The software resources in a SOA are represented as services based
SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems
SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Programmation RMI Sécurisée
Programmation RMI Sécurisée 5 janvier 2012 D après http ://blogs.oracle.com/lmalventosa/entry/using_the_ssl_tls_based. A Code RMI de Base A.1 Les fichiers Hello.java public i n t e r f a c e Hello extends
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
Chapter 2 TOPOLOGY SELECTION. SYS-ED/ Computer Education Techniques, Inc.
Chapter 2 TOPOLOGY SELECTION SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Topology selection criteria. Perform a comparison of topology selection criteria. WebSphere component
Resource Utilization of Middleware Components in Embedded Systems
Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system
Remote Method Invocation (RMI)
Remote Method Invocation (RMI) Remote Method Invocation (RMI) allows us to get a reference to an object on a remote host and use it as if it were on our virtual machine. We can invoke methods on the remote
Detecting rogue systems
Product Guide Revision A McAfee Rogue System Detection 4.7.1 For use with epolicy Orchestrator 4.6.3-5.0.0 Software Detecting rogue systems Unprotected systems, referred to as rogue systems, are often
Quick Start for Network Agent. 5-Step Quick Start. What is Network Agent?
What is Network Agent? The Websense Network Agent software component uses sniffer technology to monitor all of the internet traffic on the network machines that you assign to it. Network Agent filters
Repeat Success, Not Mistakes; Use DDS Best Practices to Design Your Complex Distributed Systems
WHITEPAPER Repeat Success, Not Mistakes; Use DDS Best Practices to Design Your Complex Distributed Systems Abstract RTI Connext DDS (Data Distribution Service) is a powerful tool that lets you efficiently
Naming vs. Locating Entities
Naming vs. Locating Entities Till now: resources with fixed locations (hierarchical, caching,...) Problem: some entity may change its location frequently Simple solution: record aliases for the new address
www.novell.com/documentation Jobs Guide Identity Manager 4.0.1 February 10, 2012
www.novell.com/documentation Jobs Guide Identity Manager 4.0.1 February 10, 2012 Legal Notices Novell, Inc. makes no representations or warranties with respect to the contents or use of this documentation,
A Survey Study on Monitoring Service for Grid
A Survey Study on Monitoring Service for Grid Erkang You [email protected] ABSTRACT Grid is a distributed system that integrates heterogeneous systems into a single transparent computer, aiming to provide
LifeSize UVC Video Center Deployment Guide
LifeSize UVC Video Center Deployment Guide November 2013 LifeSize UVC Video Center Deployment Guide 2 LifeSize UVC Video Center LifeSize UVC Video Center records and streams video sent by LifeSize video
BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: 10.1.1. Security Note
BlackBerry Enterprise Service 10 Secure Work Space for ios and Android Version: 10.1.1 Security Note Published: 2013-06-21 SWD-20130621110651069 Contents 1 About this guide...4 2 What is BlackBerry Enterprise
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
Web Application Hosting Cloud Architecture
Web Application Hosting Cloud Architecture Executive Overview This paper describes vendor neutral best practices for hosting web applications using cloud computing. The architectural elements described
E-mail Listeners. E-mail Formats. Free Form. Formatted
E-mail Listeners 6 E-mail Formats You use the E-mail Listeners application to receive and process Service Requests and other types of tickets through e-mail in the form of e-mail messages. Using E- mail
Transparent Redirection of Network Sockets 1
Transparent Redirection of Network Sockets Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,[email protected].
User Manual. Onsight Management Suite Version 5.1. Another Innovation by Librestream
User Manual Onsight Management Suite Version 5.1 Another Innovation by Librestream Doc #: 400075-06 May 2012 Information in this document is subject to change without notice. Reproduction in any manner
Distributed System: Definition
Distributed System: Definition A distributed system is a piece of software that ensures that: A collection of independent computers that appears to its users as a single coherent system Two aspects: (1)
Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
Internet Protocol: IP packet headers. vendredi 18 octobre 13
Internet Protocol: IP packet headers 1 IPv4 header V L TOS Total Length Identification F Frag TTL Proto Checksum Options Source address Destination address Data (payload) Padding V: Version (IPv4 ; IPv6)
Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures
Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable
XII. Distributed Systems and Middleware. Laurea Triennale in Informatica Corso di Ingegneria del Software I A.A. 2006/2007 Andrea Polini
XII. Distributed Systems and Middleware Laurea Triennale in Informatica Corso di Outline Distributed Systems Basics Middleware generalities Middleware for Distributed Objects Distributed Computing Models
Job Reference Guide. SLAMD Distributed Load Generation Engine. Version 1.8.2
Job Reference Guide SLAMD Distributed Load Generation Engine Version 1.8.2 June 2004 Contents 1. Introduction...3 2. The Utility Jobs...4 3. The LDAP Search Jobs...11 4. The LDAP Authentication Jobs...22
Analytics Configuration Reference
Sitecore Online Marketing Suite 1 Analytics Configuration Reference Rev: 2009-10-26 Sitecore Online Marketing Suite 1 Analytics Configuration Reference A Conceptual Overview for Developers and Administrators
SiteCelerate white paper
SiteCelerate white paper Arahe Solutions SITECELERATE OVERVIEW As enterprises increases their investment in Web applications, Portal and websites and as usage of these applications increase, performance
HOST AUTO CONFIGURATION (BOOTP, DHCP)
Announcements HOST AUTO CONFIGURATION (BOOTP, DHCP) I. HW5 online today, due in week! Internet Protocols CSC / ECE 573 Fall, 2005 N. C. State University copyright 2005 Douglas S. Reeves 2 I. Auto configuration
Naming. Name Service. Why Name Services? Mappings. and related concepts
Service Processes and Threads: execution of applications or services Communication: information exchange for coordination of processes But: how can client processes (or human users) find the right server
Mapping of Services on Bluetooth Radio Networks
Mapping of s on Bluetooth Radio Networks J. Dunlop and N. Amanquah University of Strathclyde -Department of Electronic and Electrical Engineering, Glasgow G1 1XW, Scotland Ph.: +44 141 5482081, Fax:+44
VXLAN: Scaling Data Center Capacity. White Paper
VXLAN: Scaling Data Center Capacity White Paper Virtual Extensible LAN (VXLAN) Overview This document provides an overview of how VXLAN works. It also provides criteria to help determine when and where
Middleware: Past and Present a Comparison
Middleware: Past and Present a Comparison Hennadiy Pinus ABSTRACT The construction of distributed systems is a difficult task for programmers, which can be simplified with the use of middleware. Middleware
Network Security. Chapter 3. Cornelius Diekmann. Version: October 21, 2015. Lehrstuhl für Netzarchitekturen und Netzdienste Institut für Informatik
Network Security Chapter 3 Cornelius Diekmann Lehrstuhl für Netzarchitekturen und Netzdienste Institut für Informatik Version: October 21, 2015 IN2101, WS 15/16, Network Security 1 Security Policies and
FortKnox Personal Firewall
FortKnox Personal Firewall User Manual Document version 1.4 EN ( 15. 9. 2009 ) Copyright (c) 2007-2009 NETGATE Technologies s.r.o. All rights reserved. This product uses compression library zlib Copyright
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
Network Licensing. White Paper 0-15Apr014ks(WP02_Network) Network Licensing with the CRYPTO-BOX. White Paper
WP2 Subject: with the CRYPTO-BOX Version: Smarx OS PPK 5.90 and higher 0-15Apr014ks(WP02_Network).odt Last Update: 28 April 2014 Target Operating Systems: Windows 8/7/Vista (32 & 64 bit), XP, Linux, OS
Stock Trader System. Architecture Description
Stock Trader System Architecture Description Michael Stevens [email protected] http://www.mestevens.com Table of Contents 1. Purpose of Document 2 2. System Synopsis 2 3. Current Situation and Environment
The MoCA CIS LIS WSDL Network SOAP/WS
MoCA/WS: A Web Service Personality of MoCA (Mobile Collaboration Architecture) Marcelo Malcher and Markus Endler Overview The main purpose of MoCA/WS is to allow non-java client programs to access and
Web Services. Copyright 2011 Srdjan Komazec
Web Services Middleware Copyright 2011 Srdjan Komazec 1 Where are we? # Title 1 Distributed Information Systems 2 Middleware 3 Web Technologies 4 Web Services 5 Basic Web Service Technologies 6 Web 2.0
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
How To Write A Network Operating System For A Network (Networking) System (Netware)
Otwarte Studium Doktoranckie 1 Adaptable Service Oriented Architectures Krzysztof Zieliński Department of Computer Science AGH-UST Krakow Poland Otwarte Studium Doktoranckie 2 Agenda DCS SOA WS MDA OCL
JoramMQ, a distributed MQTT broker for the Internet of Things
JoramMQ, a distributed broker for the Internet of Things White paper and performance evaluation v1.2 September 214 mqtt.jorammq.com www.scalagent.com 1 1 Overview Message Queue Telemetry Transport () is
Load balancing using Remote Method Invocation (JAVA RMI)
Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
Distributed File Systems
Distributed File Systems Paul Krzyzanowski Rutgers University October 28, 2012 1 Introduction The classic network file systems we examined, NFS, CIFS, AFS, Coda, were designed as client-server applications.
Session Initiation Protocol Deployment in Ad-Hoc Networks: a Decentralized Approach
Session Initiation Protocol Deployment in Ad-Hoc Networks: a Decentralized Approach Simone Leggio, Jukka Manner, Antti Hulkkonen, Kimmo Raatikainen Department of Computer Science University of Helsinki,
Distributed Systems Lecture 1 1
Distributed Systems Lecture 1 1 Distributed Systems Lecturer: Therese Berg [email protected]. Recommended text book: Distributed Systems Concepts and Design, Coulouris, Dollimore and Kindberg. Addison
Cloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
Java Network. Slides prepared by : Farzana Rahman
Java Network Programming 1 Important Java Packages java.net java.io java.rmi java.security java.lang TCP/IP networking I/O streams & utilities Remote Method Invocation Security policies Threading classes
Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines
Parallel Processing over Mobile Ad Hoc Networks of Handheld Machines Michael J Jipping Department of Computer Science Hope College Holland, MI 49423 [email protected] Gary Lewandowski Department of Mathematics
Exhibit n.2: The layers of a hierarchical network
3. Advanced Secure Network Design 3.1 Introduction You already know that routers are probably the most critical equipment piece in today s networking. Without routers, internetwork communication would
Oracle WebLogic Server 11g Administration
Oracle WebLogic Server 11g Administration This course is designed to provide instruction and hands-on practice in installing and configuring Oracle WebLogic Server 11g. These tasks include starting and
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong
Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application Author: Fung, King Pong MSc in Information Technology The Hong Kong Polytechnic University June 1999 i Abstract Abstract of dissertation
District of Columbia Courts Attachment 1 Video Conference Bridge Infrastructure Equipment Performance Specification
1.1 Multipoint Control Unit (MCU) A. The MCU shall be capable of supporting (20) continuous presence HD Video Ports at 720P/30Hz resolution and (40) continuous presence ports at 480P/30Hz resolution. B.
