| Application Provider |
|
|
|
|
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 ApplicationsApplication 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 DefinitionCreating 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
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 ImplementationsApplication 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 ArchitectureThe Static Application Architecture is used to capture the static dependencies that exist between Application Providers. e.g.
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 ProcessesCapture 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 ProviderFrom 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.
How Applications are constructed – Software ArchitectureThe 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 DeploymentsApplication 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. To fully (logical and physical) defining the technology architecture of an application means capturing the following elements:
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.
|