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