HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

The AltoWeb Application Platform is a J2EE-compliant system designed to provide an integrated environment to develop, deploy, and manage Web-based and services-based applications. It allows developers to create applications without specific knowledge of enterprise Java and to deploy the final product on J2EE- compliant application servers.

The platform consists of several components: AltoServer, AltoStudio, AltoManager, and AltoMonitor. AltoStudio is the integrated development environment in which applications are built. The AltoServer, running inside a J2EE-compliant application sever, provides the runtime environment and monitoring engine for applications created in AltoStudio. The Alto-Manager component manages the remote deployment of AltoWeb applications built in AltoStudio. AltoMonitor provides real-time monitoring of application usage and performance. Figure 1, from the AltoWeb Web site, provides an outline of the architecture of the AltoWeb Platform. For this review, I will be focusing on AltoStudio.

Figure 1

AltoWeb is distributed in three configuration packages to run on three individual application servers: IBM's WebSphere, BEA's WebLogic, and the JBoss application server. For this review, I've loaded the WebLogic version of AltoWeb onto WebLogic Server 6.1.

AltoStudio Concepts
AltoStudio is a development environment that follows a component-based approach to building applications. Development is done while connected to a live instance of AltoServer and all objects are deployed automatically as work is saved.

Development work is organized into applications and projects. Applications represent Web application containers on an application server. Projects are collections of components that perform a collection of business processes, such as managing a product catalog. Applications may contain multiple projects.

The developer has at his or her disposal four categories of objects for building applications:

  • Data Access: Provides access to external data stores. Connectors to external sources include SQL databases, Web servers, file systems, XML files, HTML files, and flat files.
  • Business logic: Business logic objects provide the actual logic rules for execution, the mechanisms to link the presentation tier to the data tier, and the means to encapsulate and represent business entities.
  • Views: Views represent the presentation layer of an application and may be created in JSP and XML.
  • Components: Customized, user-developed Java classes that manipulate data.

    In addition to the individual editors in AltoStudio for objects such as JSP pages, XML pages, and Java classes, external editors may be registered for each object to give the developer access to the full range of capabilities provided by those specific tools.

    Development in AltoStudio
    For this review, I'll create a simple application that accesses user information in an Oracle database. The initial setup will involve establishing a SQL Data Source object that will use a connection from an existing pool in WebLogic. AltoStudio provides the ability to access a connection object through a JNDI lookup by simply specifying the name of the connection object. Alternatively, AltoStudio can access a database through a JDBC driver.

    The first step to representing the User as an object available to other components is to create a MetaObject. The MetaObject, linked to a specific data store, provides a layer of abstraction isolating the details of the data storage mechanism from the components that will access it. The definition of a MetaObject consists of fields and operations. The fields may be created from a custom SQL statement or selected directly from a list of available tables and columns. Operations are defined to manipulate the item represented by a MetaObject. For example, several Select operations may be defined to handle lookups or searches by various fields. These operations may be created from SQL statements or by applying one of the available filter types.

    Once the data sources and the MetaObjects have been created, process logic may be created to perform the business operations on the data. Process objects are created by diagramming the operations in a process view. The process view contains individual component operations, each with their own inputs and outputs.

    In the example in Figure 2, the process executes the function GetUserById. The function maps the input parameter to a defined select operation on the User MetaObject and produces three outputs. The function outputs are then mapped to the process outputs.

    Figure 2

    Information is transported within and among processes by DataModel objects. These containers provide temporary storage for runtime data and may be shared across components.

    Along with the provided modules that may be inserted into processes, AltoStudio also provides the ability to create custom components by coding Java classes. When creating a Java class, the developer defines the input, output, and any custom runtime parameters used during execution. AltoStudio then generates the skeleton Java code for a subclass of ProcessWorker. The developer then has the option to launch an IDE that has been associated in AltoStudio to complete development on the class. When finished, this class is available in the Process editor as an executable component.

    Once the process has been defined and the appropriate DataModels assigned and created, an interface must be created to allow other processes to act upon it. The interfaces are defined by Action components. Three types of Action components exist in AltoStudio: Actions, XML Actions, and Web Service Actions. The standard Action object is used in browser-based applications to call a target process, custom class or pass data to a public Data Model. The end result of an action is a JSP view or a URL. XML Actions allow AltoWeb to manage client requests in XML format. Web Service Actions allow AltoWeb processes to be executed via SOAP calls. Once defined, the Web Service Actions may be published to a UDDI registry from within AltoStudio.

    Web Service Actions may be created from scratch or from an existing WSDL definition. To create the action from an existing definition, an active UDDI registry must be available for AltoStudio to browse. Once available, the developer selects the definition desired and AltoStudio creates a new process with the corresponding data models and structures defined in the WSDL document. When creating a service without an existing WSDL definition, the developer must follow specific naming and data structure conventions outlined in the documentation.

    Finishing Up
    Throughout the development process, AltoStudio is linked with the host application server to store applications. This gives the developer the flexibility to test the application from an external client throughout the development cycle. With the combination of Web Service Actions, JSP Views, and XML Views, the application is available from very distinct types of clients with minimal development effort. The underlying business process is independent of the access method created for that process. In the case of the User Lookup Web Service Action I've created, AltoStudio generated the necessary SOAP call required to test the service and retrieve the results.

    Summary
    The AltoWeb Application Platform provides an integrated environment to de-velop, test, deploy, and manage Web-based and services-based applications. The AltoStudio development environment provides developers with the tools to create business-oriented applications without requiring a low-level knowledge of J2EE and Web services technologies. Its flexibility does present a learning curve for new developers, but once acclimated, the tool is effective. Overall, the AltoWeb Application Platform is a solid tool that can improve the development of Web- and services-based applications.

    Contact:
    Steve Wilkes
    Principal Technologist
    1731 Embarcadero Road
    Palo Alto, CA 94303 i
    650 251-1591
    swilkes@altoweb.com

    Pricing:
    Platform starts at $3500 per developer seat

    Test Environment:
    Pentium III
    256 MB RAM
    Windows XP Professional
    Oracle 8i
    BEA WebLogic 6.1
    JDK 1.3.1

    Author Bio
    Brian R. Barbash is a consultant for the Consulting Group of Computer Sciences Corporation. He specializes in application architecture and development, business and technical analysis, and Web design. bbarbash@csc.com

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.

      E-mail: info@sys-con.com

    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.