Architecture
- Last UpdatedNov 06, 2025
- 2 minute read
The Middleware Web API is a self-hosted Web API based on Microsoft’s implementation of the OWIN specification. By default, it will share port 443. You can configure it to use a different port, but you might have to make accommodations in your firewall to support alternative port numbers.
Like the MES Stateless and Stateful API, the MES Web API goes through the MES middleware. However, the MES Web API authentication is managed by the System Management Server’s (SMS) AVEVA Identity Manager (AIM) component and is registered with AIM as part of the post-install configuration. Other AVEVA software components that use the same AIM Server–such as Recipe Management, Work Tasks, and System Platform Operations Management Interface (OMI)–can seamlessly make MES Web API calls with a single login.
Unlike the Stateless API, the Web API runs as part of the MES middleware and does not rely on the MES middleware proxy to communicate with the MES middleware. Each MES middleware instance has an independent MES Web API instance included with it. Therefore, there is no need for any MES components to be installed on the client system making the Web API call.
The Web API follows some principles of REST:
- Client-server
- Stateless
- Cacheable
- Posts and Puts use resources to add or update the MES database
However, the Get methods of the V3 endpoints do not return defined resources. Instead, they return JObjects or arrays of JObjects (JArrays), which are defined by the columns returned from the underlying stored procedure used to execute the call.
In other ways, the Web API is a remote procedure call (RPC) interface. It has endpoints such as the V3/Job/StartJob, which executes a method, in this case to start a job. The V3 version of the Web API is intended to be a flexible API that can be used to build web clients that serve the needs of the customer.
The MES Web API is expected to be used within a client UI. When the MES Web API is hit from a client without a security token, the UI is redirected to AIM for the user to provide their login credentials. AIM provides a token that will then be passed to the MES Web API to allow the user to proceed.
The Middleware Web API supports the Open API 2.0 specification using Swagger 2.0. You can get the Open API JSON content for Web API V3 as follows, replacing hostname with the name of the machine on which the MES middleware is running. You can then copy and save the content to a JSON file for use in Open API-compatible applications.
https://hostname/mesmw/swagger/docs/v3