NEWTON fab lab architecture is a distributed and loosely coupled hardware/software infrastructure that allows remote access to digital fabrication resources as well as fab lab networking and communication.
The hardware infrastructure has the following characteristics:
easily deployable maintainable and scalable;
The software infrastructure has the following characteristics:
modular and hardware-agnostic;
easily integrable with third-party services and applications through REST APIs;
easily deployable in both private and public clouds;
robust and secure;
Fig. 1: NEWTON Fab Lab Architecture
Fig. 1 depicts the overall system architecture. It is a distributed three-tier architecture in which we can clearly identify three layers:
The service layer; namely, the software abstraction layer that wraps the fab lab infrastructure and exposes it a service to the internet through a set of APIs.
The middleware layer; namely, the cloud hub infrastructure that manages intra-fab lab communications and provides the software interfaces to connect to third-party services and applications.
The application layer; namely, a third-party application that connects to the cloud infrastructure using a REST client.
The interfacing between layers is implemented through REST (Representational State Transfer) Application Programming Interfaces (APIs) that guarantee seamless interoperation between different technologies and provide programmers with a framework to expand NEWTON platform by developing new applications on top of the API layer or adding new layers to the protocol stack.
In NEWTON fab lab production environment, the fab lab gateways are connected to the cloud infrastructure through a IPSec tunnel; however, if you don't want to set up a complex cloud infrastructure you can leverage the gateway infrastructure to create a secure TLS connection with the cloud hub.
The fab lab gateway is simply a set of microservices whose API endpoints are protected using an API gateway. We use Express Gateway as the API gateway. Express Gateway is a lightweight, flexible and easy-to-configure gateway based on Express.js framework. With Express Gateway, setting up a TLS socket is as simple as editing a YAML configuration file.