by Maggie Biggs

Developers get a shield from Java complexity

news
Jun 6, 20037 mins

Despite shortcomings in editing features, M7's graphical development tools can expand Java's reach

Everyone knows manipulating Java can be a tricky proposition. To sidestep Java’s inherent complexity, more products are using graphical assembly of applications. M7’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 personalization server, a workflow server, and the M7 Studio graphical environment for wiring applications.

I found setup 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 J2SE (Java 2 Platform, Standard Edition) 1.4 if developers plan to include externally created Web services in M7-generated applications; if you’re not including Web services, J2SE 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 the M7 environment.

The Repository Manager interface didn’t supply a dialog 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 start-up 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, EJB (Enterprise JavaBeans) components, and external Web services into the Repository Manager with just a few clicks.

But when I tried to exit the Repository Manager, it entered a hung condition and reported a socket error in a stack trace. It was certainly an annoyance, but this intermittent exit condition did not seem to affect the assets already added to the Repository Manager.

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 all of the JSP (JavaServer Pages) 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 used 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 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 color 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 EJB components and externally created Web services to let users do specific tasks, such as viewing electronic versions of paycheck stubs online. I was able to preview the completed application 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 set-up 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.

  How We Tested  

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 J2SE 1.3 and 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 vacation balances and another to get stock quote information.

  M7 Application Assembly Suite 3.0  

Score

  • Ease of use: 8
  • Availability: 6
  • Interoperability: 5
  • Reliability: 5
  • Setup: 8
  • Value: 6
  • Overall: 6.3

Cost

2,500 per server CPU; ,000 per developer

Platforms

M7 Enterprise Server and Repository Manager: Unix/Linux versions that support JDK 1.3 and later, Windows NT/2000/XP; and M7 Studio: Windows NT/2000/XP

Bottom Line

M7’s graphical tool paradigm simplifies application creation by insulating the user from Java’s intricacies. It exhibits some glitches and has a basic source-code editor. M7’s tools should speed more junior Java developers along by allowing them to visually build applications, but experienced programmers already comfortable with Java and existing tools, may find M7’s approach and lack of standard editing features a hindrance.

Maggie Biggs is a senior contributing editor for the InfoWorld Test Center.