Application Management Layer

The Application Management Layer (AML) is a comprehensive package that provides classes and workflows for managing AI models, applications and workloads, facilitating interaction between various IT professionals such as DevOps Engineers, Application Developers, Data Engineers, and Data Scientists.

The package documentation elaborates on the Application Management Layer (AML) which forms an important component in managing complex workflows and applications through the application development lifecycle.

Based on the identified use cases, the AML contains key functionalities for managing AI models, applications, and workloads. IT professionals such as DevOps engineers, application developers, data engineers, and data scientists are the primary actors who interact with the AML, utilizing different methods to perform distinct use cases.

The use case ‘Manage AI Models’ outlines how a Data Scientist manages AI models in coordination with DevOps to ensure that both the AI models and applications are updated together. The scenarios within this use case cover actions like creating, deploying, destroying, and updating AI models.

In the ‘Manage Applications’ use case, DevOps Engineers and Application Developers collaborate to manage applications across multiple platforms. The operations within this use case include building, creating, deploying, destroying, monitoring, and updating the applications.

The use case ‘Manage Workloads’ enables Application Developers to interconnect applications through workflows, thereby automating complex data interactions between various applications across a hybrid infrastructure. The included operations are creating, deploying, destroying, monitoring, and updating the workloads.

Within the AML package, we have several key classes including Application, Application Instance, Application Template, Workload, Workload Instance, and Workload Template. Each of these classes provides methods for managing their instances, including operations like creating, destroying, adding to, updating, and removing from the instances.

Furthermore, there are defined workflows for managing AI models, applications, and workloads. These workflows illustrate the sequential actions, conditions, and transitions between different states for each operation, specifying the actors responsible for each action and the outcome of their activities.

Overall, the AML provides a comprehensive management system for AI models, applications, and workloads, connecting different users and their actions in an organized, modular manner.

Use Cases

The following are the use cases of the Application Management Layer subsystem. Each use case has primary and secondary scenarios that are elaborated in the use case descriptions.

UseCase Diagram

Users

The following are the actors of the Application Management Layer subsystem. This can include people, other subsystems inside the solution and even external subsystems.

User Interaction

Interface

The subsystem has a REST, CLI, WebSocket, and Web interface. Use Cases and Scenarios can use any or all of the interfaces to perform the work that needs to be completed. The following diagram shows how users interact with the system.

Scenario Mappings Diagram

Logical Artifacts

The Data Model for the Application Management Layer subsystem shows how the different objects and classes of object interact and their structure.

Sub Package Diagram

Sub Packages

The Application Management Layer subsystem has sub packages as well. These subsystems are logical components to better organize the architecture and make it easier to analyze, understand, design, and implement.

Logical Diagram

Classes

The following are the classes in the data model of the Application Management Layer subsystem.

Deployment Architecture

This subsystem is deployed using micro-services as shown in the diagram below. The ‘micro’ module is used to implement the micro-services in the system. The subsystem also has an CLI, REST and Web Interface exposed through a nodejs application. The nodejs application will interface with the micro-services and can monitor and drive work-flows through the mesh of micro-services. The deployment of the subsystem is dependent on the environment it is deployed. This subsystem has the following environments:

Physical Architecture

The Application Management Layer subsystem is physically laid out on a hybrid cloud infrastructure. Each microservice belongs to a secure micro-segmented network. All of the micro-services communicate to each other and the main app through a REST interface. A Command Line Interface (CLI), REST or Web User interface for the app is how other subsystems or actors interact. Requests are forwarded to micro-services through the REST interface of each micro-service. The subsystem has the a unique layout based on the environment the physical space. The following are the environments for this subsystems.

Micro-Services

These are the micro-services for the subsystem. The combination of the micro-services help implement the subsystem’s logic.

dev

Detail information for the dev environment can be found here

Services in the dev environment

  • aml_web : aml_web
  • aml_as : aml_as
  • aml_ds : aml_ds
  • aml_ws : aml_ws
  • aml_ams : aml_ams

test

Detail information for the test environment can be found here

Services in the test environment

  • aml_web : aml_web
  • aml_as : aml_as
  • aml_ds : aml_ds
  • aml_ws : aml_ws
  • aml_ams : aml_ams

prod

Detail information for the prod environment can be found here

Services in the prod environment

  • aml_web : aml_web
  • aml_as : aml_as
  • aml_ds : aml_ds
  • aml_ws : aml_ws
  • aml_ams : aml_ams

Activities and Flows

The Application Management Layer subsystem provides the following activities and flows that help satisfy the use cases and scenarios of the subsystem.

Messages Handled

The Application Management Layer subsystem is an event driven architecture and handle several events. The following events are handled by this subsystem. Please note that this subsystem is not the only subsystem that handles these events.

Message Action Description
aimodel.create Custom Action  
aimodel.updated Custom Action  
application.create Custom Action  
application.updated Custom Action  

Messages Sent

Event Description Emitter
application.create When an object of type Application is created. Application
application.destroy When an object of type Application is destroyed. Application
application.updated When an object of type Application has an attribute or association updated. Application
applicationinstance.create When an object of type ApplicationInstance is created. ApplicationInstance
applicationinstance.destroy When an object of type ApplicationInstance is destroyed. ApplicationInstance
applicationinstance.updated When an object of type ApplicationInstance has an attribute or association updated. ApplicationInstance
applicationtemplate.create When an object of type ApplicationTemplate is created. ApplicationTemplate
applicationtemplate.destroy When an object of type ApplicationTemplate is destroyed. ApplicationTemplate
applicationtemplate.updated When an object of type ApplicationTemplate has an attribute or association updated. ApplicationTemplate
workload.create When an object of type Workload is created. Workload
workload.destroy When an object of type Workload is destroyed. Workload
workload.updated When an object of type Workload has an attribute or association updated. Workload
workloadinstance.create When an object of type WorkloadInstance is created. WorkloadInstance
workloadinstance.destroy When an object of type WorkloadInstance is destroyed. WorkloadInstance
workloadinstance.updated When an object of type WorkloadInstance has an attribute or association updated. WorkloadInstance
workloadtemplate.create When an object of type WorkloadTemplate is created. WorkloadTemplate
workloadtemplate.destroy When an object of type WorkloadTemplate is destroyed. WorkloadTemplate
workloadtemplate.updated When an object of type WorkloadTemplate has an attribute or association updated. WorkloadTemplate

Interface Details

The Application Management Layer subsystem has a well defined interface. This interface can be accessed using a command line interface (CLI), REST interface, and Web user interface. This interface is how all other subsystems and actors can access the system.

Action edgemere aml aimodel create

  • REST - /edgemere/aml/aimodel/create?
  • bin - edgemere aml aimodel create
  • js - .edgemere.aml.aimodel.create({ })

Description

Creates a new AI model

Parameters

No parameters

Action edgemere aml aimodel deploy

  • REST - /edgemere/aml/aimodel/deploy?
  • bin - edgemere aml aimodel deploy
  • js - .edgemere.aml.aimodel.deploy({ })

Description

Deploys a specified AI model

Parameters

No parameters

Action edgemere aml aimodel destroy

  • REST - /edgemere/aml/aimodel/destroy?
  • bin - edgemere aml aimodel destroy
  • js - .edgemere.aml.aimodel.destroy({ })

Description

Destroys a specified AI model

Parameters

No parameters

Action edgemere aml aimodel list

  • REST - /edgemere/aml/aimodel/list?
  • bin - edgemere aml aimodel list
  • js - .edgemere.aml.aimodel.list({ })

Description

Returns a list of AI models

Parameters

No parameters

Action edgemere aml aimodel scan

  • REST - /edgemere/aml/aimodel/scan?appName=string
  • bin - edgemere aml aimodel scan –appName string
  • js - .edgemere.aml.aimodel.scan({ appName:string })

Description

An interface designed to scan the AI model for potential malware or viruses.

Parameters

Name Type Required Description
appName string   The name of the AI model to scan.

Action edgemere aml aimodel sign

  • REST - /edgemere/aml/aimodel/sign?appName=string
  • bin - edgemere aml aimodel sign –appName string
  • js - .edgemere.aml.aimodel.sign({ appName:string })

Description

This interface is used to add a digital signature to the AI model to confirm its authenticity.

Parameters

Name Type Required Description
appName string   The name of the AI model that needs to be digitally signed.

Action edgemere aml aimodel update

  • REST - /edgemere/aml/aimodel/update?
  • bin - edgemere aml aimodel update
  • js - .edgemere.aml.aimodel.update({ })

Description

Updates a specified AI model

Parameters

No parameters

Action edgemere aml aimodel validate

  • REST - /edgemere/aml/aimodel/validate?appName=string&SLA=string
  • bin - edgemere aml aimodel validate –appName string –SLA string
  • js - .edgemere.aml.aimodel.validate({ appName:string,SLA:string })

Description

An interface to validate AI model based on SLA Pass Rate

Parameters

Name Type Required Description
appName string   The unique identifier for the AI model to be validated.
SLA string   The Service Level Agreement details defining the expected performance and pass rates for the AI model

Action edgemere aml application create

  • REST - /edgemere/aml/application/create?
  • bin - edgemere aml application create
  • js - .edgemere.aml.application.create({ })

Description

Creates a new application

Parameters

No parameters

Action edgemere aml application deploy

  • REST - /edgemere/aml/application/deploy?
  • bin - edgemere aml application deploy
  • js - .edgemere.aml.application.deploy({ })

Description

Deploys a specified application

Parameters

No parameters

Action edgemere aml application destroy

  • REST - /edgemere/aml/application/destroy?
  • bin - edgemere aml application destroy
  • js - .edgemere.aml.application.destroy({ })

Description

Destroys a specified application

Parameters

No parameters

Action edgemere aml application list

  • REST - /edgemere/aml/application/list?
  • bin - edgemere aml application list
  • js - .edgemere.aml.application.list({ })

Description

Returns a list of applications

Parameters

No parameters

Action edgemere aml application monitor

  • REST - /edgemere/aml/application/monitor?attr1=string
  • bin - edgemere aml application monitor –attr1 string
  • js - .edgemere.aml.application.monitor({ attr1:string })

Description

Description of the action

Parameters

Name Type Required Description
attr1 string false Description for the parameter

Action edgemere aml application update

  • REST - /edgemere/aml/application/update?
  • bin - edgemere aml application update
  • js - .edgemere.aml.application.update({ })

Description

Updates a specified application

Parameters

No parameters

Action edgemere aml data create

  • REST - /edgemere/aml/data/create?attr1=string
  • bin - edgemere aml data create –attr1 string
  • js - .edgemere.aml.data.create({ attr1:string })

Description

Description of the action

Parameters

Name Type Required Description
attr1 string false Description for the parameter

Action edgemere aml workload create

  • REST - /edgemere/aml/workload/create?
  • bin - edgemere aml workload create
  • js - .edgemere.aml.workload.create({ })

Description

Creates a new workload

Parameters

No parameters

Action edgemere aml workload deploy

  • REST - /edgemere/aml/workload/deploy?
  • bin - edgemere aml workload deploy
  • js - .edgemere.aml.workload.deploy({ })

Description

Deploys a specified workload

Parameters

No parameters

Action edgemere aml workload destroy

  • REST - /edgemere/aml/workload/destroy?
  • bin - edgemere aml workload destroy
  • js - .edgemere.aml.workload.destroy({ })

Description

Destroys a specified workload

Parameters

No parameters

Action edgemere aml workload list

  • REST - /edgemere/aml/workload/list?
  • bin - edgemere aml workload list
  • js - .edgemere.aml.workload.list({ })

Description

Returns a list of workloads

Parameters

No parameters

Action edgemere aml workload monitor

  • REST - /edgemere/aml/workload/monitor?attr1=string
  • bin - edgemere aml workload monitor –attr1 string
  • js - .edgemere.aml.workload.monitor({ attr1:string })

Description

Description of the action

Parameters

Name Type Required Description
attr1 string false Description for the parameter

Action edgemere aml workload update

  • REST - /edgemere/aml/workload/update?
  • bin - edgemere aml workload update
  • js - .edgemere.aml.workload.update({ })

Description

Updates a specified workload

Parameters

No parameters


Table of contents