UGP / DPON specification

 

An idea is to make a specification that will allow other people/vendors to write a DPON-capable client.

 

The specification will need to contain:

 

  • The wire protocol.
  • A bytecode specification.
  • An API specification.
  • ...?

 

The target audiences would be: client authors, replication algorithm developers, developers using the APIs. Perhaps it would be better to make several interrelated specifications, such as:

 

 

  • SecureSqueak developer's guide: ANSI Smalltalk, Namespaces, Dominions, Canvas and events, exception handling.
  • UGP developer's guide: Implementing replication algorithms, message capture, key management, ...
  • UGP implementer's guide: wire protocol, implementations of core rep algs, bytecode format. This would include the minimum information needed to make a client which can load more replication algorithms over the network and use them.

 

 

The wire protocol.

 

This is currently based on DPON's own implementation.

 

  • Packet format.
  • VAT ID generation.
  • Mapping object numbers to objects; common languages between vats.
  • Base replication algorithms - the minimum needed to load bytecodes and execute them.
  • * The stupid repalgs: TrueRepAlg, FalseRepAlg, NilRepAlg, etc.
  • * Rep algs and serialization methods for for SmallInteger, String, Symbol, Float, Association, Array, Dictionary, ...
  • * Package, Namespace, Class, MethodDictionary rep algs.

 

The bytecode specification

 

  • The bytecodes and basic allowable primitives.
  • How the bytecode verifier should work (optional?).

 

The API specification

 

  • APIs for Kernel, Collections, Networking, DPON basics.
  • APIs for canvas, events.
  • Namespaces, packages and associated Repalgs.
  • Dominion APIs.
  • Exception handling.
  • Message capture.
  • Replication algorithm implementations, methods available.

 

Also, initial dominion setting recommendations should be made.

 

The user interface, navigation, etc is implemented in bytecodes and doesn't need to be in the specification.

 

A later version of the specification would specify APIs for sound, 3-D graphics, printers, files, etc.

 


Page Information

  • 6 months ago [history]
  • View page source
  • You're not logged in
  • No tags yet learn more

Wiki Information

Recent PBwiki Blog Posts