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
 
 |