Sponsor Link: EAS Training - Get training in the Essential toolset. Register your interest now. Read more
     
Home Application Modelling Application Provider
Application Provider PDF Print E-mail

The Application Provider class is used to capture the applications that exist in the organisation. So named, because they provide implementations of the Application Services, this one of the most complex elements in the Essential Meta Model. This tutorial introduces Application Providers and describes how to capture the various architectures that are associated with them.

Logical View of Applications

Application Providers are used to model the applications that exist in the enterprise. These are logical constructs that define the relevant details of an application in the general case. Specific instances of an application are defined via the Application Deployments.

In Application Architecture, we are concerned with the functional behaviour of the systems that are in use in the organisation. Technology used to implement this functionality is managed in the Technology Layer but is related to the Application Provider through its Technology Architecture.

Basic Definition

Creating a new Application Provider instance in the repository is very easy. Create a new instance, navigate to the Application Provider class - which is in the Application Provider Types - in the Class Browser panel of Protege and use the new_instance, button in the Instance Browser.

  • Give the Application Provider a name. Normally, this is the name by which your application is known in your enterprise.
  • Add a description of the application
  • Map the Application Provider to the Application Service(s) that it provides, using the link_instance button.

 

Avoid using the name of a software package for your Application Provider, unless that is the name that it is generally known by across the organisation.

 

Careful analysis of the application is worthwhile to understand both how it is being used, and how it is deployed. It may be that you need to create more than one Application Provider and group them using an instance of the Application class.

Application Function Implementations

Application Function Implementations implement Application Functions that are defined in the higher level of the Logical Application View.

Define Application Function Implementations to capture the finer-grained functional modules of the application. Application Function Implementations can have a dynamic application architecture defined for each to capture the dependencies that exist when that Application Function Implementation is executed.

 

Static Application Architecture

The Static Application Architecture is used to capture the static dependencies that exist between Application Providers. e.g.

  • Data dependencies - Application_1 depends on Application_2 for a feed of data
  • Functional dependencies - Application_1 invokes Application_2

Static Application Architectures are defined in the same way as other architectures in Essential Architecture Manager. For more information, see Working with Architectures.

 

Support Business Processes

Capture the Business Processes that the Application Provider supports by creating new instances of the Physical Business Process-to-Application Provider relationships.

Why Physical Business Processes? We need to understand which actual teams the Application Provider supports so that we can understand whether this is a shared, single instance of an Application Provider or whether different teams are using different installations of the Application Provider

 

Technology Architecture of an Application Provider

From the Application Layer, we can define the Technology Architecture of an Application Provider – an actual application that is being used to provide an Application Service – in terms of the types of technology that should be used. In this architecture, we capture a Technology Component Architecture to define the technology elements and the dependencies between them.

A Technology Composite provides the definition - the black box - for the Technology Component Architecture, we can also specify the actual builds of technology products that are available (or will be) in order to deliver this Technology Composite.

We separate these two Technology architectures (Technology Composite Architecture and Technology Product Build, respectively) to enable these two different levels of abstraction to be captured. What this means is that we can define the Technology components that we require in order to run the application and then separately describe how this component architecture is delivered in e.g. the development environment differently to that of the production environment.

Technology Capabilities that an Application RequiresIn addition to the Logical views that are described above, we can capture the required Technology Capabilities of an application, which defines the high-level technology requirements of the application (as shown in the diagram, left). Essential provides reports that review these requirements and evaluate the Technology Architectures to demonstrate how these requirements are being met – or not! Typically, these requirements would be captured before the Technology architecture is defined and would be used to drive that activity.

 

 

How Applications are constructed – Software Architecture

The high-level software architecture defines the software components that deliver the application. This can be a very coarse-grained model and for packaged applications may only consist of a single software component.

We capture the software architecture to enable us to accurate understand how an application is physically deployed. In the physical view, it is the deployed software components that are the physical manifestation of the application.

Physical View of Applications – Application Deployments

Application Deployments are used to provide the Physical View of Applications, e.g. Production deployment, test deployment etc. Application Deployments essentially package up instances of the software components that appear in the high-level software architecture and are then deployed as instances of Application Software (which are elements from the Technology Layer).

This reflects that fact that everything running on a particular machine is some form of technology but enables us to identify those technology elements that are the application in question. This approach can sometimes appear slightly complex but gives a consistent approach for modelling any software architecture that is used to deliver an application, from simple stand-alone applications to complex distributed systems.

 

What Needs to be Captured?

To completely capture the full picture of an application's technology architecture, including the physical server devices that support it, the logical and physical technology architectures used by the application must be captured.

Application Technology Architecture

To fully (logical and physical) defining the technology architecture of an application means capturing the following elements:

 

  • The Required Technology Capabilities of the application
  • The High-Level Software Architecture of the application
  • The Technology Composite with which the application is ‘Implemented With Technology’
    • The Technology Builds that provide this Technology Architecture
  • The Application Deployments for the application (e.g. development, test, production)
  • The physical Technology Node(s) on which the following are deployed
    • Application Software Instances – deployed instances of the Application Deployment
    • Infrastructure Software Instances – deployments of the Technology Products used in the Technology Product Build

Technology Product Build Roles are introduced to reflect the fact that a particular configuration of Technology Products can be used to play more than one role. The Technology Product Builds are logical elements that describe a template or design of a technical architecture. What this means is that we can re-use Technology Product Builds in different scenarios – have them play more than one role in the architecture – reflecting the reality of technical architecture.

 

 

 
Related Articles