HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Java started as a simple programming language with a rather comprehensive runtime library. To penetrate the enterprise world, Sun then created the J2EE specification and, consequently, their application server.

Workflow management applications represent the next logical evolutionary step in enterprise development. They help model and implement standardized business processes by offering, out of the box, the advanced data integration and process automation functionalities required by many modern enterprise projects.

Network Computing
Capitalizing on its experience with Fiorano MQ (one of the first JMS implementations), Fiorano Software created Tifosi, a new breed of integration middleware with advanced workflow management capabilities that's based on a distributed computing model. The concept is simple: route XML messages between software components connected via input and output ports.

Unlike traditional workflow managers that use a monolithic architecture where all the code is executing on one single computer, Tifosi (see Figure 1) uses distributed Peer Servers (TPS) that act as containers for the business services (the individual tasks in the process). This network-centric architecture provides a cheap way to scale your application by simply adding extra peer servers.

Figure 1

Upon installation, the Tifosi program group contains individual icons for 3 servers, 7 administration tools, 12 PDF manuals, and 2 CRM/ERP demo applications. Both the Concepts and the Evaluation Guides are good starting points for any new Tifosi user. By default, the application comes with a single TPS. Adding more is a matter of running Setup again and selecting "Workstation Edition." To simplify administration, the Enterprise Server (the heart of Tifosi) automatically detects new TPS on the network. Alternatively, the administrator can use the Services and Security Manager to declare them manually. The list of functionalities covered by the administration tools is too long to discuss here, but Fiorano has included GUI-based applications to monitor the servers, workflow instances, documents, messages, message queues, services, permissions, etc.

Workflow Applications
Tifosi applications are created by visually laying out icons that represent individual services using the Distributed Application Composer (TDAC). Besides the default properties, some services can be further configured using a custom properties sheet (writing these is your job when creating custom services). To link the services, you can choose between two types of routes:

  • Hub-based: All messages transit on the JMS server (Tifosi includes Fiorano MQ, but the documentation states that you can replace the JMS engine).
  • Peer-to-peer: Messages are sent directly from one TPS to the other.

    This is an important decision motivated by your scalability, reliability, and performance needs. Experiment with both, as Tifosi allows you to switch between routes at the click of a button, even on a production system.

    The XML format for saving the application is proprietary, but Fiorano told me that they are working on compliance with emerging standards to allow for the exchange of applications with other workflow managers.

    Tifosi comes with a large number of pre-built services, organized by categories on a floating toolbar inside the TDAC. These services include:

  • Web connectivity, e.g., sending or receiving XML documents via HTTP, and accessing a SOAP-based Web service.
  • Bridging with MQSeries, EJBs, FTP, JMS, MSMQ, SMS, and SMTP
  • Database adapters - the RDBMS adapter is very powerful and took care of all my database needs
  • Transforming data, e.g., compressing, decompressing, encrypting, decrypting, or applying XSLT stylesheets
  • Executing scripts written in JavaScript, Perl, and Python
  • Other functions include writing files, basic flow control logic, openadaptor connectivity (see www.openadaptor.org), and monitoring disk space or files

    Custom Services
    Despite this long list, there are times when you'll need to include your own business logic. Fiorano provides two options. For the simpler cases, you can use one of the scripting services. Alternatively, you can use Java, C, C++, or any COM-aware language to create your own services. A C# library is available if you want to build a .NET client.

    The service creation wizard (launch the Tifosi Services & Security Manager, then select Create New Service in the Actions menu) generates fully functional Java services with a default custom properties sheet. The source code is well commented and uses "//TODO" annotations where you should add your customizations. At the time of writing, Tifosi only offered to generate a project file for Oracle JDeveloper and Borland JBuilder. Considering its popularity, I hope support for Ant is next on Fiorano's features list.

    A Real-Life Scenario
    A prominent travel agency that provides corporate travel services hired me to help improve the managing of the Customer Loyalty Program for a large Canadian bank. In identifying the project's success criteria, we identified the need to increase the agents' accountability for their involvement in the process, to provide traceability of each customer's operations, to access real-time status information, and to integrate in real time with third-party systems. To mitigate the risks, the agency wanted a rapid proof of concept that could be turned into the final system in a continuous iterative process, akin to changing a tire on a moving vehicle. Time-to-market was also essential, so I looked for a product capable of integrating with existing applications with minimum changes to the source code. The end-to-end system had to be operational even though not all the subcomponents would be ready at the same time. Vendor neutrality and support for COM clients were also imperative. The loyalty program was fairly new so maintainability and scalability were high priorities. The system would initially keep track of 2,500 new operations per week, some taking up to a month to complete, and grow with the popularity of the program. Last but not least, the agency could not afford to pay the typical Enterprise price tag. With these criteria in mind, Tifosi came out on top, offering an excellent compromise between cost, complexity, and features. Using the free 45-day evaluation version (www.fiorano.com/tifosi) and with no prior exposure to the product, it took me two weeks to build the first workflow application (see Figure 2). Fiorano's customer service was instrumental in identifying some problems we had with the Tifosi ActiveX control, and in the process incorporated some suggestions we made. Working with Fiorano's customer service was very productive, and I never had to wait more than a day for an answer. The simple client-side APIs allow the programmer to focus on the business code rather than on plumbing details. To further simplify coding the custom services, we did not use a database (a common design in workflow applications), but included all the business data inside the XML messages. Despite the amount of data involved, 500 new messages (each between 100K and 200K) injected into the system daily, Tifosi performed flawlessly.

    Figure 2

    Final Word
    The underlying concepts of Tifosi are clear and simple to understand. The documentation is straightforward and detailed. Furthermore, Fiorano has included many more functionalities than I covered in this review. These include the XML Mapper, a full-fledged GUI-based XSLT stylesheet generator, and the XML content routing engine (based on the results of XPath queries). I would definitely recommend Tifosi for business-process management or enterprise-integration problems similar to mine. My only serious request of Tifosi: some support for running the TPS as Windows NT services.


    Fiorano Software Inc.
    718 University Avenue, Suite 212
    Los Gatos, CA 95032
    Phone: 408 354-3210
    E-mail: [email protected]
    Web: www.fiorano.com

    Platform: Any platform supporting JavaSoft/IBM/Symantec JVM 1.3 and above

    Test Environment
    Production: Two desktops, Windows 2000 Pro/Pentium 4-1.6GHz/512MB
    Development: One laptop, Windows XP/Pentium III 1.0GHz/512MB


    Product Snapshot
    Target Audience: Business analysts, technical architects, consultants, Java programmers
    Level: Some experience with distributed messaging systems; good systems design skills


  • Solid integration middleware and workflow manager with many services and adapters
  • Includes lots of example applications and source code for most of the built-in services
  • Visual debugger to display the workflow messages in real-time
  • All server applications are managed remotely


  • No support for executing TPS as NT services on headless servers

    Contact the Reviewer: [email protected]

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.