| 
 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
 |