Overview
New systems can be added by deploying connectors for these systems. If the systems already ship with a SiLA 2 interface natively, only a UniteLabs edge gateway is required. If the system does not have a standardized interface, a new connector must be created.
The Cloud Connector and the Edge Gateway require the connection details of the tenant's cloud endpoint to establish a connection with their respective UniteLabs instance. Ask your system administrator or reach out to UniteLabs customer service. For further information on the deployment process please refer to the deployment guide.
00000000-0000-0000-0000-000000000000
. Note: This is not the same as the Tenant UUID!Connector Development
Connectors distributed by UniteLabs are either a docker image or a Python application. Connectors distributed by UniteLabs will have detailed information regarding deployment in their respective documentation.
New Connectors can be developed either with our open-source UniteLabs Connector Framework (Python) that is based on the SiLA 2 standard or any other SiLA 2 reference implementation. Development is performed by UniteLabs but can also be done by any third party or internally. We gather standard-compliant connectors on our UniteHub.
For new developments, we recommend using our Connector Framework (Python, SiLA 2 1.1).
Other basic SiLA 2 frameworks include:
- SiLA Tecan (C#, by Tecan, SiLA 2 1.1)
- SiLA Java (Java, by SiLA, SiLA 2.1.1)
- SiLA C# (C#, by Inheco, SiLA 2 1.0)
- SiLA C++ (C++, by Cetoni, SiLA 2 1.0)
Connector Development Kit (CDK)
You can find the source code in the UniteLabs Connector Development Kit repository. The documentation includes a step-by-step tutorial on how to develop a connector based on the Connector Starter example project.
SiLA Browser
The open-source UniteLabs SiLA Browser is a lightweight web application that can be used to auto-discover and test SiLA-compliant servers in the local network. Once a connection is established, the server can be tested interactively. The SiLA Browser repository contains detailed documentation on the installation procedure including a user manual.
SiLA Python
This SiLA 2 Python repository is an un-opinionated SiLA 2 library written in Python. It is a core dependency of the Connector Framework. Usage of the Connector Framework does not require familiarity with the SiLA Python implementation. Taking a deep-dive into this repository is only recommended for advanced connector developers.
SiLA JS
This SiLA 2 JS repository is an un-opinionated SiLA 2 library written in JavaScript. This is one of our developer libraries that only implements the client side of the SiLA communication. SiLA JS has not been released yet.
The UniteLabs Connector Development Kit (CDK on GitLab) is a free and open-source kit that enables you to build connectors for laboratory hard- and software services with interfaces that are based on industry standards like SiLA 2. Use this framework to build connectors with a SiLA interface as a wrapper around proprietary interfaces or to build an interface that runs natively on your device. This framework allows quick development with our intuitive, code-first approach. There is no need for a deep-dive into the standard specifications as we did that for you.
The benefits of our framework are:
- SiLA 2 1.1 compliant
- Cloud-connectivity
- Library of standard, core, and custom features
- A code-first approach (No interface definition in XML!)
- Stable releases with good test coverage
- Maintenance and updates
At UniteLabs, we believe that the adoption of standards in the field requires excellent tooling that is aimed at developers. Our opinionated kit aims at reducing the friction of developing hard- and software interfaces in the lab space.
The UniteLabs CDK relies on our own sila-python library that abstracts and implements all SiLA-related logic. Within our framework, we add some magic that makes building a new connector straightforward. You can take a look at our tutorials for more information on specific topics.
About nomenclature
Connectors, SiLA servers, servers, and drivers are terms that are often used interchangeably by the community, which can be confusing as there are subtle differences in what they refer to.
The term "server" is a general computing concept referring to a computer or a software application that provides services or resources to other devices or software applications, often over a network. SiLA server specifically refers to a software implementations that conform to the SiLA standard.
A connector, on the other hand, is a software application that provides an interface and establishes a connection to other systems. Its underlying logic is not restricted to a single standard such as SiLA, but may also implement other standards, such as OPC-UA. Therefore, a UniteLabs connector contains a server, which could be either a SiLA server or an OPC-UA server (in the future), as well as additional features that go beyond the standard specification.
In the realm of laboratory automation, the term "driver" typically refers to software that enables communication and control of specific laboratory instruments or devices. However, this is a very general term and we try to avoid using it altogether.
For a quick start on how to build a basic connector, simply read on!