WildCAT A Generic Framework for Context-Aware Applications

Slides:



Advertisements
Similar presentations
Apache ZooKeeper By Patrick Hunt, Mahadev Konar
Advertisements

Welcome to Middleware Joseph Amrithraj
Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
Database System Concepts and Architecture
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Leading Open Source SOA Dragon SOA Governance Solution Olivier FABRE eBM Websourcing.
Introduction to Jini & JavaSpaces
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Introduction to Java 2 Enterprise Edition About myself –Neutrinos, Cancer Research, IT Applications Today’s topic: J2EE –Context –Advantages –Components.
Chapter 14 Web-Based Management 14-1 Chapter 14
Camilo Lara KIP HLT Production Readiness Review 1 HLT Cluster Management.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Monitoring OSGi platforms with ProActive Virginie Legrand OASIS Team - INRIA Sophia Antipolis.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
ECSE Software Engineering 1I HO 7 © HY 2012 Lecture 7 Publish/Subscribe.
What is adaptive web technology?  There is an increasingly large demand for software systems which are able to operate effectively in dynamic environments.
Institute of Computer Science AGH Performance Monitoring of Java Web Service-based Applications Włodzimierz Funika, Piotr Handzlik Lechosław Trębacz Institute.
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
SOA, BPM, BPEL, jBPM.
INFS 752 Summer Juan Salazar Please right click the symbol in the lower right corner, and then press preview, to hear the presentation for each page.
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Original work by David Moran JMX Update Scott Molenaar 11/08/2004.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
Last update October 18, 2004 Advanced Programming 2004 Java Beans.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
CEP4Cloud - Complex Event Processing for Mastering the Elastic Cloud Distributed Systems Group Database Research Group University of Marburg, Germany Software.
Heavy and lightweight dynamic network services: challenges and experiments for designing intelligent solutions in evolvable next generation networks Laurent.
Context-awareness and Heterogeneity in Pervasive Computing Environments Kashif Imran Ravi Tiwari.
Slide 1 Extending Tuscany Raymond Feng Apache Tuscany committer.
Introduction to dCache Zhenping (Jane) Liu ATLAS Computing Facility, Physics Department Brookhaven National Lab 09/12 – 09/13, 2005 USATLAS Tier-1 & Tier-2.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
OpenCCM MdC Philippe Merle LIFL - INRIA (soon)
Explore Patterns in Context-Aware Applications --Using Reactor Pattern to Develop In/Out Board Fall 2002 Yu Du.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Automating Context-Aware Application Development Ted McFadden and Karen Henricksen CRC for Enterprise Distributed Systems Technology (DSTC) Jadwiga Indulska.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Frameworks CompSci 230 S Software Construction.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
ECI – electronic Commerce Infrastructure “ An application to the Shares Market ” Demetris Zeinalipour ( Melinos Kyriacou
Connect. Communicate. Collaborate PerfsonarUI plug-in tutorial Nina Jeliazkova ISTF, Bulgaria.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
An Architecture to Support Context-Aware Applications
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Grid Computing Environment Shell By Mehmet Nacar Las Vegas, June 2003.
Developing Applications with the CSI Framework A General Guide.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
IPS Infrastructure Technological Overview of Work Done.
GT3 Index Services Lecture for Cluster and Grid Computing, CSCE 490/590 Fall 2004, University of Arkansas, Dr. Amy Apon.
Gaia An Infrastructure for Active Spaces Prof. Klara Nahrstedt Prof. David Kriegman Prof. Dennis Mickunas
September 28, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
CERN IT Department CH-1211 Genève 23 Switzerland t Load testing & benchmarks on Oracle RAC Romain Basset – IT PSS DP.
Introduction to Operating Systems Concepts
Android Application -Architecture.
OpenMosix, Open SSI, and LinuxPMI
Dynamic Updates for Videogames
CMPE419 Mobile Application Development
Northbound API Dan Shmidt | January 2017
Introduction to Apache
Mid Term review CSC345.
HP Team in OASIS WSDM TC Date: July 29, 2003
Chapter 14 Web-Based Management 14-1 Chapter 14
CMPE419 Mobile Application Development
Challenges in Implementing Software Architectures
Presentation transcript:

WildCAT A Generic Framework for Context-Aware Applications

WildCAT in a nutshell Generic framework for context-aware applications – Sensor-based monitoring (generic POJOs) – Data aggregation Hierarchical data representation – Tree-oriented (Unix file system analogy) – Dynamically updated (at runtime) Data inspection – Synchronous (pull) – Asynchronous (push) –> event-based notification Distribution support (RMI and/or JMS) Esper backend: open source Complex Event Processing (CEP) engine – SQL-like query language for event processing – Event pattern matching, sliding window, etc. 2http://wildcat.ow2.org

WildCAT context: 2 types of nodes – Resources (basic or symbolic links) – Attributes (hold values) Addressing resources – Path: "self://resources/computers/PC1#IP" – Symbolic link: "self://resources/bwp#Status " = "self://resources/printers/BWPrinter#Status" Composite attributes – + * / % || && – Query attributes Modeling Data 3http://wildcat.ow2.org

Inspecting Data (Pull mode) Generic API for data inspection – Context API: the only entry point – CRUD operations on resources/attributes Context creation Context ctx = ContextFactory.getDefaultFactory().createContext(); Getting & Setting attributes ctx.createAttribute("self://constants#hello", "Hello"); System.out.println("self://constants#hello = " + ctx.getValue("self://constants#hello")); Listing hierarchy content System.out.println("self:// :: "+ ctx.list("self://")); Symbolic links ctx.createSymbolicLink("self://demo/soft/link/toConstant", "self://constants"); 4http://wildcat.ow2.org

Inspecting Data (Push mode) Event-based notification: 2 types of events – WHierarchyEvent : triggered by resources (hierarchy modifications) – WAttributeEvent : triggered by attributes (value changes) Action-based event handling: – WAction : action to be performed when an event is triggered – Event/Action programming model 5http://wildcat.ow2.org public class MyAction extends WAction { //constructor public void onEvent() { System.err.println( " My action performed"); } String query = "select * from WEvent"; WAction action = new MyAction("myAction","simple action to perform"); ctx.registerActions(query, action); Define your actionRegister it to the event 12

Inspecting Data (Push mode) Event Query Language (EQL) – Esper backend: open source Complex Event Processing (CEP) engine – SQL-like query language (SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY) – Sliding windows – Pattern matching Example SELECT avg(value.load)? FROM WAttributeEvent(source="self://proc/cpu#info").win:length(5sec) Query Attributes – Holds a query result – Dynamically updated (at runtime) 6http://wildcat.ow2.org

EQL samples Select 'second' from the resource-attribute 'self://date#time' select value('second')? from WAttributeEvent(source = 'self://date#time') Select all 'A' events with the 'second' value < 30 select * from pattern[every A=WAttributeEvent(source = 'self://date#time', value('second')? < 30)] Select the max value of 'second' in a time window of 5 seconds select max(value('second')?) from WAttributeEvent(source = 'self://date#time').win:time(5) Select all clients with balance < 0 and then followed by balance < -500 after 5 seconds select * from pattern[every A=WAttributeEvent(source = 'self://bank/account/*', value('balance')? every B=WAttributeEvent(source = 'self://bank/account/*', value('balance')? < -500 )].win:length(5) where A.value('owner')?=B.value('owner')? 7http://wildcat.ow2.org

Distribution support Distributed contexts – Connected using symbolic links – Inter-context communication Communication modes – RMI, JMS, RMI+JMS – Registry, Dispatchers 8http://wildcat.ow2.org

WildCAT Sensors Built-in Sensors – Java world: Runtime, Date/Time, System properties, JMX, etc. – Linux only: Kernel version, CPU properties, Memory/CPU load, etc. User defined Sensors – POJOAttribute: class to extend to define a new wildcat sensor – getValue/setValue: methods to override for new sensor behavior 9http://wildcat.ow2.org public class MySensor extends POJOAttribute { //state & public void setValue(Object value) {//method public Object getValue(){//method body} } MySensor sensor = new MySensor(); ctx.attachAttribute(“self://resource#attribute”, sensor); Define your sensorAttach it to an attribute 12

WildCAT: The big picture 10http://wildcat.ow2.org WSensor1 SELECT * FROM WEvent(source=‘self://r/#a2’) WHEN event2 THEN action2 WSensor2WSensor3 event3event2event1 event2 Push (register listener) Pull (getValue) CPU MemorySunSpotCamera Bandwith Action2 WildCAT + Esper Application context Application

WildCAT in action ADT Galaxy project ( ), An open SOA platform – QoS monitoring for SOA/SCA application – BPEL execution monitoring for business processes OW2 JASMINe project ( ), since A smart tool for SOA platform management – JASMINe Monitoring - WildStat module (include WildCAT) ANR Selfware project, A software infrastructure for building self-distributed applications – Smart probes to notify relevant events correlation 11http://wildcat.ow2.org

WildCAT card General stats : – Small footprint : 112 Ko + Esper 2.7 Mo – Small API : 12 interfaces, 50 Classes – Current stable version : – Current Esper version : – License : GPL v2 Team – Thomas Ledoux (project leader) – Pierre Charles David (V1 initial API and Implementation) – Nicolas Loriant (V2 initial API and Implementation) – Loris Bouzonnet (Contributor) – Mahmoud Ben Hassine (Contributor) – Olivier Barais (Contributor) Home page & Contact – – 12http://wildcat.ow2.org Roadmap V /12/08 V /02/09 V /08/10 V3.0.0 Today (dev) V /12/06