Sunday Jan 19, 2014

Welcome to another TMT. This time we will create a plugin for Oracle Determinations Server to log incoming SOAP requests in the Oracle Policy Automation XDS (eXplicit Data Set) format - not to be confused with XSD. You can take this and load it into the Oracle Policy Modeling debugger to track down issues with specific SOAP requests. DISCLAIMER: This might take you longer than 10 minutes, depending on how fast you can click and how fast your PC is!

Last time we used Eclipse but this time we will be using JDeveloper to build and test the plugin. Again there are some prerequisites:

Once downloaded, install JDeveloper, extract the OPA Runtime Components to a convenient location and install SoapUI.

Now we begin. Start JDeveloper and accept the "Studio Developer (All Features)" role.Select Application > New... from the main menu to create a new application workspace.Give the application a name "ODSXDSPlugin"Accept the default Project1 and Finish.Having set up the Application, we now import the Determinations Server WAR file. File > Import... from the main menu, then select > WAR File. Call the project "determinations server".At the next step Browse... to the location where you extracted the OPA Runtime and select /determinations-server/determinations-server.war.Right-click determinations-server project, New..., General > Java Class.Enter Name "XDSLogger", Package "com.opablog.aeh".Add the "OnBeforeThinkEventHandler" interface. This event is fired for every request, after the request has been parsed into the session but before the rules are executed.

This time I've provided the code to copy and paste in, replacing the entire contents of the new XDSLogger.java file:

Edit Application Sources/config/application.properties to configure ODS to load the plugin by updating the plugin.libraries parameter to "plugin.libraries=com.opablog.aeh.XDSLogger"Edit Application Sources/log4j.xml to increase the logging level by setting <level value="DEBUG"/> under the <root> element. Don't do this in production!Copy in the PocketMoneyComputation.zip rulebase from the \examples\rulebases\compiled folder in your expanded OPA runtime location. Use Windows Explorer to copy the file into your JDeveloper project. For me the destination folder is located at C:\JDeveloper\mywork\ODSXDSPlugin\determinations-server\src\rulebases.

Now we can deploy the plugin to our local server.Select Run > Start Server Instance (IntegratedWebLogicServer) from the main menu and enter credentials of your choice to use for server setup.Wait for domain to build and server to start up. Once completed you should see "IntegratedWebLogicServer started." in the Log window.Now we can deploy our Determinations Server with XDS logger plugin.

Right-click the determinations-server project and Deploy > "determinations-server...". Select "Deploy to Application Server", click Next, then IntegratedWebLogicServer, then Finish. Ignore any warnings logged during startup - they are only there because we turned the logging up to DEBUG.In the deployment tab you should see that deployment has finished and you are given the URL in the Deployment - Log window.

Finally we can test our plugin by sending a request using SoapUI.Open the URL in your favourite browser and you will see the familiar page listing the OPA services available. Grab the full URL to the specific Assess service WSDL.Start SoapUI and select File > New SOAP Project from the main menu. Give the project a name and paste the WSDL URL for Initial WSDL. Make sure Create Requests is checked.Open Request1 under the Assess node and paste the following minimal SOAP message to replace the default content:

Press "play" (the green arrow pointing to the right) to submit Request1. You should see a response that looks similar to the request, but with calculated values returned along with the inputs used.In addition to processing the Assess request as normal, our new Determinations Server plugin has logged the inputs to the application log in the OPA XDS format.You can now copy this XML into a text file and load it up in OPM to debug!

There are obvious improvements that could be made to this, such as logging each request to its own file, but I will leave those as an exercise for the reader. This is supposed to be a TMT after all!

Wednesday Jan 08, 2014

Introduction

We all know Oracle Policy
Automation (OPA) enables business experts to be able to create sophisticated
rulebase applications directly without the need to have a background or
qualification in software development. The diagram below provides an overview
of the steps that are normally conducted to build an OPA rulebase:

Business rule authors are
critical to every project and to wrap them into a structure, I always encourage
customers to establish a Center of Excellence (CoE) where talent, skills,
processes and disciplines are centrally governed within a business. Whilst
business experts may not initially have the skills to build software, the CoE
approach provides everything needed to grow capability and confidence in
authoring rules and systems that significantly outweighs any nervousness that
may have existed at the outset. This is very important because initially not
all organizations are ready to take the leap of faith needed for business
experts to play a more development role. For those that do, there are
significant rewards. Just some quotes from our CoEs:

“OPA is the most
innovative technology on our estate”

“OPA has paid for
itself 7 times over and that is just with our first project!”

“OPA is a game changer.
We would never have been able to achieve what we have done using any other
method or technology”

OPA Projects

Any project is often born
through a business need to build a system to meet a brand-new requirement. In
terms of OPA this will mean that a project will include a requirement for a
system to automatically make a complex decision on behalf of the organization
using rules and building a customer experience friendly interview that will
include assessment screens, smooth screen-flow, data validation, look-ups (of
known data) and documented outputs of the rulebase determinations that are
made.

Projects are normally resourced
to meet the needs of the project and formed based on the availability of key
people, timelines to deliver and scope of the project work. Given these
variables, a lot is left to chance and luck. Rulebase resources may require
initial training but there is a tension to deliver in an agile way and this
needs the team to be properly trained, experienced and ready to start creating
rulebase components from day one. Forming a brand new project team for every
project is very difficult given issues with availability of key experts. A much
better approach is to build a Center of Excellence that maintains skills and
grows capability so that with every new project the team grows in strength.

The Benefits

An OPA CoE addresses start-up
issues because every project is safely delivered within a structure that
already has the capability and skills to deliver a project from the beginning.
It will contain a pool of resources at various skills levels. Senior members of
the team will evolve through experience and lead areas of work including rules
architecture, test management, project management and technical architecture.
The CoE is special in that it is business centric but includes IT team members
who must connect and manage the integration between OPA and other systems. This
enables the business authors to remain focused on delivering projects using
their skills to the full.

So why is an OPA Center of
Excellence any different to any other CoE? The key difference is that the CoE
is business focused with more Subject Matter Experts involved more directly
with building and testing rulebase components than ever before. This is not
only limited to rule authoring. Those involved in testing utilize tools within
OPA itself (regression tester, what-if analysis, test coverage reporting etc)
to verify rules directly, safely navigating rules and components at a read-only
level. Powerful test suites are developed by business experts directly into a
rulebase and each key outcome is tested against manually created expected
outcomes. The business expert has responsibility for this work and has proven
to significantly reduce the time to develop and test solutions, not leaving all
the testing effort until the end. In addition, our customers report that
defect-free systems are commonplace with OPA after initial implementation
because the experts in that area of the business were more intimately involved
in the authoring and testing process throughout. Due to OPA’s unique natural
language capability, rules are easily read and understood by testers and other
members of the team and this is one of the key factors in its success.

Becoming an OPA CoE

There is a process to becoming
an OPA CoE. Oracle has assisted many organizations build their structure and
capability which establishes a robust model for the successful delivery of
projects that utilizes OPA in the future. To start, a Center of Excellence
requires management and governance to control, direct and prioritize the work that
is conducted. For most, this is led by a business manager with skills to manage
resources across projects and business areas. Next, there is organization and
structure to the Center of Excellence. For the resource teams, training and a
qualification in OPA is achieved to an advanced level to ensure that the team
members are fully skilled to successfully deliver projects with the product. A
skills matrix is formed and a detailed record is kept of the skills attained as
the experience of each member of the team grows. A CoE will also want to be
known within the business and a communication plan is created to inform
internal and external stakeholders about its purpose and vision. Other criteria
exist to achieve recognition and includes adherence to best practices design
standards, rule authoring guidelines and the control of rules within a
configuration management system.

For all OPA CoEs there is now
access to an exclusive online Oracle work-group that allows for greater sharing
of knowledge, promotes decision of OPA related topics and provides valuable
information about forthcoming events.

Summary

The OPA CoE approach has
provided many OPA customers with a valuable structure and focus that has truly maximized
the use of the technology and has built a strong team around it. ‘Growing your
own’ OPA capability is part of the whole ethos behind the application and true
value has been achieved when our customers have taken this best practice
approach.