Development of enterprise applications using Java technologies is not for the faint-hearted. Writing to the J2EE specs is proving to be complex, difficult, and tedious - slowing down advanced Java developers and creating a barrier to entry for many mainstream developers.
With advanced Java developers in short supply and even among them, experience with EJB development is rare, thus slowing time-to-market for business applications and challenging application reliability and performance.
To solve this problem we'd ideally want to simplify Java development to allow developers of all levels to build reliable, high-performance components and provide them with a framework for delivering J2EE-compliant business applications. Compuware Corporation believes that it has built such a solution with OptimalJ, a new breed of development environment that enables the rapid design and development of J2EE business applications.
Using OptimalJ, developers can generate complete working applications directly from a visual model, bypassing many of the routine coding tasks associated with EJB development. Design patterns implement best practices for architecture and coding, and an active synchronization feature keeps the code and model in step and up-to-date, allowing application changes at any stage of the development life cycle.
The promise is that OptimalJ, by simplifying the development of J2EE applications, will enable developers of all experience levels to produce reliable applications in a fraction of the time it would take using current development tools.
So how does it do this? Let's step through the features of OptimalJ.
Rapid Enterprise Java Development
Developers use OptimalJ to interact with a visual model of the application that can either be imported from other modeling tools using the XMI or DTD interfaces or built from scratch with the visual modeler. OptimalJ uses this model to generate the architectural submodels and even the working code needed to implement a complete application. Simple graphical windows, editors, and wizards walk developers through each stage of the design, generation, and deployment, reducing the time spent on tedious implementation tasks.
In addition to its model-based interfaces, the integrated development environment based on the open-source IDE, NetBeans, provides a source editor, class browser, form editor, and debugger to enable developers to view, modify, and customize the generated application. So-called "free-blocks" in the generated code allow existing classes to be imported and called by the application, making use of work done outside of OptimalJ.
Using this visual paradigm, developers are shielded from the complexity of coding to the distributed J2EE development. Less experienced Java developers can quickly build or make modifications to business applications. Advanced developers are freed from many of the repetitive coding tasks and can focus on architecture refinements or customization.
Dynamic Business Rules Implementation
Once the basic application structure has been defined in the model, application differentiation can be built-in using a flexible business rule editor. Simple scripting enables developers to add both static and dynamic business rules at the model level. The business rules editor can define referential data constraints, which ensure data integrity and consistency, and event condition rules that provide support for conditional processing. Static rules are generated as Java code in the application, and dynamic rules are stored in a rules database on the application server to allow for modification at runtime. By separating out business rules as easily identifiable elements in this way, many business requirement changes can be quickly and easily implemented.
Pattern-Driven Application Generation
OptimalJ can generate all the application code required for running an application. To do this it first generates models for the Web (JSP), business logic (EJB), and data tiers, which are then used to generate the actual Java code, business rules, and data implementation scripts. The generated models and code are based on implementation templates called patterns, which encapsulate knowledge and best practices for coding to the J2EE specification and follow OMG standards. Developers can quickly generate full working applications using JSP, session EJB, and entity EJB technologies with only limited knowledge of the J2EE specs.
Active Synchronization of Models and Code
OptimalJ provides live synchronization between the application models and the Java code. Developers can make changes to applications during or after release using the visual model, and the affected code will be regenerated automatically. The OptimalJ Source Editor identifies managed source code, business rule code, and custom source code to accelerate understanding and enable you to make modifications during development or after release of the software. This feature really underlines one of the core benefits of OptimalJ, one that will become more apparent as Java business applications reach their second and third iterations.
In most projects today the application model is not kept up to date and is discarded once the initial implementation is completed. Developers who join projects late or have to take the first cut and create new versions will benefit from being able to make modifications directly at the model level, confident that OptimalJ has kept the implemented code fully synchronized with that model.
Integrated Deployment Environment
OptimalJ automatically deploys to many of the leading J2EE production servers including the fully integrated Compuware OptimalServer, offered as an option to OptimalJ. OptimalJ also includes an open-source test environment that contains a Web server and EJB container. The OptimalJ deployment packager automatically deploys to this local environment, allowing developers to directly test as they develop without worrying about the complexities of deployment. In the time it would normally take to create the basic business design of an application using a visual modeling tool, OptimalJ can finish coding the entire application and deploy it. Developers can spend their time refining the design and the advanced development staff can concentrate on adding new patterns or customizing the existing ones.
OptimalJ represents a new paradigm in Java development, promising productivity gains similar to those experienced with the popular and advanced proprietary 4GL products of yesteryear. It adheres to open standards such as J2EE, EJB, JSP, XML, and MOF, uses open source components and industry patterns, and is even IDE and application-server independent. (It supports NetBeans or Forte for Java as its IDE and the iPlanet Application Server, IBM WebSphere, or BEA WebLogic as application servers.)
Compuware has made a clear investment in the J2EE development market and is aligning other products such as its DevPartner and QACenter testing suites alongside OptimalJ to provide a Java tools platform to make development of J2EE applications much easier.
Bob Hendry is a Java instructor at the Illinois Institute of Technology. He's the author of Java as a First Language. He can be contacted at: [email protected]