mobility and progressive application streaming

33
Christian Devalez (Sunday 3 July 2022) Mobility and Progressive Application Streaming

Upload: dolan-poole

Post on 03-Jan-2016

16 views

Category:

Documents


1 download

DESCRIPTION

Mobility and Progressive Application Streaming. Contents. Mobile code in Ambient Intelligence Trends that lead to mobile code Technical difficulties Progressive application streaming Interesting research topics Speculations Conclusions. Mobile code in Ambient Intelligence. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Mobility and Progressive Application Streaming

Christian Devalez

(Thursday 20 April 2023)

Mobility and Progressive Application Streaming

Page 2: 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

Page 3: Mobility and Progressive Application Streaming

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

Page 4: Mobility and Progressive Application Streaming

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

Page 5: Mobility and Progressive Application Streaming

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...

Page 6: Mobility and Progressive Application Streaming

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

Page 7: Mobility and Progressive Application Streaming

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!

Page 8: Mobility and Progressive Application Streaming

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?

Page 9: Mobility and Progressive Application Streaming

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

Page 10: Mobility and Progressive Application Streaming

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

Progressive Application Streaming

Page 11: Mobility and 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

Page 12: Mobility and Progressive Application Streaming

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

BitTorrent

Page 13: Mobility and Progressive Application Streaming

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

BitTorrent

Page 14: Mobility and Progressive Application Streaming

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

BitTorrent

Page 15: Mobility and Progressive Application Streaming

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

BitTorrent

Page 16: Mobility and Progressive Application Streaming

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

BitTorrent

Page 17: Mobility and Progressive Application Streaming

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

BitTorrent

Page 18: Mobility and Progressive Application Streaming

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

BitTorrent

Page 19: Mobility and Progressive Application Streaming

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

BitTorrent

Page 20: Mobility and Progressive Application Streaming

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

BitTorrent

Page 21: Mobility and Progressive Application Streaming

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?

Page 22: Mobility and Progressive Application Streaming

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?

Page 23: Mobility and Progressive Application Streaming

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

Page 24: Mobility and Progressive Application Streaming

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

Dynamic

5

4

6

3

2

7

1

Sending parts with high coupling together

Page 25: Mobility and Progressive Application Streaming

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

Dynamic

5

4

6

3

2

1

Divide big elements in smaller parts

7b7a

Page 26: Mobility and Progressive Application Streaming

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

Page 27: Mobility and Progressive Application Streaming

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?

Page 28: Mobility and Progressive Application Streaming

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

Static

Parent

inheritedMethod()

Child Child

Using Reverse Refactoring

Page 29: Mobility and Progressive Application Streaming

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

Static

Child

inheritedMethod()

Child

inheritedMethod()

Page 30: Mobility and Progressive Application Streaming

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

Page 31: Mobility and Progressive Application Streaming

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

Page 32: Mobility and Progressive Application Streaming

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?

Page 33: Mobility and Progressive Application Streaming

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