Project Implementation

The realization of a project can be realized on the basis of different software and system engineering methodologies. The methodology to be applied depends on various factors and is individually adapted to the respective project in consultation with the company. We support both classic methods, which can include the use or development of specifications, and agile methods such as Scrum or Kanban. Within the project realization, a distinction is made between the design and the implementation phase, whereby the concrete processing of the two areas depends on the chosen method and can also be partially processed in parallel.

Design

Before an application, a system consisting of hardware and software or even an entire platform can be implemented, important design decisions must be worked out. These include architecture developments which, on the one hand, take into account the functional and non-functional goals to be achieved. On the other hand, there are the technologies that can be used to design viable solutions, taking into account project-specific constraints. For the acceptance of powerful system solutions, aspects of user experience must also be considered, which are addressed using the latest front-end technologies.

On the basis of a requirements analysis, which is part of the project planning, the development of a corresponding technical architecture is carried out. This can include hardware, communication and software aspects.

Among the essential questions to be considered with regard to boundary conditions and requirements are:

  • Is it a new development or the extension of an existing solution?
  • Are there any technological specifications by the customer (e.g. use of technologies like Java Enterprise)?
  • Are old/existing systems to be integrated on a larger scale?
  • Type of application or platform development:
    • Internal business application or B2B application?
    • Automation project/production monitoring and optimization/predictive maintenance
    • IIoT platform development including edge computing and cloud technology
    • Innovative microservice-oriented platform development
    • Edge computing solution including AI and machine learning
  • Which data volumes have to be processed in which periods of time?
  • Which users does the future system have?
  • Over which channels (web, mobile) and protocols should the system be accessed?
  • How complex is the system and what are the requirements for further development and maintainability?
  • How fail-safe must the system be?

Architecture developments are carried out and documented using the standardized modeling language UML. Furthermore, both well known and proven architectural patterns are used as well as new approaches that need to be considered when using cloud technologies or microservices.


Java is a registered trademark of Oracle Inc. and/or its affiliates.
UML is a registered trademark of Object Management Group, Inc.

Depending on the area of application, tailor-made, ergonomic front-end systems are designed, whose concrete configuration is carried out with consideration of user experience aspects. User interfaces are developed and implemented in the form of

  • modern, dynamic HTML5 web applications,
  • mobile applications with multi-platform support and
  • modern augmented reality and virtual reality applications.

In addition to the design of classic user interfaces, we are able to integrate very sophisticated data visualizations into the application design, where these can also refer to dynamically changing data sets. This also includes the integration of audio, video and 3D representations.

The design of backend systems is a complex task. Depending on the planned functionalities, different requirements must be considered. This concerns among

  • the target platform,
  • the functional scope and complexity of the planned application,
  • the importance of expandability, flexibility and maintainability,
  • the performance and scalability and
  • the integration with other systems.

We design backend systems for various target platforms. Starting with Arm-based embedded systems, normal x86-based bare-metal servers up to complex multi-server and private/edge cloud systems.
In addition to designing backend systems for applications with a small, medium or large range of functions and a low to moderate complexity, we also develop systems for the realization of very large ranges of functions with a correspondingly high complexity.
If such systems are to be expandable and maintainable in the long term, we design them on the basis of a microservice architecture.
Performance and scalability always play an important role in our design work. Depending on the requirements, different database technologies and persistence strategies, high-performance protocols as well as efficient algorithms and hardware architectures are used. This also includes the integration of modern hardware, which can be used in the context of machine learning and artificial intelligence to significantly increase the performance of the application.


Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or other countries.

The design and concept work we offer also includes complex system design. This can include a number of technologies and subsystems and not only relate to software design.

An example of this is the design of an edge computing solution. Based on the requirements for monitoring a machine or a system, a determination is made,

  • which physical quantities must be measured,
  • which value ranges must be mapped and
  • with which temporal resolution must be worked with.

In detailed coordination with the client, suitable sensors are selected according to these factors. In addition to the physical measured variables, design aspects must also be taken into account. Furthermore, depending on the requirements, it is decided which interface is to be used (e.g. IO-Link as supported standard or a current loop interface). In addition, as in the case of a current loop interface, it may be necessary to include an embedded system with ADC (analog-to-digital conversion). If high sampling rates are used, the software component for the transfer of the sensor values must also be designed in such a way that a trouble-free and high-performance data transfer is guaranteed. This may also include the inclusion of asynchronous, parallel algorithms with backpressure support.

As part of a technical application, system or platform architecture, the runtime environment must also be designed. Different designs of runtime environments can be developed according to the requirements.

  • Bare metal runtime environment
    This runtime environment variant is useful if the software is to be deployed on a hardware platform that has only limited resources (CPU and random access memory) (e.g. embedded systems or IoT gateways). Another use case of bare metal deployments is the use of special hardware (GPU or AI hardware) and the need to achieve maximum performance.
  • Runtime environment based on Docker, which is based on container technology
    This runtime environment is useful if different stages are to be implemented with minimal effort. This variant is particularly well suited for applications that are still traditionally oriented, but where, for example, development and integration environments are to be set up.
  • Runtime environment based on a Kubernetes cluster, which is based on cloud technology
    This runtime environment is ideal for complex, modern applications (e.g. applications or platforms that are based on a microservice architecture). Furthermore, this runtime environment variant is particularly well suited if the application or platform is to be made fail-safe and highly scalable.

Docker is a registered trademark of Docker, Inc. in the US and/or other countries.
Kubernetes is a registered trademark of The Linux Foundation in the US and/or other countries.

Besides the development of applications, we also have extensive experience in the design, implementation and operation of entire platforms.

As an example of a platform development, an IIoT platform can be mentioned. This can be implemented for machine or plant operators in order to centrally monitor machine systems used worldwide for maintenance purposes. To ensure that the various machine systems transmit the signals to be monitored in as standardised a way as possible, services can be designed that receive the signals via an appropriately designed API (Application Programming Interface). These APIs are used on the user side (e.g. via IoT Gateways) to send the signals to the central platform.

Implementation

On the basis of previously conducted requirements analyses and other activities in the area of project planning and the subsequent architecture and design development, the concrete development of the application or platform takes place in the implementation phase. As an important part of our implementation strategy, we use continuous delivery and continuous deployment procedures to be able to generate intermediate results quickly at the earliest possible stage. These are evaluated together with the client so that agile software development methods can be implemented.

A user-friendly and powerful implementation of the user interface of an application contributes to its acceptance. The user interface has a decisive influence on whether the developed application fulfils its intended purpose and thus contributes to the improvement of business processes. We are able to implement three types of frontend applications: HTML5-based front-ends, mobile applications and AR/VR applications. The latter play a role especially in our innovative product development and are very rarely requested in services. In order to develop and implement an appealing user interface, we attach great importance to ensuring that our front-end applications are user-friendly, appealing, responsive and performant.

HTML5-based applications

HTML5-based applications are developed on the basis of programming languages and standards such as JavaScript, TypeScript, CSS3 and Less or Sass. Frameworks like Angular, Ember, Vue.js, Material Design or Bootstrap are also used.

Advanced HTML5-based applications

In addition to the implementation of standard functions of modern front-ends, we are also able to enrich them with real-time, graphical or multimedia information. This includes the integration of dynamic signal visualizations (e.g. of sensor data), the integration of live audio and live video signals as well as the implementation of dynamic 3D visualizations. In this context we use technologies or standards such as WebSocket, HTML Canvas and HTML SVG, WebRTC or WebGL.

Mobile applications

Mobile applications can be developed for smartphones and tablets, whereby a multi-platform strategy can be implemented with support for iOS and Android based on native applications. To offer the development of an application for two platforms at a good price/performance ratio, we implement the mobile applications based on the modern framework Flutter.



Android is a registered trademark of Google LLC.
Ember is a registered trademark of Tilde, Inc. in the US and/or other countries.
Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.
HTML5 Logo is licensed under Creative Commons Attribution 3.0. HTML5 Logo by World Wide Web Consortium.
IOS is a trademark or registered trademark of Cisco Systems, Inc. in the US and other countries and is used by Apple under license.
JavaScript is a registered trademark of Oracle Inc. and/or its affiliates.
TypeScript is a trademark of Mi­cro­soft Cor­po­ra­ti­on.
Vue.js is a registered trademark of Evan You in the US and/or other countries.
WebGL is a trademark of Khronos Group Inc.

The backend implementation of applications or entire platforms can be realized with different strategies and technologies.

Enterprise applications based on Java

In the area of enterprise application development we are able to implement complex applications based on the Enterprise Java Stack. In this area we have more than 15 years of experience gained in a wide range of enterprise projects. In addition, we are also familiar with the alternative technology Spring and can implement modern cloud applications based on the CLOUD FOUNDRY platform using Spring Boot.

Microservice-based Backend Solutions

In connection with the implementation of very extensive applications or platforms, which are to be operated over a longer period of time and continuously developed, we are able to develop microservice based backend systems, which are typically deployed on a Kubernetes cluster. In this area we also use the programming language Go, which is the basis for a micro service-oriented architecture, since no additional runtime environments are required for the micro services.

Enterprise Application Integration

When implementing backend systems, integrations with other applications already existing at the client play a very important role. The implementation of such integration tasks is carried out using typical technologies and middleware (e.g. the use of messaging systems and event-driven communication structures based on them, which ensure a loose coupling between the systems to be integrated and the new application).

Backend solutions with additional requirements

A very important part of most applications is the data that is collected, processed and stored in its context. Besides typical relational databases such as MySQL, PostgreSQL or Oracle, we also use highly specialized NoSQL databases such as InfluxDB, Dgraph or MongoDB for certain tasks.

For example, we are able to use the open source database InfluxDB when it comes to capturing large, time-related data volumes (e.g. sensor signals or status signals of machines or plants) in real time in order to feed them into detailed analyses (e.g. predictive maintenance or predictive quality). By means of the graph database Dgraph, we can map highly complex data sets in the context of the structured recording of maintenance activities on machines and plants very well, so that a very detailed recording of repairs carried out, errors that have occurred on certain assemblies and spare parts used is possible, which can also be evaluated very well in the context of lifecycle management.


CLOUD FOUNDRY is a trademark of CloudFoundry.org Foundation in de US and/or other countries.
Kubernetes is a registered trademark of The Linux Foundation in the US and/or other countries.
InfluxDB is a trademark by InfluxData, which is not affiliated with, and does not endorse, our services.
Dgraph is a trademark of Dgraph Labs, Inc.
MongoDB is a registered trademark of MongoDB, Inc.
Oracle, Java and MySQL are registered trademarks of Oracle Inc. and/or its affiliates.
PostgreSQL is a registered trademark of PostgreSQL Community Association of Canada.
Spring and Spring Boot are registered trademarks of Pivotal Software, Inc. in the US and/or other countries.

In the industrial sector we also offer the implementation of entire systems. These consist not only of software components, but also of sensors, embedded systems, IoT gateways, components of AI hardware, industrial server systems and optimized private cloud or edge computing solutions. Our services include:

  • Automation tasks including intelligent object recognition in the context of intralogistic tasks
  • OEE-supported production and process monitoring
  • UImplementation of sensor-supported long-term measurement campaigns that also include billions of data sets over weeks and months, including the provision of data visualizations and analyses for data sets with big-data number series
  • Implementation of sensor data acquisition and predictive maintenance as well as pedictive quality based on a modern edge computing approach in combination with private cloud implementations based on Kubernetes
  • Sensors for various physical quantities with interface standards like IO-Link or current loop interface
  • Embedded systems based on Arm processors: Arm Cortex M3 and M4 as well as Arm Cortex A7, A8 and A9
  • Used programming languages in the field of embedded systems: C, C++ and Rust
  • Used programming languages in the field of edge computing: C++ and Go
  • Supported communication standards:
    • TCP/IP, HTTP and HTTP/2
    • OPC Unified Architecture
    • IO-Link as supported standard
    • MQTT
    • REST, JavaScript Object Notation (JSON)
    • Protocol Buffers and gRPC
  • Use of special AI hardware and GPU-accelerated solutions such as Jetson Nano, Jetson AGX Xavier and Kendryte K210
  • Implementation of AI and machine learning algorithms:
    • OpenCL and CUDA in connection with GPU-accelerated algorithms
    • C++ and TensorRT
    • C++/Python and TensorFlow

CUDA, Jetson, Jetson AGX Xavier and TensorRT are trademarks or registered trademarks of NVIDIA Corporation.
Arm and Cortex registered trademarks of Arm Limited (or its subsidiaries) in the US and/or other countries.
gRPC is a registered trademark of The Linux Foundation in the US and/or other countries.
JavaScript is a registered trademark of Oracle Inc. and/or its affiliates.
Kubernetes is a registered trademark of The Linux Foundation in the US and/or other countries.
OPC is a registered trademark of OPC Foundation.
OpenCL is a registered trademark of Apple Inc.
Python is a trademark or a registered trademark of Python Software Foundation.
Rust is a trademark of Mozilla Foundation in the US and other countries.
TensorFlow is a registered trademark of Google LLC.

We also offer the setup of an own private cloud instance based on Kubernetes. The creation of an own private cloud can definitely bring significant advantages for a company compared to the use of public cloud providers. An own private cloud offers a considerable plus in terms of IT security (especially data security). Another advantage is the lower operating costs. This is particularly true if the cloud is used to operate certain complex applications with a constant workload on a permanent basis.

The use of services for building a private cloud also represents a secure way for the client to adapt his own IT infrastructure to new requirements and to make it more efficient. In addition, the concrete design can be adapted very well to the specific circumstances. If required, support can also be provided for the operation of the private cloud or for building up technological know-how.


Kubernetes is a registered trademark of The Linux Foundation in the US and/or other countries.

Zurück zur Dienstleistungsübersicht