Communication Objects define data structures that are communicated through services between components. The definition of communication objects requires primitive data types such as Int, Double, String, etc. and complex data types (i.e. composed data types). The figure below shows a simple metamodel of communication objects. A fully fledged communication objects modeling language that conforms to this metamodel is the SmartSoft communication object DSL.
Typically, communication middlewares such as e.g. CORBA or DDS provide an Interface Definition Language (IDL) that allows specification of communication structures. RobMoSys requires a middleware-independent language. The SmartSoft communication object DSL provides a fully fledged Xtext-based language that is compliant to the metamodel in the figure above and that can be used already now for the definition of services.
At some point the communication object needs to be serialized (i.e. marshalled) into a middleware-specific representation. The following references provide details for how this can be achieved for a CORBA-based and a message-based middlewares: