Leaping the Java-complexity trap

Everyone knows manipulating Java can be a tricky proposition. To sidestep Java’s inherent complexity, more products are using graphical assembly of applications. M7 Corp’s Application Assembly Suite 3.0 is one such solution: To visually wire and deploy applications, it provides repository-based access to persistent business objects and a graphical environment and tools.

Unlike Java IDEs, M7 produces Java applications without necessarily requiring a developer to write any code, an especially handy feature for more junior developers.

On the other hand, Java IDEs offer full control over application creation, including performance tuning and integration with other component frameworks. M7 does take this into account, and Application Assembly Suite 3.0 can integrate with several IDEs including Eclipse and Borland’s JBuilder.

BEA’s WebLogic Workshop is M7’s nearest application-assembly rival, and the most recent M7 offering has a few benefits over BEA.

For one, WebLogic Workshop only provides support for the WebLogic application server, whereas M7 supports other application servers, such as IBM’s WebSphere and JBoss Group’s self-named server.

For BEA shops, however, WebLogic Workshop is still the best bet. Its editor offers more features than M7’s editor does at present, and the BEA assembly solution allows developers to create Web services, whereas M7 only allows externally created Web services to be added to its repository for use in applications. M7 may be good at shielding junior developers from Java’s complexity, but it’s missing the functionality needed to give experienced Java programmers an edge.

Wiring applications

The M7 solution has five pieces, an object repository, a server component for application server integration, a personalisation server, a workflow server, and the M7 Studio graphical environment for wiring applications.

I found the setup process to be mostly a straightforward affair. The Java-based installer worked flawlessly in setting up the M7 server-side components on Solaris, Linux, and Windows.

Turning my attention to the M7 Studio install, I noted that M7’s graphical tools are only supported on the Windows platform. Other Java tools, such as IBM’s WebSphere Studio, offer support for a broader number of platforms including Linux. M7 requires JDK 1.4 if developers plan to include externally created Web services in M7-generated apps; if you’re not including Web services, JDK 1.3 can be used.

When it came to installing the server components, I was able to select one of the supported application servers (WebLogic, WebSphere, JBoss) for application deployment. The installation went fine, but I ran into some difficulties as I began working with the Repository Manager interface.

Initially, I chose to integrate M7 with IBM’s WebSphere 4.0.4, which I had on the same server. However, when I tried to start the WebSphere server from M7’s Repository Manager, the startup failed even though I was able to start the WebSphere server successfully outside of the M7 environment.

The Repository Manager interface didn’t supply a dialogue box for me to figure out why the startup failed, and the available documentation did not provide any information on troubleshooting failure conditions. M7 should add documentation to help diagnose setup issues and consider surfacing server startup activities within the Application Assembly Suite for troubleshooting.

I was able to get the Repository Manager to work with BEA WebLogic 6.1 and 7.0, as well as with JBoss 3.0. After wiring my test intranet application to deploy on WebLogic 7.0 instead, I used the Repository Manager to include the objects needed to build my employee self-service site. It was a snap to create an application skeleton and incorporate the necessary data, EJBs, and external Web services into the Repository Manager with just a few clicks. But when I tried to exit the Repository Manager, it got into a hung condition and reported a socket error in a stack trace.

Seeking editing tools

Once everything was in place, I moved to M7 Studio and began by creating a project to assemble my site components. I was pleased to see that this version of M7 Studio includes support for version control tools, such as CVS (Concurrent Versioning System).

After setting up my project, I created a layout template so that all of the Java Server Pages in my site would have a uniform look and feel. The Workflow Editor provides a very easy-to-use graphical interface. By right-clicking on any workflow node, I was able to quickly define actions such as page redirection or a new workflow operation. I was also able to simply and quickly jump from the Workflow Editor to the graphical page editor with a right click.

Visually editing pages was straightforward, and I was able to use M7’s new drag-and-drop function to quickly add assets to my pages. However, after placing my cursor on one of the fields in the graphical editor and switching to source-code editing, I noticed that the cursor was positioned at the start of the source code rather than the point where my cursor had been in the graphical view. Linking cursor position between visual and source-code editing is a fairly standard editing capability — I was surprised that it wasn’t already included — and adding this functionality would provide a productivity boost for M7 users.

The source-code editor itself provides basic functionality, such as colour coding and indentation. However, I could find no support for other typical editing features, such as outlining or keyword completion. As with the cursor positioning, bolstering these standard source code-editing capabilities would let both visual and nonvisual developers work with the same level of productivity. Lack of these basic editing features hamstrings M7’s effectiveness, particularly for experienced developers.

After editing my pages, I added some EJBs and externally created Web services to let users do specific tasks, such as viewing electronic versions of pay cheque stubs online. I was able to preview the completed app from within M7 Studio and deploy it successfully. Overall, M7’s graphical Java application-assembly solution provides a handy way to increase developer productivity. In particular, it will be useful for less experienced Java programmers who are tasked with visually assembling applications.

The biggest points of concern, though, are the repository setup glitches and the editing capabilities. In its current form, senior-level Java developers will likely feel hampered by the M7 solution and more productive using other tools. Bolstering source-code editing features, adding Web services-creation capabilities, and expanding M7 Studio’s platform reach will increase the solution’s effectiveness for a greater number of programmers.

To test the M7 Application Assembly Suite, I created intranet applications, including those for employee self-service and customer service account lookup.

M7’s server-side components installed easily on Solaris, Linux, and Windows, but there were some hang-ups in integrating M7 with IBM WebSphere 4.0.4. Unfortunately, when attempting to determine why M7 would not work with my WebSphere application server, I found no troubleshooting documentation and no information within the working environment to help me figure out what was going on. Likewise, when working with the Repository Manager and WebSphere, I observed intermittent errors but had no way of knowing the cause. Again, there was not enough information available to troubleshoot the condition.

I used both JDK 1.3 and JDK 1.4 during my tests, depending on when I needed to include externally-generated Web services in an application. Since M7 does not support Web services creation, I used some Web services I had previously created, such as one to look up holiday balances and another to get stock quote information.

In Australia, Avoka distributes M7, http://www.m7.com/services/partners-.html

Join the newsletter!

Error: Please check your email address.

More about BEABorland AustraliaBusiness ObjectsCVSIBM AustraliaJBossSidestep

Show Comments

Market Place