Presentation is loading. Please wait.

Presentation is loading. Please wait.

Christian Devalez (Sunday, 19 April 2015) Mobility and Progressive Application Streaming.

Similar presentations


Presentation on theme: "Christian Devalez (Sunday, 19 April 2015) Mobility and Progressive Application Streaming."— Presentation transcript:

1 Christian Devalez (Sunday, 19 April 2015) Mobility and Progressive Application Streaming

2 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (2) Contents  Mobile code in Ambient Intelligence  Trends that lead to mobile code  Technical difficulties  Progressive application streaming  Interesting research topics  Speculations  Conclusions

3 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (3) Mobile code in Ambient Intelligence  In Ambient Intelligence  The location of the user changes  Software must adapt to the device/environment  Software must adapt to the available resources  Not all software is available beforehand  Connections can be disconnected  Software must be available for a lot of users at the same time  Services/software or parts of services/software have to migrate between different devices

4 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (4) Trends that lead to mobile code Information overload The amount of information on the internet continues to grow Diversification of users The number and the different types of users grows steadily Personalisation of information No uniform interface for information, but personalised presentation and access Complex filtering, metasearch etc. Complex techniques for searching and organising information Personalisation of the server A lot of websites allready provide personalised access to information Personalisation of proxy sites Interpose between a user and one or more Internet Services to reduce information overload

5 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (5) Trends that lead to mobile code Disconnected operation Limited bandwidth Mobile users Personalisation of the proxy sites There is still a big difference between backbones and client networks Avoid large transfers More and more users are on the move while using their devices Sending lots of information over a limited bandwidth takes too long...

6 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (6) Trends that lead to mobile code Impossible to save everything on the server Sending mobile code to the server Sending mobile code to the user Servers cannot keep up with requests from the users, and users want to use the same information filtering on different servers Mobile code becomes a necessity: some personalisation and services do not work with disconnections (e.g. monitoring) Dynamically install client software for optimal interaction

7 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (7) Trends that lead to mobile code  From:  David Kotz and Robert S. Gray. Mobile code: The future of the Internet. In Proceedings of the Workshop “Mobile Agents in the Context of Competition and Cooperation (MAC3)" at Autonomous Agents '99, pages 6-12, Seattle, Washington, USA, May 1999  In Ambient Intelligence we need more than just personalisation of services!

8 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (8) Technical difficulties  How to start the code as fast as possible when arriving at the user?  How to avoid to migrate large pieces of code at the same time?  How to avoid network overload with large numbers of simultaneous users?  How to get “something” to a user that only connects for a short time?

9 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (9) Progressive Application Streaming  Can be compared to audio and videostreaming  Start to play as soon as a first part arrives  Everyone can connect to a stream, whenever they want  Code is divided in parts  Parts start as soon as they arrive and as fast as possible  Load the following parts in parallel  “Something” happens, even if not all the code has been transferred  Repeating important parts in the stream (to solve dependency problems)  New form of mobile code, using a push model / broadcasting

10 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (10) Progressive Application Streaming

11 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (11) Broadcasting  Using cable: e.g. interactive television  Wireless: e.g. shopping center  Network: using multicasting  Usually not supported on the network  Can be simulated using peer to peer filesharing techniques (e.g. Bittorrent)  Following animation shows how peer to peer techniques avoid server overload

12 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (12) BitTorrent

13 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (13) BitTorrent

14 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (14) BitTorrent

15 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (15) BitTorrent

16 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (16) BitTorrent

17 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (17) BitTorrent

18 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (18) BitTorrent

19 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (19) BitTorrent

20 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (20) BitTorrent

21 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (21) Interesting research topics  What do we send, and when?  Classes/objects, methods, features, components?  Do we have to implement them specifically?  How do we divide an existing program in parts?  How much do we put in a part?  How do we make software progressive?

22 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (22) Dynamic 5 4 6 3 2 7 1 What is used first? What are the dependencies?

23 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (23) Dynamic 5 4 6 3 2 7 Send the GUI first, then progressively add functionality Frame

24 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (24) Dynamic 5 4 6 3 2 7 1 Sending parts with high coupling together

25 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (25) Dynamic 5 4 6 3 2 1 Divide big elements in smaller parts 7b7a

26 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (26) Parallelisation of code 5 4 6 3 2 7 1 Asynchronous method calls and communication

27 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (27) Putting into a stream 5 4 6 3 2 7 1 How to map the parts onto a repeating stream? Which one are important?

28 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (28) Static Parent inheritedMethod() Child Using Reverse Refactoring

29 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (29) Static Child inheritedMethod() Child inheritedMethod()

30 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (30) Feature extraction - Aspects  Detecting aspects in programs, for example:  Logging code everywhere in the program  Extract logging code into an aspect  Send the logging aspect together with the first part of the program  That part can immediately use the aspect code, and the aspect code will be available when the following parts arrive

31 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (31) Discovering patterns  Just as with design patterns, discovering “migration patterns”  Searching for repeating patterns in code, for which a standard transformation applies  Using optimising compiler techniques based on certain patterns to optimise streaming  Looking for a middleroad between “good” and “bad” code to have better migration conditions

32 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (32) Other research topics  What to do when migration gets interrupted?  How to react when a part arrives/disappears?  How to coordinate parts at arrival?  How do we know which part can start immediately? Does it have dependencies?  How to react on new versions of software using older parts? How do we react on new parts?  How do we know we can delete a part from the device?

33 Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (33) Conclusions  Mobile code is necessary in an Ambient Intelligence environment  New mobile code technique using push model / broadcasting  Progressive Application Streaming gets code to the user as fast as possible, avoids overload on the network and large transfers  Need for models/techniques/patterns for creating programs or dividing programs into parts  Need for a platform to coordinate and react to migrated parts of a program


Download ppt "Christian Devalez (Sunday, 19 April 2015) Mobility and Progressive Application Streaming."

Similar presentations


Ads by Google