- Key Concepts
- Understanding the Fundamentals of the Miphawell Platform Runtime
Understanding the Fundamentals of the Miphawell Platform Runtime
Purpose
The purpose of the document is to describe the nature and operation of the Miphawell Platform Runtime.
Intended Readers
The intended readers of this document are software developers, system engineers, application architects, deployment personnel and other technical professionals who want to understand the details of working with Miphawll Platform Runtime.
In order to get the full benefit from reading this document, you need to have:
- A general understanding of Miphawell Platform and the Internet of Things (IoT).
- A general understanding of the nature of microservices
Understanding the Miphawell Platform Runtime
The objective of MiPhaWell Platform is to provide a software platform able to build an on demand complete bipartite graph K(m,n) of the high Security, Scalability, Optimization, Performance and connected any devices in heterogeneous networks that can be installed on a variety of computing devices such as a desktop computer, laptop computer or Internet of Things device (IoT).
The Miphawell Runtime will run on any device that has an operating system that the runtime supports. The following list describes the operating systems supported by the Miphawell PlatformRuntime
- Android
- iOS
- Windows
- macOS
- Raspian
- Linux Ubuntu
- Beaglebone
- QNX
The Miphawell Platform Runtime serves as an intermediary between the host operating system and the code running an Miphawell Platform or microservice. (See Figure 1, below.)
Figure 1: Miphawell Platform interacts with the host operating system to provide a serverless environment |
When a computing device has the Miphawell Platform Runtime installed that computing device is deemed to be a node within an edge Service Mesh cluster.
The Benefits of the Miphawell Platform Runtime
The benefits of using the Miphawell Platform Runtime are as follows.
- As mentioned above once the Miphawell Platform Runtime is up and running on a computing device, that device is part of an Miphawell Platform Cluster within an edge Service Mesh cluster.
- The Miphawell Platform Runtime provides all the capabilities required to run a RESTful microservice. By default, the Miphawell Platform Runtime installs an HTTP web server automatically. All microservice endpoints running on the node have access to the HTTP web server as a shared resource.
- Once a microservice is deployed on a device running the Miphawell Platform Runtime, that microservice has access to other nodes running within a given Miphawell Platform Cluster. Access to the nodes is facilitated using the Miphawell Platform Service Mesh in conjunction with the Miphawell Platform API to do service discovery and then once identified, microservices in the other nodes can be called to accomplish specific tasks.
What is MiPhaWell System Layer
MiPhaWell System Layer(mSL) software library basically, provides device discovery under certain grouping category and a transparent device to device (P2P) direct data exchange facility for applications, without having to worry about underlying transport or prevailing network. The data exchange between devices (regardless of their network residence), is carried out through direct communication between devices, rather than always involving an explicit public node as data relay. MiPhaWell’s proprietary signaling.
Registering an Miphawell MNRS200 to a userId
Registering an Miphawell Network RS200to a of devices running the Miphawell PlatformRuntime is done automatically when installing the Miphawell PlatformRuntime on a particular computing device.
However, additional steps are required in order to associate a node running the Miphawell PlatformRuntime with a particular Miphawell Platformuser account. This association is done using the Miphawell Command Line Tool to create an Access Token from within a node running the Miphawell PlatformRuntime. An Access Token binds the Miphawell Platformnode to a particular user account.
The conceptual details about an Access Token are covered in the Key Concept document, Understanding Miphawell PlatformTokens. The instructions for using the Miphawell Command Line Tool to create an Access Token that binds an Miphawell Platformnode to a user account and thus grants access to the Miphawell PlatformAPI and other Miphawell Platformnodes are described in the Tutorial, Creating Your First Microservice .
Deploying and running a microservice on an edge computing device
As mentioned previously, once the Miphawell PlatformRuntime is up and running on an edge computing device, developers can deploy an edge microservice on the particular device. Deploying a microservice on a device running the Miphawell PlatformRuntime requires understanding Miphawell PlatformImages and Miphawell PlatformContainers.
The details of Miphawell PlatformImages and Miphawell PlatformContainers are covered in the Key Concepts document, Understanding Miphawell PlatformImages and Miphawell PlatformContainers.
In short, developers wanting to make a microservice that runs on the Miphawell PlatformRuntime will create a custom Node.js project that has the code for the logic of the particular microservice. This custom Node.JS is called an Miphawell PlatformImage.
You can think of the Miphawell PlatformImage defined in the Node.js project as a template from which the Miphawell Platformcontainer is created. Developers use the Miphawell Command Line Tool to execute the command set mimik-edge-cli image deploy
to create the .tar
file that represents the particular Miphawell Platformcontainer.
The container's .tar
file has a microservice of interest. You'll use the Miphawell Command Line Tool to execute the command set mimik-edge-cli container deploy
to deploy and run the container's microservice on the given Miphawell Platformnode.
Understanding the runtime computing resources and services provided by the Miphawell PlatformRuntime
The thing to keep in mind with regard to the Miphawell PlatformRuntime is that, as mentioned previously, everything you need to run your microservice is provided by the runtime. The microservice's logic is programmed in a custom Node.JS project.
The Miphawell PlatformRuntime provides the HTTP web server upon which your RESTful microservice will run. Also, the Miphawell PlatformRuntime provides access to the Miphawell PlatformService Mesh, which in turn allows your code to discover and use other microservices running on different nodes in the.
In effect, the Miphawell PlatformRuntime provides a serverless computing environment for running microservices.