wiki:PRO_LIB_REMOTE_OBJECTS_R0
Last modified 16 years ago Last modified on 03/07/09 00:54:39

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=PRO_LIB_REMOTE_OBJECTS_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

Remote objects are those that are stored on a server. A book is a remote object, as is an image. Sophie needs to be able to handle local and remote objects equally.

Load times are important. For example, if a timeline is told to play, it needs to know that all objects are usable in some state before the timeline can be started. Along these lines, if the timeline changes a page and the page is not loaded, the timeline needs to pause until the page is load, or continue in a non-blocked manner.

This is one example of how remote objects need to either report their loading status, or block a semaphore so that other objects can block until the loading is done, OR remote objects need to degrade gracefully if not fully loaded (although I don't see how this can happen)

Task requirements

  • Define how remote objects will work in Sophie
  • Define how different types of remote objects might be loaded (a movie on a website not connected with Sophie)
  • Define how the loading protocol will work, such that other systems can block until loading is complete

Task result

The result of this task is code

Implementation idea

  • There may be many different ways to load remote objects, but PRO_LIB cannot use it's own extensions system, so there might need to be a new registration API
  • Remote objects may go through the change server to load, which would also allow for caching

How to demo

Show how to store and retrieve an object from the server.

Design

(Describe your design here.)

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

desc("deal with remote objects somehow ")

connectors between client and server, modularity relies on the prolib, so the prolib cannot use extensions and extension points. So the connections should not be attached by extension points but some other mechanism, such as registerConnection API

Resources interface called remoteEntity? Styles, images, immutuable objects will be serialized because they are small, remote objects on the other hand are managed with the change server, each has an identifier.