| A Vision for Open Hypermedia Systems | Nürnberg and Leggett |
# These are the target classes. A program may belong to more than one class.
TARGET server
TARGET client
TARGET all
# These are the types not provided intrinsically
TYPE locspec_t STRUCTURE (
ContentType : NTstring;
Content : NTstring;
Count : NTstring;
ReverseCount : NTstring;
Name : NTstring;
Script : NTstring;
);
TYPE locspec_1d DYNAMIC 1 DIMENSION ARRAY OF locspec_t;
# The services
# These are the server-initiated calls
SEQUENCE LaunchDocument server
MESSAGE LaunchDocument server -> client
{
DocumentName : NTstring;
ReadOnly : boolean;
DocumentNickname : NTstring;
DocumentType : NTstring;
DataCallback : boolean;
Channel : integer;
};
SEQUENCE DisplayAnchor server
MESSAGE DisplayAnchor server -> client
{
AnchorId : id_t;
Presentation : NTstring;
Channel : integer;
};
SEQUENCE DisplayLocSpec server
MESSAGE DisplayLocSpec server -> client
{
LocSpec : locspec_t;
Presentation : NTstring;
Channel : integer;
};
SEQUENCE Interpret server
MESSAGE Interpret server -> client
{
ScriptType : BTstring;
Data : NTstring;
Channel : integer;
};
SEQUENCE CloseNode server
MESSAGE CloseNode server -> client
{
UpdateNode : boolean;
Channel : integer;
};
MESSAGE UpdateAnchors client -> server
{
num_anchs : integer;
AnchorIds_ids : id_1d[num_ancs];
LocSpecs : locspec_1d[num_ancs];
Directions : NTstring_1d[num_ancs];
Presentations : NTstring_1d[num_ancs];
Services : NTstring_1d[num_ancs];
Channel : integer;
};
# These are client-initiated calls
SEQUENCE CouldntFindThisMessage client
MESSAGE CouldntFindThisMessage client -> server
{
Channel : integer;
};
MESSAGE HeresNewAnchor server -> client
{
AnchorId : id_t;
LocSpec : locspec_t;
Direction : NTstring;
Presentation : NTstring;
Service : NTstring;
Channel : integer;
};
SEQUENCE GetNode client
MESSAGE GetNode client -> server
{
DocumentName : NTstring;
Channel : integer;
};
MESSAGE HeresDocument server -> client
{
Data : NTstring;
Channel : integer;
};
SEQUENCE GetServices client
MESSAGE GetServices client -> server
{
Channel : integer;
};
MESSAGE HeresServices server -> client
{
num_items : integer;
Menuitems : NTstring_1d[num_items];
Services : NTstring_1d[num_items];
Channel : integer;
};
SEQUENCE GetAnchorTable client
MESSAGE GetAnchorTable client -> server
{
Channel : integer;
};
MESSAGE HeresAnchorTable server -> client
{
num_items : integer;
LocSpecs : locspec_1d[num_items];
Directions : NTstring_1d[num_items];
Presentations : NTstring_1d[num_items];
Services : NTstring_1d[num_items];
Channel : integer;
};
SEQUENCE CreateNode client
MESSAGE CreateNode client -> server
{
DocumentName : NTstring;
DocumentType : NTstring;
};
MESSAGE HeresNewChannel server -> client
{
SendDocument : boolean;
DocumentNickname : NTstring;
Channel : integer;
};
SEQUENCE GetAnchorTable client
MESSAGE GetAnchorTable client -> server
{
num_items : integer;
LocSpecs : locspec_1d[num_items];
Directions : NTstring_1d[num_items];
Presentations : NTstring_1d[num_items];
Services : NTstring_1d[num_items];
Channel : integer;
};
SEQUENCE UpdateNode client
MESSAGE UpdateNode client -> server
{
DocumentType : NTstring;
Date : NTstring;
Channel : integer;
};
SEQUENCE Closing client
MESSAGE Closing client -> server
{
Channel : integer;
};
SEQUENCE RequestService client
MESSAGE RequestService client -> server
{
Service : NTstring;
AnchorID : id_t;
LocSpec : locspec_t;
Presentation : NTstring;
Channel : integer;
};
# These are the "bi-directional" messages
SEQUENCE Error all
MESSAGE Error all -> all
{
Subject : NTstring;
Message : NTstring;
Channel : integer;
};
SEQUENCE Other all
MESSAGE Other all -> all
{
num_tags : integer;
tag_names : NTstring_1d[num_tags];
tag_vals : NTstring_1d[num_tags];
Channel : integer;
};
Contents
Top
1. Introduction
2. Scope of the OHSWG...
3. Scenarios...
4. An OHS Reference Architecture Proposal...
5. An OHP Proposal...
6. Metacommentary
7. Conclusions
References
Appendix A. Generic Encoding Layer Rules
Appendix B. Sproc Generic Layer Rules
Appendix C. Sproc Specific Layer Rules
Appendix D. Sproc Interface Format
Appendix E. Current Protocol Proposal in Sproc Interface Format
Peter J. Nürnberg, John J. Leggett