Thursday Oct 22, 2015

Oracle Utilities testing accelerator now available

The latest release of the Oracle Functional/Load Testing Advanced Pack for Oracle Utilities is now available from the Oracle Delivery Cloud. This is the new version of a testing accelerator available for Oracle Utilities products.

The tool allows implementations to reduce testing time significantly by:

  • Provide a prebuilt multi-product component library representing the scope of testing in an implementation. This component library can be used in Oracle Flow Builder.
  • Allow implementations to model business processes for verification by supporting the building of flows inside Oracle Flow Builder. This means business processes can be orchestrated instead of built using a programming resource. Flows can be reused for different testing scenarios and are built independently of the data used.
  • Allow implementations to attach databanks in the form of direct input, CSV files or Excel Spreadheets.
  • Generate the testing script for use in OpenScript, Oracle Test Manager or Oracle Load Testing. This is generated not developed. Again data can be attached at generation time or even post generation.

The testing accelerator consists of the following:

  • A comprehensive library of testing components that have been prebuilt and precertified for Oracle Utilities products in one pack. These components contain interface logic, prevalidations, preverifications and logic to test a particular feature of the product. These components are the same components used by our product Quality Assurance. We ship components for the following products:
    • Oracle Utilities Customer Care and Billing V2.
    • Oracle Utilities Mobile Workforce Management V2.2.0.3.x
    • Oracle Real Time Scheduler V2.2.0.3.x
    • Oracle Utilities Work And Asset Management V2.1.x
    • Oracle Utilities Application Framework V4.3.0.1.x
  • We will be adding the following products in the release in late November (subject to approvals):
    • Oracle Utilities Customer Care and Billing V2.
    • Oracle Utilities Meter Data Management V2.1.x
    • Oracle Utilities Smart Grid Gateway (all adapters) V2.1.x
    • Oracle Utilities Operational Device Management V2.1.x
  • A set of utilities to allow implementations and partners to generate and verify custom components for any functionality not covered by the shipped components. These components have the same structure and features of the shipped components but cover any custom tables, custom structure etc you implemented. These custom components are then available in the component library. 
  • As set of sample flows to illustrates the components and their use. These samples can be run against the standard demonstration set of data for training purposes.
  • A set of documentation covering installation, best practices and component library information.

The testing accelerator has the following features:

  •  Component based approach that are service based. This isolates testing from changes to the user interface. This means reduction in maintaining testing scripts as any screen changes will be covered by the service based component.
  • Components cover online, web services and batch components.
  • Components will be shipped with each new release of supported products including service packs.
  • Customers who have validations in the user interface, which is not usually recommended from an architectural point of view, can use Oracle Application Testing Suite's user interface component generator to add the user interface based component to the library.
  • Components can be cloned and altered or generated from our meta data using our component builder.
  • Components can be grouped into Component Groups to support re usability across flows.
  • Flows map your business processes and can support multiple scenarios.
  • Flows can cross product boundaries and even across pack boundaries. This means if you have more than one Oracle Utilities product, flows can be built that cover all the Oracle Utilities products involved in a business process, including integrations. This extends to other OATS packs such as Oracle eBusiness Suite etc..For example, it is possible to construct a flow that tests the acceptable of a payment, its processing through your payment processing and tracked to the ERP records in your general ledger.
  • We supply components to communicate testing results. By default, we supply components that summarize the outcomes from a flow. This can be altered to send more information, send information to alternative locations or even send results to third party testing tools.
  • Data for databanks can entered natively against the components (with intelligent defaulting), from a CSV based file or even a spreadsheet.
  • Flows are generated into Openscript with databanks without the need for any additional programming. It is possible to use OpenScript to add new functionality, if desired, but it is not required.
  • When the script is generated, the databank is separated out, as a CSV, to allow implementations to use alternative databanks without the need for regeneration.
  • The generated script  can be executed from the OpenScript runtime in Eclipse or command line. It can also be executed via the Oracle Test Manager (optional) or Oracle Load Testing (optional).
  • Generated test scripts can be imported into Oracle Load Testing for load and performance testing. This requires a Load testing license and a license for the Load Controller.

We see the Testing accelerator as a key option for our Oracle Utilities products that will allow our customers to go live or upgrade much quicker with lower risk and lower cost.

Oracle Functional/Load Testing Advanced Pack is available from Oracle Delivery Cloud today.

Monday Oct 19, 2015

Attending OpenWorld

Are you attending Oracle OpenWorld 2015?  Well I will be there as well. I will not be speaking this year, but I will be attending and talking to customers and partners during the conference. The Utilities team will be located at the Marriot Marquis. I will attending meetings and also running ad-hoc demonstrations of our latest releases of the Application Management Pack for Oracle Utilities and our new exciting Testing product, Oracle Functional/Load Testing Advanced Pack for Oracle Utilities.

See you there..

Wednesday Oct 14, 2015

OUAF Feature: Required Field Indicator

One of the most common user interface features in most web based applications is indicating the required fields on a screen. In past releases of Oracle Utilities Application Framework, this was difficult to implement as the context of the transaction typically dictated which fields on a screen were required. Over the last few releases, the Oracle Utilities Application Framework implemented a more schema based approach to model context more precisely and avoid issues with required fields.

In the latest release of Oracle Utilities Application Framework, the ability to display a required field indicator, usually the "*" character, is now supported by default. This use of this facility is as follows:

  • Only fields marked with a "required=true" in the attribute on the schema for Business Objects only are supported.
  • Screens that do not use Business Objects will not include the required field indicator included. For customers on older versions of Oracle Utilities Application Framework that used JSP based screens rather than UI Map/UI Hint style screens, do not use Business Objects so therefore are not supported.
  • Lower level required fields, such as a field that is required if a particular value is populated on another element on the same schema are not supported. These are not support ed as the screen is built at transaction time and the input values are not loaded at the same time.

Here are some samples:

Example Required Field

Example Required Field

Example Required Field

By default, this facility is enabled by default. If it is not to be used, then it can be disabled by setting the = true in the file according to the steps outlined in Server Administration Guide.

Tuesday Oct 13, 2015

OUAF Feature: Web Services Changes

In last few releases of the Oracle Utilities Application Framework, a series of changes were introduced to enhance our Web Services capabilities. In summary the following changes were implemented:

  • Inbound Web Services (IWS) was introduced to replace the XML Application Integration (XAI) capability. This basically allows web services to be housed and managed natively within the J2EE Web Application Server. This means that additional security and protocols are now supported for SOAP services such as Oracle Web Services Manager Support, WS-Policy Support and Web Services metrics.
  • Inbound Web Services was delivered as a separately deployable component managed by the J2EE Web Application Server.
  • The MPL was replaced with a set of Oracle Service Bus adapters and a native Message Driven Bean (MDB) for JMS inbound integration.

The new release extends these capabilities even further with the following enhancements:

  • The Message Driven Bean (MDB) is now housed in the Inbound Web Services deployment rather than within the online server. This transforms the Inbound Web Services deployment to the role of an Integration Server. Long term technology integrations will be centralized in this Integration Server to support channel based configuration.

Note: Customers on IBM WebSphere should continue to use the current MDB implementation as the new MDB implementation is not supported on IBM WebSphere platforms.

  • XAI supported legacy Maintenance Object based services, also known as Page Services, that implementations found difficult to convert to newer IWS based adapters. Inbound Web Services deployment has now been extended to automatically recognize these legacy services and make them available via the Inbound Web Services deployment. This means they can take advantage of the Inbound Web Services capabilities natively, facilitating migration from XAI to IWS. Note: This feature does not support XAI Inbound Services that use the Business Adapter as those should be converted to Inbound Web Services directly.

These are just the start on our long term plans for the Integration capability over the next few releases. Customers using XAI should migrate to the Inbound Web Services capability as soon as practical. Customers using MPL should also migrate to OSB/MDB as soon as practical. Both XAI and MPL have been announced as deprecated which freezes their functionality in anticipation of removal in a future release.

OUAF Feature: User Interface Changes

With the advent of new platforms and new user interface the latest version of Oracle Utilities Application Framework (V4. includes a series of user interface changes to reflect the latest trends and supporting increased usability.

The current release includes the following enhancements relating to the user interface:

  • A new login screen - To be consistent with the Oracle Cloud and cloud implementations of the Oracle Utilities products. A new login screen in the style of the Cloud offerings from Oracle has been included as the default. For example, for Oracle Utilities Customer Care And Billing:

Sample Login

  • Session Timeout - A non-activity session timeout is set on the session within the J2EE Web Application Server. This detects the last time the user interacts with the system. In the past releases, if the inactivity timeout was exceeded the product would jump to the login screen on the next interaction. In this release, a warning message (via Message 11001, 905) is displayed to the user prior to jumping back to the login screen. This makes the event clear to the online user. An example of the message is shown below:

Session Expiration Message

  • Lock in Menu - In Oracle Utilities Application Framework V4., the menu's were moved as part of the user interface refresh to be located in a more logical place. On some platforms, particularly mobile platforms, the menu's would be harder to navigate as they are designed to react to the location of the finger/mouse. To aid in usability of menu's they can be locked in place to avoid mouse or finger movements inadvertently closing the menu. Clicking the menu item will toggle the menu and lock symbol to effectively lock the menu in place. To allow fingers/mouse to be moved while keeping the menu open that is locked open as long it is locked. The lock can be toggled on or off. For example:

Lock Symbol

  • Menu's can now be closed using the Esc key.

For more information about these and other enhancements refer to the online documentation provided with the product.

Friday Oct 09, 2015

OUAF Feature: New Help Engine

Oracle Utilities Application Framework V4. includes a new help engine and changes to the organization of help. The Oracle Help for Web engine is now used to display help within the product. This engine has the following exciting features for customers:

  • The engine provides a cross browser more consistent interface for displaying help.
  • New toolbar to allow for printing, bookmarking (on the browser) and even giving feedback on help. For example:

  • All the documentation in one place for the product. Framework and Product documentation are now published together and available from the same interface. For example:

Example Help

  • Flexible more detailed indexing. For example:

  • Flexible searching across all products installed on an environment including boolean searches and scoring. For example:


This new engine is only available to customers using Oracle WebLogic. Customers using IBM WebSphere will use the legacy help engine.

OUAF Feature: Component Installs

One of the new features of Oracle Utilities Application Framework is Component Installation.The Oracle Utilities Application Framework has a multi-channel multi-tiered architecture. In the past to install individual components in a distributed manner needed additional manual efforts. In the Oracle Utilities Application Framework V4. release there is a new channel (or role) based installation capability that has the following features:

  • Ability to identify the channels to install on a particular installation. The component installation has three distinct channels that can be installed together in combination and/or separately:
    • Online - Online Web Application (includes Business Application Server)
    • Integration - Web Services and Message Driven Bean (includes Business Application Server)
    • Batch - Batch Threadpool/submitter/Cluster
  • When roles are chosen, those components are available for configuration and those menu options are only visible in the installation process. The utilities for the product also only recognize active roles in the installation.
  • A new Environment Identifier has been introduced which allows disparate installations to be combined into a virtual environment. This is used by the patching utilities and also Oracle Enterprise Manager to collate targets into an Oracle Utilities Environment target. For example, you can have a number of installations across multiple machines that can be combined and managed as an environment. This identifier can be altered after installation to connect or disconnect an installation from an environment.
  • It is possible to change the roles AFTER installation. This represents maximum flexibility. To enable or disable a role, simply start the configureEnv utility and indicate the changed roles. If a new role is added, then the configureEnv utility will prompt for the configuration settings for the new role. If you have removed a role, then the components will be disabled. For customers using native installations directly or via Oracle Enterprise Manager, may have to manually deploy or undeploy the generated files from the server domain.
  • If a Batch Server is the only role, the parameters for the J2EE Web Application Server are not needed.

There are new settings in the ENVIRON.INI that covers the new facilities:

 Setting Comments
ENVIRONMENT_ID Generated Environment Identifier
SERVER_ROLES List of active server roles for this installation
SERVER_ROLE_BATCH Whether BATCH server role is a valid role for this environment (used internally)
SERVER_ROLE_INTEGRATION Whether INTEGRATION server role is a valid role for this environment (used internally)
SERVER_ROLE_ONLINE Whether ONLINE server role is a valid role for this environment (used internally)

This is part of a larger enhancement that will simplify the overall deployment options available for installation now and in the future.

Refer to the Installation Guide and Server Administration Guide for more details of the settings.

Thursday Oct 08, 2015

Oracle Utilities Customer Care and Billing available

Oracle Utilities Customer Care and Billing is now available. This release includes the newest version of Oracle Utilities Application Framework (V4.

This version of the Oracle Utilities Application Framework has the following features:

  • New Login Screen - A simpler login screen has been introduced with a new screen in line with Oracle's Cloud offerings.
  • Session Timeout - In past releases when a session expired due to inactivity it would throw the user back to the login screen. This release now includes a popup message informing the user that the session is timed out prior to sending the user back to the login screen.
  • Required Fields indicator - In line with the new interface implementation introduced in, required fields can be indicated with a required fields indicator: *. This only applies to newer UI hint based screens. For backward compatibility this feature can be disabled.
  • Menu Behavior - Menu behavior has been tweaked to allow greater flexibility and a wide range of device support. Menu's can be locked into position to cater for user behavior. 
  • Toolbar History enhancements - In Oracle Utilities Application Framework, identifiers were recorded when using individual functions to enhance navigation. To complement this, these identifiers will be displayed in the History on the toolbar.
  • Component Installation - In the past installation, required additional effort to install individual components such as channels or tiers in an installation event. This enhancement greatly simplifies this by assigning installation roles to individual installations. Upon selecting appropriate roles, only those parts of the installation are exposed and configured for that installation. It is also possible to change roles after installation for maximum flexibility. This enhancement allows disparte installations to be linked into a virtual environment and managed for patching and management from Oracle Enterprise Manager easily
  • New Help Engine - This releases sees the product use the Oracle Help Engine for Web which provides greater usability, flexibility and standardization for our help. This enhancement is only available to Oracle WebLogic customers. Customers on IBM WebSphere will continue to use the legacy help engine. This also means that Framework Help is now included in Product Help.
  • Enhanced OIM Integration - The Business object used for Oracle Identity Management (OIM) has been enhanced following feedback from the Oracle Cloud implementations and customers using OIM. The interface now defaults more attributes and uses the user templating functionality to reduce the amount of business rules within OIM.
  • User Security Changes - To support greater levels of security, the user object now has additional security levels to control different aspects of security ralated to its maintenance. For example, it is now possible to allow specific users to administrate user group membership.
  • Map XML Enhancements - A simpler approach to mapping fields has been implemented to speed up mapping XML data types including a new wizard to aid schema designers.
  • XQuery engine upgraded - The latest Oracle XQuery engine has been adopted to provide new functions and reduce memory footprint needed for scripting.
  • Batch Parameter Security - It is now possible to encrypt data used on individual sensitive batch parameters.
  • System Heath Check - A new system wide health check API has been introduced that can be extended to verify components within the architecture to provide status information. The initial release will cover architecture and specific level of service checks. A simple user interface and web service have been included for this facility. This will be incorporated into a future Application Management Pack for Oracle Utilities release.
  • Additional Sort keys on Manual To Dos - Manual To Do entries now populate the standard sort keys even if custom sort keys are populated.
  • Extendable Lookup Enhancements - We have added a few new features for Extendable lookups to make them easier to use. This includes characteristic support, a new CLOB field, overriding support, action support and extended validation support.
  • Support Manual Transition of Sych Requests - It is now possible to manually transition a Sync Request.
  • Currency Symbol Support - Number elements may define a currency reference to automatically render the currency symbol.
  • Extended Currency Support - The base classes within the framework have been extended to support a wider range of world currencies.
  • Page Based Web Services - Inbound Web Services has been extended to now support legacy page based services. This will reuse the definitions in the page services to expose them as Inbound Web Services without the need for further configuration. This will aid in moving from XAI to IWS for legacy customers.
  • Message Driven Bean in IWS - A new MDB implementation has now been made available in the IWS implementation to implement an Integration Server architecture. Existing MDB implementations will be supported in the short term but will need to move to this new IWS implementation long term.

More articles will be published over the next few weeks outlining more information about most of these enhancements. Refer to the product documentation and release notes for more details of each of these enhancements.

Thursday Aug 06, 2015

Installing Application Management for Oracle Utilities in Offline Mode

The Oracle Application Management Pack for Oracle Utilities is usually installed using the Self Update feature in Oracle Enterprise Manager. It is easiest method of installation. This requires the Oracle Management Server to be connected to the internet (directly of via proxy) which some site do not allow. Luckily Oracle Enterprise Manager has an offline mode as well and the installation of the pack can also be done offline.

Here is how you install the pack in offline mode:

  • Download the pack from Oracle Software Delivery Cloud. This is known as an OPAR which is the install format for the pack.
  • Transfer the OPAR to the machine housing the Oracle Management Server (OMS) component of Oracle Enterprise Manager. If your installation is multi-OMS then refer to the Oracle Enterprise Manager installation guide for more instructions. Ensure the user you are using to install has read access to the file at least.
  • Logon to the OMS machine and execute the following command from the oms/bin directory.
./emcli setup -url=https://<omsserver>:<omsport>/em -username=sysman -password=<password> -trustall


<omserver> is the OMS server name

<omsport> is the administration port for the OMS

<password> is the password for the OMS administrator

  • Execute the command to install the pack:
./emcli import_update -file=<oparname> -omslocal


<oparname> - Fully qualified name and path of the file you downloaded.

  • Now deploy the pack on the OMS using the PlugIn maintenance from the console. This may require an outage as pack installs may change the OMR and OMS.
  • Deploy the pack on agents located on the Oracle Utilities servers.

That is how you install the pack in offline mode.

Monday Aug 03, 2015

User Hash Support

In Oracle Utilities Application Framework V4.x, a new column was added to the user object to add an additional layer of security. This field is a user hash that generates on the complete user object. The idea behind the hash is that when a user logs in a hash is calculated for the session and is checked against the user record registered in the system. If the user hash generated does not match the user hash recorded on the user object then the user object may not be valid so the user cannot login.

This hash is there to detect any attempt to alter the user definition using an invalid method. If there is an alteration was not using the provided interfaces (using the online or a Web Service) then the record cannot be trusted so the user cannot use that identity. The idea is that if someone "hacks" the user definition using an invalid method, the user object will become invalid and therefore effectively locked. It protects the integrity of the user definition.

This facility typically causes no issues but here are a few guidelines to use it appropriately:

  • The user object should only be modified using the online maintenance transaction, F1-LDAP job, user preferences maintenance or a Web Service against the user object. The user hash is regenerated correctly when a valid access method is used.
  • If you are loading new users from a repository, the user hash must be generated. It is recommended to use a Web Services based interface to the user object to load the users to avoid the hash becoming invalid.
  • If a user uses a valid identity and the valid password but gets a message Invalid Login then it is more likely the user hash compare has found an inconsistency. You might want to investigate this before resolving the user hash inconsistency.
  • The user hash is generated using the keystore key used by the product installation. If the keystore or values in the keystore are changed, you will need to regenerate ALL the hash keys.
  • There are two ways of addressing this use:
    • A valid administrator can edit the individual user object within the product and make a simple change to force the hash key to be regenerated.
    • Regenerate the hash keys globally using the commands outlined in the Security Guide. This should be done if it is a global issue or at least an issue for more than one user.

For more information about this facility and other security facilities, refer to the Security Guide shipped with your product.

Thursday Jul 30, 2015

The role of Coherence in Batch

Lately I have been talking to partners and customers on older versions of the Oracle Utilities Application Framework and they are considering upgrading to the latest version. One of the major questions they ask is about the role of Oracle Coherence in our architecture. Here are some clarifications:

  • We supply a subset of the runtime Oracle Coherence libraries we use in the batch architecture with the installation. It does not require a separate Oracle Coherence license (unless you are intending to use Coherence for some customizations which requires the license). 
  • We only use a subset of the Oracle Coherence API around the cluster management and load balancing of the batch architecture. If you are a customer who uses the Oracle Coherence Pack within Oracle Enterprise Manager for monitoring the batch component, it is not recommended at the present time. The Coherence pack will return that components are missing and therefore give erroneous availability information. We have developed our own monitoring API within the framework that is exposed via the Oracle Application Management Pack for Oracle Utilities.
  • The idea behind the use of Oracle Coherence is as follows:
    • The Batch Architecture uses a Coherence based Cluster. This can be configured to use uni-cast or multi-cast to communicate across the cluster.
    • A cluster has a number of members (also known as nodes to some people). In our case members are threadpools and job threads.
    • A threadpool is basically a running Java Virtual Machine, preloaded with the Oracle Utilities Application Framework, ready to accept work. The reason we use threadpools is that when you execute java processes in Oracle Utilities Application Framework, there is an overhead in memory of loading the framework cache and objects, as well as java itself, before a job can execute. By creating a threadpool, this overhead is minimized and the threadpool can be used across lots of job threads.
    • Threadpools are named (this is important) and have a thread limit (this is a batch limit not a java limit as batch threads are heavier than online threads. The weight is used to describe batch because  batch thread are long running threads. Online threads are typically short running.
    • When a threadpool is started, locally or remotely, it is added to the cluster. A named threadpool can have multiple instances (even on the same machine). The threadpool limit is the sum of the limits across all its instances.
    • When a batch job thread is executed (some jobs are single threaded or multi-threaded) it is submitted to the cluster. Oracle Coherence then load balances those threads across the name of threadpool allocated on the job thread parameters.
    • Oracle Coherence tracks the threadpools and batch job threads so that if any failure occurs then the thread and threadpool are aware. For example, if a threadpool crashes the cluster is made aware and the appropriate action can be taken. This keeps the architecture in synchronization at all times.
  • We have built a wizard (bedit) to help build the properties files that drive the architecture. This covers clusters, threadpools and even individual batch jobs.
  • When building a cluster we tend to recommend the following:
    • Create a cache threadpool per machine to minimize member to member network traffic. A cache threadpool does not run jobs, it just acts as a co-ordination point for Oracle Coherence. Without a cache threadpool, each member communicates to each member which can be quite a lot of networking when you have a complex network of members (including lots of active batch job threads).
    • Create an administration threadpool with no threads to execute. This is just a configuration concept where you can connect to the JMX via this member. The JMX API is available from any active threadpool but it is a good practice to isolate JMX traffic from other traffic.
    • Create a pool of threadpools to cover key jobs and other pools for other jobs. The advantage is for monitoring and controlling resources within the JVM.

For more information about this topic and other advice on batch refer to the Batch Best Practices (Doc Id: 836362.1) available from My Oracle Support.

Tuesday Jul 28, 2015

Secure By Default Clarifications

In the Oracle Utilities Application Framework, the software is now installed in a mode called "Secure By Default". This has a number of connotations for new and existing installations:

  • HTTPS is the now the default protocol for accessing the product. The installer supplies a demonstration trust and demonstration identity store that can be used for default installations.
  • The permissions on the files and directories are now using common Oracle standards.

Now there are a few clarifications about these features:

  • Customers that are upgrading from older versions will use the same regime for the file permissions and access protocols that were in past releases for backward compatibility.
  • Customers on past releases can convert to the new file and directory permissions using the "setpermissions" utility shipped with the product. The Administration and Security guides outline the new permissions.
  • Customers on past releases can convert to the new HTTPS protocol like they did in the past releases. The new keystore is provided as a way of adopting it quickly.
  • We supply a basic certificate to be used for HTTPS. This is a demonstration certificate is limited in strength and scope (much the same scope and strength as the demonstration one supplied with Oracle WebLogic). It is not supported for use in production systems. It is recommended that customers who want to use HTTPS should use a valid certificate from a valid certificate issuing authority or build a self signed certificate. Note, if you use a self signed certificate some browsers may issue a warning upon login. Additionally, Customers using native mode installations can use the Oracle WebLogic demonstration certificates as well.
  • HTTPS was always supported in Oracle Utilities Application Framework. In past releases it was, what is termed, an opt-in decision (you are opt'ing in to use HTTPS). This meant that we installed using HTTP by default and then you configured HTTPS separately with additional configuration on your domain. In this new release, we have shifted the decision to an opt-out decision. We install HTTPS with a demonstration certificate as the default and you must disable it using additional steps (basically you do not specify a HTTPS port and only supply a HTTP port to reverse the decision). This is an opt-out decision as you are deciding to opt-out of the secure setup. The decision whether to use HTTPS or HTTP is an implementation one (we just have a default of HTTPS).
  • Customers using native mode (or IBM WebSphere) can manage certificates from the console or command lines supplied by the that product.

Secure by default now ensures that Oracle Utilities Application Framework products are consistent with installations standards employed by other Oracle products.

Monday Jul 06, 2015

Avoiding the Inbound Monkey

This is the first in a series of articles on implementation advice to optimize the designs and configuration of Oracle Utilities products.

Early in my career my mentor at the time suggested that I expand my knowledge outside the technical area. The idea is that non-technical techniques would augment my technical knowledge. He suggested a series of books and articles that would expand my thinking. Today I treasure those books and articles and regularly reread them to reinforce my skills.

Recently I was chatting to customers about optimizing their interface designs using a techniques typically called "Responsibility Led Design". The principle is basically that each participant in an interface has distinct responsibilities for the data interchanged and it was important to make sure designs took this into account. This reminded me of one of favorite books titled "The One Minute Manager Meets The Monkey" by Ken Blanchard, William Oncken Jr. and Hal Burrows. I even have a copy of the audio version which is both informative and very entertaining. The book was based on a very popular Harvard Review article entitled "Management Time: Who's Got The Monkey" and expands on that original idea.

To paraphrase the article, a monkey is a task that is not your responsibility that is somehow assigned to you. The terms for this is the "monkey jumping on your back" or simply "Monkey on your back". This epitomizes the concepts of responsibility.

So what has this got to with design or even Oracle Utilities products, you might ask?

One of the key designs for all implementation is sending data INTO the Oracle Utilities products. These are inbound interfaces, for obvious reasons. In every interface there is a source application and a target application. The responsibility of the source application is to send valid data to the target application for processing. Now, one of the problems I see with implementations is when the source application sends invalid data to the target. There are two choices in this case:

  • Send back the invalid request - This means that if the data transferred from the source in invalid for the target then the target should reject the data and ask the source to resend. Most implementations use various techniques for achieve this. This keeps the target clean of invalid data and ensures the source corrects their data before sending it off again. This is what I call correct behavior.
  • Accept the invalid request (usually in a staging area) and correct it within the target for reprocessing - This means the data is accepted by the target. regardless of the error and corrected within the target application to complete the processing.

More and more I am seeing implementations taking the latter design philosophy.  This is not efficient as the responsibility for data clensing (the monkey in this context) has jumped on the back of the target application. At this point, the source application has no responsibility for cleaning their own data and has no real incentive to ever send clean data to the target as the target is now has the monkey firmly on their back. This has consequences for the target application as it can increase resource usage (human and non-human) to now correct data errors from the source application. Some of the customers I chatted to found that while initially they found the volume of these types of transactions were low that over time the same errors kept being sent, and over time the cumulative effect of the data clensing on the target started to get out of control. Typically, at this point, customers ask for advice to try and reduce the impact.

In an Oracle Utilities product world, this exhibits itself as a large number of interface To Do's to manage as well as staging records to manage and additional storage to manage. The latter is quite important as typically implementations keep forgetting to remove completed transactions that have been corrected once they have been applied from the staging area.  The product ship special purge jobs to remove complete staged transactions and we recently added support for ILM to staging records.

My advice to these customers are:

  • Make sure that you assign invalid transactions back to the source application. This will ensure the source application maximizes the quality of their data and also hopefully prevents common transaction errors to reoccur. In other words, the monkey does not jump from the source to the target.
  • If you choose to let the monkey jump on the target's back, for any reason, then use staging tables and make sure they are cleaned up to minimize the impact. Monitor the error rates and number of errors and ensure the source application is informed to correct the error trends.

In short, avoid the monkey in your inbound transactions. This will make sure the resources you allocate to both your source and target are responsible and are allocated in an efficient manner.

Wednesday Jul 01, 2015

Oracle Utilities SDK V4. Available

The Oracle Utilities SDK V4. has been release and is available from My Oracle Support for download.This release is the latest SDK for extending Oracle Utilities Application Framework V4.3.x based applications.

The download is available from My Oracle Support as Patch 21209648.

Minimizing Extension Deployment Times

One of the major activities in any implementation of an Oracle Utilities Application Framework based product is to manage extensions to the product. These are customizations that partners, customers or consultants have built to extend or alter the product to suit the needs of an individual site.

 There are typically a number of components that constitute extensions:

  • Oracle Utilities SDK code - These are java or javascript pieces of code that are extensions to the product. In older versions of Oracle Utilities Customer Care And Billing we also supported COBOL based extensions. All these objects are typically managed using the Oracle Utilities SDK deployment utilities that allow you to apply extensions to a staging area, build full releases from a staging area and build patches between releases from a staging area.
  • ConfigTools objects - In newer versions of Oracle Utilities Application Framework special configuration based objects were introduced to allow implementers to build configuration based objects such as Business Objects, Business Services, Service Scripts, Data Areas and UI Maps. These are typically managed using Bundling, Configuration Migration Assistant or ConfigLab. The latter is available for older versions of Oracle Utilities Customer Care And Billing as Configuration Migration Assistant was introduced in Oracle Utilities Application Framework V4.2 and above.
  • Administration Data - One of the major features of the Oracle Utilities Application Framework is the ability to define business values, business rules and business logic in administration data. This data is typically available from the Administration menu of the product and is managed using Configuration Migration Assistant or ConfigLab. The latter is available for older versions of Oracle Utilities Customer Care And Billing as Configuration Migration Assistant was introduced in Oracle Utilities Application Framework V4.2 and above
  • Database Scripts - Database changes are new database objects delivered with the extensions that conform to the guidelines in the Oracle Utilities SDK and DBA Guides shipped with the products. They are typically managed by the database tools of choice at a site.
  • Miscellaneous Files -  One of the facilities in the Oracle Utilities Application Framework is the ability to extend the technical configuration with a set of custom templates and custom user-exits which include any extensions related to the technical configuration of the product. These are typically managed manually.

Now to minimize the impact of all these changes the following guidelines are recommended:

  • For SDK based files use the Oracle Utilities SDK tools to deploy your customizations. Avoid directly undeploying and manually building WAR/EAR files. This will avoid manual effort and also reduce manual errors. Do not manually splice and dice your code into the product files. Whilst it is technically possible to manually use jar and ant to build files, using the SDK utilities are lower risk and ensure the customizations, regardless of complexity, are placed in the right locations.
  • When using the SDK utilities, always build full releases but use the patch build facility to build smaller deployment files. Using these patches will greatly minimize the build times and subsequent deployment times.
  • Avoid deploying the appViewer, unless necessary. The appViewer is only a tool helpful for developers and administrators, it is not recommended for production use or even for environments where developers are not working regularly.  Administrators and other people can use the appViewer deployed on a local server, in offline mode, rather than included in your implementation. The main reason is that the appViewer is a large set of documentation and takes time to rebuild. This will greatly reduce outages in patch installation as well as deployment. In newer versions of Oracle Utilities Application Framework, appViewer is now a completely optional installation.
  • If using ConfigLab or Configuration Migration Assistant, run the comparison ahead of time. This will mean that the application of the changes will be the only thing that needs to be applied. Ensure all changes have been preapproved or at least approved by the business prior to the application. If you are a customer that has access to both ConfigLab and Configuration Migration Assistant then use the latter as it is more logical and quicker for application of changes. Note: ConfigLab has been removed from Oracle Utilities Customer Care And Billing V2.5 and above.
  • Use the Database Lifecycle Management Pack to manage database changes. Oracle ships an extension pack to track and manage database changes across your enterprise. Additionally third party solutions are also available to manage database change history.
  • Centralize your templates and user exits for deployment. Custom Templates and Custom user exits can be environment specific or global depending on individual needs. If they are global, using commonly used configuration management practices can be used to copy them. It is recommended that copying of these files be done in the initial phases of the migration to take advantage of any rebuilds.
  • Avoid multiple rebuilds. The application of changes in EAR/WAR files requires a rebuild of the files and so do other activities such as patching. By using the options on the initialSetup utility you can minimize the build and deployment process. This is documented in the Server Administration Guides (or Operations and Configuration Guides) shipped with your product.
  • Consider using native installations rather than embedded installations. This is quite a saving. In the embedded installation the product must be down to build the EAR/WAR files as they need to be updated and are actively being used by the Oracle WebLogic server. You cannot update open files. In the native installation, the files are deployed in the Oracle WebLogic domain through the deployment (or update deployment process). This means you can build the EAR/WAR files when they are being used as they are copied during the deployment or update deployment process. The update deployment process can be executed from the WLST command line, Oracle WebLogic console or Oracle Enterprise Manager (on the Oracle WebLogic targets). This update process will take a far shorter time than a full load and deployment. In some cases this can be done live. Customers using Inbound Web Services already use this technique as it updates the deployment (effectively it is being copied to Oracle WebLogic's staging area to be used). For example, on test systems we notice that update deployment takes less than a minute (depending on the hardware of course).

These are a summary of the techniques outlined in the Software Configuration Management Series (Doc Id: 560401.1) available from My Oracle Support. This series includes the following documents:

  • Concepts - General Concepts and Introduction.
  • Environment Management - Principles and techniques for creating and managing environments.
  • Version Management - Integration of Version control and version management of configuration items.
  • Release Management - Packaging configuration items into a release.
  • Distribution - Distribution and installation of releases across environments.
  • Change Management - Generic change management processes for product implementations.
  • Status Accounting - Status reporting techniques using product facilities.
  • Defect Management - Generic defect management processes for product implementations.
  • Implementing Single Fixes - Discussion on the single fix architecture and how to use it in an implementation.
  • Implementing Service Packs - Discussion on the service packs and how to use them in an implementation.
  • Implementing Upgrades - Discussion on the the upgrade process and common techniques for minimizing the impact of upgrades.

Anthony Shorten
Hi, I am Anthony Shorten, I am the Principal Product Manager for the Oracle Utilities Application Framework. I have been working for over 20+ years in the IT Business and am the author of many a technical whitepaper, manual and training material. I am one of the product managers working on strategy and designs for the next generation of the technology used for the Utilities and Tax markets. This blog is provided to announce new features, document tips and techniques and also outline features of the Oracle Utilities Application Framework based products. These products include Oracle Utilities Customer Care and Billing, Oracle Utilities Meter Data Management, Oracle Utilities Mobile Workforce Management and Oracle Public Service Revenue Management. I am the product manager for the Management Pack for these products.


« July 2016