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 | 
       
     
   |  
 
Messages and Message Types
As Described in the document Generic VOS Director-Implemented Client
Specification by Fen Labalme and Jason Winshell (pages 6-8) the basic unit
of communication between the client and server is the message, which is
formatted as a lingo property list.  The structure of this property list is
as follows:
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : <string mesage type>,
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
Message Types
Below are set of messageTypes and propery list formats that will be
supported by the Generic Network Architecture.
#setSchema Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : "<schemaName>",
    #messageType : "#setSchema",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<empty body>
    ]
]
#setSchema Example
[
    #priority : 100,
    #timeStamp : 849746804,
    #expiration : "",
    #messageName : "public",
    #messageType : "#setSchema",
    #from : "client@207.88.117.147",
    #recipients : [
		"logd@207.88.117.130"
    ],
    #messageBody : [
    ]
]
#defineQuery Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : "#<queryName>",
    #messageType : "#defineQuery",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	#tableDependencies : [ <list of tables query depends on> ],
    	#queryDefinition: <string parameterized sql query string>
    ]
]
#defineQuery Example
[
    #priority : 100,
    #timeStamp : 849746804,
    #expiration : "",
    #messageName : "#CustomerProfiles",
    #messageType : "#defineQuery",
    #from : "client@207.88.117.147",
    #recipients : [
		"logd@207.88.117.130"
    ],
    #messageBody : [
    	#tableDependencies : [profiles],
    	#queryDefinition : "select * from profiles where CustomerID = $1;"
    ]
]
#undefineQuery Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : "#<queryName>",
    #messageType : "#undefineQuery",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
		<empty body>
    ]
]
#undefineQuery Example
[
    #priority : 100,
    #timeStamp : 849746804,
    #expiration : "",
    #messageName : "#CustomerProfiles",
    #messageType : "#undefineQuery",
    #from : "client@207.88.117.147",
    #recipients : [
		"logd@207.88.117.130"
    ],
    #messageBody : [
    ]
]
#checkDataChanged Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time>,
    #messageName : "#<queryName>",
    #messageType : "#checkDataChanged",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	#lastChecked : <
    	                integer timestamp query was last checked, 0
    	                means it was never checked before 
    	               >,
    	#relationInfo: <
    	                string this is the paramater value for the query,
    	                an empty string means no parameter value
    	               > 
    ]
]
#checkDataChanged Example
[
    #priority : 200,
    #timeStamp : 849746804,
    #expiration : "";,
    #messageName : "#cppUser",
    #messageType : "#checkDataChanged",
    #from : loginApp@207.88.117.147",
    #recipients : [
		"logd@207.88.117.130"
    ],
    #messageBody : [
    	#lastChecked : 849746700,
    	#relationInfo: ""
    ]
]
#checkDataChangedResponse Format
[
    #priority : <integer priority, should be same as associated get #getData>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time>,
    #messageName : "#<queryName>",
    #messageType : "#checkDataChangedResponse",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	 #dataChanged: <"T" or "F">
    ]
]
#checkDataChangedResponse Example
[
    #priority : 200,
    #timeStamp : 849746804,
    #expiration : "",
    #messageName : "cppUser",
    #messageType : "#checkDataChangedResponse",
    #from : "logd@207.88.117.130",
    #recipients : [
        "loginApp@207.88.117.147"
    ],
    #messageBody : [
        #dataChanged : "T"
    ]
]
#getData Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time>,
    #messageName : "#<queryName>",
    #messageType : "#getData",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	#lastChecked : <
    	                integer timestamp query was last checked, 0
    	                means it was never checked before 
    	               >,
    	#relationInfo: <
    	                string this is the paramater value for the query,
    	                an empty string means no parameter value
    	               > 
    ]
]
#getData Example
[
    #priority : 200,
    #timeStamp : 849746804,
    #expiration : "";,
    #messageName : "#cppUser",
    #messageType : "#getData",
    #from : loginApp@207.88.117.147",
    #recipients : [
		"logd@207.88.117.130"
    ],
    #messageBody : [
    	#lastChecked : 849746700,
    	#relationInfo: ""
    ]
]
#getDataResponse Format
[
    #priority : <integer priority, should be same as associated get #getData>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time>,
    #messageName : "#<queryName>",
    #messageType : "#getDataResponse",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	 #dataChanged: <"T" or "F">,
    	 #columnNames: [ <list of column names for query> ],
    	 #records: [ <list of lists of records, one list per record >]
    ]
]
#getDataResponse Example
[
    #priority : 200,
    #timeStamp : 849746804,
    #expiration : "",
    #messageName : "cppUser",
    #messageType : "#getDataResponse",
    #from : "logd@207.88.117.130",
    #recipients : [
        "loginApp@207.88.117.147"
    ],
    #messageBody : [
        #dataChanged : "T",
        #columnNames : [
            "ProfileID",
            "CustomerID",
            "CreateDate",
            "LastModified",
            "AvatarName",
            "AvatarPasswd",
            "AvatarImage",
            "AvatarImageType",
            "MusicPrefsID",
            "VideoPrefsID",
            "ArtPrefsID",
            "FoodPrefsID"
        ],
        #records : [
            [
                "0",
                "1088",
                "12/2/96",
                "12/2/96",
                "BGP VP",
                "",
                "bob1.pic",
                "PICT",
                "",
                "",
                "",
                ""
            ],
            [
                "0",
                "1089",
                "12/2/96",
                "12/2/96",
                "Tim",
                "",
                "Tim1.pic",
                "PICT",
                "",
                "",
                "",
                ""
            ]
        ]
    ]
]
#setData Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time>,
    #messageName : "#<verbName>",
    #messageType : "#setData",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list set data verb>
    ]
]
#setData Example
[
    #priority : 100,
    #timeStamp : 849746804,
    #expiration : "12/04/96 17:00:00",
    #messageName : "#login",
    #messageType : "#setData",
    #from : "loginApp@207.88.117.147",
    #recipients : [
		"logd@207.88.117.130"
    ],
    #messageBody : [
    	#customerName: "Jeanne",
    	#customerPasswd: "Rich"
    ]
]
 
Message Types that Still Need to be Defined
Below are a list of message type that still need to be defined.  
The general format is presented, but the #messageName and #messageBody
will be completed when more information becomes available.
#stationInit Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#stationInit",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#stationTerminate Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#stationTerminate",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#clientInit Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#clientInit",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#clientTerminate Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#clientTerminate",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#interestExpress Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#interestExpress",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#interestWithdraw Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#interestWithdraw",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#checkInterest Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#checkInterest",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#checkInterestResponse Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#checkInterestResponse",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#getInterest Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#getInterest",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#getInterestResponse Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#getInterestResponse",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#systemMessage Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#systemMessage",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#clientMessage Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#clientMessage",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#userMessage Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#userMessage",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
#imAlive Format
[
    #priority : <integer priority>,
    #timeStamp : <integer server stamped time in seconds>,
    #expiration : <string date & time, if empty string no expiration>,
    #messageName : <string message name>,
    #messageType : "#imAlive",
    #from : <string user@machineIPAddr>,
    #recipients : [
		<list of users@machineIPAddr>
    ],
    #messageBody : [
    	<property list containing message body>
    ]
]
 
 |