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>
    ]
]
   Copyright © 1994-2007, Fen Labalme and CoMedia Consulting. All Rights Reserved.
Broadcatch is built on the OpenPrivacy Platform
I wish this
site were
Drupal Strategy and Consulting
This Site Supports Free Speech