Whitepaper

WMEE Overview

Screenshots





SYGEL homepage




The Sygel WonderMachine

What do the EE's in J2EE stand for ?

Most technology adepts understand the power and potential of J2EE™ technology. The design concepts behind J2EE are so appealing because it will truly enable the construction of open, standards-based and platform independent applications that will stand the test of time. But what people never tell you, is what the J2EE acronym actually stands for. Sun Microsystems® may try to persuade you into thinking it is Java 2 Enterprise Edition™ - but to most of us who have gotten down and dirty with the code, it's more like Java™ 2 with an Extended Effort.

Developing J2EE applications can be hard, cumbersome, can take forever, and does not necessarily bring developers or business people the magical benefits that many vendors have tried to make us believe. Sure, the potential of J2EE architectures is tremendous, and at Sygel we are ardent believers in this wonderful software technology, but we have been through the J2EE development process once too many to think that it would be an easy path to walk on.

The overhead in J2EE
What we have seen in J2EE development is that there is lots and lots of overhead associated with these types of development activities. Before you know it, your brightest and scarcest people are spending their valuable time on development issues that have nothing to do with the actual business problem that they need to solve. They're writing accessor methods, business methods, remote interfaces, home interfaces, deployment descriptors and what have you, nibbling at the valuable project time that is left to get the solution out the door. Especially in an internet age, time (to market) is probably more important than anything, and these types of overhead costs can really be a problem.

Designing J2EE apps
Another valuable lesson we have learned in over 6 years of Java development is the importance of the design activity associated with it. Good or bad designs often long outlive its creator, and the soundness and consistency of these designs across development projects is of the most extreme importance. Large corporations can only maintain these applications at a reasonable cost if the architectural designs of these applications are set up in a similar way. Consistency is key here.

Iterative J2EE development?
And if you think that the issues we just described are bad, think about encountering these problems time and time again - in an 'iterative' development process. While we have seen great and complex J2EE projects succeed in creating better, more business-related systems thanks to the spiral development process, we have personally felt the pain of our code changes cascading down into numerous locations - as a result of the fact that we wanted to make a minor change in one, only one of the beans involved. The very nature of J2EE development causes a variety of different objects to be related to one another, and because of this, changes made in an iterative process tend to have disproportionate effects on the system as a whole.

Develop - don't just 'code' - with a WonderMachine

Having lived J2EE, experienced developers know that there has to be a better way to do this. There has to be a way to take the repetitive, time-consuming and error-prone 'coding' efforts out of the development process. Developers should focus on solving new problems, not old ones. Developers should not just create 'code', they should create new business logic that solves the business problems that are assigned to us.

This is why we have created the WonderMachine. It is the result of over ten years of object oriented development efforts, and more cumbersome projects than we care to remember. It is the tool that every J2EE developer has craved to develop, but never got round to. The WonderMachine is a code generation engine that takes the repetitiveness out of J2EE software engineering, and that leverages the best-of-breed J2EE architectures in a fast, smooth and error-free process.

Using the WonderMachine, we can actually use enterprise strength modeling tools like Rational® Rose™ or Together® ControlCenter™ to model our business domain. Once we have drawn out all the required elements of the system, we just push a button and the WonderMachine takes care of the rest. An XML Application Descriptor is generated, containing all information for the Java Code to be generated. The WonderMachine, not only creates all required .java files, it also makes sure you can immediately deploy the system onto a variety of Enterprise Application Servers (SilverStream®, BEA® WebLogic™, IBM® WebSphere™, ATG Dynamo, Jonas and JBoss™). It even generates .sql files that you can use to generate all required database tables in your favorite RDBMS. And it makes sure that the generated code is XML enabled through support for JSP™/ Struts user interfaces and SOAP RPCs.

And rest assured: this not where the WonderMachine stops. In order to allow for iterative development, we will automatically integrate your business logic into the generation process. You can adapt, modify, add, and remove your logic from the generated .java files, and still use the WonderMachine on a repeating basis.

Making J2EE a Wonder-full technology

At Sygel, we have seen great results in developing J2EE applications with the WonderMachine. It generates large bulks of code that any developer would hate to be wasting his time with. The nasty part is taken out of the process, and put into WonderMachine. Bottom line is that :
the development process is much less error-prone: all code is generated and ready-to-run.
therefore, the development project can be far less time consuming.
therefore, the business projects can be realized in a much shorter timeframe.
while offering an open and standards-based J2EE architecture that leverages best-of-breed design patterns.
these design patterns will lead to more stable, more reliable and more maintainable systems for your enterprise.


Useful Links :
Word version of this document.