Operating Systems
Hub Platform
The operating system used on the Raspberry Pi is Debian. Based on the Linux kernel, it is a free, open-source, GNU compliant, well-proven, and has been in existence for 25 years.
The applications programs running on the hub are written in C#, which is a Microsoft .NET language, and requires a .NET platform. This is provided by Mono, which is also free, open-source, GNU compliant.
As well as providing a .NET Framework-compatible software framework, Mono includes a C# Compiler and a Common Language Runtime. This enables C# source code to be edited, compiled, and executed stand-alone on the Raspberry Pi, such as for the fully customizable actions.
Mono has been in use for more than 10 years. It is supported by Microsoft to the extent that it implements certain portions of the Microsoft .NET Framework, which Microsoft made available as open-source some four years ago. There are several aspects of .NET that Mono does not support, but these are not relevant to the hub applications.
Cloud Platform
The cloud based aspects of the control system run on a Microsoft Azure platform.
Having run own hardware servers in data centers for many years, we moved over to virtual machines about ten years ago. We then upgraded to Microsoft Azure based virtual machines about five years ago, and transferred all of our advanced websites, mobile apps, and online business systems to this platform.
We run several virtual machines, some of which are dedicated to individual customer’s online applications. A separate virtual machine is similarly dedicated to supporting the control system, with a second virtual machine being used as a back-up.
Microsoft Azure includes a built-in firewall, which monitors and controls all incoming and outgoing traffic for the virtual machines.
One or more Windows Web Servers (Microsoft Internet Information Services) run on each virtual machine. The management of the web servers is effectively delegated to Azure, which enables the configuration, and hence the cost, of each web server to be instantly adjusted to suit the performance and capacity required for the current tasks.
One of the other main benefits of the Azure platform is that the operating system software, and especially the web servers, are kept up to date with minimum user intervention.
The programs running the cloud services are written in C#, which is a Microsoft .NET language, and requires a .NET platform. The full Microsoft .NET framework is used, including the Framework Class Library (FCL) and the Common Language Runtime (CLR). The FCL provides user interface, data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications.
MongoDB
All of the data used by the hub application programs and by the cloud application programs are held in a MongoDB database.
MongoDB has emerged in recent years as a leading industry standard database. It is a cross-platform document-oriented database program. It is issued under the Server Side Public License (SSPL), and has been in use for more than 10 years.
MongoDB It is used extensively by Government agencies, by major organizations in the retail sector, by social media companies, and large industrial organizations, including Twitter, Google, Facebook, eBay, IBM, Barclays Bank, amongst others, and UPS.
Having used other database for many years, ranging from simple XML files to Microsoft SQL, we opted to develop all of our new applications using MongoDB bout five years ago. We find it more capable, and easier to use than SQL.
MongoDB is also integrated with our NetCanvas platform to the extent that changes in the data definitions within the program code are reflected directly into the structure of the MongoDB database.