Académique Documents
Professionnel Documents
Culture Documents
June 2013
Introduction ......................................................................................... 2
Caveat ............................................................................................. 2
Conventions used in this whitepaper .............................................. 2
What Is Configuration Management? .................................................. 3
What Is Involved In Configuration Management? ............................... 4
Why is Configuration Management so important? .......................... 6
How to Read this series .................................................................. 7
Configuration Management Concepts ................................................. 8
Configuration item ........................................................................... 8
Base Product ................................................................................... 8
Customization ............................................................................... 10
Baselines ....................................................................................... 11
Versions ........................................................................................ 13
Releases ....................................................................................... 13
Configuration Management Approach .............................................. 13
Guidelines For Effective Configuration Management ........................ 14
Treat each environment like a production environment ................ 14
Management tasks are no different ............................................... 15
Begin with the end in mind ............................................................ 15
Assume an environment for change ............................................. 15
Minimize the number of environments .......................................... 15
Keep the solution simple as possible ............................................ 16
Automate where possible and necessary ..................................... 16
Don’t release unless documentation is complete .......................... 16
Do not assume a tool is a silver bullet ........................................... 16
Other Resources ............................................................................... 17
Web Pages .................................................................................... 17
Suggested External Reading ........................................................ 17
Oracle Utilities Application Framework - Concepts - Software Configuration Management
Introduction
Welcome to the Configuration Management series of whitepapers for Oracle Utilities Application
Framework based products. This series hopes to introduce and inform you about the approaches to
implement a strong configuration management approach in your implementation before and after go
live.
This whitepaper is the first in the series and covers the introductory aspects of Configuration
Management. It is recommended that readers be familiar with the concepts outlined in this document
before reading any of the rest of the series.
Caveat
While all care has been taken in providing this information, the advice in this document may or may
not apply to the particular software configuration management practices you may be using at your site.
The examples and general advice should be taken as suggestions only.
It is recommended that each technique outlined in this series of documents be examined in light of
your particular organizational policies and use of the product at your site. If the technique is deemed
appropriate to your site, then consider implementing it. If the technique is not appropriate (e.g.
contravenes site policy and other reasons), then it should not be used.
Scripts and command in this document are provided as is and should be considered as a starting point
for any utilities or facilities you wish to implement.
2
Oracle Utilities Application Framework - Concepts - Software Configuration Management
Advice or instructions marked with this icon apply to Oracle Utilities Application
Framework V4.0 based products and above.
Advice or instructions marked with this icon apply to Oracle Utilities Application
Framework V4.1 based products and above.
Advice or instructions marked with this icon apply to Oracle Utilities Application
Framework V4.2 based products and above.
Note: For publishing purposes, the word "product" will be used to be denote all Oracle Utilities Application Framework
based products.
Note: Advice in this document is primarily applicable to the latest version of the Oracle Utilities Application Framework
at time of publication. Some of this advice may apply to other versions of the Oracle Utilities Application Framework
and may be applied at site discretion.
Note: In some sections of this document the environment variable $SPLEBASE (or %SPLEBASE%)
is used. This denotes the root location of the product install. Substitute the appropriate
Customizations
The Implementation
Base Product
3
Oracle Utilities Application Framework - Concepts - Software Configuration Management
Version Release
Distribution
Management Management
Environment Management
Concepts
4
Oracle Utilities Application Framework - Concepts - Software Configuration Management
• Concepts – At the base of the model is a set of Configuration Management concepts all the
practices use as a common basis. This part of the series covers this aspect of Configuration
Management.
• Version Management – At the development level it is important to manage and track
individual versions of configuration items. Version Management is the set of processes to
ensure that you can manage and track these items, at a sufficient level, to ensure they do not
negatively impact your ability to deliver or upgrade your customizations. This aspect of
Configuration Management is covered in the Version Management document in this series.
• Release Management – Once the versions are managed a group of configuration items are
assembled into a release to be packaged for distribution. A package can be a single emergency
fix or a whole customization release (and every combination in between these extremes).
Release Management is the set of processes that manage the building and packaging process
ready for distribution. It also deals with how to prepare your customizations for an upgrade.
This aspect of Configuration Management is covered in the Release Management document in
this series.
• Distribution – Once the release package is built it must be distributed, or more correctly,
migrated to the environments it needs to be implemented in. Distribution is the set of
processes to manage the further implementation of the package to the target environments.
This includes how it gets to the environment, how it is installed and retention of the
distribution. This aspect of Configuration Management is covered in the Distribution
document in this series.
• Environment Management – To cater for all the Version Management, Release
Management, Distribution and other activities in the implementation (e.g. Testing, Training
etc), a set of environments is needed to support your activities. Environment Management is
the set of processes to identify, own and manage a set of interrelated environments to support
the successful implementation and support of your product implementation. This aspect of
Configuration Management is covered in the Environment Management document in this
series.
• Change Management – One of the interfaces into Configuration Management is the
integration of change. Change affects all aspects of the implementation and post
implementation and Configuration Management is no different in this respect. Change
Management is the set of processes to integrate and handle change within your Configuration
Management solution. This includes changes from external sources (product and
environmental) such as upgrades, rollups and single fixes. This aspect of Configuration
Management is covered in the Change Management document in this series.
• Defect Management – Another interface into Configuration Management is the impact of
defects found before and after implementation. Defects are specialist types of changes to
address specific issues rather than changes to functionality or changes to the environment.
Defects found invariably mean changes to configuration items and Defect Management is the
set of processes to register and manage the implications of defects on the delivery of
5
Oracle Utilities Application Framework - Concepts - Software Configuration Management
6
Oracle Utilities Application Framework - Concepts - Software Configuration Management
• The relationships between code and data are not tracked leading to pieces of functionality not
working as expected or not at all. All the Oracle Utilities Application Framework based
products are primarily data driven products, key data has to be provided to the product to
recognize customizations and operate customizations as expected.
• You are unable to track which environment has which release or which patch has been
applied. This can be critical in determining upgrade impact across the environments that a site
has implemented.
• The documentation delivered with the software does not match or is so out of date it is
useless to your customers. Releases include all types of configuration items and if one is not
consistent with the other then misunderstandings and negative impacts ensue.
All these situations (and more) are issues caused by ineffective or non-existent Configuration
Management practices. If you do not experience any of these problems or problems of a similar nature
you are either very lucky, do not have a Configuration Management problem or your Configuration
Management solution is either complete or so simple that is self-sustaining.
Configuration Management helps to reduce (or eliminate) these problems by offering a solution for
tracking and management of configuration items and releases.
MANAGEMENT
1 Concepts ■ ■ ■
2 Environment Management ■ ■ ■
3 Version Management ■ ■
4 Release Management ■
5 Distribution ■
6 Change Management ■ ■
7 Defect Management ■ ■
7
Oracle Utilities Application Framework - Concepts - Software Configuration Management
MANAGEMENT
8 Status Accounting ■ ■
11 Implementing Upgrades ■ ■ ■
Note: The ■ icon indicates that that group of people should read that component of the Configuration Management
Series. All groups are welcome to read outside this suggested reading guide.
Configuration item
A Configuration Item is a component (code, data or other) of the implementation managed by
Configuration Management. This can be something developed or acquired by any other means (such as
input directly), onsite or offsite.
The level of Configuration items can get quite detailed with smaller and smaller levels of components
that can be managed individually. The key to a good Configuration Items is choosing the level you
want to manage to exhibit the appropriate level of control. This concept will be discussed in the
Version Management part of this series.
Note: Refer to Base Product and Customization sections of this document for a list of the common configuration items
delivered in the base product and customizations respectively.
Base Product
The base product is the Oracle Utilities Application Framework based product configuration items
delivered by the Product Development team at Oracle. These are delivered at specific intervals in the
form of the initial installation of the product, upgrades, rollups and single fixes. The table below
outlines the common configuration items delivered with the product as part of the base product:
TABLE 2 – BASE PRODUCT COMPONENTS
Runtime – Software Server Express Application Server Used to execute the COBOL business objects used by the
required to run the product online and background processes.
Base Software – The Base Screen definitions in XML/XSL. Used to define all the screens delivered in the base product.
product itself Base Business Objects All the business functionality used by the online and
background processes expressed in precompiled
executables/classes. This requires Server Express and java
runtime to execute.
8
Oracle Utilities Application Framework - Concepts - Software Configuration Management
Base Services All the services supplied with the product that are used to
implement the online functionality.
Base XML MetaInfo All the internal definitions of the base objects that are used
for validation and as a basis XAI schema definitions.
Base Algorithms The compiled and source code (for basing your custom
algorithms upon) for all supplied base algorithms. The
compiled AND source code are considered configuration
items.
Common Copybooks/classes A set of copybooks shared between the base product and
customizations that define the basic interface between the
two.
Base UNIX scripts and UNIX A set of basic UNIX scripts to manage the runtime and
functions development aspects of the product. A common set of UNIX
functions are also implemented to be reused across the
UNIX scripts.
Base GUI Framework A GUI framework is provided to render the screens, use the
XML Meta Info internally and provide interaction with end
users. This also includes the XAI processor.
Multi-Purpose Listener This provides interaction with XAI from non-HTTP sources
and provides outgoing transactions from the product to
external systems/hubs.
Database Base Schema This is the set of tables, indexes, views and sequences that
constitute the database structure that houses the product
data.
Data Base Meta Data This is the set of base data that controls the internal
operations of the product. It is necessary for basic operation
of the product.
Base Control Data This is the set of data that the implementation chooses from
a sample set of control data such as algorithm definitions
and lookups.
Base Demonstration Data This is a set of sample set of data used for training and
familiarization purposes.
Base Configuration Files This is a set of configuration files that define the
environmental, XAI, WebLogic, WebSphere and Oracle
Application Server configuration templates/files for the
product.
9
Oracle Utilities Application Framework - Concepts - Software Configuration Management
Development Oracle Utilities Software This is a set of utilities and guidelines (in MS Word format)
Development Kit that describe how to develop for the product and implement
packaging and migration of code/data.
The following additional environmental components are not provided with the base product but
should be considered as configuration items, as without those the product would not work at all:
TABLE 3 – ENVIRONMENTAL COMPONENTS
PERL Runtime Used for the product management and development scripts and used for Configuration Lab
and Archiving.
Database Runtime Used to manage the product database. Typically this is Oracle, SQL Server or DB2.
Third Party Runtime Any third party product such batch schedulers, print software, etc
Customization
A Customization is any configuration item introduced, changed or removed as part of an implementation
to implement the customers’ business rules, practices and standards. In general the following items are
to be considered configuration items:
TABLE 4 – CUSTOMIZATION CONFIGURATION ITEMS
Data Customization Custom Meta Data This is the data that defines the behavior of the customizations.
Custom Control Data/COTS This is the set of reference data used by the implementation.
Database Customization Custom Schema These are the set of custom tables, indexes, views and
sequences introduced for the implementation.
Code Customization Custom Screens These are the set of XML and XSL that define any custom
screens.
Custom XML MetaInfo These are the set of XML MetaInfo files used to define the
internal Jolt interface and XAI interface for any custom screens.
Custom Client-Side User Exits These are a set of Java Server Pages that allow
implementations to manipulate the base client browser code.
Custom Server-Side User Exits or These are a set of COBOL or java routines that allow
Change Handlers implementations to manipulate the base business object code
not covered by algorithms.
Custom XAI Schemas/XSL These are the set of custom XAI schema definition files and XSL
scripts used to manipulate data into and out of SPL CC&B.
Custom Business Objects These are the set of custom COBOL or java based business
objects that implement custom code. Typically these are used by
Custom Services and Custom Background Processes.
Custom Background Processes These are the set of custom COBOL or java based programs
that drive the custom background processes.
10
Oracle Utilities Application Framework - Concepts - Software Configuration Management
Custom Algorithms These are the set of custom algorithms that are used in place of
base algorithms.
Custom UNIX Scripts These are the set of custom UNIX scripts to provide additional
management and execution capabilities.
Custom Help These are the set of HTML files that are invoked when a user
requests online help. They can be customizations of base help or
additional custom help.
Custom Data Dictionary pages These are the set of HTML pages exposed by the Application
Viewer to view programs and/or data dictionary information for
the implementation.
Other Custom Batch Schedule This is the background process schedule expressed in the
chosen Batch Scheduling tool.
Custom Documentation This is set of additional documentation (in your chosen format) to
use in the implementation (e.g. Specification, Training Guides,
Operating Manuals etc).
Baselines
A baseline is the sum of completed configuration items at a point in time. That point in time will usually
be around a release event, upgrade or significant date (such as coinciding with a phase of the
implementation). At that point the relevant configuration items are prepared for release and become
the new base on which each subsequent release is based against. Baselines can be automatic (triggered
by certain events) and non-automatic.
Baselines are important as they provide a realization that the base of an implementation can move
during an implementation so that rework is not necessary (i.e. by considering previous baselines). For
example, when an upgrade of the base product arrives on site, that new version becomes the new base
for any future work. Older baselines become obsolete and can be effectively forgotten. This is
important as it affects release retention (This will be expanded upon in Release Management). Baselines
become restore points in case of problems.
In any Oracle Utilities Application Framework based product implementation there is in fact are two
distinct streams of baselines:
• Product Baseline – This baseline is associated with product releases and upgrades. A product
baseline is a copy of the base product at a certain release level and associated patches.
Note: A single fix release is not a baseline as the original version of the product is required for the single fix to
be applied against. The combination of the base and patches becomes the baseline, not the single fix on its own.
11
Oracle Utilities Application Framework - Concepts - Software Configuration Management
items in the Customization Baseline use some of the Product Baseline items. For example, Base
copybooks are used in customizations to provide interfaces to base modules.
It is very easy to confuse baselines with releases as baselines are associated so closely with releases but
there is an important difference. Once a baseline is taken all previous baselines become obsolete, where
releases can always be reversed out if needed (this idea will be expanded in Release Management).
In terms of effort baselines are not much extra effort on an implementation:
• A Product Baseline is considered taken when you install the new base version or upgrade with
all its follow-up consequences (recompilation of customizations etc). All past versions, that are
not active, now become obsolete for basing any customizations against.
• A Customization Base is considered taken when you recompile all customizations and do not
wish to retain older releases, which are not active. All subsequent work on customization is
based upon that release.
These principles have been incorporated into the processes and principles outlined in Release
Management.
Automatic baselines
There are a certain number of situations that, by their very nature, dictate that a baseline be taken
automatically. When this occurs, refer to the Release Management section on what needs to be
performed.
TABLE 5 – AUTOMATIC BASELINES
Initial installation (before customizations are performed). Initial delivery of customizations to customer
Upgrade of version of database or operating system as this requires a new installation download from
edelivery.oracle.com or My Oracle Support.
Non-Automatic baselines
During an implementation other events may required a baseline to be taken for customizations
(Product baselines are generally automatic as they are dictated by someone else). Whether a baseline is
taken in these situations is up to the Development Manager, Project Manager and/or Project Director
considering whether past baselines are still valid.
Situations that generate a potential Customization baseline include:
• The release of an important piece of functionality that is significant in functionality terms but
is not considered a major release (due to size).
• An operating system or database patch that is considered significant.
12
Oracle Utilities Application Framework - Concepts - Software Configuration Management
• A single fix from base product that includes changes to copybooks used by customizations.
• A significant data event such as completing the loading of control data.
Versions
A version is a particular variation of an individual configuration item. The processes employed to
manage these versions is outlined in Version Management. Versions are usually managed at the
development level.
Releases
A release is a collection of configuration items ready for deployment associated with a baseline or any
release event including bug fixes (also known as emergency releases). The processes employed to manage
these versions is outlined in Release Management. Releases are managed at the configuration level and
become the unit that is tracked once built.
13
Oracle Utilities Application Framework - Concepts - Software Configuration Management
• Once a CM package is available and set of environments are established the CM package will
need to be distributed and installed in these environments according to local conventions and
processes. This aspect of Configuration Management will be covered in the Distribution part
of this series.
• To check on all of the aspects of Configuration Management to ensure that the relevant CM
packages contain the relevant items and the CM packages are implemented into the relevant
environments at the correct times a set of processes to audit and report the progress are
required. This aspect of Configuration Management will be covered in the Status Accounting
part of this series.
14
Oracle Utilities Application Framework - Concepts - Software Configuration Management
15
Oracle Utilities Application Framework - Concepts - Software Configuration Management
The number of environments to use should be minimized. Adding extra environments adds extra
effort to maintain and they keep up to date. If there is a requirement for an inordinate number of
environments, you might want to charge extra per new environment. This would make the requestor of
the new environment examine the need rather than the convenience.
In one real life situation, one customer insisted in having multiple testing environments to simulate
differing time periods. After examining the requirement rather the need for extra environments, it was
found that other alternatives could be found such as changing the system time (logically not physically)
or restructuring the data to satisfy the requirement. The need to have the multiple environments was
eliminated but the requirement was satisfied.
16
Oracle Utilities Application Framework - Concepts - Software Configuration Management
Tool vendors do not assist at all as they promote the tools as full lifecycle and solving all problems
(including world hunger…). They also typically will try to sell generic processes with the tool to
illustrate the full lifecycle or total solution aspect of the tool. Typically the processes are basic and are
applicable as a starting point for the final processes, but do not cover the management aspects of
anything but basic projects. They are promoted as the Software Configuration silver bullet.
This series has purposely steered away from discussing tools to any detail for the above reason and the
fact that the facilities available in tools in constantly changing.
Other Resources
This series is not the only source of information about Configuration Management. If you are
interested in further references the following web sites and books are recommended to be queried.
Web Pages
The following web pages may be worth referencing:
• Configuration Management Yellow Pages -
http://www.cs.colourado.edu/users/andre/configuration_management.html
• Configuration Management Resource Guide - comp.software-config-mgmt Frequently Asked
Questions.
17
Concepts - Software Configuration Copyright © 2007-2013, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only and
Management the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other
June 2013 warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or
Author: Anthony Shorten, Principal Product fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are
Manager formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any
means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle Corporation
World Headquarters Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
500 Oracle Parkway
Redwood Shores, CA 94065 AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices.
U.S.A. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license
and are trademarks or registered trademarks of SPARC International, Inc. UNIX is a registered trademark licensed through X/Open
Worldwide Inquiries:
Company, Ltd. 1010
Phone: +1.650.506.7000
Fax: +1.650.506.7200
oracle.com