Date post: | 03-Jan-2016 |
Category: |
Documents |
Upload: | dolan-poole |
View: | 15 times |
Download: | 1 times |
Christian Devalez
(Thursday 20 April 2023)
Mobility and Progressive Application Streaming
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
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
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (4)
Trends that lead to mobile code
Informationoverload
The amount of information on the internet continues
to grow
Diversificationof users
The number and the
different types of users grows
steadily
Personalisationof 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
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (5)
Trends that lead to mobile code
Disconnectedoperation
Limited bandwidth
Mobileusers
Personalisationof 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...
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (6)
Trends that lead to mobile code
Impossible to saveeverything on the server
Sending mobile codeto the server
Sending mobile codeto 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
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!
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?
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
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (10)
Progressive Application Streaming
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
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (12)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (13)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (14)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (15)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (16)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (17)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (18)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (19)
BitTorrent
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (20)
BitTorrent
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?
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?
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
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (24)
Dynamic
5
4
6
3
2
7
1
Sending parts with high coupling together
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (25)
Dynamic
5
4
6
3
2
1
Divide big elements in smaller parts
7b7a
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
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?
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (28)
Static
Parent
inheritedMethod()
Child Child
Using Reverse Refactoring
Christian Devalez, Vrije Universiteit Brussel, Programming Technology Lab, Belgium (29)
Static
Child
inheritedMethod()
Child
inheritedMethod()
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
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
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?
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