Home » Eclipse Projects » Eclipse Titan » New Titan products and user guides in support of IoT testing
New Titan products and user guides in support of IoT testing [message #1775048] |
Tue, 24 October 2017 03:14  |
Eclipse User |
|
|
|
Dear all,
first, let me note that Titan is being used now by three major IoT testing projects:
oneM2MTester:
http://support.iotocean.org:7591/onem2m/conformancetesting/oneM2MTester/
IoT-T:
http://www.iot-t.de/en/testware/
https://projects.eclipse.org/projects/technology.iottestware
ARMOUR 2020:
http://www.armour-project.eu/
https://www.riverpublishers.com/pdf/ebook/RP_9788793609105.pdf (see Chapter 7)
http://www.armour-project.eu/wp-content/uploads/2016/08/D22-Test-generation-strategies-for-large-scale-IoT-security-testing-v1.pdf
http://www.connectsecurityworld.com/demos
Our support for IoT started early and continues. I will list here in no specific order the latest developments that might be interesting for someone involved in IoT testing.
In the figure below I tried to place the referred protocols in a communication stack.
(TP means Test Port, PM means Protocol Module, Lib- I'll leave this to you to crack)
+-----------------------------------+
| |
| XML/JSON/Binary(CBOR,BSON) | Titan codecs(XML/JSON/RAW/TEXT/BER -with fuzzing )
| | Built-in conversion functions(json2cbor/cbor2json,json2bson/bson2json)
+-------+------------+----+----+----+
|HTTP | |Web+ | |C|M |M g | TP: HTTPasp
| | |socket| |o|Q |o o | PM: Websocket/XMPP/HTTP/CoAP/MQTT/HTTP2/STOMP/MongoDB
|HTTP/2 |STOMP| | |A|T |n D |
| | | |XMPP|P|T |- B |
+-------+-----+---------------------+
| DTLS/TLS | Lib: TLS_Handler
| UDP/TCP/DTLS/TLS | TP: UDPasp/TCPasp/IPL4asp
+-----------------------------------+ PM: UDP/TCP
| |
| IPV4/IPV6 | PM: IP
+-----------------------------------+
| |
| L2 | TP: LANL2asp, PCAPasp
| |
+-----------------------------------+
| L1 |
| |
+-----------------------------------+
First and foremost, we have added Titan encoding extensions to enable fuzzing:
Using Titan as a fuzzing engine part 1( Generalities )
https://www.eclipse.org/forums/index.php/t/1085150/
Using Titan as a fuzzing engine part 2(Fuzzing MQTT)
https://www.eclipse.org/forums/index.php/t/1085301/
Using Titan as a fuzzing engine part 3(Fuzzing CoAP)
https://www.eclipse.org/forums/index.php/t/1085441/
Fuzzing of BER-encoded protocols in Titan
https://www.eclipse.org/forums/index.php/t/1088984/
and also protocol module variants in support of negative testing (fuzzing):
git://git.eclipse.org/gitroot/titan/titan.ProtocolModules.CoAP.git
git://git.eclipse.org/gitroot/titan/titan.ProtocolModules.MQTT.git
Michael Josenhans continued to add CANBus updates, thank you, Michael:
TTCN Titan Testport for socketCAN (Testport for CAN-bus)
https://www.eclipse.org/forums/index.php/t/1074584/
git://git.eclipse.org/gitroot/titan/titan.TestPorts.SocketCANasp.git
Although not strictly an IoT protocol, the capability to connect Titan to embedded devices via a serial port may come handy:
Test port for serial communication
https://www.eclipse.org/forums/index.php/t/1088189/
git://git.eclipse.org/gitroot/titan/titan.TestPorts.Serial.git
Again, STOMP was not designed for IoT but sometimes is being used in that context for messaging between devices:
git://git.eclipse.org/gitroot/titan/titan.ProtocolModules.STOMP.git
Support for STOMP in Titan
https://www.eclipse.org/forums/index.php/t/1088082/
Chat with STOMP over WebSocket in Titan part 1(The naive implementation )
https://www.eclipse.org/forums/index.php/t/1088583/
Chat with STOMP over WebSocket part2 (STOMP/IPL4 translation port)
https://www.eclipse.org/forums/index.php/t/1088673/
CBOR or Concise Binary Object Representation is based on the JSON data model, but appears in a more efficient binary form:
Support for JSON binary encodings in Titan: CBOR
https://www.eclipse.org/forums/index.php/t/1087595/
MongoDB is a document-oriented-database also becoming succesful in some areas of IoT. Support for MongoDB in Titan comes
in several parts: a MongodB protocol module and also support for BSON encoding which permits JSON documents to be represented in binary, which binary then can be
directly stored in MongoDB; so the stack looks like this: JSON/BSON/MongoDB/IPL4(TCP).
git://git.eclipse.org/gitroot/titan/titan.ProtocolModules.MongoDB.git
Support for MongoDB(TITAN protocol module of mongoDB wire protocol)
https://www.eclipse.org/forums/index.php/t/1087892/
Support for JSON binary encodings in Titan: BSON
https://www.eclipse.org/forums/index.php/t/1087762/
TLS Handler is a generic TLS/DTLS support library which can use any communication channel to build a secure connection.
If you don't use the IPL4 test port which has inbuilt support for TSL/DTLS, you have the TLS alternative.
git://git.eclipse.org/gitroot/titan/titan.Libraries.TLS.git
Using the TLS_Handler part 1
https://www.eclipse.org/forums/index.php/t/1087105/
Using the TLS_Handler part 2
https://www.eclipse.org/forums/index.php/t/1087259/
HTTP2 is a major revision of the HTTP network protocol used by the World Wide Web;
HTTP/2 leaves most of HTTP 1.1's high-level syntax, such as methods, status codes, header fields, and URIs, the same; offering in the same time an increased speed.
Support for HTTP/2 in Eclipse Titan
https://www.eclipse.org/forums/index.php/t/1089118/
Support for HTTP/2 in Eclipse Titan- with a twist( @decoded and decmatch)
https://www.eclipse.org/forums/index.php/t/1089269/
Websocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection.
Some messaging protocols , such as the ones used in IoT , take advantage of the advantages offered by WebSockets and use it as transport:
Support for WebSocket in Eclipse Titan
https://www.eclipse.org/forums/index.php/t/1087423/
MQTT over Websocket
MQTT over Websocket in Titan(MQTT/IPL4 translation port )
https://www.eclipse.org/forums/index.php/t/1088874/
I hope this might prove useful for some of you
Best regards
Elemer
|
|
| |
Goto Forum:
Current Time: Fri Jul 25 01:32:13 EDT 2025
Powered by FUDForum. Page generated in 0.03097 seconds
|