Reusable assets in IBM PureApplication System

Building and implementing reusable components and application templates

Reusable components provide a method by which domain experts can capture their knowledge of an enterprise system into reusable components that can be easily consumed by users creating new application patterns. This article describes the use of reusable components and application templates within IBM® PureApplication™ System. Learn about processes that can be used to accelerate the development life cycle and provide consistent implementations across deployments.


Vincent A Belfoure (, Cloud Architect, IBM

Vincent Belfoure photoVincent Belfoure has been with IBM for 17 years and is currently a cloud architect for IBM Cloud Labs, a division of IBM Software Group. He currently works with customers to design cloud computing solutions. Prior to joining the Cloud Labs, Vincent held positions as the BPM technical sales lead for central eastern Europe, the Middle East, and Africa and worldwide technical sales lead for WebSphere Process Server. He has also been a member of the New York City WebSphere technical sales team and software services.

29 January 2013

Also available in Chinese

IBM PureApplication System provides a framework that enables designers to create reusable assets that can accelerate the development of application patterns and ensure that architectural standards are consistently implemented across deployments. Assets can represent infrastructure components such as databases, user registries, messaging engines, and enterprise applications. When combined, assets can form application pattern templates that can be used to define standard architectural patterns for applications across the enterprise.

A catalog of reusable components and templates can decrease the cost of bringing new applications to market and ensure that organizational standards are observed.

Defining reusable components

Figure 1 and the list that follows show how assets configured for a specific purpose become components that you can combine into templates, and then deployable patterns.

Figure 1. How assets become deployable application patterns
Image showing how assets become deployable application patterns
  • Assets. Assets are provided with the PureApplication System as the basic building blocks for an application pattern. They are used when building virtual application patterns and are designed to connect to existing enterprise resources such as databases, messaging engines, and user registries. You must configure assets for the specific resource you're connected to.
  • Reusable components. These assets are configured by a domain expert to connect to a specific enterprise resource. Reusable components are saved to a catalog and available for reuse. You can add them directly to application patterns or templates without any further configuration.
  • Virtual application template. These templates consist of assets and reusable components that have been wired together, representing a commonly used pattern. Configuration details that are common to all instances in which the template will be used are provided. The templates reside in the catalog and are available for reuse.
  • Virtual application pattern. Patterns consist of assets and components that have been wired together and completely configured. These patterns are ready to deploy.

User roles for reusable components

The PureApplication System provides a security model that controls who can add new content to the catalog of reusable components and who can access the components. This model allows organizations to control the visibility and use of cataloged items. For example, separate user registries might exist for internal and external facing applications. Permissions can be set so that pattern developers responsible for building internal applications can access only the internal registry component, and pattern developers who build external-facing applications have access only to the external user registry component.

Adding content to the catalog

Only users with "Create new catalog content" permission are able to add reusable components and pattern templates to the PureApplication System catalog. After a component has been added to the catalog, the owner must add users or groups to the access control list (ACL) before other users can use the component.

Accessing catalog content

Any user granted access to an item in the catalog can implement the component. In the case of a reusable component, the user can add the component to an application pattern or application template. Access to application templates allows pattern creators to select a template from the catalog and use it as a starting point when creating new application patterns.

The value of reusable components

Knowledge of how to configure connectivity to enterprise resources is typically held by domain experts, who need to be involved each time a new connection is required. The PureApplication System provides a facility for domain experts to capture their knowledge into reusable components and make those components available in a catalog for reuse. In practice, the configuration details that are consistent across the enterprise are captured in the component, and details unique to each application are left to be defined when the application is added to the pattern.


A payroll application and a human resources (HR) application both connect to a corporate user registry. The user registry component is common to both applications, so it is beneficial to have the domain expert configure a standard user registry component and save it to the catalog as a reusable component. Both the Payroll and HR application patterns can implement the user registry reusable component. The component is preconfigured with the host name of the user registry, because that is consistent across the enterprise. However, the payroll application has a security role named "accountants", and the HR application has a security role named "partners". These application-specific configuration details are left to the pattern developer to define, as he or she customizes the pattern for each application.

The reusable component accelerates development by providing the pattern developer, who has no knowledge of how to connect to the user registry, the ability to leverage the domain expert's knowledge of the enterprise system. The pattern developer is required to provide only details specific to his or her application.

In this manner, reusable components accelerate pattern development, reduce the potential for human error, and enforce consistent interaction with enterprise resources.

The value of application templates

When designing a virtual application pattern, it is helpful to think about how a pattern can support many applications. A virtual application template, in turn, can support many patterns. By taking the template approach, pattern developers realize a greater degree of reuse.

The value of reusable components is described in an earlier section. Combining components to build application templates increases their use and extends the concept of reuse to the level of application patterns.


A payroll application and an HR application both connect to a corporate user registry and database cluster. Architecturally, they follow the same pattern. The developer responsible for implementing the payroll application can select the appropriate application template from the catalog and add the payroll application. The template was built using reusable components, so it is already configured to connect to the required enterprise resources. The developer needs to provide only configuration details specific to the application; the template defines how the resources interact.

The application template accelerates development by providing the developer with a pattern that encapsulates the complexities of interacting with enterprise resources, allowing the developer to rapidly deploy new application patterns without having to involve domain experts.

Implementing application pattern templates provides the ability to standardize application architecture across deployments. Standardization makes it possible to control how new application patterns are built and prevent a scenario in which many patterns are created to meet similar requirements but are implemented in different ways.

Example scenario: Defining a corporate user registry

An organization has a single user registry that is referred to when authenticating employees to corporate web applications. The suggested practice is to create a reusable component that encapsulates the configuration details required to connect to and communicate with the user registry. A domain expert starts with one of the standard user registry assets, provides the appropriate configuration details, and saves it to a catalog of reusable components. From the catalog of assets, it can be shared with other users and included in future application patterns.

This approach has the following advantages:

  • It provides a consistent configuration and method for connecting to the corporate user registry.
  • It eliminates the potential for misconfiguration when building future application patterns.
  • It accelerates the rate at which future application patterns can be created by providing preconfigured components.

Example scenario: Defining a standard web application template

An organization typically has a number of web applications that follow the same architectural pattern. One example is an enterprise application that is hosted on an application server and connects to a user registry for authentication and a database for application data. This common pattern, shown in Figure 2, can be repeated in applications across the organization.

Figure 2. A common application pattern
Image showing a common application pattern

To ensure architectural consistency across application deployments, the PureApplication System provides the ability to create application templates. The templates describe how components of the application are connected and define common configuration parameters while leaving instance-specific information available for configuration by the template's consumer (see Figure 3).

Figure 3. An application template for the common pattern
Image showing an application template for the common pattern

Drilling down into the database component shows how the reusable component might be configured (see Figure 4). The connection details are consistent across all implementations, so they are defined in the component. The name of the database on the server is unique to every application that uses the component, so this parameter is left for configuration when the template is implemented.

Figure 4. Details of the database component
Image showing details of the database component

This approach allows coarse-grained configuration details that apply to all applications of a given type to be defined at an organizational level while leaving details that are unique to individual applications available for configuration when the template is reused.


Reusable components provide a method by which domain experts can capture their knowledge of an enterprise system into reusable components that can be easily consumed by users creating new application patterns. Application templates are used to predefine a set of components and their configuration, which can then be used to standardize the creation of application patterns. Through the implementation of these reusable assets, organizations can accelerate the development of new application patterns and define standards that can drive architectural consistency across application deployments.



Get products and technologies

  • Download the IBM Virtual Pattern Kit for Developers to leverage or extend IBM patterns locally on your own system.
  • Evaluate IBM products in the way that suits you best: Download a product trial, try a product online, use a product in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.


  • Get involved in the developerWorks community. Connect with other developerWorks users while exploring the developer-driven blogs, forums, groups, and wikis.


developerWorks: Sign in

Required fields are indicated with an asterisk (*).

Need an IBM ID?
Forgot your IBM ID?

Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.


All information submitted is secure.

Dig deeper into Cloud computing on developerWorks

  • developerWorks Premium

    Exclusive tools to build your next great app. Learn more.

  • Cloud newsletter

    Crazy about Cloud? Sign up for our monthly newsletter and the latest cloud news.

  • Try SoftLayer Cloud

    Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.

Zone=Cloud computing
ArticleTitle=Reusable assets in IBM PureApplication System