hosted by Sourceforge
The product’s history goes back to about 1996 when I worked under contract for a technology corporation.
My role was to assist in the development and maintenance of a Windows based desktop application used by the
sales department. The software was called a ‘server configurator’ and allowed a salesperson to abstractly
construct and price a server, a rack or another exotic piece of technology from the comfort of their desktop PC.
The effectiveness of this software ensured that it proliferated well beyond it’s original target user-base and
it was well regarded outside its immediate community. In the short term, it was spectacularly successful.
Unfortunately and for various reasons, development of the software petered out and key personnel were moved into other projects.
Essentially the project stagnated.
What made the project a technical success was the design. The developers using an object orientated approach
created a concise model for encapsulating the behaviour and relationships between different sales items.
They then worked closely with their users to build a well-featured user interface. The successful features could be summed up as follows:
The application gave the capability to represent the relationships of one part with other parts.
As an example a drive device would provide capacity and consume a drive bay.
This ensured that an abstract construction reflected accurately a real physical construction.
It is worth noting that getting this feature right is not just a matter of getting the model right.
The data created for a given sales item must be correct.
- Model based.
Since it was based on a sound design the source code for the application proved to be remarkably bug-free,
easy to maintain and extensible. New features were easy to add.
The application used a hierarchical approach to express relationships between items. This could also express
itself in the ability to nest one hierarchy into another. As an example the application could abstract
a rack, the devices in the rack - such as servers or networking devices right down to the configuration of
software installed on a given server. In theory the application could have abstracted an entire network
of interconnected devices.
The user interface for the application proved itself to be a very useful tool for disseminating technical,
sales or marketing information on sales items.
- User interface.
The user interface was a functional point-and-click GUI. The UI possessed a number of features that made it
popular with end-users. I won’t discuss these in depth, but they included the ability save configurations and
generate printable reports.
This is not to say that the historical application didn’t have problems. First and foremost amongst these was…
- Data Complexity.
The application had two tiers – in the sense that it had classes operating on a complex set of relational tables.
Hierarchical data for the model proved to be difficult to express in a relational database and the data was not
easy to modify by hand. The application also utilised declarative rules (discussed later in this paper).
These problems were slightly alleviated by building a software tool kit for generating and testing data.
But the problem remained that a certain amount of skill was required to generate the data for the model.
I suspect that this was the applications fatal design flaw. It also aptly demonstrates that the quality
of data can seriously effect a products lifetime.
- Non-scaleable architecture.
The application was originally designed and developed as a standalone desktop application. It would have
proved difficult to re-engineer it to operate in an alternative environment.
Some time ago I decided to resurrect this application. This time I would do it independently,
make the source code publicly available and correct some of the flaws in the original.
Having spent some time experimenting with a variety of designs, languages, databases and
development environments. The jcengine framework is the most promising candidate.
Back to main
Java is a registered trademark of Sun Microsystems, Inc. Windows 95 and Windows NT
are trademarks of Microsoft Corporation. All other product names and company names
mentioned herein are the property of their respective owners.