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.
Comments (0)
You don't have permission to comment on this page.