Sunday Jun 16, 2013

Who Are We?

Before we dive (soon!) into design issues, I have to tell you about the organization where the Wonder Machine was developed. Oracle Utilities Global Business Unit (UGBU) is the part of Oracle that focuses on solutions for utilities – companies that provide electricity, gas, water, sewer, waste and other services to residential, commercial and industrial customers. Some of the products in our application portfolio are:

  • Oracle Utilities Customer Care and Billing (CC&B)
  • Oracle Utilities Meter Data Management (MDM)
  • Oracle Utilities Operational Device Management (ODM)
  • Oracle Utilities Smart Grid Gateway (SGG)
  • Oracle Utilities Mobile Workforce Management (MWM)
  • Oracle Utilities Work and Asset Management (WAM)
  • Oracle Utilities Customer Self-Service (OUCSS)
  • Oracle Utilities Network Management System (NMS)

Why is this important? If you have worked with us before, you know us and what we offer already. If not, and would like to find out more, please visit our Oracle Utilities portal. If you have no particular interest in the utility billing, meters, assets or distribution networks, the discussion in this blog will still be relevant. I will use the names and acronyms of existing UGBU products in the examples that will follow. If you are not familiar with our applications, just substitute “Application A” for CC&B, “Application B” for MDM, and so on. The UGBU context will be useful to those who want to build installations of Oracle Utilities applications, but the Wonder Machine concept will be just as applicable to any enterprise applications running on Oracle technology stack.

Sunday Dec 09, 2012

What's My Problem? What's Your Problem?

Software installers are not made for building demo environments. I can say this much after 12 years (on and off) of supporting my fellow sales consultants with environments for software demonstrations.

When we release software, we include installation programs and procedures that are designed for use by our clients – to build a production environment and a limited number of testing, training and development environments.

Different Objectives

Your priorities when building an environment for client use vs. building a demo environment are very different. In a production environment, security, stability, and performance concerns are paramount. These environments are built on a specific server and rarely, if ever, moved to a different server or different network address. There is typically just one application running on a particular server (physical or virtual). Once built, the environment will be used for months or years at a time. Because of security considerations, the installation program wants to make these environments very specific to the organization using the software and the use case, encoding a fully qualified name of the server, or even the IP address on the network, in the configuration. So you either go through the installation procedure for each environment, or learn how to clone and reconfigure the software as a separate instance to build all your non-production environments.

This may not matter much if the installation is as simple as clicking on the Setup program. But for enterprise applications, you have a number of configuration settings that you need to get just right – so whether you are installing from scratch or reconfiguring an existing installation, this requires both time and expertise in the particular piece of software. If you need a setup of several applications that are integrated to talk to one another, it is a whole new level of complexity. Now you need the expertise in all of the applications involved (plus the supporting technology products), and in addition to making each application work, you also have to configure the integration endpoints. Each application needs the URLs and credentials to call the integration layer, and the integration must be able to call each application. Then you have to make sure that each app has the right data so a business process initiated in one application can continue in the next. And, you will need to check that each application has the correct version and patch level for the integration to work.

When building demo environments, your #1 concern is agility. If you can get away with a small number of long-running environments, you are lucky. More likely, you may get a request for a dedicated environment for a demonstration that is two weeks away: how quickly can you make this available so we still have the time to build the client-specific data? We are running a hands-on workshop next month, and we’ll need 15 instances of application X environment so each student can have a separate server for the exercises. We cannot connect to our data center from the client site, the client’s security policy won’t allow our VPN to go through – so we need a portable environment that we can bring with us. Our consultants need to be able to work at the hotel, airport, and the airplane, so we really want an environment that can run on a laptop. The client will need two playpen environments running in the cloud, accessible from their network, for a series of workshops that start two weeks from now. We have seen all of these scenarios and more. Here you would be much better served by a generic installation that would be easy to clone.

Welcome to the Wonder Machine

The reason I started this blog is to share a particular design of a demo environment, a special way to install software, that can address the above requirements, even for integrated setups. This design was created by a team at Oracle Utilities Global Business Unit, and we are using this setup for most of our demo environments. In a bout of modesty we called it the Wonder Machine. Over the next few posts – think of it as a novel in parts – I will tell you about the big idea, how it was implemented and what you can do with it. After we have laid down the groundwork, I would like to share some tips and tricks for users of our Wonder Machine implementation, as well as things I am learning about building portable, cloneable environments. The Wonder Machine is by no means a closed specification, it is under active development!

I am hoping this blog will be of interest to two groups of readers – the users of the Wonder Machine we have built at Oracle Utilities, who want to get the most out of their demo environments and be able to reconfigure it to their needs – and to people who need to build environments for demonstration, testing, training, development and would like to make them cloneable and portable to maximize the reuse of their effort. Surely we are not the only ones facing this problem? If you can think of a better way to solve it, or if you can help us improve on our concept, I will appreciate your comments!


Wonder Machine is a way to build software demonstration environments that emphasizes portability, reuse of work, and ease of use. Wonder Machine is particularly well-suited to scenarios that have multiple applications with integration. It has been developed at Oracle Utilities Global Business Unit.


« April 2014