400 likes | 493 Views
Event Delivering Architecture for Jini-based Services. Masayuki Iwai tailor@ht.sfc.keio.ac.jp 14/ Aug/2000 Boston, Massachusetts. Background. Sensors and Appliances become smart (IP reachable ) less computation power High-end machines are available STB, PC, WS,Java machine expensive
E N D
Event Delivering Architecture for Jini-based Services Masayuki Iwai tailor@ht.sfc.keio.ac.jp 14/Aug/2000 Boston, Massachusetts
Background • Sensors and Appliances become smart(IP reachable ) • less computation power • High-end machines are available • STB, PC, WS,Java machine • expensive • Collaboration between sensors and appliances becomes important in a house • Jini • Distributed event driven programming system
Some issues • The system composition changes dynamically by users and by environmental conditions • Programmers can not imagine the whole system when they manufacture devices previously • End users have no skill to program the event driven system • Reconfiguration must be easily
Event Delivering Architecture for Jini-based Services Motivation of this research • To create ad hoc event driven system among the distributed sensors and appliances without programming cost andwithout reconfiguring cost
Service Event A D Network E B host Dragon • Uses the Jini technology • Lease, Discovery • Can reconfigure the combination of distributed services • Can control Policy based scheduling for event delivering
user Event BindingEditor Dragon Architecture Jini LUS Jini Services Jini Clients RMI+JVM PCs RMI+JVM appliances RMI+JVM devices Assumption Sensors
Event Binding Editor • Can control every service that is running on the distributed devices • End user can create complicated system easily • End user just wire the event path among the distributed services • Improvised tailored system • Factory network, home network,and sensor networkare the target
Players of Dragon Basic Service
Abstraction of legacy appliances without network connection Acting Module(Real World) Turn on the right Turn on the switch Sensing Module (Real World) Acting Module makes an action against the real world entities. event notify A SM defines how to sense environmental information from real world entities. conditioner
Acting Module(Real World) Event Output Module Event InputModule Event filtering Module Sensing Module (Real World) Basic Service An EFM checks the contents of the events and decides on firing events or not. An EOM fires an event to another service in accordance with an ordering table that was created when a user configured the event path. An EIM is an object that handles many kinds of events that have occurred in other services. An EIM receives events from another service and transfer the event objects to Event Filtering Module.It also registers itself to other services.
Players of Dragon Basic Service Event Manager Event Supplier Event Consumer
Event Registration/Firing Event Manager Event Supplier Event Consumer event action Event propagation ES EM EC registration firing
Event Delivering OT EC1 EC2 OT EC3 EC4 EC5 EM1 OT EC5 EC4 OT EC1 EC2 EM1 ES1 firing EC3 ES2 EC4 EC5 ES3 Event passing way OT Ordering Table
Event Manager Service OT EC1 firing EC2 EC3 OT EC4 EM1 OT EM1 EM1 EC1 ES1 EC2 EC3 ES2 EC4 A programmer can describe whether or not an incoming event should be passed. The programmer can also describe some operations using the incoming events. Event passing way OT Ordering Table
OT RTOT EC1 EC3 EC2 EC4 EM1 Ordering guarantee of events delivering
Players of Dragon Basic Service Event Manager Event Supplier Event Consumer Merging Manager Timing Manager Thin outing Manager
Merging Manager Inherits Event Manager Merger Filter Module fire Event Filter Module Event Input Module Event Output Module Merging Manager wait for firing the event until every incoming event has arrived
Subclasses of Event Manager Timing Manager Control the timing to fire the events until the time an user set Thin-outing Manager Thin out the mass-produced events for a fixed period of time
Lots of Future Work • Adaptation for streaming data • Control data description is not defined • Xml, Java Object • Avoidance event loop /dead lock • Adaptation for CORBA 3.0 Event Service
Summary • Programmers can reduce the programming cost by using Dragon typical service classes • End-user can create ah-hoc distributed systems without cost of configuration by using the Event Binding Editor.
Multicast data announcement vs Unicast RMI • Reliability problem • Domain problem • Thin sensor and devices costs tointerpret the multicast channel • Require extra work to guarantee consistency • Require semantics that connect system and multicast channel
Soft Real-Time on Dragon RTOT OT
Clock Alarms at 10:10 in the morning This information packed to an event object , Clock notify this event to event stand event notify Alarm event Supply and Consume Event Supplier Event Consumer
Major Distributed System Middleware's • DCOM (Microsoft) • UPnP (Microsoft) • CORBA(OMG) • Jini(Sun Microsystems) • JavaSpaces(Sun Microsystems) • not reduce both user cost and programmers cost
Related Work • ECJ (toshiba) • JECho (Georgia) • Carp@ • CORBA Event Service (OMG) • HAVi Event Service(HAVi org) • Java Spaces(Sun) • (Timesys Corp)
VNA vs Dragon • The point aimed at • Function vs Event • Reconfiguration • HIDE vs WYSWYG • flexible event passing Mechanismvs flexible connection type • Multicast vs unicast
Service2 Service1 join ①lookup ②remote_object ③addEventListener ⑤notify ④event fire Jini Distributed Event Model Stub Lookup Service Service Service2 Client1 Service1 Client2
Jini Distributed Event Model • Merits • No consideration network addresswhen user try to find services using Discovery protocol technology • Services fault detection using Lease technology • Demerits • User can not find clients • Service can not change the event notification target • Jini’s programming is still hard and complex for end user
Location aware Home1.RoomA Home2. RoomB EM Home2. RoomC
Producer2 EventBindingService ⑤lookup +transition Producer1 join join ①lookup ②lookup addEventListener ④change command ⑥notify addEventListener ③notify Event Input Module Lookup Service EventBindingService Table Event Output Module Event Input Module Supplier Event Output Module Consumer Supplier
Evaluation • Time that event supplier notify all the event to event consumers time(ms) The number of articles
public BasicService (Entry[] ServiceMetaInformation, LocationGroups locationGroups, int lease_dur_sec, int max_renewal_times, FilteringModule filteringmodule, ActingModule actingmidule, SensingModule sensingmodule ) Basic Service Format
public class EventSupplier extends BasicService{ public EventSupplier (Entry[] ServiceMetaInformation, LocationGroups locationGroups, int lease_dur_sec, int max_renewal_times, SensingModule sensingmodule){ super(ServiceMetaInformation, locationGroups, lease_dur_sec, max_renewal_times, null,//FilteringModule null,//ActingModule SensingModule sensingmodule); } } Event Supplier Service
public class EventConsumer extends BasicService{ public EventConsumer (Entry[] ServiceMetaInformation, LocationGroups locationGroups, int lease_dur_sec, int max_renewal_times, ActingModule actingmodule){ super(ServiceMetaInformation, locationGroups, lease_dur_sec, max_renewal_times, null,//FilteringModule ActingModule actingmodule, null//SensingModule); } } Event Consumer Service
Event Manager Service public class EventConsumer extends BasicService{ public EventConsumer (Entry[] ServiceMetaInformation, LocationGroups locationGroups, int lease_dur_sec, int max_renewal_times, FilteringModule filteringmodule){ super(ServiceMetaInformation, locationGroups, lease_dur_sec, max_renewal_times, FilteringModule filteringmodule, null,//ActingModule null//SensingModule); } }
Future Work II • Adaptation JavaSpaces Event Service • Adaptation for streaming data • DataInputStream • Avoidance event loop /dead lock • Classify the event notification • Asynchronous, synchronous, callback, time
Dragon???? • Consider twokinds of devices… • devices that sense environments • Networked thermometers, hygrometers, illuminometers,and voltage etc… • devices that act on the users and environments • Networked air conditioners, music player, and TV etc… • Consider exchanging messages over the network
Event Notification Types • Synchronous • Synchronous with timing control • Asynchronous • Asynchronous with timing control • Broadcast- Synchronous • Broadcast- Asynchronous A B