In Support of ProcessIn Support of Process

Some say developers need a new, process-focused mindset; Unify says they need suitable tools.

information Staff, Contributor

October 5, 2004

10 Min Read
information logo in a gray background | information

To meet the business needs of an enterprise there's more to software development than coding an application. That, if I may condense a key message of Unify NXJ, is the basis for looking at application development beyond the integrated development environment (IDE) and into the business process itself. Unify NXJ supports this message by making it possible to drive its more traditional components (Application Designer, Web Services Designer, and Report Designer) with a business process management (BPM) module. (See Figure 1.) This approach isn't entirely unique, but the way Unify goes about it, and especially its desire to accomplish a great deal without the need for detail programming, makes it worth a very close look.

In a way, calling this a .5 release is almost misleading, since at least three major modules have been added: NXJ Portal Server, NXJ Web Services, and NXJ Application Integration. If you haven't checked out Unify NXJ since before version 10, it's a different program.

An Encompassing Environment

Within its medium — Web applications developed with Java 2 Enterprise Edition (J2EE) — Unify NXJ is a soup-to-nuts package. In overview, development usually starts with the BPM Designer to lay out the business process (activities, business logic, and actors); this provides the framework for the other elements. Following the process design, you use the other modules to build (or assemble) components: The Application Designer builds forms, the Web Services Designer creates supporting Web services, and the Report Designer builds and operates many kinds of reports. If it's needed, you can use the Application Integration Designer to add external elements (such as third-party apps and data from SAP R/3, Oracle eBusiness, and so on). Testing and deployment goes through a Web portal. NXJ provides its own portal but supports many others. NXJ apps require an application server: Unify supplies the JBoss server but also supports BEA WebLogic, IBM WebSphere, and Oracle 9iAS.

For the most part, NXJ uses standard elements: Java (J2EE), HTML, and JavaScript — although it also may use the NXJ Programming Language. Applications are built with objects drawn from class hierarchies (typical object-oriented programming) that are usually applied to a form. Forms themselves may be stored as reusable objects (a Library module is provided in this version). However, rather than the usual Java paradigm of designing objects and components, NXJ uses a much higher-level model — preferring to build applications with graphical user interface design, business rules, and object properties — from which it generates the Java code.

As might be expected, NXJ is a large package, although if you have the horsepower (2.5GHz Pentium and 1GB RAM are recommended) and a recent Windows platform (for development), installation is easy. The default configuration is enough to develop pilot or test applications. Documentation is generally adequate, although the online help is sometimes sparse. Given its broad scope, NXJ could use more documentation or illustration that deals with how the various modules can (and should) interact. Some technical details and connection strategies are presented, but with the current documentation the developer has to infer or piece together a lot.


Figure 1: Unify NXJ uses business process modeling to drive the development and use of its Web applications.

Better With BPM

If the majority of business applications are about business processes (such as sales transactions or customer service), then a development environment that integrates BPM makes sense. As I pointed out in my article "Development Tools Are Reorienting" (see the March 20, 2004 issue at IntelligentEnterprise.com), this is a growing trend in software development. Unify NXJ is in position to capitalize on this trend.

The BPM Designer uses a visual approach (diagrammatic) to define the activities, policies (business logic), actors (people involved), statuses, and operands (key types, words) of one or more business processes. Creating a business process template is relatively intuitive, using point-and-click images associated with fill-in-the-blanks dialog boxes. The template you produce is an XML document that the NXJ Business Process Engine (on the application server) uses to execute and manage the sequence of events in a business process application.

The BPM Designer is intended to be used by nonspecialists, although I suspect not without some intensive training. It's somewhat easier to use, although less standard, than similar modeling based on Universal Modeling Language (UML).

The Programming Environment

This version of NXJ has tightened the links between the BPM Designer and the Application Designer, which is where the majority of program development is done. The Application Designer is forms oriented, especially for the new "Activity Form," which is specified in the BPM Designer.

Any programmer/developer who has worked in other Java IDEs will find the NXJ Application Designer comfortable. It scrupulously maintains the typical layout, naming, and functionality conventions, while offering some unique features such as NXJ's ActiveWeb technology. This feature includes prebuilt functions (objects), such as a Data View, that bring to a Web application the kind of responses (event-driven, dynamic update, and field-level validation) familiar to client/server applications. The NXJ Interaction Server (which also resides on the application server) is a server-side event handler that executes the code (Java or JavaScript) that has been either automatically generated by the Application Designer or entered manually by the programmer.

Actually, very little manual coding is required. The caveat, which is typical for any rapid development IDE, is that when there are unusual problems or requirements, an expert in Java, JavaScript, and/or the inner workings of NXJ may be necessary. Also, most programmers should learn the NXJ Programming Language, which is data-oriented and helps simplify working with the supported third-party database managers (such as Oracle, IBM DB2, Microsoft SQL Server, and ODBC/JDBC systems).

Unify NXJ handles debugging and deployment of applications through an application server, and in most cases a Web portal. You can deploy your applications in any Java-compatible environment: Linux, Unix, or Windows, for the most common examples. For the most part, this deployment (testing or otherwise) is remarkably simple — essentially, once NXJ is configured, one click is all it takes.

Web Services at Your Service

The new NXJ WASP Designer, which is built upon the Eclipse Platform, does most of the heavy lifting of generating SOAP, WSDL, and UDDI code (see glossary). On the other hand, it isn't the highly abstracted visual environment of NXJ Application Designer: The Java code is always present, and a thorough knowledge of Java (especially J2EE) and experience in Web services development may be necessary. (See Figure 2.)

Unify doesn't overhype its Web services capability. It's just another module that can produce components used by NXJ Web applications. Whether this is a "bag on the side" of normal application development or something more integral will depend on factors outside of Unify NXJ. For the time being, the NXJ WASP Designer is a standards-driven (as far as they exist) and complete, if somewhat complicated, development environment.

Let's Not Forget Reporting

Speaking of application components... It's not sexy, but it's damned important: reporting. In the not-too-distant past, IDEs often omitted or shortchanged reporting functionality. NXJ Reporting is one of the principle modules, a fully featured product in its own right, and fits squarely where it should in the pantheon of application development tools.

Application Management and the New Portal

There are ways applications created by NXJ can be used outside of a Web portal, but if you want the easiest, best way to use NXJ, then go through a portal. Fortunately, NXJ provides its own portal out of the box, which is especially handy for development and testing. It's also designed to connect — more or less easily — with third-party portals (such as IBM WebSphere Portal, BEA WebLogic Portal, and Oracle Portal) for production deployment. For many companies, the NXJ Portal may be sufficient.


Figure 2: The new NXJ Web Services module uses the Eclipse platform to develop Web services for NXJ applications.

NXJ also provides the Control Center, which is a sort of portal for administrative tasks. It's well organized and provides the appropriate tools to keep the NXJ system tuned. Although it wasn't included in the review package, NXJ also offers a new Application Integration module, which provides access to NXJ Enterprise Connectivity Services — that is, access to the data and programs of products such as IBM CICS, Siebel, and others.

All-in-One or One for All?

Unify NXJ doesn't want to do everything, really. It just wants to gather all the elements of common, everyday, garden-variety, process-driven business applications (the big 80%), put them on the Web, and do it quickly. It covers all the major bases — BPM, app design, user interface, Web services, data management, reporting, portals, and administration — with good to excellent modules.

Although there are similarities, Unify NXJ is not in competition with the big general-purpose IDEs such as IBM WebSphere Studio or Microsoft Visual Studio .Net. It's more in line with competitors such as IBM Rational Rapid Developer, but NXJ's business process orientation helps it stand apart.

This offering is a very big suite of programs that works remarkably well, but don't expect all dotted i's and crossed t's. The Unify sales literature says, "...invest in a comprehensive, integrated platform specifically tailored for business process automation solutions." The word is "tailored," not built from the ground up; the difference is significant because Unify NXJ shows signs of having been stitched together from very big pieces that are not always an obvious fit.

Although the business process orientation is sometimes overwhelmed by the galaxy of other features, Unify NXJ seems unique in providing high-level (not technically demanding) application development tools and a framework for reusable components. In the hands of a wise software development staff, it could produce the majority of business applications much more easily than most other products on the market.

Nelson King is a 25-year veteran of the coding wars, their documentation (with nine books on application development), and published evaluation of the tools.

Glossary

Read more about:

20042004
Never Miss a Beat: Get a snapshot of the issues affecting the IT industry straight to your inbox.

You May Also Like


More Insights