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:

Hint

For architecture notation, this part of the document uses ArchiMate® 3.2, a visual language with a set of default iconography for describing, analyzing, and communicating many concerns of enterprise architectures. For more information about how the document uses the notation, refer to ArchiMate.

Continue reading

App Center

for the description of the App Center component in UCS.

See also

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.

../_images/App-Center-purpose.svg

Fig. 3.3 Purpose of the App Center#

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.

../_images/App-Center-actors.svg

Fig. 3.4 Actors in the App Center ecosystem#

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.

App provider#

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.

Customer#

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.

App artifacts#

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.

../_images/App-Center-apps-1.svg

Fig. 3.5 Parts of an app#

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.

../_images/App-Center-apps-2.svg

Fig. 3.6 Kinds of software distribution for the App Center#

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.

Important

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.

../_images/App-Center-apps-3.svg

Fig. 3.7 Kinds of Docker apps#

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.

../_images/App-Center-apps.svg

Fig. 3.8 Apps as content in the App Center ecosystem#

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.

../_images/App-Center-infrastructure.svg

Fig. 3.9 App Center infrastructure model#

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 that 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 storage location 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 of the ArchiMate application component refers to everything on a local UCS system that makes up the App Center. The App Center Service loads the app information from the App repository.

For the architecture of the App Center, refer to App Center service.

Administrator

The Administrator is the primary User role that interacts with the App Center Service on a UCS system. The Administrator has the user permissions to install, update, and remove apps on a UCS system.

See also

Univention App Center

for more information for administrators about how to use the App Center in Univention Corporate Server - Manual for users and administrators [1].

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 [2]

App Catalog on the Univention website

for an overview about available apps in the App Center.