Tuesday, October 13, 2009

Calling the cloud: Enabling mobile phones as interfaces to cloud applications

http://people.inf.ethz.ch/oriva/pubs/riva_middleware09.pdf

Sweet Home 3D App: http://www.sweethome3d.eu/download.jsp

The discussion is that the applications are executed either on the mobile phones or on the server. However, there is a need to split the application between the two.

Application profiling is done by providing a consumption graph.

Measured parameters:
  • The consumed memory
  • The data traffic generated both in input and output
  • The code size
The consider the amount of transferred data as the major factor in creating the consumption graph.

Problems with the approach:
  • The instrumentation is done manually which requires access to the source code for the bundles
  • The focus is only on the user interface because they are considered as more suitable resources to be moved to the cloud
  • Also they argue that the hardware requirements vary from phone to phone and thats why they are filtering that parameter of CPU usage out. And thus, the bundles CPU cost is omitted.
  • The developer marks bundles as movable and nonmovable. What is the reason for a developer to classify bundles as movable and nonmovable? how do you know that the classification is correct and that it works properly?
  • They have assumed that every bundle exposes only one service and not more. So, the application does not work with more services
In the consumption graph, every vertex is a bundle and every edge is a service dependency.

Bundle Characteristics:
  • type: movable or nonmovable
  • memory consumption
  • code_size
  • in: the amount of input data to a bundle B
  • out: the amount of data sent out of a bundle B
The modularity considered is at the functional level and not at the class or function level. But whether there is better approach to think of modularity is another problem that potentially shoudl be addressed.

The distribution happens only between two nodes and not more.

The optimal cut maximizes or minimizes an objective function and satisfies a phone's resource constraints.

  • k: bundles running on the mobile device
  • t: bundles on the mobile device with dependency to bundles on the server
  • alpha: the bandwidth
  • fij: how many times communication between the two bundles happens!!! (weird idea)
  • beta: the capacity of the coomunication link + the installation overhead! ( How does it reflect on the installation overhead when it is a completely client dependent parameter!)
  • also the proxy cost represents how much effort is required for the proxies to be created in order for the proper communication to happen between the client and the server

No comments: