TOP Software Technology

Task-Oriented Programming with mTasks
 for programming 
the Internet of Things

In addition to the iTask framework, which is intended for interactive man-machine communication using browsers, there is an mTask framework for performing tiny (micro) tasks on Internet of Things (IoT) devices. 

Both frameworks are interconnected enabling smooth user-interaction with any configuration of remote IoT devices on the internet.

mTasks is a TOP-based framework for programming the IoT, all advantages of Task Oriented Programming apply to this domain as well.

Traditionally, IoT architectures are tiered architectures, where one is forced to use different programming languages, different protocols, and different paradigms.
One is not only forced to master all these systems, due to being forced to combine all these different systems, one easily introduces errors.
Since IoT architectures commonly consist of many devices located somewhere in the world, fixing errors can be very costly and time consuming.

An unique feauture of mTasks is that all systems, either tiny ones running on small devices, or large applications running in a browser, are created from one, single source.

Being generated from one source, errors which occur due to software versions mismatch are simply not possible. 

Programming an IoT architecture with mTasks offers many advantages over traditional approaches:


  • One can develop applications for all kinds of IoT devices without needing a lot of detailed technical knowledge of the hardware, or knowledge how these systems communicate with the rest of the world.

  • All IoT devices are connected to a dedicated iTask server, which is able to control and inform all other devices as well as all end users attached to the iTask cluster.

    One can have an arbitrary interconnected network of distributed iTask servers
    Any IoT device or any end user can communicate with any other in the network.

  • To turn an of-the-shelf IoT device into a mTask IoT client device, a fixed tiny mTask run-time system has to be installed on it only once.
    Hereafter, tasks are loaded automatically to the IoT device when needed.
    No further fysical access to the IoT device is required w.e.o. battery replacement and the like.

  • An mTasks run-time system can be installed on standard embedded devices, such as: Arduino , ESPxxx, Nucleo boards,
    or on regular devices running Linux, Windows or Mac

  • When a device has to do a certain task, e.g. measuring something or displaying something, the task to do is shipped just-in-time to the IoT device when needed.
    A task specification is compiled to byte code which is interpreted by an interpreter included in the mTask run-time-system.

  • One IoT device can perform multiple tasks at the same time using time-slicing. 
    The number of tasks is limited by the available memory on a device only.

  • When a device is not working for some reason, e.g. due to a hardware or power failure, tasks can be shipped dynamically to another device with the same capabilities, and continue there.

  • mTask tasks can be embedded in and mixed with iTasks tasks and they can exchange information throught their task values and through Shared Data Sources (SDS's).

  • When an mTask IoT device is used for measuring data, it's shared data is automatically shipped to its iTask server which sees to it that all parties (e.g. mTask tasks on other IoT devices or iTask tasks displayed in the browsers of end users) that need to be informed, will be informed.

    An application could be e.g. a command and control dashboard application running in a browser which has a solid overview and control over all devices in the network.

Do you also want your IoT applications to benefit from this unique concept? 
Contact TOP Software Technology, we are happy to help ...