Service Based Assembly Control (SACO)


Technologies: .NET (C #), GUI, Network Programming (WCF, UDP Unicast / Multicast), XML

SACO ( Service-Based Assembly Control) is a distributed software package that facilitates the creation and use of services based on Windows Communication Foundation (WCF) technology. Services created for SACO focus on providing interfaces for using PC-controlled devices or low-level machines connected to different computers on a local area network (LAN). Simply put, devices connected to a PC can be shared with other PCs.

SACO was developed with the objective of forming the basis for a distributed production control system in the future.

SACO consists of three components:

  1. The SACO platform manages services that are integrated as plugins.
  2. The SACO Client Library enables easy localization and instantiation of a service.
  3. The SACO User Auth Library performs an authorization check to protect against unauthorized control.

Techniques and Features:

  • Advantages over WCF
    • Very easy configurability of the services with XML: Usual settings required in WCF (eg address, behavior and binding) are completely eliminated.
    • Automatic service resolution : The location of a service can be resolved by a unique name without knowing its IP address (client-server or multicast mode).
    • User authentication security mechanisms: No Windows credentials are required and no validator needs to be implemented. It is possible to carry out an authorization on the methodological level of the service (flexibility).
    • Controlled hosting with a clear user interface.
  • Dynamically enable and disable the services
  • Integration and exchange of (new) services (plugins) during program runtime (extensibility).
  • Automatic version control of client and service.
  • Automatic concurrent client access synchronization
  • Open architecture and modular design.
  • In principle, no limitation in the number of simultaneously running and networked platforms (scalability).
  • Dummy services for the "offline" use of services: Even if devices are not connected, the services worked and can thus be used for simulations.
  • Detailed logging (GUI, File).

SACO was developed under my lead at the Fraunhofer IPT and is used there in the Production Machines (Automation) department.

Screenshot of the SACO platform:

Screenshot of a page of the API Documentation of a robot control service (created with Doxygen ):

Leave Comment


A portable, lightweight, open-source .NET standard library for implementing IEEE 11073 SDC Family devices | 4/29/2021

Honestly, I didn't think I would give it another shot, but here is my latest (and ... Read More

Truly portable, zero-dependency, lightweight .NET standard Http server. | 12/27/2020

HttpIot is my latest project, a truly portable, zero-dependency, lightweight .NET ... Read More

OaSharp (OpenAPI Sharp)
An OpenAPI / Swagger C# REST server code generator and hosting .NET standard library | 5/21/2020

My first attempts with C# server code generation for OpenAPI failed catastrophically. ... Read More

More Blog Entries