MSL-Network uses concurrency and asynchronous programming to transfer data across a network and it is composed of three objects – a Network Manager, Clients and Services.

The Network Manager allows for multiple Clients and Services to connect to it and it links a Client’s request to the appropriate Service to execute the request and then the Network Manager sends the response from the Service back to the Client.

The Network Manager uses concurrency to handle requests from multiple Clients such that multiple requests start, run and complete in overlapping time periods and in no specific order. A Client can send requests synchronously or asynchronously to the Network Manager for a Service to execute. See Concurrency and Asynchronous Programming for more details.

JSON is used as the data format to exchange information between a Client and a Service. As such, it is possible to implement a Client or a Service in any programming language to connect to the Network Manager. See the JSON Formats section for an overview of the data format. One can even connect to the Network Manager from a terminal to send requests, see Connecting from a Terminal for more details.