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


BigDecimal (.NET)
An arbitrary large (or small) decimal number implementation for .NET | 8/3/2019

BigDecimal represents a decimal number with arbitrary precision. It is based on a fraction ... Read More

NanoNet - simple Java neural network library
Using backpropagation and sigmoid activation function. | 4/14/2019

NanoNet is a very simple Java neural network library using backpropagation and sigmoid ... Read More

Java async/await nonblocking code library
Write sequential style nonblocking code using a fixed threadpool with Async-Complete for Java | 4/1/2019

Async-Complete (aka Async-Await) is a library for writing asynchronous code in a more ... Read More

More Blog Entries