Presentation on theme: "Novel Component Middleware for Building Dependable Sentient Computing Applications Maomao Wu, Adrian Friday, Gordon Blair, Thirunavukkarasu Sivaharan,"— Presentation transcript:
Novel Component Middleware for Building Dependable Sentient Computing Applications Maomao Wu, Adrian Friday, Gordon Blair, Thirunavukkarasu Sivaharan, Paul Okanda, and Hector Duran Limon Lancaster University Carl-Fredrik Sørensen Norwegian University of Science and Technology Gregory Biegel and René Meier University of Dublin, Trinity College
14/06/2004ECOOP'04 Workshop2 Introduction Advances in Ubiquitous Computing Novel applications without direct human control Intelligent vehicles Traffic management systems Smart working/living environment Activity from automobile industry BMW, DaimlerChrysler, General Motors, etc.
14/06/2004ECOOP'04 Workshop3 Research Challenges Application requirements Sentience or context-aware Autonomy Decentralisation Proactivity Adaptivity Time and Safety Criticality Appropriate computational model Programming abstraction Middleware support
14/06/2004ECOOP'04 Workshop4 CORTEX Project EU funded collaborative project CO-operating Real-time senTient objects: architecture and EXperimental evaluation Universidade de Lisboa (Portugal) Lancaster University (United Kingdom) Trinity College (Ireland) Universität Ulm (Germany) Sentient object model Middleware and demo application
14/06/2004ECOOP'04 Workshop5 Sentient Object Model
14/06/2004ECOOP'04 Workshop6 Component Model (1) Dynamic configuration and reconfiguration OpenCOM Is built atop of a subset of Microsoft’s COM Keeps COM’s core feature Binary level interoperability standard Microsoft IDL COM’s globally unique identifiers IUnknown Interface Fundamental Concepts Interface: a unit of service provision Receptacle: a unit of service requirement Connection: binding between interface and receptacle
14/06/2004ECOOP'04 Workshop7 Component Model (2) OpenCOM standard runtime Manage the creation and deletion of components Act upon requests to connect and disconnect components A system graph of running components is maintained to support the introspection of a platform’s structure Component Frameworks (CFs) “collections of rules and interfaces that govern the interaction of a set of components plugged into them” Targeted to a specific domain Publish-Subscribe CF, Context CF, Resource and QoS Management CF.
14/06/2004ECOOP'04 Workshop8 Publish-Subscribe CF A componentised prototype of the STEAM P-S system Implicit event model for mobile and ad-hoc network environments Decentralised approach: does not rely on the presence of any separate infrastructure Event filtering: subject, content, and context. Event are represented in XML, and an XML profile defines the generic event dialect Underlying communication Group communication CF: probabilistic ad-hoc multicast protocol, IP-multicast based protocol, and a local (shared memory based) group communication protocol
14/06/2004ECOOP'04 Workshop9 Context CF (1) Sensor capture and fusion Multivariate Gaussian modelling Bayesian networks Dead-reckoning Inference engine A program that reasons about a set of rules (a knowledge base) in order to derive an output. The knowledge is encoded as a set of production rules, contexts are represented as “fact”. CLIPS – C Language Integrated Production System, its internal implementation is based on RETE net.
14/06/2004ECOOP'04 Workshop10 Context CF (2) CLIPS rule sample The paradigm facilitates uniform treatment of both context and QoS Rules to trigger adaptations and actuations based on changes in measure of QoS data CLIPS DLL and OpenCOM component for WinXP and WinCE (defrule rule-obstacle-near "CLIPS rule for obstacle near" (car-id (id ?id)) ?f1 <- (obstacle (distance near)) => (retract ?f1) (publish ?id stop) )
14/06/2004ECOOP'04 Workshop12 Demo Application Vehicles travel on virtual circuits Predefine a set of GPS waypoints Second car follows the leading one Collision avoidance Obey traffic light rules Pedestrian/obstacle detection QoS adaptation: network coverage
14/06/2004ECOOP'04 Workshop14 Concluding Remarks The sentient object model has proved to be an excellent programming abstraction for the development of real-time, cooperative, context-aware applications. The component-oriented approach offers benefits of flexible configuration and reconfiguration of the middleware components, supporting the development of context and QoS adaptive applications. The middleware architecture also provides the management of non-functional concerns such as timeliness and reliability properties. Our middleware is reusable we are keen to investigate the generality of our approach by applying our middleware to other application domains involving embedded autonomous components.