Essentials:
Home
Definition
Requirements
Company
Background:
History
1981 - NewsPeek
1983 - GIN
1989 - SmarTV
1992 - GenMagic
1994 - CDML
1994 - Social Ads
1996 - Venue OS
1999 - Lumeria
Venue OS:
DBMS
Communications
Message Types
Verbs
Events
Examples
Venue Cash Card
Broadcatch
|
|
|
The History Behind Broadcatch -
VOS |
|
Generic Object Communications
(rev. 0.1, 11/22/96)
This should be updated...
Communications
Messages & Notifications
Characteristics
- bi-directional
- asynchronous (non-blocking)
- lightweight (ASCII)
Types
- Identification (Machine, AppName, etc...)
- Interest Registration (insert, update, delete)
- setSchemaName( schemaName )
- User Notification
- Application Notification
Message Structure
#Priority -- number >= 0
#TimeStamp -- creation time of the message
#Expiration -- expiration date of the message (0 -> never expires)
#MessageType -- TBD (from a well-known list)
#MessageBody -- TBD (open-ended; a propertyList)
#Recipients -- optional propertyList; [profile/appName]@machineAddr
Characteristics
- bi-directional
- synchronous (blocking)
- can be binary
Types
- getAppStyleTemplate
- getReferenceToStationObject
- getData
Station Class
- Msg: Identification (Machine, etc...)
- D/T: createStationObject (all generic data for apps)
Client Application Initialization Process
Base Class Initialization
- put getReferenceToStationObject into pStation
- put initializeConnection into pConnection
- Msg: setSchema( schemaName )
- Msg: Identification (AppName, etc...)
- D/T: put getAppStyleTemplate(AppName) into
pAppStyle
- Msg: Interest Registration (non-app-specific default messages
e.g., non-blocking system messages)
- pMessageHandler will point to a generic, possibly ugly,
default message handler that clients may override using
setMessageHandler
Base Class Methods
- sendMessage(propertyList)
Sub-Class Initialization
- Customize UI according to pAppStyle
- Msg: Interest Registration (app-specific)
- startMovie (perform app-specific initializations)
Sub-Class Destructor
- write userPreferences for any logged-on users
Base Class Destructor
- send terminateApplication(AppName) -- unregisters Interests, kill
app-specific message, etc...
Client Application onIdle Loop
- checkForMessagesStart(minPriority) -- returns a message as a
propertyList (or void)
- checkForMessagesNext -- returns next message propertyList (or void)
- checkForMessagesEnd -- prematurely terminate the iterator
Message Types
Interest Registration Enumerations (the message body)
[#onTableChange : tableName]
[#onQueryChange : query] -- under consideration
Connection Class: pConnection
[#connectionType : string ] -- RAW, FTP, etc...
[#port : integer ] --
[#hostAddress : ipNumber ] --
[#socket : sockaddr_in ] -- the handle used for reading and writing
...
Private Methods of pConnection
bind
connect
accept
close
put onSend(message) into cookie
put onRecv(cookie) into message
|