Ambient-Oriented Programming

Size: px
Start display at page:

Download "Ambient-Oriented Programming"

Transcription

1 Ambient-Oriented Programming Designing an Object-Oriented Language for Ambient Intelligence Dr. Éric Tanter University of Chile DCC/CWR Presented at the JCC (c) E. Tanter, All Rights Reserved 1

2 Contents What is Ambient Intelligence (AmI)? OO Language Design for AmI AmbientTalk - A First OO Language for AmI Future Directions 2

3 Credits Programming Technology Lab - Vrije Universiteit Brussel Prof. Dr. Theo D Hondt Wolfgang de Meuter Move Considered Harmful -- A Language Design Approach to Distribution and Mobility in Open Networks PhD Thesis, 2004 Jessie Dedecker, Tom Van Cutsem, Stijn Mostinckx PhD students (VUB), AmbientTalk development Sebastián González PhD student (UCL) ORION: Open Reflective Infrastructure for Open Networks Project DCC/CWR - VUB

4 Ambient Intelligence A Peculiar Context for Application Development [Dedecker+05b] 4

5 Hardware Environment Advent of mobile networks wireless technologies (wifi, bluetooth) nomadic and ad hoc (aka. open networks) Mobile devices limited connection range and computational resources Ambient Intelligence European Council s IST Advisory Group [ISTAG03] aka. ubiquitous computing [Weiser91], pervasive computing what is fundamentally different? 5

6 Autonomicity & Concurrency no central server natural concurrency Communication Autonomous Concurrent Devices Interconnected via ad hoc wireless networks 6

7 Connection Volatility cannot assume stable connection but tasks need to be done Failure Volatile Wireless Connections exceptions are no more exceptional! 7

8 Resource Discovery resources depend on location Discovery Ambient Resources I provide a printing service I require a printing service Devices (dis)appear in the 'Ambient' Spontaneous Service Discovery 8

9 Programming for AmI Communication Failure Discovery A robust AmI application must address these characteristics Current alternatives Middleware Distributed programming languages 9

10 Middleware RPC-based middleware Alice [Haarh+99], Dolmen [Reynolds+99] CORBA on lightweight devices no support for long disconnections Publish-subscribe middleware [Cugola+02] good for context-aware communication forces callback programming Tuple-space based middleware [Murphy+01] uncoupling in both time and space not object-oriented 10

11 Distributed Languages Languages for LAN Emerald [Jul+88], Obliq [Cardelli95], etc. communication mechanisms assume reliable connection Languages for open networks Janus [Kahn+90], Salsa [Varela+98], E [Miller] pure asynchronous communication no support for resource discovery 11

12 Position Statement [Dedecker+05] Currently insufficient support for programming nomadic / ad hoc distributed systems low-level APIs, middleware, etc. can be done, but hard no dedicated abstractions for AmI specificities Need of dedicated languages: AmOP abstracting without hiding 12

13 Object-Oriented Languages for AmI 13

14 Design Dimensions object model class-based vs. prototype-based static typing vs. dynamic typing communication model concurrency model communication primitives failure handling acquaintance management 14

15 Why Classes Do Not Fit and neither static typing... [Gonzales+04] 15

16 OOP without classes?? object = encapsulated state + message passing objects are good encapsulation and polymorphism are fundamental for highly dynamic environments 16

17 OOP without classes??? Classification of OOP languages [Wegner87] object-based (objects + messages) class-based (classes) object-oriented (classes + inheritance) prototype-based (objects + delegation/sharing)... 17

18 Fundamental Problem [Gonzales+04] Classes a static, implicit sharing mechanism of state and behaviour [Treaty of Orlando] Open Networks Distribution transparency is impossible to achieve in practice, and precisely because of that impossibility, it is dangerous to provide the illusion of transparency. [Guerraoui&Fayad99] 18

19 State Sharing class attributes (eg. Java statics) semantics = value shared by all instances not true under distribution! Solution: add yet more keywords to Java... public static-replicated synchronized Vector v; protected static-centralized String s; or fix a choice and make it implicit in the language. It s no solution: a new node may appear with the same class, but with a different value... 19

20 Code Sharing Exactly same issue with methods A node containing the same class as another node may appear in the network, but with a different method implementation... Methods are part of a class s state, just the same as class attributes. If a method changes, the class is no longer the same, even if semantically it remains compatible. 20

21 Transitive Closures instance-of link + subclass-of link when an object is transmitted, its class and all superclasses must be transmitted too (an object is not a self-contained entity!) static typing transmit argument-type classes, returntype class and exception-type classes and their transitive closures 21

22 Conclusion on Classes Classes are dangerous under distribution Classes (and static typing) are a barrier to adaptability sharing is important, but should be managed explicitly prototype-based languages! 22

23 Prototypes eg. Self [Ungar+87] Self-contained objects state + code created ex-nihilo or by cloning self Extension mechanism true delegation to parent self Sharing mechanism parent sharing managed explicitly message forwarding delegation eg. traits [Ungar+91] 23

24 Communication Model [Dedecker+05b] 24

25 OO Concurrency Model Thread-based Actor model [Agha86] 25

26 Communication Primitives Blocking primitives are evil deadlocks & diminished availability of resources Communication Non-blocking Asynchronous Communication Primitives send transmit receive 26

27 Failure Recovery Inconsistent states cannot be avoided need for reversibility Failure Reified Communication Traces rollback strategies delivery guarantees yes Agenda Actor agenda slot available? Agenda Actor reservation confirmed? Agenda Actor reserve slot Agenda Actor 27

28 Acquaintance Management No third party for communication (P2P) no explicit reference: distributed naming Discovery Reified Environmental Context Provided service patterns actors specify services required from the ambient provided to the ambient Required service patterns description of service interface 28

29 Design Conclusions Classless language, dynamically-typed Actor model Non-blocking communication primitives Reified communication trace Reified ambient context C? C++? Java? C#? 29

30 AmbientTalk A First AmOP Language [Dedecker+05a] 30

31 AmbientTalk Dynamically typed language Prototype-based object model Actor-based concurrency model VM runs on Java J2SE and J2ME platforms VMs communicate via sockets over WLAN Plug-and-play: no additional setup Tested and deployed on QTek9090 PocketPC smartphones Actors AmbientTalk VM jat 31

32 Communication Communication Mailboxes reify actor-actor interaction «outbox» «sentbox» «inbox» «rcvbox» 32

33 Discovery Discovery Mailboxes reify actor-ambient interaction «required» «provided» «joinedbox» «disjoinedbox» 33

34 Metaobjects First-class Mailboxes interaction between mailboxes goverened by a metaobject protocol ontransmit onsend onjoin ondisjoin onprocess onreceipt Meta-level events trapped using mailbox observers 34

35 Actors AmbientTalk VM jat PrintFileBehavior :: object({ printer : void; file : void; new(afile,dpi) :: copy({ printer := AmbientRef("Printer"); file := afile }); printit() :: { when(printer#print(file), { display("doc Printed! ) }) } }) PrintFileActor(file,dpi) :: { actor(printfilebehavior.new(file,dpi)) } { p: PrintFileActor(aFile,300); p#printit() } 35

36 Higher-level Constructs [Dedecker+05a] AmI is a moving target AmbientTalk is a testbed for AmOP experimentation Some higher-level constructs Non-blocking futures Application-specific message routing Group communication... 36

37 Language-level Security [DeMeuter+05] Security must be addressed at all levels comm. channels, OS, language, application, user Extreme encapsulation principle objects subject to message passing alone no omnipotent operators But powerful object model cloning, extension, parent sharing, reflection eg. mirror methods [Tanter05] 37

38 Mobility [Vallejos05] Controversial feature Security-wise challenging A killer application? follow-me applications? 38

39 Open Infrastructure [ORION] Reflective Virtual Machine for AmI Fine-tune tradeoffs/strategies at the VM level garbage collection failure recovery strategy partial reversible computation partial object matching for resource discovery 39

40 Context Awareness Context-aware object references [VanCutsem+05] Context-oriented programming [Costanza+05] Context-aware aspects [Tanter+05] 40

41 References (1) [Agha86] G. Agha, Actors: a model of concurrent computation in distributed systems, MIT Press [Cardelli95] L. Cardelli, Obliq: a language with distributed scope, Proceedings of POPL [Costanza+05] P. Costanza, R. Hirschfeld, Language Constructs for Context-Oriented Programming, Proceedings of DLS [Cugola+02] G. Cugola, H.-A. Jacobsen, Using Publish-Subscribe Middleware for Mobile Systems, SIGMOBILE Mob. Comp. Commun. 6(4), [Dedecker+05a] J. Dedecker, S. Mostinckx, T. Van Cutsem, W. De Meuter, T. D Hondt, AmbientTalk: A Small Reflective Kernel for Programming Mobile Network Applications, VUB TR [Dedecker+05b] J. Dedecker, T. Van Cutsem, S. Mostinckx, W. De Meuter, T. D Hondt, Ambient-Oriented Programming, OOPSLA Onward! [DeMeuter+05] W. De Meuter, É. Tanter, S. Mostinckx, T. Van Cutsem, J. Dedecker, Flexible Object Encapsulation for Ambient-Oriented Programming, Proceedings of DLS [Guerraoui&Fayad99] R. Guerraoui, M. E. Fayad, OO Distributed Programming is Not Distributed OO Programming, CACM 42(4), [Gonzales+04] S. Gonzalez, W. De Meuter, K. Mens, T. D Hondt, The Unavoidable Failure of Class-Based Languages n the Processor Cloud Era, ECOOP Workshop on Object-Oriented Language Engineering for the Post-Java Era, [Haarh+99] M. Haarh, R. Cunningham, V. Cahill, Supporting CORBA Applications in a Mobile Environment, Proceedings MobiCom [ISTAG03] ISTAG, Ambient Intelligence: From Vision to Reality, [Jul+88] E. Jul, H. Levy, N. Hutchinson, A. Black, Fine-grained Mobility in the Emerald System, ACM TCS 6 (1),

42 References (2) [Kahn+90] K.M. Kahn, V.A. Saraswat, Actors as a special case of concurrent constraint programming, Proceedings ECOOP/OOPSLA [Miller] M. Miller, E: Open Source Distributed Capabilities, [Murphy+01] A.L. Murphy, G.P. Picco, G.-C. Roman, Lime: A Middleware for Physical and Logical Mobility, Proceedings DCS [ORION] Open Reflective Infrastructure for Open Networks, draft proposal for a bilateral project between the VUB Prog Lab and the DCC U. Chile, [Reynolds+99] P. Reynolds, R. Brangeon, DOLMEN - Service Machine Development for Open Long-Term Mobile and Fixed Network Environment [Tanter05] É. Tanter, Mirror Methods - Reconciling Reflection and Extreme Encapsulation, Proc. OT4AmI [Tanter+05] É.Tanter, K. Gybels, M. Denker, A. Bergel, Context-Aware Aspects, DCC U.Chile TR [Treaty of Orlando] H. Lieberman, L. Stein, D. Ungar, Treaty of Orlando, OOPSLA Add [Ungar+87] D. Ungar, R. Smith, Self: the Power of Simplicity, Proc. OOPSLA [Ungar+91] D. Ungar, C. Chambers, B. Chang, U. Hölzle, Organizing Programs without Classes, Lisp Symb. Comp. 4(3), [Vallejos05] J. Vallejos, Mobile Actors Supporting Reconfigurable Applications in Open P2P Networks, MSc Thesis, VUB, Belgium, [Varela+98] C.A. Varela, G. Agha, What after Java? From Objects to Actors, Proceedings ICWWW [VanCutsem+05] T. Van Cutsem, J. Dedecker, S. Mostinckx, W. De Meuter, Abstractions for Context-aware Object References, OOPSLA Workshop on Pervasive Computing, [Wegner87] P. Wegner, Dimensions of Object-based Language Design, Proceedings OOPSLA [Weiser91] M. Weiser, The Computer for the 21st Century, Scientific American 265(3)

A Prototype-based Approach to Distributed Applications

A Prototype-based Approach to Distributed Applications A Prototype-based Approach to Distributed Applications Tom Van Cutsem Stijn Mostincx Promotor: Prof. Dr. Theo D Hondt Advisors: Wolfgang De Meuter and Jessie Dedecker December 11, 2004 A Prototype-based

More information

Context-Aware Leasing for Mobile Ad hoc Networks

Context-Aware Leasing for Mobile Ad hoc Networks Context-Aware Leasing for Mobile Ad hoc Networks Elisa Gonzalez Boix, Jorge Vallejos, Tom Van Cutsem, Jessie Dedecker, and Wolfgang De Meuter Programming Technology Lab Vrije Universiteit Brussel, Belgium

More information

AmbientTalk: Object-oriented Event-driven programming in Mobile Ad hoc Networks

AmbientTalk: Object-oriented Event-driven programming in Mobile Ad hoc Networks AmbientTalk: Object-oriented Event-driven programming in Mobile Ad hoc Networks Tom Van Cutsem Stijn Mostinckx Elisa Gonzalez Boix Jessie Dedecker Wolfgang De Meuter Programming Technology Lab Vrije Universiteit

More information

Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France 2005

Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France 2005 Vrije Universiteit Brussel - Belgium Faculty of Sciences In Collaboration with Ecole des Mines de Nantes - France 2005 Mobile Actors Supporting Reconfigurable Applications in Open Peer-to-Peer Networks

More information

Linguistic Symbiosis between Actors and Threads

Linguistic Symbiosis between Actors and Threads Linguistic Symbiosis between s and Threads Tom Van Cutsem Stijn Mostinckx Wolfgang De Meuter Programming Technology Lab Vrije Universiteit Brussel Brussels, Belgium International Conference on Dynamic

More information

AmbientTalk: Object-oriented Event-driven programming in Mobile Ad hoc Networks

AmbientTalk: Object-oriented Event-driven programming in Mobile Ad hoc Networks AmbientTalk: Object-oriented Event-driven programming in Mobile Ad hoc Networks Tom Van Cutsem Programming Technology Lab Vrije Universiteit Brussel Brussels, Belgium LAMP - EPFL, July 25th 2007, Lausanne

More information

Pervasive Communication: The Need for Distributed Context Adaptations

Pervasive Communication: The Need for Distributed Context Adaptations Pervasive Communication: The Need for Distributed Context Adaptations Jorge Vallejos, Brecht Desmet, Pascal Costanza, Wolfgang De Meuter Programming Technology Lab Vrije Universiteit Brussel Pleinlaan

More information

Towards a Domain-Specific Aspect Language for Leasing in Mobile Ad hoc Networks

Towards a Domain-Specific Aspect Language for Leasing in Mobile Ad hoc Networks Towards a Domain-Specific Aspect Language for Leasing in Mobile Ad hoc Networks Elisa Gonzalez Boix Thomas Cleenewerk Jessie Dedecker Wolfgang De Meuter Programming Technology Lab Vrije Universiteit Brussel

More information

Dynamic Languages and Applications

Dynamic Languages and Applications Dynamic Languages and Applications Report on the Workshop Dyla 07 at ECOOP 2007 Alexandre Bergel 1, Wolfgang De Meuter 2,Stéphane Ducasse 3, Oscar Nierstrasz 4,andRoelWuyts 5 1 Hasso-Plattner-Institut,

More information

Resilient Partitioning of Pervasive Computing Services

Resilient Partitioning of Pervasive Computing Services Resilient Partitioning of Pervasive Computing Services Engineer Bainomugisha Promotor: Prof. Dr. Wolfgang De Meuter Advisors: Jorge Vallejos Elisa Gonzalez Boix Programming Technology Lab Vrije Universiteit

More information

Parallel Actor Monitors

Parallel Actor Monitors Parallel Monitors Christophe Scholliers Vrije Universiteit Brussel Pleinlaan 2, Elsene, Belgium cfscholl@vub.ac.be Éric Tanter PLEIAD Laboratory DCC / University of Chile etanter@dcc.uchile.cl Wolfgang

More information

Object-Based Features

Object-Based Features History of this Material Object-Based Features Luca Cardelli joint work with Mart n Abadi Digital Equipment Corporation Systems Research Center Designing a class-based language (Modula-3). Designing an

More information

Transaction Management in EJBs: Better Separation of Concerns With AOP

Transaction Management in EJBs: Better Separation of Concerns With AOP Transaction Management in EJBs: Better Separation of Concerns With AOP Johan Fabry Vrije Universiteit Brussel, Pleinlaan 2 1050 Brussel, Belgium Johan.Fabry@vub.ac.be March 8, 2004 1 Introduction The long-term

More information

Ambient-Oriented Programming

Ambient-Oriented Programming FACULTEIT VAN DE WETENSCHAPPEN Vakgroep Informatica Programming Technology Lab Ambient-Oriented Programming Ph.D. Dissertation Jessie Dedecker Promotors: Prof. Dr. Theo D Hondt and Dr. Wolfgang De Meuter

More information

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems?

Distributed Systems Question Bank UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems? UNIT 1 Chapter 1 1. Define distributed systems. What are the significant issues of the distributed systems? 2. What are different application domains of distributed systems? Explain. 3. Discuss the different

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Mirror-based Reflection in AmbientTalk

Mirror-based Reflection in AmbientTalk SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2008; 0:01 37 [Version: 2002/09/23 v2.2] Mirror-based Reflection in AmbientTalk Stijn Mostinckx 1, Tom Van Cutsem 1, Stijn Timbermont 1, Elisa Gonzalez

More information

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A Meta-Model for Composition Techniques in Object-Oriented Software Development A Meta-Model for Composition Techniques in Object-Oriented Software Development Bedir Tekinerdogan Department of Computer Science University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands E-Mail:

More information

one.world Towards a System Architecture for Pervasive Computing

one.world Towards a System Architecture for Pervasive Computing Towards a System Architecture for Pervasive Computing Robert Grimm, Janet Davis, Ben Hendrickson, Eric Lemar, Tom Anderson, Brian Bershad, Gaetano Borriello, David Wetherall University of Washington Vision

More information

Ambient Clouds: Reactive Asynchronous Collections for Mobile Ad Hoc Network Applications

Ambient Clouds: Reactive Asynchronous Collections for Mobile Ad Hoc Network Applications Ambient Clouds: Reactive Asynchronous Collections for Mobile Ad Hoc Network Applications Kevin Pinte, Andoni Lombide Carreton, Elisa Gonzalez Boix, and Wolfgang De Meuter Software Languages Lab, Vrije

More information

Role Modelling in SelfSync with Warped Hierarchies

Role Modelling in SelfSync with Warped Hierarchies Role Modelling in SelfSync with Warped Hierarchies Ellen Van Paesschen Programming Technology Lab Wolfgang De Meuter Programming Technology Lab Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussel Email:

More information

Object-oriented Coordination in Mobile Ad hoc Networks

Object-oriented Coordination in Mobile Ad hoc Networks Object-oriented Coordination in Mobile Ad hoc Networks Tom Van Cutsem, Jessie Dedecker, and Wolfgang De Meuter tvcutsem jededeck wdmeuter@vub.ac.be Programming Technology Lab Vrije Universiteit Brussel

More information

Department of Computer

Department of Computer Department of Computer Science @VUB Department of Computer Science 80+ Researchers 10 professors 15 post-doc s 55 pre-doc s Software and Programming Language Engineering PROG SSEL Web- and Information

More information

Context-Oriented Meta-Programming

Context-Oriented Meta-Programming VRIJE UNIVERSITEIT BRUSSEL FACULTY OF SCIENCE DEPARTMENT OF COMPUTER SCIENCE Context-Oriented Meta-Programming Thesis submitted in partial fulfilment of the requirements for the degree of Licenciaat in

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Other matters: review of the Bakery Algorithm: why can t we simply keep track of the last ticket taken and the next ticvket to be called? Ref: [Coulouris&al Ch 1, 2]

More information

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 1 Introduction Modified by: Dr. Ramzi Saifan Definition of a Distributed System (1) A distributed

More information

A computational model for an object-oriented operating system

A computational model for an object-oriented operating system A computational model for an object-oriented operating system Lourdes Tajes Martínez, Fernando Álvarez García, Marian Díaz Fondón, Darío Álvarez Gutiérrez y Juan Manuel Cueva L? ovelle Abstract--The design

More information

Kevwe Edewor & Adam Hardy 14th December C05 Software Engineering

Kevwe Edewor & Adam Hardy 14th December C05 Software Engineering Mobile Computing Kevwe Edewor & Adam Hardy 14th December 2001 3C05 Software Engineering Objectives Define Mobile Computing and look at current trends Distinguish between types of Mobility Examine Theory

More information

3C05 - Advanced Software Engineering Thursday, April 29, 2004

3C05 - Advanced Software Engineering Thursday, April 29, 2004 Distributed Software Architecture Using Middleware Avtar Raikmo Overview Middleware What is middleware? Why do we need middleware? Types of middleware Distributed Software Architecture Business Object

More information

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia

Object Oriented Programming in Java. Jaanus Pöial, PhD Tallinn, Estonia Object Oriented Programming in Java Jaanus Pöial, PhD Tallinn, Estonia Motivation for Object Oriented Programming Decrease complexity (use layers of abstraction, interfaces, modularity,...) Reuse existing

More information

Distributed Proxies as Delegation-based Descendants

Distributed Proxies as Delegation-based Descendants Distributed Proxies as Delegation-based Descendants Tom Van Cutsem Stijn Mostinckx Wolfgang De Meuter Jessie Dedecker Theo D Hondt Programming Technology Lab Department of Computer Science Vrije Universiteit

More information

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107 A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105

More information

Formal Support for Model Evolution

Formal Support for Model Evolution Formal Support for Model Evolution Tom Mens http://w3.umh.ac.be/genlog Software Engineering Lab University of Mons-Hainaut Belgium Introduction - Model Evolution More and better tool support needed for

More information

Concurrent Object-Oriented Programming

Concurrent Object-Oriented Programming Concurrent Object-Oriented Programming Bertrand Meyer, Volkan Arslan 2 Lecture 4: Motivation and Introduction Definition 3 Concurrent programming = parallel programming on a single processor? = is about

More information

Applying Experiences with Declarative Codifications of Software Architectures on COD

Applying Experiences with Declarative Codifications of Software Architectures on COD Applying Experiences with Declarative Codifications of Software Architectures on COD Position Paper Roel Wuyts Stéphane Ducasse Gabriela Arévalo roel.wuyts@iam.unibe.ch ducasse@iam.unibe.ch arevalo@iam.unibe.ch

More information

Linguistic Symbiosis between Actors and Threads

Linguistic Symbiosis between Actors and Threads Linguistic Symbiosis between Actors and Threads Tom Van Cutsem, Stijn Mostinckx, and Wolfgang De Meuter {tvcutsem smostinc wdmeuter}@vub.ac.be Programming Technology Lab Vrije Universiteit Brussel Brussels

More information

model (ontology) and every DRS and CMS server has a well-known address (IP and port).

model (ontology) and every DRS and CMS server has a well-known address (IP and port). 7 Implementation In this chapter we describe the Decentralized Reasoning Service (DRS), a prototype service implementation that performs the cooperative reasoning process presented before. We present also

More information

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab Reuse Contracts As Component Interface Descriptions Koen De Hondt, Carine Lucas, and Patrick Steyaert Programming Technology Lab Computer Science Department Vrije Universiteit Brussel Pleinlaan 2, B-1050

More information

Adaptive Fault Tolerant Systems: Reflective Design and Validation

Adaptive Fault Tolerant Systems: Reflective Design and Validation 1 Adaptive Fault Tolerant Systems: Reflective Design and Validation Marc-Olivier Killijian Dependable Computing and Fault Tolerance Research Group Toulouse - France 2 Motivations Provide a framework for

More information

Ubiquitous Computing Introduction

Ubiquitous Computing Introduction Ubiquitous Introduction University of Innsbruck WS 2010/2011 Prof. Dr. Thomas Strang thomas.strang@uibk.ac.at Where it all started The term Ubiquitous 1 goes back to the late Mark Weiser, who wrote 1991

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

2. Classes & Inheritance. Classes. Classes. Éric Tanter Objects and Design in Smalltalk. How do you create objects?

2. Classes & Inheritance. Classes. Classes. Éric Tanter Objects and Design in Smalltalk. How do you create objects? Objects and Design in Smalltalk 2. Classes & Inheritance Éric Tanter etanter@dcc.uchile.cl 1 Classes How do you create objects? Ex-nihilo in prototype-based languages With a class in class-based languages

More information

Event Loop Coordination Using Meta-programming

Event Loop Coordination Using Meta-programming Event Loop Coordination Using Meta-programming Laure Philips, Dries Harnie, Kevin Pinte, Wolfgang Meuter To cite this version: Laure Philips, Dries Harnie, Kevin Pinte, Wolfgang Meuter. Event Loop Coordination

More information

Reflective Java and A Reflective Component-Based Transaction Architecture

Reflective Java and A Reflective Component-Based Transaction Architecture Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,

More information

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum

Distributed Systems. Edited by. Ghada Ahmed, PhD. Fall (3rd Edition) Maarten van Steen and Tanenbaum Distributed Systems (3rd Edition) Maarten van Steen and Tanenbaum Edited by Ghada Ahmed, PhD Fall 2017 Introduction: What is a distributed system? Distributed System Definition A distributed system is

More information

ASL: Hierarchy, Composition, Heterogeneity, and Multi-Granularity in Concurrent Object-Oriented Programming. Abstract

ASL: Hierarchy, Composition, Heterogeneity, and Multi-Granularity in Concurrent Object-Oriented Programming. Abstract ASL: Hierarchy, Composition, Heterogeneity, and Multi-Granularity in Concurrent Object-Oriented Programming Alfredo Weitzenfeld Computer Science Department University of Southern California Los Angeles,

More information

Distributed Object-Oriented Programming with RFID Technology

Distributed Object-Oriented Programming with RFID Technology Distributed Object-Oriented Programming with RFID Technology Andoni Lombide Carreton, Kevin Pinte, and Wolfgang De Meuter Software Languages Lab, Vrije Universiteit Brussel, Pleinlaan 2, 1050 Brussels,

More information

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java. [Course Overview] The Core Java technologies and application programming interfaces (APIs) are the foundation of the Java Platform, Standard Edition (Java SE). They are used in all classes of Java programming,

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

Towards a Generic Architecture for Mobile Object-Oriented Applications

Towards a Generic Architecture for Mobile Object-Oriented Applications Towards a Generic Architecture for Mobile Object-Oriented Applications Mads Haahr, Raymond Cunningham and Vinny Cahill Distributed Systems Group Department of Computer Science University of Dublin, Trinity

More information

A Hybrid Visual Dataflow Language for Coordination in Mobile Ad Hoc Networks

A Hybrid Visual Dataflow Language for Coordination in Mobile Ad Hoc Networks A Hybrid Visual Dataflow Language for Coordination in Mobile Ad Hoc Networks Andoni Lombide Carreton and Theo D Hondt Software Languages Lab Vrije Universiteit Brussel, Pleinlaan 2 1050 Brussel, Belgium

More information

DISTRIBUTED SYSTEMS [COMP9243] Lecture 3b: Distributed Shared Memory DISTRIBUTED SHARED MEMORY (DSM) DSM consists of two components:

DISTRIBUTED SYSTEMS [COMP9243] Lecture 3b: Distributed Shared Memory DISTRIBUTED SHARED MEMORY (DSM) DSM consists of two components: SHARED ADDRESS SPACE DSM consists of two components: DISTRIBUTED SYSTEMS [COMP9243] ➀ Shared address space ➁ Replication and consistency of memory objects Lecture 3b: Distributed Shared Memory Shared address

More information

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013 Chapter 1: Distributed Systems: What is a distributed system? Fall 2013 Course Goals and Content n Distributed systems and their: n Basic concepts n Main issues, problems, and solutions n Structured and

More information

Intersecting Classes and Prototypes

Intersecting Classes and Prototypes Intersecting Classes and Prototypes Wolfgang De Meuter, Theo D Hondt, and Jessie Dedecker {wdmeuter,tjdhondt,jededeck}@vub.ac.be Programming Technology Lab Department of Computer Science Vrije Universiteit

More information

CAP - Advanced Programming Concepts

CAP - Advanced Programming Concepts Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus

More information

Reflective and Adaptive Middleware

Reflective and Adaptive Middleware Advanced Distributed Systems Reflective and Adaptive Middleware MSc in Advanced Computer Science Gordon Blair (gordon@comp.lancs.ac.uk) Overview of the Session Reflective middleware: principles Background

More information

MS Project Proposal. Tuple Board

MS Project Proposal. Tuple Board MS Project Proposal Tuple Board A New Distributed Computing Paradigm for Mobile Ad Hoc Networks Chaithanya Bondada cxb3178 @ cs.rit.edu Department of Computer Science Rochester Institute of Technology

More information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java

More information

38. System Support for Pervasive Applications

38. System Support for Pervasive Applications 38. System Support for Pervasive Applications Robert Grimm 1 and Brian Bershad 2 1 New York University, New York, NY rgrimm@cs.nyu.edu 2 University of Washington, Seattle, WA bershad@cs.washington.edu

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Advantages of concurrent programs. Concurrent Programming Actors, SALSA, Coordination Abstractions. Overview of concurrent programming

Advantages of concurrent programs. Concurrent Programming Actors, SALSA, Coordination Abstractions. Overview of concurrent programming Concurrent Programming Actors, SALSA, Coordination Abstractions Carlos Varela RPI November 2, 2006 C. Varela 1 Advantages of concurrent programs Reactive programming User can interact with applications

More information

Agent based Cellular Automata Simulation

Agent based Cellular Automata Simulation Agent based Cellular Automata Simulation P. Fornacciari, G. Lombardo, M. Mordonini, A. Poggi and M. Tomaiuolo Dipartimento di Ingegneria e Architettura Università degli Studi di Parma Parma, Italy {paolo.fornacciari,gianfranco.lombardo,monica.mordonini,agostino.poggi,michele.tomaiuolo}@unipr.it

More information

Context-Awareness and Adaptation in Distributed Event-Based Systems

Context-Awareness and Adaptation in Distributed Event-Based Systems Context-Awareness and Adaptation in Distributed Event-Based Systems Eduardo S. Barrenechea, Paulo S. C. Alencar, Rolando Blanco, Don Cowan David R. Cheriton School of Computer Science University of Waterloo

More information

Thanks! Review. Course Goals. General Themes in this Course. There are many programming languages. Teaching Assistants. John Mitchell.

Thanks! Review. Course Goals. General Themes in this Course. There are many programming languages. Teaching Assistants. John Mitchell. 1 CS 242 Thanks! Review John Mitchell Final Exam Wednesday Dec 8 8:30 11:30 AM Gates B01, B03 Teaching Assistants Mike Cammarano TJ Giuli Hendra Tjahayadi Graders Andrew Adams Kenny Lau Vishal Patel and

More information

Composition and Separation of Concerns in the Object-Oriented Model

Composition and Separation of Concerns in the Object-Oriented Model ACM Computing Surveys 28A(4), December 1996, http://www.acm.org/surveys/1996/. Copyright 1996 by the Association for Computing Machinery, Inc. See the permissions statement below. Composition and Separation

More information

The Ambient Actor Model

The Ambient Actor Model The Ambient Actor Model Jessie Dedecker & Werner Van Belle e-mail:werner.van.belle@itek.norut.no Department Computer Science Universitetet i Tromsø, Norway e-mail:jededeck@vub.ac.be Programming Technology

More information

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck

More information

Distribution and Integration Technologies

Distribution and Integration Technologies Distribution and Integration Technologies Distributed Architectures Patterns and Styles 1 Distributed applications infrastructure ISP intranet wireless backbone desktop computer: server: laptops: tablets:

More information

A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments

A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments A Declarative Approach to Agent-Centered Context-Aware Computing in Ad Hoc Wireless Environments Gruia-Catalin Roman 1 Christine Julien 1 Amy L. Murphy 2 1 Department of Computer Science Washington University

More information

JiST Java in Simulation Time An efficient, unifying approach to simulation using virtual machines

JiST Java in Simulation Time An efficient, unifying approach to simulation using virtual machines JiST Java in Simulation Time An efficient, unifying approach to simulation using virtual machines Rimon Barr, Zygmunt Haas, Robbert van Renesse rimon@acm.org haas@ece.cornell.edu rvr@cs.cornell.edu. Cornell

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

Cheng, CSE870. More Frameworks. Overview. Recap on OOP. Acknowledgements:

Cheng, CSE870. More Frameworks. Overview. Recap on OOP. Acknowledgements: More Frameworks Acknowledgements: K. Stirewalt. Johnson, B. Foote Johnson, Fayad, Schmidt Overview eview of object-oriented programming (OOP) principles. Intro to OO frameworks: o Key characteristics.

More information

Introduction. Distributed Systems IT332

Introduction. Distributed Systems IT332 Introduction Distributed Systems IT332 2 Outline Definition of A Distributed System Goals of Distributed Systems Types of Distributed Systems 3 Definition of A Distributed System A distributed systems

More information

Distributed Systems. Chapter 1: Introduction

Distributed Systems. Chapter 1: Introduction Distributed Systems (3rd Edition) Chapter 1: Introduction Version: February 25, 2017 2/56 Introduction: What is a distributed system? Distributed System Definition A distributed system is a collection

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

Reflective Layer Activation in ContextL

Reflective Layer Activation in ContextL Reflective Layer Activation in ContextL Pascal Costanza Programming Technology Lab Vrije Universiteit Brussel B-1050 Brussels, Belgium pascal.costanza@vub.ac.be Robert Hirschfeld Hasso-Plattner-Institut

More information

Comp 311 Principles of Programming Languages Lecture 21 Semantics of OO Languages. Corky Cartwright Mathias Ricken October 20, 2010

Comp 311 Principles of Programming Languages Lecture 21 Semantics of OO Languages. Corky Cartwright Mathias Ricken October 20, 2010 Comp 311 Principles of Programming Languages Lecture 21 Semantics of OO Languages Corky Cartwright Mathias Ricken October 20, 2010 Overview I In OO languages, data values (except for designated non-oo

More information

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV INTRODUCTION TO Object Oriented Systems 1 CHAPTER 1 Introduction to Object Oriented Systems Preview of Object-orientation. Concept of distributed object systems, Reasons to distribute for centralized objects.

More information

CSE 5306 Distributed Systems. Course Introduction

CSE 5306 Distributed Systems. Course Introduction CSE 5306 Distributed Systems Course Introduction 1 Instructor and TA Dr. Donggang Liu @ CSE Web: http://ranger.uta.edu/~dliu Email: dliu@uta.edu Phone: 817-2720741 Office: ERB 555 Office hours: Tus/Ths

More information

Lecture Notes on Programming Languages

Lecture Notes on Programming Languages Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered

More information

Mobile and Ubiquitous Computing

Mobile and Ubiquitous Computing Mobile and Ubiquitous Computing Today l Mobile, pervasive and volatile systems l Association and Interoperation l Sensing context and adaptation RIP? How is mobility different Mobile elements are resource-poor

More information

Design Patterns: Structural and Behavioural

Design Patterns: Structural and Behavioural Design Patterns: Structural and Behavioural 3 April 2009 CMPT166 Dr. Sean Ho Trinity Western University See also: Vince Huston Review last time: creational Design patterns: Reusable templates for designing

More information

metaxa and the Future of Reflection

metaxa and the Future of Reflection metaxa and the Future of Reflection Michael Golm, Jürgen Kleinöder University of Erlangen-Nürnberg Dept. of Computer Science 4 (Operating Systems) Martensstr. 1, D-91058 Erlangen, Germany {golm, kleinoeder}@informatik.uni-erlangen.de

More information

Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Multicore/Manycore Era?

Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Multicore/Manycore Era? Which Problems Does a Multi-Language Virtual Machine Need to Solve in the Multicore/Manycore Era? Stefan Marr, 1 Mattias De Wael Software Languages Lab Vrije Universiteit Brussel, Belgium {stefan.marr,

More information

Implementing Architectures

Implementing Architectures Implementing Architectures Software Architecture Lecture 15 Copyright Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Learning Objectives Formulate implementation as a mapping

More information

Multithreading and Interactive Programs

Multithreading and Interactive Programs Multithreading and Interactive Programs CS160: User Interfaces John Canny. Last time Model-View-Controller Break up a component into Model of the data supporting the App View determining the look of the

More information

Java 8 Programming for OO Experienced Developers

Java 8 Programming for OO Experienced Developers www.peaklearningllc.com Java 8 Programming for OO Experienced Developers (5 Days) This course is geared for developers who have prior working knowledge of object-oriented programming languages such as

More information

Architectural Style Requirements for Self-Healing Systems

Architectural Style Requirements for Self-Healing Systems Architectural Style Requirements for Self-Healing Systems Marija Mikic-Rakic, Nikunj Mehta, Nenad Medvidovic Computer Science Department University of Southern California Los Angeles, CA 90089-0781 USA

More information

Actors in SALSA and Erlang (PDCS 9, CPE 5*) Support for actor model in SALSA and Erlang

Actors in SALSA and Erlang (PDCS 9, CPE 5*) Support for actor model in SALSA and Erlang Actors in SALSA and Erlang (PDCS 9, CPE 5*) Support for actor model in SALSA and Erlang Carlos Varela Rennselaer Polytechnic Institute October 7, 2016 * Concurrent Programming in Erlang, by J. Armstrong,

More information

Principles of Programming Languages, 2

Principles of Programming Languages, 2 Principles of Programming Languages, 2 Matteo Pradella February 2015 Matteo Pradella Principles of Programming Languages, 2 February 2015 1 / 23 1 Object Oriented Programming (OO) Matteo Pradella Principles

More information

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

Combined Object-Lambda Architectures

Combined Object-Lambda Architectures www.jquigley.com jquigley#jquigley.com Chicago Lisp April 2008 Research Goals System Goals Conventional Systems Unconventional Systems Research Goals Question: How to make with Pepsi and Coke? The Goal:

More information

Computer-based systems will be increasingly embedded in many of

Computer-based systems will be increasingly embedded in many of Programming Ubiquitous and Mobile Computing Applications with TOTA Middleware Marco Mamei, Franco Zambonelli, and Letizia Leonardi Universita di Modena e Reggio Emilia Tuples on the Air (TOTA) facilitates

More information

Multiprocessors 2007/2008

Multiprocessors 2007/2008 Multiprocessors 2007/2008 Abstractions of parallel machines Johan Lukkien 1 Overview Problem context Abstraction Operating system support Language / middleware support 2 Parallel processing Scope: several

More information

Intermediate Language Design of High- level Language VMs

Intermediate Language Design of High- level Language VMs Intermediate Language Design of High- level Language VMs Towards Comprehensive Concurrency Support Stefan Marr SoOware Languages Lab Vrije Universiteit Brussel Michael Haupt Hasso PlaKner InsLtute University

More information

RAMSES: a Reflective Middleware for Software Evolution

RAMSES: a Reflective Middleware for Software Evolution RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it

More information

Distributed Middleware. Distributed Objects

Distributed Middleware. Distributed Objects Distributed Middleware Distributed objects DCOM CORBA EJBs Jini Lecture 25, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy. Lecture 25, page 2 Distributed

More information

Overview. Distributed Computing with Oz/Mozart (VRH 11) Mozart research at a glance. Basic principles. Language design.

Overview. Distributed Computing with Oz/Mozart (VRH 11) Mozart research at a glance. Basic principles. Language design. Distributed Computing with Oz/Mozart (VRH 11) Carlos Varela RPI March 15, 2007 Adapted with permission from: Peter Van Roy UCL Overview Designing a platform for robust distributed programming requires

More information

PhD Student E&CE Department University of Waterloo Spring 2005

PhD Student E&CE Department University of Waterloo Spring 2005 Dynamic Adaptation CBSS Course Presentation Instructor: Dr. Ladan Tahvildari Provided by: Mazeiar Salehie PhD Student E&CE Department University of Waterloo Spring 2005 References Main references M. Sadjadi,

More information