|Page maturity |
This page has maturity level 4 (mature)
|Document type:||Generic Pattern||Owner:|
|The Application Hosting function can accommodate (business) application services.|
This Generic Pattern belongs to "Business Support". The Application Hosting function can accommodate (business) application services. This entails:
- the runtime environment that the hosted applications can use;
- a means to expose or publish the application services' results to its users;
- the connectivity that consumers of the application's services require for access;
- and optionally, extra functionality to service the application services.
Examples of application services that can be hosted are:
- Applications that are used in a web environment, e.g. Java or .Net applications - in this case the Application Hosting service is provided by an "application server" such as a Tomcat or GlassFish;
- Binary applications, e.g. Windows or Apple applications - the Application Hosting service is then realized with a "server";
- Virtual Machines, such as virtual servers or desktops - the Application Hosting service is then realized by virtualization hosts.
This Pattern realizes the following services:
- Application Hosting (Application Hosting provides functionality to accommodate (business) application services.)
Functional and Integration view
This is the graphic representation of the functional model of this Generic Pattern:
Generic Pattern Composition
This pattern is an aggregation of the following (mandatory and optional) functions, expressed in Generic Functions:
|Application Engine||recommended||This delivers the core functionality of the Pattern.|
|Presentation Engine||optional||This function delivers important support to the core functionality of any application hosting solution: the presentation of the application to the consumer. Note, however, that an Application Hosting service may be deployed behind a separate service that takes care of this. The technology used here must match those available at the service's consumer (e.g. HTTP implies browser, X Window implies X Server etc).|
|Presentation Aggregation||optional||When combining multiple hosted applications, Presentation Aggregation may serve to share (presentation-specific) functionality.|
|Scheduling||optional||While the service Application Hosting usually responds to consumer request, it may be convenient to have the service also respond to other triggers. The Scheduling function can model this capability.|
|Transaction Coordination||optional||This function can provide the needed coordination in either of the following situations:
|Message Formatting||optional||If an Application Hosting facility is to be able to offer its hosted applications the possibility to send out and/or receive messages (such as e-mail), then this function acts as intermediary between the application and the message handling service|
|Controlling||recommended||When allowing consumers (such as users and/or administrators) the ability to change the configuration of the Application Hosting service, special care may be required to prevent unauthorized access to applications hosted and/or data accessed by the Pattern.
Note that this function is limited to the Application Hosting facility, and cannot directly manage the applications running on the Application Hosting facility.
Services connected with this Generic Pattern
This Generic Pattern has the following mandatory and optional relations with adjacent Generic Services.
|Authentication & Authorization||optional||This service can validate an identity claim, and it can validate the permissions required for an action, as part of an Authentication & Authorization process.||When authentication/authorization (A&A) is needed and cannot be (fully) catered for in an Access Security pattern, then the A&A facility is necessary. Authorization can be paired with Application Hosting relatively easy, but application of authorization is more secure if it takes place earlier in the traffic stream from client to application. Hence the usage of Access Security -including A&A- is preferable.|
|Data Management||optional||This service provides its consumers the ability to manage strictly structured data.||Should the Application Hosting pattern need to offer hosted applications the ability to store strictly structured data, or should it require this for itself, then it should include or connect with an instance of this service.|
|File Storage||optional||This service offers clients the ability to store, retrieve and modify data in loosely structured form.||Should the Application Hosting pattern need to offer hosted applications the ability to store loosely structured data, or should it require this for itself, then it should include or connect with an instance of this service.|
|Message Handling||optional||This service handles transport, storage and delivery of messages between senders and recipients.||This service offers the means to deliver data to applications, and/or to enable applications to send data out. It may provide asynchronous messaging (like email or XML messages), synchronous messaging (like SOAP messages over HTTP or RPC) or both.|
Applied Patterns based on this Generic Pattern
The following Applied Patterns are based wholly or in part on this Generic Pattern: