3.6. Univention app ecosystem#
Univention App Center is one of the most important parts of UCS. This section describes the Univention app ecosystem, where UCS is just one part. The Univention app ecosystem consists of actors, an infrastructure, and artifacts.
This section provides information about the following aspects around the App Center:
App Center purpose about the why of the App Center for administrators and app providers.
App ecosystem actors in the context of the App Center ecosystem.
App artifacts for an overview of the content in the App repository.
Univention app infrastructure for the App Center.
- App Center
for the description of the App Center component in UCS.
- App Center service
for the architecture of the App Center on UCS
3.6.1. App Center purpose#
Depending on the direction you look at the App Center, it has different purposes and provides different benefits.
First, the App Center provides value to administrators in terms of software management:
Maintained enterprise software integrated with UCS identity management. The existing integration reduces the effort for customers to maintain such an integration.
Software lifecycle management with simplified installation and updating of software applications in a server infrastructure.
Reliable delivery infrastructure to serve the software lifecycle management.
Fig. 3.3 shows the purposes of the App Center for customers and app providers.
Second, because the App Center is part of UCS, app providers benefit from a good customer base and an enterprise platform with integrated identity management. With integrated identity management at their fingertips, app providers don’t have to worry about identity management on their own. They can rely on the offered interfaces such as LDAP, SAML, and OpenID Connect.
3.6.2. App ecosystem#
On the one hand, the App Center is a user-facing product component in UCS. The App Center service covers the architecture and technology in more detail. On the other hand, the App Center is also an ecosystem with services, actors, artifacts, and infrastructure.
This section provides an overview of the ecosystem.
App ecosystem actors#
Fig. 3.4 shows the actors involved in the Univention App Center ecosystem. For the sake of brevity, the figure shows a subset of the responsibilities.
App infrastructure maintainer#
Univention fulfills the responsibility of the App infrastructure maintainer and as such is responsible for Univention App Center. For example, Univention operates the infrastructure so that administrators can install software through the App Center.
The App infrastructure maintainer also fulfills the responsibilities to operate the Univention App provider portal service and to provide App provider support. Both serve the App developer during on-boarding and app maintenance.
The next actor in the App Center ecosystem is the App provider in the following specializations:
- App maintainer
The App maintainer doesn’t own the software, but maintains the app with the software in the App Center.
The App Center also contains open source apps. Organizations that act as App maintainer don’t own the open source software. They invest their knowledge of UCS and the software in an app, its integration with UCS, and the maintenance of the app for the benefit of customers and to promote open source software.
- App vendor
The App vendor owns the software. Organizations that own software and maintain their own app in Univention App Center act in both ways, as App vendor and App maintainer at the same time.
- App developer
The role App developer is the primary role that interacts with the Univention App provider portal service and uses the App provider support.
The third actor is the customer in the role of the user and especially the Administrator. They use Univention App Center with the associated services and apps to cover their software needs for their business.
The artifacts in the App Center are apps. At the technology level an App Center app consists of the parts shown in Fig. 3.5.
- Software application for app
Software application for app is the software itself, the binary artifact as provided by the vendor.
- App integration
App integration includes scripts and software tailored to the integration needs of the software application and UCS. They take care of the proper setup so that the app is ideally ready to use after installation. For example, the integration may consist of:
Setup for single sign-on configuration between the software application and UCS.
Configuration to set up the web server.
Script to populate a database with the database schema and required data.
Environment setup for configuring the software application.
- App metadata
App metadata is the content responsible for properly presenting the app to the user in the App Center. It includes name, description, logo, and contact information for the app provider.
The App Center recognizes the Software application for app in the form in which the vendor distributes the binary artifact, as shown in Fig. 3.6.
- Package based app
Package based app refers to software distributed using Debian packages. Apps that extend the core capabilities of UCS use Debian packages for software distribution. The App Center installs the packages from dedicated repositories per app and handles the repository configuration.
- Docker based app
Docker based app refers to software distributed through Docker images, a data format for containerized software. Docker based apps decouple the software runtime from the underlying UCS operating system and reduce the complexity of app maintenance for app providers.
The App Center prefers Docker based apps over package based apps.
Finally, a Docker based app can be either a Single container app or a Multi container app, as shown in Fig. 3.7.
- Single container app
Individual single container apps consist of a Docker image. UCS uses the Docker engine to run them.
- Multi container app
Multi container apps, on the other hand, consist of more than one Docker image. UCS uses Docker compose and the Docker engine to run them. App providers that offer their app as multi container app often provide the required parts as micro services for better decoupling and dependency control. They also typically offer this type of deployment anyway, independent of the App Center.
Fig. 3.8 shows the overall model, its parts and what an app consists of. On the application level the App Center differentiates an App into Package based app and Docker based app and handles both.
Univention app infrastructure#
The App Center requires a dedicated infrastructure consisting of several elements to function properly. Fig. 3.9 shows the infrastructure, and the description of each element follows.
- App developer
An App developer is a software developer who is responsible for creating and maintaining an app. The App developer belongs to the App provider.
- Univention App provider portal service
The Univention App provider portal service is the entry point for app developers who create and maintain an app in the App Center. App developers use the App provider portal and it handles authentication and access rights to the app definitions for app developers. And, it uploads the app software to the App repository.
Technically, the App Provider portal is a UMC module running on a dedicated UCS system to manage the App repository.
- App repository
The App repository is the repository for the app artifacts. UCS systems connect to the App repository to load the app metadata for presentation and to download the app for installation on a UCS system.
The App repository consists of the following parts:
Production App repository is the location where all UCS systems download the apps. It contains the publicly available apps.
App Docker registry is the location for the Docker images of Docker based apps.
Test App repository is the location for apps under development. Only app developers use it during app development. After an app release completes, the app appears in the Production App repository.
- App Catalog
The App Catalog is part of the Univention website and provides an overview of the available apps and their descriptions. It’s a representation of the app metadata for user information purposes. The App Catalog loads the data from the App repository.
- App Center
In the context of Fig. 3.9, the term App Center refers to everything on a local UCS system that makes up the App Center. The App Center loads the app information from the App repository.
For the architecture of the App Center, refer to App Center service.
The Administrator is the primary User role that interacts with the App Center on a UCS system. The Administrator has the user rights to install, update, and remove apps on a UCS system.
- Univention App Center
for more information for administrators about how to use the App Center in Univention Corporate Server - Manual for users and administrators .
- Univention App Center for App Providers
for more information for app developers about how to develop apps for Univention App Center in Univention App Center for App Providers 
- App Catalog on the Univention website
for an overview about available apps in the App Center.