The fundamental term in APS is APS Resource. Each application must expose its own set of APS types that declare the structure, properties, and operations of APS resources created from those types.
The conversion of the application original (native) API and resource presentation to the APS REST API and APS resources respectively must be performed by a special integration code (provisioning logic) exposed through the APS application endpoint.
An APS application can expose several services. An APS application service is a factory of APS resources based on a certain APS type. An APS resource is uniquely identified by its APS ID - UUID (universally unique identifier). In the platform, an APS application service is a part of the application provisioning logic. It synchronizes creation, updates, and removal of APS resources with respective application original resources.
APS is based on the well known Model-View-Controller (MVC) architecture.
The MVC components are:
Data model of an application defined by the ISV and package developer.
The application original resources are synchronized with the APS resources controlled by the APS controller. The synchronization goes through the services exposed by an application specific APS connector.
The APS controller as the message broker on the APS bus connecting all APS participants.
All messages between applications and systems connected to the APS bus go through the APS controller. This makes the APS bus and APS controller terms equivalent.
The customizable user interface (UI) representing resources through custom view components.
On a user action, the UI code must be able to request the APS controller to perform one of CRUD (create-read-update-delete) operations or a custom operation. The APS controller synchronizes all those requests with the application through its endpoint. Each APS resource is created based on an APS type, which is a formal description of resources. The APS controller processes each REST request in the following order:
In accordance with this model, application developers must do the following in an APS package: