Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Titan » Support for MongoDB(TITAN protocol module of mongoDB wire protocol)
Support for MongoDB [message #1769509] Tue, 01 August 2017 07:35
Krisztian Gulyas is currently offline Krisztian GulyasFriend
Messages: 1
Registered: July 2017
Junior Member
Dear forum members,

MongoDB is a NoSQL document database that has been enthusiastically embraced by the IoT community. Support for MongoDB in Titan comes in various forms: BSON serialization of JSON documents (see this forum link) and the MongoDB protocol module (, to be used together with a TCP/TLS transport, e.g. the IPL4 test port, representing an implementation of the MongoDB wire protocol.

Design considerations

The MongoDB Wire Protocol is a simple socket-based, request-response style protocol. Clients communicate with the database server through a regular TCP/IP socket. Hence MongoDB protocol has been implemented as a protocol module on the top of the TITAN TCP communication infrastructure.

Implementation details


  • Basic type definitions and its binary/octet representation (RAW encoding)
  • OP_CODE definition
  • Message header definition
  • Insert, Update, Query, Delete, Get More, Kill Cursor, Reply, Command and Command Reply message definitions
  • A generic message type (Msg) as the union of all possible message types


  • MsgLen helper function for TCP layer to provide the proper length of the
    corresponding message
  • bsonStream2json function to extract json messages from the BSON stream (more BSON documents)

Test suite

You can test MongoDB communication with the simple test example defined in the src/ProtocolModules/MongoDB/demo folder:

This demo uses IPL4asp TITAN module for TCP communication:

SimpleTCP.ttcn: additional encapsulation object for more convenient usage of IPL4asp (send/receive data over the TCP layer)


  • template definitions for messages and reply messages
  • simple send/(receive) test for various MongoDB messages
  • using the functionality of the new bson/json converter

Content of the folders:
- (LINUX): creates symbolic links for source files linked from src/
- Makefile (LINUX)
- ProtocolModules: MongoDB definitions and demo folder
- TestPort: IPL4asp and Socket_API definitions for TCP communication

- building folder


mongoDB access (local or remote):

Prepare your TTCN MongoDB test

unpack file, then create symbolic links with:
> cd MongoDBTest/bin
> ../src/install.script

set up your mongoDB connection parameters (host/port) in mongoDB.cfg file:
  // Local TCP connection address
  LocalTCPConnection := { "", 3000 };

  // Remote TCP connection address (mongoDB database)
  RemoteTCPConnection := { "", 27017 };

Build and run test(s)
> make
> ./mongoDBTest ../cfg/mongoDB.cfg

Check the results
> cat logs/[#logfilename#] | grep USER

Additional info/help

  • The Makefile was generated with: makefilegen -s -e mongoDBTest *.ttcn *.cc *.hh
  • The tests are not production-ready, they are provided as examples to be used as starting points for further development.

Best regards,

  • Attachment:
    (Size: 311.25KB, Downloaded 34 times)

[Updated on: Wed, 02 August 2017 06:09]

Report message to a moderator

Previous Topic:There is no local or imported definition with name
Next Topic:Support for STOMP in Titan
Goto Forum:

Current Time: Tue Nov 20 00:33:38 GMT 2018

Powered by FUDForum. Page generated in 0.02003 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top