AwareCon - ConCom 

(back to Particle Computer Docu Home)
                    

 

What is Concom?

ConCom is a way to express and communicate information, especially context, in a way that is similar to a naturally spoken language. ConCom uses sentences with a subject and attributes in its structure to represent and organize the transport of context and data. ConCom works connectionless and without addressing and forms an efficient way to exchange information in ubiquitous computing environments. Find a technical paper on ConCom here

Why do I need to understand ConCom?

ConCom is used in the AwareCon protocol and forms the basis of communication of data in the particle computer wireless network. It is as well the essential basis for data communication in all other software and tools surrounding the particle computer platform like OTAP, ParticleAnalyzer, XBridge..

What is the structure of ConCom?

In ConCom, context or data is represented in a manner comparable to naturally spoken language. The organization of data traffic is not based on end-to-end connections, but is based on the use of sentences to transport information between communication partners. The ConCom sentence is the basic element of the communication language. If an instance of the ConCom network wants to transmit data, a sentence has to be built, that follows the typical structure of this sentence specification.

How does a Sentence of ConCom look like?

A sentence in ConCom always begins with a subject. This subject is a logical identifier for the originator of the transmitted data. In our settings subjects normally refer to devices such as thermometers or PDAs or simpler everyday objects like pens and coffee cups.

The subject is followed by an arbitrary number of attributes – separated by commas – that all correspond to the subject. 

These attributes represent context information. We understand “context” here as the properties of the subject or actions taking place with which the subject involved. The number of attributes is generally not limited but all attributes have to be and are assumed related to the subject. An attribute descriptor is stated with or without an additional attribute value i.e. the value and descriptor are synonymous. All 

ConCom sentences are terminated with a full stop, allowing the beginning of a new sentence. 

 

Example of a ConCom sentence

To explain the construction and consumption of these sentences, the figure depicts a simple example of a communication in the AwareOffice. The pen (Stylograph 2000) communicates information about itself into the environment. The sentence would e.g. consist of the following parts:

Therefore the sentence would look like this:

I am a Stylograph 2000, my color is black, someone is writing with me.”

 

How is ConCom used for the communication?

 

 

The communication is generally based on a broadcast-and- subscribe mechanism and is connectionless.The ConCom sentence structure helps the instances of the network to filter the broadcasted messages. All messages in the ConCom protocol are broadcasted to all available network instances in the target cell(s). In order for each receiver instance to filter relevant data, each maintains a local subscription list containing its “subjects of interest”. This subscription list is controlled by the application running on the respective device. All traffic on the network is received by each network instance and all the received sentences are filtered based on the local subscriptions. That is, only sentences with subjects contained in the subscription list are kept, while the others are discarded

 

How is ConCom implemented in AwareCon and the particle computer software?

The payload data in the ACL layer of AwareCon is organized like defined by the ConCom language. One LL packet (one packet on the particle network) always represents one sentence.

Then, the sentence structure would look like this:

"subject, attribute, attribute." -> "(tuple)(tuple)(tuple)". (the first tuple is the subject, the others are attributes)

 

How does a tuple look like generally?

A tuple consist of 2 byte data type, one byte length and n byte data:

tuple=(TTLD)

where TT is the 2byte type, L is the length of the data field and D.... is the data. There may be no data in a tuple - then the datafield contains 0 or several data bytes - this depends on the type specification.

The two byte data type descriptor TT can be interpreted to 3 characters. A software tool (3_2coding.exe) running under windows can show the full names. These descriptors are meaningful and build the basis for common understanding between Particle Computers and other type of programs running AwareCon. A list of meaningful names can be found here.

The first tuple in a list of tuples as shown above has a special meaning. It declares the subject of the packet and must therefore be of the class artefact (see types). Every packet has to carry a subject. It explains the originator of the packet. A packet would look e.g. like this:

"(AMC)(ITE37)" or in byte: (104,130,0)(117,190,1,37): “Artefact Mediacup, Context Internal Temperature, 37 degree centigrade”

telling you that a cup has detected a internal temperature for the liquid of 37 degree - perfect to have a hot cup of tea now.

 

How can I use all this when programming the particle computers?

All the software for particle computers have implemented the ConCom language.

The ACL layer of the particle computers provide function for the