In contrast to other Web scripting languages, JSP presents the greatest training hurdle for Web designers wanting to design applications because of Javas mandatory data typing and exacting syntax. M7 Corp.s M7 Application Assembly Platform 3.0 (which eWEEK Labs reviewed in final beta form) provides a spoonful of sugar to help the Java go down.
It provides an object mapping layer, a data persistence library and a visual pro-gramming tool that allows for graphical assembly of Web applications while only requiring developers to know a little bit of Java syntax.
M7 will be an attractive option for organizations that have invested in Java application servers but would like to provide a larger pool of people with tools to create Java Web applications.
Final code should ship this month. The package costs $12,500 per CPU on the application server and $3,000 per developer. It is certified to run on BEA Systems Inc.s BEA WebLogic Server 6.1 or 7.0 (eWEEK Labs used WebLogic 7.0 during tests), IBMs WebSphere Application Server 4 or JBoss Group LLCs JBoss 3.0 with Tomcat 4. This 3.0 release includes some tool usability enhancements as well as support for external source code control systems.
M7 doesnt require any EJB (Enterprise JavaBeans) features in its host application server, so lower-end versions of WebSphere or WebLogic that dont support EJB will still work with M7, providing an opportunity for cost savings on the server side. M7 cant create EJB, either; those who need to produce EJB for code reuse and interoperability reasons will have to use another tool. However, we were able to easily invoke EJB already deployed on our test application server from M7 applications we created.
M7s entirely graphical design process may annoy those who like to have precise control over application behavior and design, but, on the flip side, we found that applications come together very quickly using the wizards and high-level page creation tools M7 provides.
We could flip to a text-editing mode in addition to the visual mode; the text editor provides color-coding and indentation help but not keyword completion, outlining or other modern editor features.
M7 is part of a newly emerging segment of the development tools market—high-level Java development tools. M7 doesnt compete directly against tools such as Borland Software Corp.s JBuilder or IBMs IBM WebSphere Studio because, while M7 generates Java applications, it doesnt require developers to write Java code directly.
M7s closest competitor is BEAs BEA WebLogic Workshop (see review) a product that also uses highly graphical development tools to make J2EE (Java 2 Platform, Enterprise Edition) development simpler.
WebLogic Workshop provides a much stronger code editor and provides tighter integration with other WebLogic server products, plus it enables the creation of Web services—which we couldnt do with M7. It also provides direct connectivity with Java Message Service and JCA (J2EE Connector Architecture) adapters (the latter are now available for many enterprise resource planning applications), something M7 developers would have to write their own Java code to do.
Given the substantial improvements in the upcoming 2.0 release of WebLogic Workshop, combined with its sub-$1,000 cost (a 12-month trial edition is a free download), we believe Workshop is a better option for BEA customers.
However, Workshop works only with WebLogic Server, so organizations that want cross-application server development or better code portability will get that through M7.
We began the application creation process with M7s M7 Enterprise Repository. The program provides a data mapping layer for M7 applications. Using it, we could register database tables, EJB, JSP (JavaServer Pages) custom tags or external Web services. This process creates an object metadata layer accessed by M7 tools to populate its back-end data pick lists.
M7 Workflow and M7 Studio are the two main Web development tools in the M7 Application Assembly Platform. M7 Workflow (see screen) provides the tools to link application Web pages in an overall design. Nodes in the workflow can be pages or prebuilt actions such as declaring or setting a variables value; issuing a database query; data persistence actions, such as creating a new record or deleting a record; sending an e-mail message; setting session variables; or managing user log-in or log-out actions.
Workflows can branch or loop back on themselves. We could, for example, branch from one workflow into a separate workflow, a way to more effectively reuse code. The workflow tool also specifies how form variables defined in one JSP are passed on to the next page in the sequence.
M7 Studio provides a JSP editing environment for creating dynamic Web pages. The editor provides a roughly WYSIWYG page display where we could lay out text elements, forms and tables. Its template support provides a quick way to establish a basic look for all application pages (this release has improved support for importing HTML pages created in other tools for use as a template page).
Variables and elements in the metadata model are displayed in a Variables windowpane; we could simply drag and drop them into the page to create data-bound fields (drag-and-drop support is new in this release). It was easy to add the ability to page through a result set one set of rows at a time and add end-user navigation controls to control this paging.
Three built-in form wizards are provided to speed creation of common types of forms: a log-in form, a database record edit page and a record search page. We could simply select the objects we wanted to edit or search, and M7 Studio generated most of the required page code automatically. We could also choose to display parts of pages conditionally, based on user log-in identity or session variable values
M7 Studio provided the option of inserting custom HTML or server-side Java code fragments into Web pages as well. When we used the graphical editor to do this, we had to type code we inserted into tiny boxes, an awkward way to work. An automatic switch to the full code editor would be a good idea here.
The code editor highlights in yellow the Java script embedded in the current JSP. Unfortunately, there was no cursor synchronization between the visual and text editors—switching to the text view didnt place our cursor in the same text we had been editing in the visual editor.
M7 makes extensive use of its own JSP custom tag libraries for its applications. A standard Java class-based API is also available that exposes M7s data persistence, data validation and data caching layers to direct developer control. This API can be used to issue custom SQL commands to the data layer.
As it does with EJB, M7 Enterprise Repository Manager provides automatic object management for external Web services. We could add Web Services Description Language locally or from a URL, and the Web services methods were automatically added to the list of available commands displayed in M7 Studio.
West Coast Technical Director Timothy Dyck can be reached at email@example.com.