Simplicity Enterprise

Overview

Simplicity Enterprise is a Java development tool that is used to create Web Applications (A.K.A. Java Servlets). The three different versions of Simplicity Enterprise are marketed and sold by Data Representations, Inc. as part of the "Simplicity" line of products. Simplicity Enterprise is highlighted here on this site as a reference to bolster the resume of the primary creator of Simplicity Enterprise, Mark Crocker.

What Can Simplicity Enterprise Do?

Simplicity Enterprise, at it's core, is a tool for creating and testing Java Servlets. Although there are other tools for doing these things, Simplicity Enterprise is unmatched in it's ability to accomplish this task quickly with the ability to instantly test the results without having to compile or deploy the Servlet. In addition, Simplicity Enterprise provides a graphical design metaphor with a drag-and-drop interface that makes it astonishingly easy to build Servlets in virtually no time at all.

Since it is difficult to describe, in words, how amazingly easy it is to create Servlets with Simplicity Enterprise and how revolutionary the design is when compared to traditional development tools, I recommend having a look at the demonstration video on the official Simplicity Enterprise Lite web page to gain a better understanding of how amazing this technology really is. The following table provides some links to some simple examples made with Simplicity Enterprise.

Application Link
Diagnostics Test DiagnosticsTest
Form Demo FormDemo
JDBC Demo JDBCDemo
Form/JDBC Combo Demo FormJDBCDemo
XML-JDBC Demo XMLDemo

The official web site for Simplicity Enterprise already lists its' many features, but there are a few that are worthy of special mention here:

  1. Instant Testing

    Any changes made to a Servlet under development are immediately available for testing. It is difficult to emphasize too strongly what a radical improvement this is over traditional development tools. It means that a user could make a change as trivial as a single keystroke in some part of the tool and click the reload button on a browser and see what the effects on the resulting output are. No compiling, packaging or deployment is required at all for this... it just works!

  2. Drag-And-Drop Servlet Construction

    Servlets are inherently non-visual, so the challenge is to provide a GUI design methodology without having to resort to complex visual object model design. Simplicity Enterprise achieved this goal by using a tree to show the construction of the Servlet and adding a module palette full of modules that can be dragged and dropped into the tree to build up a Servlet. Modules can be inserted, recycled, copied and re-arranged with drag-and-drop gestures.

  3. Modular Design with Open API

    The modules that appear in the palette conform to an open API that users can use to create new modules to expand the capabilities of Simplicity Enterprise. The Lite version of Simplicity Enterprise includes JDBC, Template, XML, Mail, Validation and other modules. In addition, there is a special "Generic" module that consists of code areas for each possible place that a module can produce code. As well as allowing users to add whatever code they like to a Generic module, any other module can be converted into a Generic module, so the user can use an existing module as the basis for doing something that it couldn't do on its' own.

  4. Integrated Templating Engine

    Although JSP is a popular technology that makes it easier for those who are used to the ASP model to convert to Java with a minimum of discomfort, it has many technical shortcomings. A much more robust way to follow the Model View Controller approach is to use a templating engine. Simplicity Enterprise works with the WebMacro templating engine, but it is designed to be templating engine agnostic, so it could also be used with Apache Velocity, FreeMarker, or other templating engines.

How Was it Created?

Simplicity Enterprise is based on an earlier product from Data Representations, Simplicity Professional. Although Simplicity Professional already contained a good basis for Simplicity Enterprise, a great deal of extra work was required to complete the project. Parts of Simplicity Professional that were retained included the IDE, Code Sourcerer™, Intellijence™ engine and corresponding Execution-On-The-Fly™ technology.

The Instant Testing feature was built on top of the existing Execution-On-The-Fly™ technology that is a part of the Intellijence™ engine which is capable of parsing and executing arbitrary code. Although the existing technology was fine for client side programming it was not up to the task of working with the new Servlet specification. The solution was to embed the Jetty server into Simplicity Enterprise. However, simply using the standard Jetty embedding techniques was not enough. Jetty's Servlet handler had to be modified to be able to tell the difference between a Servlet that is open in the Enterprise Composer and one that has already been compiled so that it could use Execution-On-The-Fly™ for the former and the regular Servlet Container for the latter. Since Simplicity Enterprise is a development platform where classes are constantly changing, the execution techniques both had the extra burden of having to be able to be re-initialized and have the ClassLoader reset. The EnterpriseServletBackend also keeps track of what code has changed and what hasn't to minimize the amount of parsing required when execution is requested.

Although visually similar to the existing palette in Simplicity Professional, the palette and drag-and-drop interface in Simplicity Enterprise is a complete re-design. An XML configuration file is used to specify module class files, palette pages and icons. Even the tabs are different... when there are more than can be easily displayed, the tabs squeeze together rather than leaving some unreadable or wrap to a second line.

The Module API makes it easy to add functionality to Simplicity Enterprise by defining all the different blocks of code that it can generate and ways to specify the user interface to control the properties of the resulting module instance. The API also defines utility methods such as naming and persistence. Persistence is handled with a simple XML based format on a module by module basis. One key feature of the module API is that it separates the details of the EnterpriseServletBackend from the business of code generation and user interface so that module designers do not need to worry about the details of the tool.

Simplicity Enterprise uses the WebMacro templating engine to generate the content that is produced by the server for navigation and documentation. There are also several modules that use WebMacro to export data to templates. Some WebMacro based modules even generate basic templates based on data that is available in the Servlet. This makes creating input forms and output results trivial. This also provides some very useful data validation and notification capabilities with no extra effort.

A Simplicity Enterprise Overview presentation at the Warpstock 2001 has more information.

Links:

Valid HTML 4.01!

This is an Apache-OS/2 powered web server. Thanks for using Apache and OS/2!

Mark Crocker's Apache web server home page link & IBM OS/2 Operating System home page link This page is browser independent
Copyright© 2000, Mark Crocker All rights reserved.
Comments or Suggestions? email: webmaster@markcrocker.com
OS/2 is a registered trademark of IBM Corporation. This site is not endorsed by, or affiliated with IBM.
This page last updated 2002-Aug-13 01:11 EDT (Tuesday) by Mark Crocker