Ambient-Oriented Programming
|
|
- Julian Harris
- 5 years ago
- Views:
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 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 informationContext-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 informationAmbientTalk: 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 informationVrije 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 informationLinguistic 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 informationAmbientTalk: 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 informationPervasive 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 informationTowards 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 informationDynamic 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 informationResilient 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 informationParallel 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 informationObject-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 informationTransaction 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 informationAmbient-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 informationDistributed 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 informationDS 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 informationMirror-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 informationA 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 informationone.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 informationAmbient 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 informationRole 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 informationObject-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 informationDepartment 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 informationContext-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 informationIntroduction 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 informationDISTRIBUTED 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 informationA 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 informationKevwe 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 information3C05 - 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 informationObject 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 informationDistributed 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 informationIndex. 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 informationFormal 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 informationConcurrent 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 informationApplying 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 informationLinguistic 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 informationmodel (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 informationReuse 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 informationAdaptive 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 informationUbiquitous 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 information02 - 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 information2. 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 informationEvent 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 informationReflective 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 informationDistributed 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 informationASL: 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 informationDistributed 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] 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 information02 - 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 informationTowards 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 informationA 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 informationDISTRIBUTED 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 informationChapter 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 informationIntersecting 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 informationCAP - 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 informationReflective 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 informationMS 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 informationGraphical 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 information38. 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 informationAppendix 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 informationAdvantages 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 informationAgent 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 informationContext-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 informationThanks! 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 informationComposition 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 informationThe 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 informationExecutive 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 informationDistribution 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 informationA 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 informationJiST 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 informationSoftware 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 informationCheng, 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 informationIntroduction. 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 informationDistributed 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 informationZhifu 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 informationReflective 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 informationComp 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 informationINTRODUCTION 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 informationCSE 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 informationLecture 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 informationMobile 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 informationDesign 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 informationmetaxa 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 informationWhich 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 informationImplementing 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 informationMultithreading 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 informationJava 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 informationArchitectural 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 informationActors 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 informationPrinciples 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 informationOverview. 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 informationDistributed 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 informationCombined 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 informationComputer-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 informationMultiprocessors 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 informationIntermediate 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 informationRAMSES: 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 informationDistributed 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 informationOverview. 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 informationPhD 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