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

Size: px
Start display at page:

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

Transcription

1 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

2 Context Object-oriented programming languages Hardware Software 2 Pervasive Computing (Mobile Networks)

3 Context Object-oriented programming languages Hardware Software 2 Pervasive Computing (Mobile Networks)

4 Mobile Ad hoc Networks 3

5 3 Mobile Ad hoc Networks Intermittent Connectivity

6 3 Mobile Ad hoc Networks Scarce Infrastructure Intermittent Connectivity

7 4 Loose Coupling [Eugster et al. 03] Decoupling communication in Time & Synchronisation reduces impact of volatile connections

8 4 Loose Coupling [Eugster et al. 03] Decoupling communication in Time & Synchronisation reduces impact of volatile connections

9 4 Loose Coupling [Eugster et al. 03] Decoupling communication in Time & Synchronisation reduces impact of volatile connections asynchronous send

10 4 Loose Coupling [Eugster et al. 03] Decoupling communication in Time & Synchronisation reduces impact of volatile connections

11 4 Loose Coupling [Eugster et al. 03] Decoupling communication in Time & Synchronisation reduces impact of volatile connections

12 4 Loose Coupling [Eugster et al. 03] Decoupling communication in Time & Synchronisation reduces impact of volatile connections

13 4 Loose Coupling [Eugster et al. 03] Decoupling communication in Time & Synchronisation reduces impact of volatile connections asynchronous receive

14 5 Loose Coupling Decoupling communication in Space enables ad hoc anonymous collaborations

15 5 Loose Coupling Decoupling communication in Space enables ad hoc anonymous collaborations

16 5 Loose Coupling Decoupling communication in Space enables ad hoc anonymous collaborations provide service

17 5 Loose Coupling Decoupling communication in Space enables ad hoc anonymous collaborations provide service require service

18 Example: music player 6

19 Example: music player 6

20 Example: music player 6

21 6 Example: music player 32% 21%

22 7 AmbientTalk: the language Distributed prototype-based object-oriented language Event-driven concurrency based on actors [Agha86] Future-type asynchronous message sends Built-in publish/subscribe engine for service discovery of remote objects

23 8 AmbientTalk: the project Started in 2005 Small team: 3-6 people Interpreter (not optimised) Pure Java implementation Runs on J2ME/CDC phones

24 9 Objects def Window := object: { def title := Untitled ; def init(t) { title := t; super := ClosedWindow; def show() { super := OpenWindow; Prototypes Delegation Trait composition First-class delegation def OpenWindow := object: { def draw() {... def ClosedWindow := object: { def draw() {... def w := Window.new( Test ); w.draw();

25 10 Extensible language def fac(n) { if: (n = 0) then: { 1 else: { n * fac(n-1)

26 10 Extensible language def fac(n) { if: (n = 0) then: { 1 else: { n * fac(n-1) def Button := jlobby.java.awt.button; def b := Button.new( test ); b.addactionlistener(object: { def actionperformed(ae) { system.println( button pressed ); );

27 10 Extensible language def fac(n) { if: (n = 0) then: { 1 else: { n * fac(n-1) Block closures Keyworded messages Interfacing with JVM Reflection def Button := jlobby.java.awt.button; def b := Button.new( test ); b.addactionlistener(object: { def actionperformed(ae) { system.println( button pressed ); );

28 11 Event loop concurrency Actor Based on E programming language [Miller05] Message queue Event loop

29 11 Event loop concurrency Actor Based on E programming language [Miller05] local object Message queue Event loop

30 11 Event loop concurrency Actor Based on E programming language [Miller05] local object obj.m() obj Message queue Event loop

31 11 Event loop concurrency Actor Based on E programming language [Miller05] local object remote object Message queue Event loop

32 11 Event loop concurrency Actor Based on E programming language [Miller05] local object remote object obj<-m() obj Message queue Event loop

33 11 Event loop concurrency Based on E programming language [Miller05] Actor local object remote object obj<-m() obj Message queue Event loop Actors cannot cause deadlock No race conditions on objects

34 12 Futures def future := mplayer<-numsongsinlibrary() mplayer

35 12 Futures def future := mplayer<-numsongsinlibrary() mplayer

36 12 Futures def future := mplayer<-numsongsinlibrary()? future mplayer

37 12 Futures def future := mplayer<-numsongsinlibrary()? future mplayer

38 12 Futures def future := mplayer<-numsongsinlibrary()? future mplayer

39 12 Futures def future := mplayer<-numsongsinlibrary()? future mplayer when: future becomes: { num system.println( user shares + num + songs. )

40 12 Futures def future := mplayer<-numsongsinlibrary()? future mplayer num when: future becomes: { num system.println( user shares + num + songs. )

41 13 Exporting objects deftype MusicPlayer; def interface := object: { def opensession() {... interface export: interface as: MusicPlayer;

42 13 Exporting objects deftype MusicPlayer; def interface := object: { def opensession() {... interface export: interface as: MusicPlayer;

43 14 Ambient References def mplayerfuture := ambient: MusicPlayer; Initiates service discovery Immediately returns future for object to be discovered

44 14 Ambient References def mplayerfuture := ambient: MusicPlayer;? mplayer Future Initiates service discovery Immediately returns future for object to be discovered

45 15 Ambient References def mplayerfuture := ambient: MusicPlayer; mplayer Future?

46 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future?

47 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future?

48 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future? when: mplayerfuture becomes: { ambientref println( music player found )

49 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future? interface when: mplayerfuture becomes: { ambientref println( music player found )

50 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future? interface ambientref when: mplayerfuture becomes: { ambientref println( music player found )

51 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future? interface ambientref when: mplayerfuture becomes: { ambientref println( music player found )

52 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future? interface ambientref when: mplayerfuture becomes: { ambientref println( music player found )

53 15 Ambient References def mplayerfuture := ambient: MusicPlayer; def sessionfuture := mplayerfuture<-opensession(); mplayer Future? interface ambientref Bound Unbound Connected Disconnected

54 16 Failure handling Event handlers on ambient references: mplayer Future? interface ambientref when: ambientref disconnects: { println( music player disconnected ) when: ambientref reconnects: { println( music player reconnected )

55 16 Failure handling Event handlers on ambient references: mplayer Future? interface ambientref when: ambientref disconnects: { println( music player disconnected ) when: ambientref reconnects: { println( music player reconnected )

56 16 Failure handling Event handlers on ambient references: mplayer Future? interface ambientref when: ambientref disconnects: { println( music player disconnected ) when: ambientref reconnects: { println( music player reconnected )

57 17 Failure Handling Leased references which eventually expire Futures + timeouts when: o<-m()@timeout(minutes(10)) becomes: { v // process return value catch: TimeoutException using: { e // deal with timeout

58 18 Variations Past experiments: ambient omni -references: broadcasting content-based discovery Future experiments: Customisable message delivery guarantees First-class proximity: restrict spatial scope of ambient references

59 19 Lessons Learned AmbientTalk = OO + Events: Block closures as nested event handlers Futures: non-blocking synchronisation Buffered asynchronous messaging abstracts over intermittent connectivity Ambient references: space-decoupled remote object references

60 20 Conclusion MANETs: loosely coupled collaboration AmbientTalk: actor-based OO language Deal with universal MANET characteristics at the language level: Intermittent Connectivity: time & sync-decoupled references Scarce Infrastructure: space-decoupled references

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

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

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

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

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

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

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

AmbientTalk: programming responsive mobile peer-to-peer applications with actors

AmbientTalk: programming responsive mobile peer-to-peer applications with actors AmbientTalk: programming responsive mobile peer-to-peer applications with actors Tom Van Cutsem a,1,, Elisa Gonzalez Boix a,2, Christophe Scholliers a,3, Andoni Lombide Carreton a, Dries Harnie a,2, Kevin

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-Oriented Programming

Ambient-Oriented Programming Ambient-Oriented Programming Designing an Object-Oriented Language for Ambient Intelligence Dr. Éric Tanter University of Chile DCC/CWR etanter@dcc.uchile.cl Presented at the JCC 2005. (c) E. Tanter, All

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

Bringing Scheme Programming to the iphone Experience

Bringing Scheme Programming to the iphone Experience SOFTWARE PRACTICE AND EXPERIENCE Softw. Pract. Exper. 2000; 00:1 7 [Version: 2002/09/23 v2.2] Bringing Scheme Programming to the iphone Experience Engineer Bainomugisha, Jorge Vallejos, Elisa Gonzalez

More information

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI

Programming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Familiarize yourself with all of Kotlin s features with this in-depth guide Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Copyright 2017 Packt Publishing First

More information

Implementing Joins using Extensible Pattern Matching

Implementing Joins using Extensible Pattern Matching Implementing Joins using Extensible Pattern Matching Philipp Haller, EPFL joint work with Tom Van Cutsem, Vrije Universiteit Brussel Introduction Concurrency is indispensable: multi-cores, asynchronous,

More information

Scala Actors. Scalable Multithreading on the JVM. Philipp Haller. Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland

Scala Actors. Scalable Multithreading on the JVM. Philipp Haller. Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland Scala Actors Scalable Multithreading on the JVM Philipp Haller Ph.D. candidate Programming Methods Lab EPFL, Lausanne, Switzerland The free lunch is over! Software is concurrent Interactive applications

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

Orchestrating Nomadic Mashups using Workflows

Orchestrating Nomadic Mashups using Workflows Orchestrating Nomadic Mashups using Workflows Niels Joncheere njonchee@vub.ac.be Eline Philips ephilips@vub.ac.be Wolfgang De Meuter wdmeuter@vub.ac.be Andoni Lombide Carreton alombide@vub.ac.be Software

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

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

Scala : an LLVM-targeted Scala compiler

Scala : an LLVM-targeted Scala compiler Scala : an LLVM-targeted Scala compiler Da Liu, UNI: dl2997 Contents 1 Background 1 2 Introduction 1 3 Project Design 1 4 Language Prototype Features 2 4.1 Language Features........................................

More information

Foundations of object orientation

Foundations of object orientation Foreword Preface List of projects discussed in detail in this book Acknowledgments Part 1 Chapter 1 Chapter 2 Foundations of object orientation Objects and classes 1.1 Objects and classes 1.2 Creating

More information

Programming Safe Agents in Blueprint. Alex Muscar University of Craiova

Programming Safe Agents in Blueprint. Alex Muscar University of Craiova Programming Safe Agents in Blueprint Alex Muscar University of Craiova Programmers are craftsmen, and, as such, they are only as productive as theirs tools allow them to be Introduction Agent Oriented

More information

Shacl: Operational Semantics

Shacl: Operational Semantics Shacl: Operational Semantics Joeri De Koster, Tom Van Cutsem Vrije Universiteit Brussel, Pleinlaan 2, B-1050 Brussels, Belgium 1. Operational semantics In this section we describe the operational semantics

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

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

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

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

A Sense of Time for JavaScript and Node.js

A Sense of Time for JavaScript and Node.js A Sense of Time for JavaScript and Node.js First-Class Timeouts as a Cure for Event Handler Poisoning James C. Davis Eric R. Williamson Dongyoon Lee COMPUTER SCIENCE - 1 - Contributions Attack: Event Handler

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

Introduction to Messaging using JMS

Introduction to Messaging using JMS Introduction to Messaging using JMS Evan Mamas emamas@ca.ibm.com IBM Toronto Lab Outline Basic Concepts API Architecture API Programming Model Advanced features Integration with J2EE Simple applications

More information

A Location Model for Ambient Intelligence

A Location Model for Ambient Intelligence A Location Model for Ambient Intelligence National Institute of Informatics, Japan Email: ichiro@nii.ac.jp Outline 1. Motivation 2. Approach 3. Location Model 4. Design and Implementation 5. Applications

More information

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

An Introduction to Software Architecture By David Garlan & Mary Shaw 94

An Introduction to Software Architecture By David Garlan & Mary Shaw 94 IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion An Introduction to

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

Problems with Concurrency. February 19, 2014

Problems with Concurrency. February 19, 2014 with Concurrency February 19, 2014 s with concurrency interleavings race conditions dead GUI source of s non-determinism deterministic execution model 2 / 30 General ideas Shared variable Access interleavings

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

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

Advances in Programming Languages

Advances in Programming Languages O T Y H Advances in Programming Languages APL5: Further language concurrency mechanisms David Aspinall (including slides by Ian Stark) School of Informatics The University of Edinburgh Tuesday 5th October

More information

Java Programming. Price $ (inc GST)

Java Programming. Price $ (inc GST) 1800 ULEARN (853 276) www.ddls.com.au Java Programming Length 5 days Price $4235.00 (inc GST) Overview Intensive and hands-on, the course emphasizes becoming productive quickly as a Java application developer.

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

Software MEIC. (Lesson 20)

Software MEIC. (Lesson 20) Software Architecture @ MEIC (Lesson 20) Last class C&C styles Multi-tier style Dynamic reconfiguration style Peer-to-Peer style Today C&C styles Publish-subscribe style Service-oriented architecture style

More information

Overview. Elements of Programming Languages. Objects. Self-Reference

Overview. Elements of Programming Languages. Objects. Self-Reference Overview Elements of Programming Languages Lecture 10: James Cheney University of Edinburgh October 23, 2017 Last time: programming in the large Programs, packages/namespaces, importing Modules and interfaces

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

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

An Overview of Scala. Philipp Haller, EPFL. (Lots of things taken from Martin Odersky's Scala talks)

An Overview of Scala. Philipp Haller, EPFL. (Lots of things taken from Martin Odersky's Scala talks) An Overview of Scala Philipp Haller, EPFL (Lots of things taken from Martin Odersky's Scala talks) The Scala Programming Language Unifies functional and object-oriented programming concepts Enables embedding

More information

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none.

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none. Ubiquitous Computing Bhaskar Borthakur University of Illinois at Urbana-Champaign Software Research Group Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none The Event Service

More information

6.001, Fall Semester, 1998 Lecture Notes, October 27 { Object Oriented Programming 2 An environment diagram illustrating +define foo +cons 1 2,, +set-

6.001, Fall Semester, 1998 Lecture Notes, October 27 { Object Oriented Programming 2 An environment diagram illustrating +define foo +cons 1 2,, +set- 1 MASSACHVSETTS INSTITVTE OF TECHNOLOGY Department of Electrical Engineering and Computer Science 6.001 Structure and Interpretation of Computer Programs Fall Semester, 1998 Lecture Notes, October 27 {

More information

CO Java EE 7: Back-End Server Application Development

CO Java EE 7: Back-End Server Application Development CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional

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

Message Queuing Telemetry Transport

Message Queuing Telemetry Transport Message Queuing Telemetry Transport G. Priyanka Reddy B.Tech Student, Sphoorthy Engineering College, Hyderabad. Abstract: Internet of things refers to uniquely identifiable objects and the representation

More information

Reactive Systems. Dave Farley.

Reactive Systems. Dave Farley. Reactive Systems Dave Farley http://www.davefarley.net @davefarley77 Reactive Systems 21st Century Architecture for 21st Century Problems Dave Farley http://www.davefarley.net @davefarley77 http://www.continuous-delivery.co.uk

More information

F6COM: A Case Study in Extending Container Services through Connectors

F6COM: A Case Study in Extending Container Services through Connectors F6COM: A Case Study in Extending Container Services through Connectors Abhishek Dubey, Andy Gokhale, Gabor Karsai, William R. Otte; Vanderbilt University/ISIS Johnny Willemsen; Remedy IT Paul Calabrese,

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Week 13 - Part 1 Thomas Wies New York University Review Last lecture Object Oriented Programming Outline Today: Scala Sources: Programming in Scala, Second

More information

Overview. Elements of Programming Languages. Objects. Self-Reference

Overview. Elements of Programming Languages. Objects. Self-Reference Overview Elements of Programming Languages Lecture 11: James Cheney University of Edinburgh November 3, 2015 Last time: programming in the large Programs, packages/namespaces, importing Modules and interfaces

More information

Mobile Ad-hoc and Sensor Networks Lesson 04 Mobile Ad-hoc Network (MANET) Routing Algorithms Part 1

Mobile Ad-hoc and Sensor Networks Lesson 04 Mobile Ad-hoc Network (MANET) Routing Algorithms Part 1 Mobile Ad-hoc and Sensor Networks Lesson 04 Mobile Ad-hoc Network (MANET) Routing Algorithms Part 1 Oxford University Press 2007. All rights reserved. 1 Ad-hoc networks deployment For routing, target detection,

More information

The Actor Model. Towards Better Concurrency. By: Dror Bereznitsky

The Actor Model. Towards Better Concurrency. By: Dror Bereznitsky The Actor Model Towards Better Concurrency By: Dror Bereznitsky 1 Warning: Code Examples 2 Agenda Agenda The end of Moore law? Shared state concurrency Message passing concurrency Actors on the JVM More

More information

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management Distributed Systems Messaging and JMS 1 Example scenario Scenario: Store inventory is low This impacts multiple departments Inventory Sends a message to the factory when the inventory level for a product

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

Programming mobile peer-to-peer applications with AmbientTalk

Programming mobile peer-to-peer applications with AmbientTalk Programming mobile peer-to-peer applications with AmbientTalk Technical Report VUB-SOFT-TR-13-05 Tom Van Cutsem 1, Elisa Gonzalez Boix 1, Christophe Scholliers 1, Andoni Lombide Carreton 1, Dries Harnie

More information

Using Declarative Models in Multi-device Smart Space

Using Declarative Models in Multi-device Smart Space Using Declarative Models in Multi-device Smart Space Environments Sailesh Sathish 1 2005 Nokia w3cpresentation.ppt / 2007-06-05 / SS Introduction Smart Space What is smart space? Smart space is any smart

More information

Mobile Ad-hoc and Sensor Networks Lesson 05 Mobile Ad-hoc Network (MANET) Routing Algorithms Part 2

Mobile Ad-hoc and Sensor Networks Lesson 05 Mobile Ad-hoc Network (MANET) Routing Algorithms Part 2 Mobile Ad-hoc and Sensor Networks Lesson 05 Mobile Ad-hoc Network (MANET) Routing Algorithms Part 2 Oxford University Press 2007. All rights reserved. 1 Temporally ordered routing algorithm (TORA) A reactive

More information

Today CSCI Remote Method Invocation (RMI) Distributed Objects

Today CSCI Remote Method Invocation (RMI) Distributed Objects Today CSCI 5105 Remote Method Invocation (RMI) Message-oriented communication Stream-oriented communication Instructor: Abhishek Chandra 2 Remote Method Invocation (RMI) RPCs applied to distributed objects

More information

Electronic Payment Systems (1) E-cash

Electronic Payment Systems (1) E-cash Electronic Payment Systems (1) Payment systems based on direct payment between customer and merchant. a) Paying in cash. b) Using a check. c) Using a credit card. Lecture 24, page 1 E-cash The principle

More information

Proactive data replication using semantic information within mobility groups in MANETs

Proactive data replication using semantic information within mobility groups in MANETs Proactive data replication using semantic information within mobility groups in MANETs Hoa Ha Duong & Isabelle Demeure Telecom ParisTech Institut Telecom Mobilware 09 April 28-29 2009 Berlin, Germany page

More information

Grand Central Dispatch and NSOperation. CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015

Grand Central Dispatch and NSOperation. CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015 Grand Central Dispatch and NSOperation CSCI 5828: Foundations of Software Engineering Lecture 28 12/03/2015 1 Credit Where Credit Is Due Most of the examples in this lecture were inspired by example code

More information

A Role-based Use Case Model for Remote Data Acquisition Systems *

A Role-based Use Case Model for Remote Data Acquisition Systems * A Role-based Use Case Model for Remote Acquisition Systems * Txomin Nieva, Alain Wegmann Institute for computer Communications and Applications (ICA), Communication Systems Department (DSC), Swiss Federal

More information

Architectural Models

Architectural Models Architectural Models Dr. Gannouni Sofien Most concepts are drawn from Chapter 2 Pearson Education Some ideas from Chapter 1 Pearson Education Presentation Outline Introduction Architectural Models Software

More information

Domains: Sharing State in the Communicating Event-Loop Actor Model

Domains: Sharing State in the Communicating Event-Loop Actor Model Domains: Sharing State in the Communicating Event-Loop Actor Model Joeri De Koster, Stefan Marr, Tom Van Cutsem, Theo D Hondt To cite this version: Joeri De Koster, Stefan Marr, Tom Van Cutsem, Theo D

More information

IGL S AND MOUNT NS. Taking AKKA to Production

IGL S AND MOUNT NS. Taking AKKA to Production IGL S AND MOUNT NS Taking AKKA to Production THIS TALK Hello! I m Derek Wyatt, Senior Platform Developer at Auvik Networks! and author of Akka Concurrency Scala, Play and Akka form the foundational triad

More information

Vlad Vinogradsky

Vlad Vinogradsky Vlad Vinogradsky vladvino@microsoft.com http://twitter.com/vladvino Commercially available cloud platform offering Billing starts on 02/01/2010 A set of cloud computing services Services can be used together

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

A Comparative Study of Web Services-based Event Notification Specifications

A Comparative Study of Web Services-based Event Notification Specifications A Comparative Study of Web Services-based Event tification Specifications Yi Huang and Dennis Gannon Extreme! Computing Lab Dept. of Computer Science Indiana University Event tification Systems Enable

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie)! Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Writing Concurrent Desktop Applications in an Actor-Based Programming Model

Writing Concurrent Desktop Applications in an Actor-Based Programming Model Writing Concurrent Desktop Applications in an Actor-Based Programming Model Jan Schäfer Arnd Poetzsch-Heffter jschaefer@cs.uni-kl.de University of Kaiserslautern Department of Computer Science Software

More information

Declarative concurrency. March 3, 2014

Declarative concurrency. March 3, 2014 March 3, 2014 (DP) what is declarativeness lists, trees iterative comutation recursive computation (DC) DP and DC in Haskell and other languages 2 / 32 Some quotes What is declarativeness? ness is important

More information

XML Spaces Beyond Web Services

XML Spaces Beyond Web Services XML Spaces Beyond Web Services Patrick Thompson Chief Architect Rogue Wave Software thompson@roguewave.com 2002-03-07 1 XML Tuple Spaces: Summary Secure XML communications over the Internet Primary characteristics:

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 08 09/17/2015 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

MPI Proto: Simulating Distributed Computing in Parallel

MPI Proto: Simulating Distributed Computing in Parallel MPI Proto: Simulating Distributed Computing in Parallel Omari Stephens 1 Introduction MIT class 6.338, Parallel Processing, challenged me to, vaguely, do something with parallel computing. To this end,

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

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

Integration Test Plan. Angry Face Studios

Integration Test Plan. Angry Face Studios Integration Test Plan Angry Face Studios April 9, 2008 Contents 1 Revision History 3 2 Introduction 4 2.1 Scope................................................. 4 2.2 Purpose................................................

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

MICROSERVICES ORCHESTRATIONS WITH BPM. Dr. Marigianna Skouradaki

MICROSERVICES ORCHESTRATIONS WITH BPM. Dr. Marigianna Skouradaki 1 MICROSERVICES ORCHESTRATIONS WITH BPM Dr. Marigianna Skouradaki Microservices To BPM or not to BPM? 2 Source: https://goo.gl/yf951d Source: https://goo.gl/b9y6th Source: https://goo.gl/ypbrkz Source:

More information

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc.

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc. When the Servlet Model Doesn't Serve Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Motivation? Many decision makers and programmers equate Java with servlets? Servlets are appropriate for a class

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

Dynamic Neighbor Positioning In Manet with Protection against Adversarial Attacks

Dynamic Neighbor Positioning In Manet with Protection against Adversarial Attacks International Journal of Computational Engineering Research Vol, 03 Issue, 4 Dynamic Neighbor Positioning In Manet with Protection against Adversarial Attacks 1, K. Priyadharshini, 2, V. Kathiravan, 3,

More information

NOWHERE. Targeted for Personal (Web) agents Supports Knowledge Level (KL) Agents. a Knowledge-Level API Agent Programming Infrastructure 1 06/09/06

NOWHERE. Targeted for Personal (Web) agents Supports Knowledge Level (KL) Agents. a Knowledge-Level API Agent Programming Infrastructure 1 06/09/06 NOWHERE a Knowledge-Level API Agent Programming Infrastructure Targeted for Personal (Web) agents Supports Knowledge Level (KL) Agents 1 06/09/06 KL Agent Properties The programmer does not have to manage

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 02 (version September 5, 2007) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

Lesson 19 Software engineering aspects

Lesson 19 Software engineering aspects Lesson 19 Software engineering aspects Service Oriented Architectures Security Module 4 - Architectures Unit 1 Architectural features Ernesto Damiani Università di Milano SOA is HAD HAD is an old concept

More information

F6 Model-driven Development Kit (F6MDK)

F6 Model-driven Development Kit (F6MDK) F6 Model-driven Development Kit (F6MDK) Gabor Karsai, Abhishek Dubey, Andy Gokhale, William R. Otte, Csanad Szabo; Vanderbilt University/ISIS Alessandro Coglio, Eric Smith; Kestrel Institute Prasanta Bose;

More information

Reaktive Anwendungen mit RxJava. Dr. Michael Menzel

Reaktive Anwendungen mit RxJava. Dr. Michael Menzel Reaktive Anwendungen mit RxJava Dr. Michael Menzel DIGITALIZATION DIGITALIZATION DIGITALIZATION DIGITALIZATION REACTIVE ARCHITECTURES How can we build highly interactive (responsive) systems, which are

More information

Architectural Blueprint

Architectural Blueprint IMPORTANT NOTICE TO STUDENTS These slides are NOT to be used as a replacement for student notes. These slides are sometimes vague and incomplete on purpose to spark a class discussion Architectural Blueprint

More information

Architectural Styles - Finale

Architectural Styles - Finale Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles - Finale Reid Holmes Lecture

More information

Need for synchronization: If threads comprise parts of our software systems, then they must communicate.

Need for synchronization: If threads comprise parts of our software systems, then they must communicate. Thread communication and synchronization There are two main aspects to Outline for Lecture 19 multithreaded programming in Java: I. Thread synchronization. thread lifecycle, and thread synchronization.

More information

Foundational Design Patterns for Moving Beyond One Loop

Foundational Design Patterns for Moving Beyond One Loop Foundational Design Patterns for Moving Beyond One Loop Raja Pillai Technical Consultant Agenda Why move beyond one loop? What is a design pattern? Why learn communication mechanisms? Functional global

More information

Clojure Lisp for the Real clojure.com

Clojure Lisp for the Real clojure.com Clojure Lisp for the Real World @stuartsierra clojure.com Stuart Sierra Relevance, Inc. Clojure/core Clojure contributor Values Values 3 Values 3 + 2 = 5 Values let x = 3 Values let x = 3 let x = 5 Values

More information

Inheritance STL. Entity Component Systems. Scene Graphs. Event Systems

Inheritance STL. Entity Component Systems. Scene Graphs. Event Systems Inheritance STL Entity Component Systems Scene Graphs Event Systems Event Systems Motivation: Decoupling events from where they are sent and where they are processed. It facilitates communication between

More information

Going Reactive. Reactive Microservices based on Vert.x. JavaLand Kristian Kottke

Going Reactive. Reactive Microservices based on Vert.x. JavaLand Kristian Kottke Going Reactive Reactive Microservices based on Vert.x JavaLand Kristian Kottke Whoami Kristian Kottke Lead Software Engineer -> iteratec Interests Software Architecture Big Data Technologies Kristian.Kottke@iteratec.de

More information

High performance publish/subscribe middleware for mobile wireless networks

High performance publish/subscribe middleware for mobile wireless networks Mobile Information Systems 3 (2007) 107 132 107 IOS Press High performance publish/subscribe middleware for mobile wireless networks Umar Farooq, Shikharesh Majumdar and Eric W. Parsons Department of Systems

More information

Anti-Patterns in Progress. Sean Overby Senior Technologist, Solvepoint Corporation

Anti-Patterns in Progress. Sean Overby Senior Technologist, Solvepoint Corporation Anti-Patterns in Progress Sean Overby Senior Technologist, Solvepoint Corporation Overview Patterns are common solutions to common programming problems. Just as there are good solutions and bad solutions

More information