The Internet is a prime breeding ground for buzzwords. Right from the early days of Usenet and public mailing lists, jargon rapidly became a problem for the early on-line communities, with new words appearing every few days. You can use the online Jargon File (published as the New Hackers Dictionary by MIT Press) to understand several generations worth of programmers’ slang, but it’s still unable to help translate its way through the latest jargon to hit the net: business speak.
A key business term used in discussions about web applications is “downstreaming”. This is the process by which existing business applications are used on an extranet to allow customers and suppliers access to a company’s internal business processes via the Internet. Downstreaming isn’t only limited to external applications, as various departments inside a large organisation can use web applications to handle tasks that may have normally required the movement of large amounts of paperwork!
Typical examples of downstreamed web applications are:
Building downstreamed applications can be a complex task, as they often rely on legacy systems running on large databases, or on proprietary distributed application environments like PeopleSoft’s human resources packages, or SAP’s R/3 supply chain tools. Designing and building a web application to link to external systems usually requires substantial amounts of programming, and access to the APIs of tools like SAP is often limited.
The 4.0 release of NetDynamics’ Java-based application server (http://www.netdynamics.com) has given the web application designer a powerful tool to help build downstreamed systems. The latest version, 4.0, is designed for use in Windows NT and Solaris systems.
NetDynamics describes the Application Server as an “enterprise application” platform. It’s a fairly accurate description, though there’s not much overlap with the heavy-duty object-oriented distributed application development tools like Forté, Dynasty or NatStar. You won’t use NetDynamics to build a corporate wide multi-tier financial application, you’re much more likely to use it to develop a customer-friendly front-end for a system normally used by sales staff to take orders over the telephone.
There are five main parts to the NetDynamics application platform. These are the Application Server itself, a large Java object framework, Platform Adapter Components, a command centre used to control and configure the application server, and a visual development environment.
If you’ve used any of Microsoft’s Visual Studio development applications or one of Borland’s development tools, you’ll find the NetDynamics Developer’s Studio very familiar. It’s a typical visual application development IDE, and can be used to automatically generate your application’s Java and HTML. You can use it with any SCC-compliant source control system, including the latest version of StarBase’s StarTeam (http://www.starbase.com/) – which allows you to build virtual development teams, and as well as source control, includes tools for threaded discussions, as well as reports.
You’ll need a Java JDK 1.1.2 compiler to build NetDynamics’ Java code. Sun’s compiler, as provided, will work well, but you might find that you want to use a third-party compiler like Borland’s or Symantec’s as these are a lot faster. If you’re going to be using NetDynamics in a Microsoft environment you may prefer to use the Java compiler provided in the 2.0 release of the Microsoft Java SDK. Be careful here though, as this compiler doesn’t support some crucial Java features and also adds non-standard classes. Code developed to work with this may well only work on Microsoft’s Java virtual machine (JVM). This removes one of the advantages of Java, its portability.
The Developer’s Studio also includes a JavaBean editor, as NetDynamics’ Java user interface components are implemented as beans. You can also use this to add third party interface beans to your applications. As it’s an external program, the JavaBean editor needs to be running before you can launch it from the Developer’s Studio. This can be rather awkward at times, as like the rest of the NetDynamics development tools, it’s also rather memory-hungry.
The heart of NetDynamics is the Application Server. This is a CORBA-based system, using the Visigenic OSAgent ORB, and is designed to give a web server and HTML (or Java applet) front end to a large ODBC compliant database. The Application Server is almost completely written in Java: the only sections written in C++, to take advantage of the speed of compiled code over Java’s interpreted byte-codes, are the database access components. With the expected increases in Java interpreter execution speed over the next year or so, it’s likely that this last vestige of non-portable code will soon disappear. The Application Server is designed to handle load balancing and fail-over between several servers. This isn’t a completely automatic process, and you’ll need to understand the architecture of your system before configuring the servers with the Command Centre administration tool. The Command Centre is designed to give you the tools to remotely manage a cluster of NetDynamics application servers from a single location. A Java tool, it gives you easy point-and-click access to all the properties of each server used by your applications.
NetDynamics aren’t firmly ensconced in the CORBA camp, despite licensing the Visigenic VisiBroker ORB. You can also use the Application Server as part of a DCOM-based Windows NT system, as Microsoft has licensed these technologies to NetDynamics.
The Java object framework provided with NetDynamics gives you an extra 400 Java classes, and around 4,000 methods. You can use these to control the look and feel of your application, as well as using them to manage user sessions and to link to external data sources. For more complex applications they can also be used to manage transactions. As this is a Java environment you can also use your own classes, including the massive range of business objects IBM has developed in its San Francisco project. NetDynamics 4.0 has ported all its Java classes to the new JDK 1.1 event model, though you’ll find that they’re still backward compatible with the NetDynamics version 3.0 Java framework.
Platform Adapter Components are NetDynamics’ tool for linking the Application Server to third-party environments. Currently NetDynamics produce PACs are available for PeopleSoft applications and SAP, with several third party PACs available. These include tools for accessing AS/400 applications as well as VMS and CICS systems, as well as DB2 and RDB databases. With this level of support for legacy systems, you can roll out downstreaming web-applications very quickly, using the NetDynamics Studio as a RAD environment.
The PeopleSoft PAC links into PeopleSoft’s messaging API, and can be used to convert messages into Java applets running in users’ web browsers. The SAP components are linked to SAP R/3 applications through the application API, and are implemented as CORBA components that communicate with NetDynamics’ applications using the IIOP protocol. You can then use NetDynamics to reuse SAP’s business logic and security, extending applications to the intranet and the extranet.
You can create your own PACs, as NetDynamics provide a PAC SDK consisting of classes and interfaces for integrating existing systems to the NetDynamics Application Server. Once created PACs can take advantage of server load-balancing, allowing you to create scaleable, high-availability systems. You can also work with NetDynamics’ built-in application security tools.
Developing applications in NetDynamics Studio is a relatively simple process. It’s only when you come to create your own Java classes or need to tend any of the classes provided in the NetDynamics framework that a reasonable level of object-oriented programming or Java skills are required.
The process for building a simple database lookup application is as follows:
1. Use the studio to create a project for the application.
2. Use the NetDynamics Studio wizards to handle common tasks, including connections to data sources, generating data-driven pages and handling application security.
3. Add or remove page controls from generated pages.
4. Format HTML and Java pages to give the look and feel you want.
5. Customise any Java events if you want to add extra features.
6. Compile your project!
You’ll find that your application is called by a fairly complicated URL, but you can configure the web server to use a shorter name. If you don’t do this you’ll need to provide a friendly front page for your application as the automatically generated application URLs http://servername/cgi-bin/ndCGI.exe/projectname/pagename (replacing the names with those of your system) can be a bit awkward to type…
You can build a connection to an external data source using NetDynamics’ Data Source Wizard. Just select the type of data service you’re using, which can be a PAC or the built-in relational database service. This allows you to connect to Oracle and Informix native interfaces, and to any other database that offers an ODBC connection. You will need to have created any ODBC connections you want to use, before trying to connect to it from NetDynamics. Once created, the wizard generates the Java code required to connect to the chosen data source. NetDynamics will support multiple data sources in a single project.
Once you’ve added a data source to a NetDynamics project, you can create the data objects you will need to build your application. Another wizard helps you to build the SQL query that forms the heart of a data object. You can build data objects that handle select queries, as well as insertions, deletions and updates, as well as the combined queries NetDynamics call “Multi-SQL”. The Multi-SQL data object allows you to handle all four standard query types in a single object, though it can only be applied to a single table rather than across a database join.
Data objects are no use if you can’t work with them, and NetDynamics applications use pages - which can be HTML or Java applets - to access the data objects. HTML pages are created using yet another wizard, and can be used to input information, display data and provide linked queries. You can even create blank pages, which allow you to add your own code, and use as linking pages to help with the flow of your application. Once pages have been created, you can examine the various elements, and adjust properties as required, using the NetDynamics Studio . You can edit the HTML generated by NetDynamics in an external HTML editing tool, as long as you avoid deleting the NetDynamics specific tags, as these are parsed by the NetDynamics application server, and are used to trigger server side Java, and are replaced during execution.
Every button on a NetDynamics page is linked to an event in Java code running on the application server. You don’t need to use the built-in actions, and can write your own code to handle these events. You can also extend the built in actions, so that navigation links may add values to session objects for later use.
One of the biggest problems facing the web applications developer is the connectionless nature of the HTTP protocol. Each connection from a web browser to a web server is treated as a separate operation, and the web server doesn’t record which browser has accessed which page. A NetDynamics web application will normally require several separate pages, and whilst it’s possible for you to build your own page tracking system, you’ll find it far easier to take advantage of NetDynamics’ built in session management tools.
NetDynamics provides you with three different types of session object:
You’ll find the User and Page session objects most useful, as these allow you to handle information linked to individual users of your application. User session objects are designed to store values that can be used anywhere in an application, whilst page objects can be used to pass information that is only required by a single page.
As all of NetDynamics’ objects are created in server side Java code, you can write your own Java code to process the values stored in a session object. You can use session objects to build shopping carts or to transfer values to reusable message pages.
Once you’ve built a web application, your users will expect to find that their information is delivered reliably to your back-end systems. This is extremely important, especially if you’re building ordering or financial systems. There’s no point in despatching an order if you’ve not been able to verify account details. You can use NetDynamics to build true transactional systems, where several operations can be grouped together and are seen as a single transaction which either succeeds or fails as a whole.
NetDynamics gives you three types of transaction control. One option is to allow NetDynamics to automatically assemble a transaction from the data elements on a page, another is to build a “fire-and-forget” transaction, in which a group of data objects are assembled in a transaction, and committed if all the operations are successful. You can also create a transaction manually, issuing a commit or a rollback depending on the results of your application’s business logic.
Once you’ve built your NetDynamics application, either by hand or by taking advantage of their “Instant Intranet” package, you can install it on your production servers, either running it through a firewall if you’re using it to deliver an extranet, or on your local intranet. You can implement a high level of security by using the built-in security objects, which allow you to control which pages certain users can access.
Downstreaming business applications is a powerful tool for the modern Internet technology-aware company, and using a tool like NetDynamics it’s possible to extend existing back-end systems over the Internet without a significant investment in new application technologies. The easy to use wizard-driven Studio means that you don’t even need to know any Java or HTML - though you’ll get a lot more from it if you do!
