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.
|