Monday, October 2, 2017

MIMIC MQTT Simulator integrates with Google IoT Core

While integrating simulated Bosch sensors in MIMIC MQTT Simulator
with Google IoT Core we implemented JSON Web Tokens (JWT) for the
MQTT Password, as standardized in RFC 7519 .

This allows for any number of devices publishing MQTT telemetry
with arbitrary authentication parameters to Google IoT Core or
any other IoT platform that requires JWT.

This is in addition to previous support for OAuth 2.0 .

The screenshot below shows 2 pulled subscriptions with unique

Monday, September 18, 2017


Are you implementing LWM2M-MQTT in your environment?

MIMIC MQTT Simulator supports arbitrary payloads for MQTT messages
for a large number of simulated MQTT-enabled devices.

You can use it to quickly prototype your LWM2M-MQTT implementation.
In particular, you can test scalability of your LWM2M server over the MQTT

Thursday, September 14, 2017

How to right-size your IoT platform

You have run extensive tests on your IoT platform candidates, have gotten
QOS / performance guarantees from the vendor, and have selected the most
promising choice.  You may have even put money down.

Now that you are ready to deploy your IoT platform, these are the problems
you will need to solve:
  1. initial configuration

    Likely the IoT platform will need to be tuned to your individual
    requirements in the production environment, which is likely much
    different than your test environment. You may have tested in-house,
    and are deploying on the cloud, or vice versa.

    Configuration does not only involve the middleware software components,
    but the OS itself, as we had learned in this post.

    For example, it took us multiple tries until we could scale ActiveMQ
    to 20,000 simultaneous client connections. Out of the box, on a 8-CPU
    system, we could only scale to about 800 sessions. Then we applied ARP
    cache- and thread-tuning, and got to 7,000 sessions.  Only on the third
    try did we get to 20,000 sesssions.

    You will face this with any IoT platform. With MIMIC MQTT Simulator this
    exercise took an hour including research on this unknown software.
    How long will / would it take you?

  2. end-to-end tuning

    The process above just gets us part-way to the ultimate requirements.
    There are many variables that impact long-term run-time performance
    in your production environment:

    a) connect rate:

    at what rate do clients connect to the broker. For example, your devices
    may all simultaneously connect after a brownout, or there may be a
    steady trickle of sensors connecting and disconnecting during the day.
    Every scenario is different.

    b) publish rate:

    how often do clients publish telemetry? How large and what size
    distribution do the messages have? What QOS and encryption
    parameters are being used? The scenario of 1 message every minute
    with 100 bytes per sensor is quite different from a camera publishing
    hi-res images at 10 / second.

    c) consumption rate:

    how many applications are consuming messages? Since the broker is
    essentially a layer 4 switch, the fanout determines switching
    performance. Wildcard topic subscriptions challenge topic matching
    algorithms. Are your consumers running with enough power to not bog
    the broker down?

    MIMIC MQTT Simulator is highly customizable allowing you to vary all
    these variables to run many end-to-end scenarios to ensure adequate performance.

  3. devops

    You have your production system running, but how do you test that it
    scales up and down with varying performance levels? How do you test
    changes to your applications while it is running?

    With MIMIC you can run synthetic loads even on your production system
    to verify operational adjustments. Your broker cluster should absorb the
    extra load, and contract when the load is gone. By generating custom
    payloads you can test new features and fixes to your consumer application.

Tuesday, July 25, 2017

MIMIC interoperates with Cumulocity IoT Platform

We used the Cumulocity API detailed here to define 100 simulated sensors
with MIMIC MQTT Simulator as shown in this screenshot.

You can use MIMIC to quickly create any set of measurements, events
and alarms for a large number of IoT devices to test your real-time
application on Cumulocity.

Friday, July 14, 2017

NNMi discovers 2000 VOIP phones in simulated CUCM

HP's NNMi discovered the 2000 simulated phones in MIMIC Web Simulator
which was setup as a Cisco Unified Communications Manager (CUCM)

Using MIMIC you can setup arbitrarily large environments of networking and
telephony devices to test, demo, POC and training on your application of

Tuesday, July 11, 2017

MIMIC Redfish Simulator to simulate large server farm

The DMTF Redfish Mockup may be adequate to simulate a small number
of servers to be managed with the Redfish API but now you can use
MIMIC Redfish Simulator to simulate Redfish on a large scale.

You can record one real server (or the Mockup), and simulate hundreds if
not thousands of servers to be managed by your Redfish manager application.

This is what  redfish-client saw when pointed at a simulated server:

(redfish) bash-4.3$ redfish-client system getinfo
Gathering data from manager, please wait...

Redfish API version :  1.02
Root Service

Systems information :

System id 437XR1138R2:
UUID : 38947555-7742-3448-3784-823347823834
Type : Physical
Manufacturer : Contoso
Model : 3500RX
SKU : 8675309
Serial : 437XR1138R2
Hostname : web483
Bios version : P79 v1.33 (02/28/2015)
CPU number : 2
CPU model : Multi-Core Intel(R) Xeon(R) processor 7xxx Series
CPU details :
    Processor id CPU1 :
    Speed : 3700
    Cores : 8
    Threads : 16
    Processor id CPU2 :
    Speed : Not available
    Cores : Not available
    Threads : Not available
Available memory : 96 GB
Status : State : OK / Health : OK
Power : On
Description : Web Front End node
Chassis : 1U
Managers : BMC
IndicatorLED : Off

Ethernet Interface :
    Ethernet Interface id 12446A3B0411 :
    Ethernet Interface
    FQDN :
    Mac address : 12:44:6A:3B:04:11
    Address ipv4 :
    Address ipv6 : fe80::1ec1:deff:fe6f:1e24
    Ethernet Interface id 12446A3B8890 :
    Ethernet Interface
    FQDN :
    Mac address : AA:BB:CC:DD:EE:00
    Address ipv4 :
    Address ipv6 : fe80::1ec1:deff:fe6f:1e33
Looking for potential OEM information :
    This system has no supplemental OEM information

Simple Storage :
    Simple Storage id 1 :
    Simple Storage Controller
    Status : State : OK / Health : OK
    Device id 1 : SATA Bay 1  Contoso  3000GT8
    Device id 2 : SATA Bay 2  Contoso  3000GT7
    Device id 3 : SATA Bay 3    
    Device id 4 : SATA Bay 4    
Looking for potential OEM information :
    This system has no supplemental OEM information

 and Redfishtool

% redfishtool -v --Secure=Never -r root
#  Service Root:
    "@odata.type": "#ServiceRoot.v1_0_2.ServiceRoot",
    "Id": "RootService",
    "Name": "Root Service",
    "RedfishVersion": "1.0.2",
    "UUID": "85775665-c110-4b85-8989-e6162170b3ec",
    "Systems": {
        "": "/redfish/v1/Systems"
    "Chassis": {
        "": "/redfish/v1/Chassis"
    "Managers": {
        "": "/redfish/v1/Managers"
    "Tasks": {
 "": "/redfish/v1/TaskService"
    "SessionService": {
        "": "/redfish/v1/SessionService"
    "AccountService": {
        "": "/redfish/v1/AccountService"
    "EventService": {
        "": "/redfish/v1/EventService"
    "Links": {
 "Sessions": {
        "Sessions": {
            "": "/redfish/v1/SessionService/Sessions"
    "@odata.context": "/redfish/v1/$metadata#ServiceRoot.ServiceRoot",
    "": "/redfish/v1/",
    "@Redfish.Copyright": "Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF). For
the full DMTF copyright policy, see"

Friday, July 7, 2017

MIMIC MQTT Simulator and CloudMQTT

We have added CloudMQTT to the list of public brokers that
MIMIC MQTT Simulator interoperates with little effort. This
screenshot shows 10 simulated sensors publishing unique JSON
message to a Mosquitto subscriber client.