This chapter describes the asset production and asset consumption processes and how to integrate Oracle Enterprise Repository with development environments.
This chapter includes the following sections:
The Oracle Enterprise Repository provides integration within development environments so developers can easily search for and use assets from the repository without leaving their development environment. Assets and any associated artifacts are downloaded directly to the developer's workspace. Integration also provides a convenient way to submit or harvest assets from the development environment into the Oracle Enterprise Repository for use throughout the enterprise.
Repository Access within the developer's workspace also provides a view into Oracle Enterprise Repository that enables developers to download artifacts and assets from the repository, query the repository, and view the contents of the repository.
The goal of this integration is to ensure that SOA Governance becomes part of the fabric of every day development.
This section includes the following topics:
This section describes the following best practice processes:
Oracle Enterprise Repository is used to track new assets and asset enhancements from the time they are proposed through the retirement of the assets, which also includes the time when the assets are being developed and when the assets are completed. Through Oracle Enterprise Repository, assets are used to produce and consume projects, to provide traceability and support impact analysis, and to point out project-level impacts of changes to the asset release plans.
Initially, a business analyst provides a description of the functionality that must be produced. If determined that the proposed functionality does not already exist, then an architect provides the functional designs and non-functional requirements. The development team then produces, harvests, or enhances an asset that meets the functional and non-functional requirements.
Figure 8-1 describes a sample asset production process.
This means that the development team needs visibility into the assets that they are to produce such as the requirements, use cases and so on. Oracle Enterprise Repository provides that visibility by allowing developers to view the details of an asset directly from the development environment. The development team builds the specified asset and then harvests the asset into the Oracle Enterprise Repository, where it goes through a review and approval process.
This section includes the following topics:
The production and enhancement of assets can be governed through design-time policies. Policies are applied to assets to communicate asset requirements that must be considered during design and development, and to provide administrators with the means to enforce and monitor asset compliance with governance, architecture, and other organizational standards. For example, a policy might articulate corporate quality standards, or identify the platforms that an asset should run on, or identify acceptable defect density rates.
A policy can be applied to multiple assets.
Multiple policies can be applied to any asset.
Each policy consists of at least one assertion statement. Each assertion has a name and description and includes a technical definition. The technical definition accommodates additional metadata that may be required to automatically validate the assertion using third-party testing and validation tools. This metadata may be web service-specific policy information, XML, or any other format that can be read by an external system. For example, an assertion statement for defect density might state that defect density must be less than .1%.
Policy information in Oracle Enterprise Repository can be accessed through the development environment. After the development team harvests an asset into Oracle Enterprise Repository, then the policies can be automatically validated through tooling or manually validated by subject matter experts.
Assets may be proposed or submitted to the Oracle Enterprise Repository in multiple ways, depending on the role and situation, some of the methods are as follows:
The general Oracle Enterprise Repository user community can submit asset requests or completed assets from the console.
Business analysts and architects can create assets to be built using the Asset Editor.
Development teams can submit or harvest assets from their development environments.
Existing assets stored in files or directories can be harvested by Competency Centers or Portfolio Managers.
QA or IT Operations can harvest assets from the build environment or from the run-time environment.
There are two primary design-time consumption models within a standard Software Development Lifecycle (SDLC) process:
Model 1: Assets are identified early in the lifecycle (also known as Prescriptive Reuse)
Business analysts and/or project architects identify assets that fulfill the functional and non-functional requirements of the project.
Development teams then receive a "kit" of relevant assets.
Model 2: Development-driven discovery
Developers identify assets that might fulfill the functional and non-functional requirements of the project.
Model 1 is the most-preferred design-time consumption model because it results in a higher level of reuse, but requires the organization to have a mature SDLC process and well-defined roles.
This section includes the following topics:
Within the Oracle Enterprise Repository web console, business analysts and/or project architects identify assets that fulfill the functional and non-functional requirements of the project. They package these assets into a "kit" called a Compliance Template. A Compliance Template communicates asset requirements or asset solution sets to internal or outsourced project teams. Two types of Compliance Templates included in Oracle Enterprise Repository are:
Project Profiles
Architecture Blueprints
Project profiles are usually created for individual projects, whereas architecture blueprints are reusable solution sets that can be leveraged by multiple projects. Some of the common use cases include:
Project planners generate a project profile for each project in the portfolio, identifying the reusable assets that factored into the project's planning and estimating assumptions.
Business analysts generate a project profile to identify assets that fulfill a project's business requirements.
Project architects generate a project profile to identify assets that fulfill a project's technical requirements.
Enterprise architects generate an architecture blueprint that specifies the standard frameworks and assets that are to be used to fulfill project-level security requirements.
Those responsible for Service-Oriented Architecture(s) (SOA) generate an architecture blueprint to identify the services that orchestrate a particular business function.
Product line architects generate an architecture blueprint that specifies the assets that are to be used to build a specific product line (similar to a Bill of Material).
Figure 8-2 describes a sample prescriptive reuse process.
Compliance Templates are applied to projects through the Oracle Enterprise Repository web console and the assets identified in the compliance template are automatically displayed in the project's development environment. In this way, development teams get a jump-start on their development efforts.
For more information about Compliance Templates, see Oracle Fusion Middleware Configuration Guide for Oracle Enterprise Repository.
There are two ways that developers can get assets from the Oracle Enterprise Repository:
Through the Oracle Enterprise Repository web console
Through their IDE (Note that this functionality is currently available for Eclipse and VS .NET. Developers are able to download assets from JDeveloper in a future release.)
Developers can come to the Oracle Enterprise Repository to obtain the assets that they would like to use on their projects. The Use-Download function in the Oracle Enterprise Repository provides access to the asset artifacts. In addition, developers can select and download all assets related to the primary asset, ensuring that they have all necessary dependencies. The repository tracks usage and generates usage-based reports.
Developers can also access Oracle Enterprise Repository from their development environment. This means that developers never have to leave their IDE's to get access to the assets that they need.
Oracle Enterprise Repository tracks and reports on the design-time use of assets. The automated usage detection is tracked through two methods:
Through the manual asset Use - Download process within Oracle Enterprise Repository or through the development environment
Automatic usage detection leveraging Software File Identification (SFID)
Software File Identification (SFID) provides the ability to determine asset usage independent of the manual asset Use - Download process. The SFID process tags selected files and asset artifacts with a unique SFID fingerprint. This tag is then used to detect when and where an asset is used, even if the asset was acquired through means other than the Use - Download process. An instance of usage is recorded by Oracle Enterprise Repository when tagged files within the asset are opened in a developer's IDE. For more information about SFID, see Oracle Fusion Middleware Configuration Guide for Oracle Enterprise Repository.
The Section 8.2, "Best Practices" provides an overview of the production and consumption processes, and encompasses the development environment use cases. The individual use cases are described below. Each development environment includes a subset of these use cases.
Using the development environment, developers can select files to submit to the Enterprise Repository. The files are bundled into a .zip format for submission. The developer can submit single and/or compound-payload assets to Oracle Enterprise Repository.
Oracle Enterprise Repository can harvest from Oracle products and standards based files. This includes Oracle SOA Suite, Oracle Service Bus, and standard BPEL, WSDL, XSD and XSLT files and file directories. When harvested, Oracle Enterprise Repository automatically creates assets, populates asset metadata, and generates relationship links based on the information in the artifact files. The harvesting function is available from the command line, and can be integrated into the IDE, or into the build process.
For more information, see Oracle Fusion Middleware Configuration Guide for Oracle Enterprise Repository.
Access to assets and artifacts in the Enterprise Repository is available through the development environment. Through the IDE, developers can search for assets matching various criteria or view assets that may be of interest to a development project.
For selected assets, developer can view asset details, such as description, usage history, expected savings, relationships, and so on. Within the asset metadata, links to supporting documentation, user guides, test cases, and so on, are provided to better enable developers to reuse existing functionality.
Developers can download an asset's artifacts (payload) into their project. Typically an asset payload is the functionality that a developer must use a service (such as a WSDL file) or incorporate into their code base (such as a binary or a BPEL file).
Using the Oracle Enterprise Repository, analysts, architects, technical leads, and others who are involved in the design stages of a project can create a list of assets that fulfills a project's requirements. The list of assets are captured in compliance templates in the repository and the compliance templates are associated with an Oracle Enterprise Repository project.
From within the IDE, you can view a list of assets appearing in all of the Compliance Templates assigned to your project. You can see which of the assets have been used and/or other project members. For more information about compliance templates, see Oracle Fusion Middleware Configuration Guide for Oracle Enterprise Repository.
Oracle Enterprise Repository can automatically detect asset reuse within the development environment. This enables development teams to ensure that they get asset reuse credit, regardless of whether the assets have been downloaded through Oracle Enterprise Repository or pulled from another source, such as the developer's desktop.
For more information about each of these use cases for various IDEs, see Chapter 11, "Using the IDE to Interact with Oracle Enterprise Repository".
Table 8-1 describes the specific use cases supported for each development environment.
Table 8-1 Use Cases and Supported Development Environments
Use Case | JDeveloper | Eclipse | VS .NET |
---|---|---|---|
Submit Files |
Yes |
||
Harvest (BPEL, WSDL, XSD, XSLT) |
Yes |
Yes |
Yes |
Harvest (SCA) |
11g |
||
Search Oracle Enterprise Repository |
11g |
Yes |
Yes |
View Asset Details |
11g |
Yes |
Yes |
Download Artifacts |
11g |
Yes |
Yes |
Prescriptive Reuse |
Yes |
Yes |
|
Automatic Usage Detection |
Yes |
Yes |
Table 8-2 describes the supported versions and target audience for each IDE.