Event Pipeline Pattern

Slides:



Advertisements
Similar presentations
- 1 - Jini in the Enterprise O'Reilly Conference on Java Scott Oaks Sun Microsystems
Advertisements

1 Jini Tutorial, Part 3 Jini Programming. 2 Tutorial outline Part 1 Introduction Distributed systems Java basics Remote Method Invocation (RMI) Part 2.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 2 Introduction/Overview Fri. 9/8/00.
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
© DSRG 2001www.cs.agh.edu.pl Cross Grid Workshop - Kraków Krzysztof Zieliński, Sławomir Zieliński University of Mining and Metallurgy {kz,
Presented by Mark Miyashita
Gil EinzigerRoy Friedman Computer Science Department Technion.
January 26, Jim Waldo Copyright 1999 Sun Microsystems, Inc., all rights reserved.
1 CS590L Distributed Component Architecture Yugi Lee STB #555 (816) * This presentation is designed based.
A Look at Jini Jian He Roy Patrick Tan. Outline History Design Goals An Example Basic Components Top View Infrastructures --- Proxies, Discovery/join.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
Jini tm NetworkingTechnology Directions Jim Waldo Jini Architect Sun Microsystems, Inc.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
© Siemens AG, CT SE, Prashant Jain, October 15, 2001 C O R P O R A T E T E C H N O L O G Y OOPSLA 2001 Workshop Software & Engineering Architecture 1 A.
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Jini Architecture Introduction System Overview An Example.
Enterprise Computing with Jini Technology Mark Stang and Stephen Whinston Jan / Feb 2001, IT Pro presented by Alex Kotchnev.
Third International Workshop on Networked Appliance 2001 SONA: Applying Mobile Agent to Networked Appliance Control S.Aoki, S.Makino, T.Okoshi J.Nakazawa.
1 CS590L Distributed Component Architecture Yugi Lee STB #555 (816) * This presentation is prepared based.
Introduction to Mobile-Cloud Computing. What is Mobile Cloud Computing? an infrastructure where both the data storage and processing happen outside of.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
JINI – A next Generation Networking Technology Part I – Introduction.
Introduction To Design Patterns
Exercises for Chapter 11: COORDINATION AND AGREEMENT
Replication & Fault Tolerance CONARD JAMES B. FARAON
Design Patterns: MORE Examples
Java Distributed Object System
Introduction to Design Patterns
Software Design and Architecture
CHAPTER 3 Architectures for Distributed Systems
#01 Client/Server Computing
Network Services 9/18/2018.
Client-Server Interaction
Programming Models for Distributed Application
The Extensible Tool-chain for Evaluation of Architectural Models
Lecture 3 From process-oriented to agent-oriented programming.
Java Messaging Service (JMS)
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Java Messaging Service (JMS)
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
Operating Systems : Overview
Slides for Chapter 5: Distributed objects and remote invocation
Bina Ramamurthy Chapter 9
An Introduction of Jini Technology
Enterprise Infrastructure
Event Driven Systems and Modeling
Operating Systems : Overview
An Introduction to Software Architecture
Operating Systems : Overview
Bina Ramamurthy Chapter 9
Operating Systems : Overview
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Bina Ramamurthy Chapter 9
Introduction to Pattern Oriented Analysis and Design (POAD)
JINI ICS 243F- Distributed Systems Middleware, Spring 2001
Distribution Infrastructures
Could Jiro™ Extend the Jini™ Pattern Lanuguage?
Advanced ProgramMING Practices
Advanced ProgramMING Practices
Jini B.Ramamurthy 5/15/2019 B.Ramamurthy.
Data Grid Patterns Brian Oliver | Global Solutions Architect | Oracle Corporation | JBFOne 2008.
Interoperability Test Message Patterns for IEC
System Models Bina Ramamurthy 9/7/2019 B.Ramamurthy.
#01 Client/Server Computing
Presentation transcript:

Event Pipeline Pattern Bina Ramamurthy Amisha Thakkar 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Introduction Event models in ad hoc networks such as Jini, and e-speak are quite narrow with few classes and methods. This is quite appropriate since event management is application-specific in these contexts. Burden is on the applications to manage the events. Event Pipeline Pattern is intended to aid in event-driven application development. 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Topics of Discussion Definition Background (Events) Context (Distributed Communications) Examples Pattern Defined Pattern Applied Other Uses Summary 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Definition An event pipeline pattern describes how to dynamically construct a stack of event managers, each providing a unique communication capability as desired by a client and/or a server. 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Background Events are designed to communicate state changes in any objects to those entities that are interested in the state change in that object. Events are typically asynchronous. Event generators Remote events Remote event listeners Event managers (Third Party Agent/Delegate) Notification 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Context In local client-server systems : in-order delivery, partial failure, and latencies are minimal or do not exist. In traditional distributed systems these are taken care of by the network protocol. In Jini, it is the applications responsibility to implement any of the capabilities needed. 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Event Delivery Needs In-order delivery Efficient delivery Store and forward Reliable delivery Filtering of events Grouping of events Persistent delivery Event patterns recognition 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Examples We consider a stockbroker’s office In-order delivery - The stockbroker would like to be notified all stock changes in order. Efficiency - for some stocks the stockbroker may want information only once a day. Store and forward - stockbroker may want a mailbox facility,where some of the events are stored and he/she can retrieve them later. Reliable Delivery - stockbroker does not want to miss out on important tips. 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Examples Filter- stockbroker may not want information on his bank transactions below $1000. Grouping of pattern - When analysts’ prediction follow a certain trend only then he may want to be notified. Persistent Delivery – Follow the stockbroker irrespective of location and deliver events. 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Pipeline Pattern Event Pipeline Event Consumer (target) Event Generator (source) Event Managers 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Sample Event Pipeline Event Generator Event Consumer Event Filter In-Order Delivery Event Grouping 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Pattern Applied Consider an application that requires events delivered filtered using semantic filter, sequenced by order of generation, and grouped by a semantic type (semantic refers to application-dependency). Typically lookup service notifies the event client. In this application lookup service feeds into the pipeline. Code snippets of the event pipeline pattern and its usage are discussed next. 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

Definition of Pipeline Stage Class FilterStage extends UnicastRemoteObject implements RemoteEventListener … { public FilterStage() throws RemoteException { } public void notify (RemoteEvent e) { // events get notified thru’ this method } public void deliverToNextStage(RemoteEventListener nextStage) { //next stage is notified from here try { nextStage.notify((RemoteEvent)(filteredEvent)); } catch … 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

Plug in Stages to Build a Pipeline Class EventClient implements RemoteEventListener { //instantiate the stage closest to the client InOrderDeliveryStage iods = new InOrderDeliveryStage(this); GroupingStage gs = new GroupingStage(iods); FilterStage fs = new FilterStage(gs); // connect event source to the first stage so that events are //delivered to the first stage : Source is lookup in this case EventRegistration erg = lookup.register(…,fs); } 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

Associated Support Functions Leasing Registration Notification Generation Consumption 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Uses Jini as we have already spoken about it Wireless Network : WiARS Architecture, our main research which bridges Jini networks and wireless networks lead us to “mine” event pipeline pattern. Mobile Network Device Network Appliance Network 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns References E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns - Elements Of Reusable Object-Oriented Software, Addison Wesley, 1995 C. Hortmann, G. Cornell: Core Java, Sun Microsystems Press, 1999 W. Keith Edwards: Core Jini, Sun Microsystems Press, 1999 G. Coulouris, J. Dollimore, T. Kindberg: Distributed Systems - Concepts and Design, Addison-Wesley, 1994 Jan Newmarch, Jan Newmarch's Guide to JINI Technology, http://pandonia.canberra.edu.au/java/jini/tutorial/Jini.xml 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns

OOPSLA 2000, Workshop on Jini Patterns Summary Main contribution of this work is a realization of a systematic way to manage event in light-weight networks. We plan to evaluate the trade-offs in using the pipeline versus the traditional event handling methods. Application of event pipeline pattern (or pipeline pattern) in other networking environments will be explored. 12/28/2018 OOPSLA 2000, Workshop on Jini Patterns