Introduction

1998 was the year of the Web Application Server. By the end of the year every enterprise software company had one of its very own. One of the first web application suites was HAHT’s (pronounced “Hot”) HAHTsite, a CGI-driven tool. Now, 4 versions on, HAHTsite is taking advantage of the latest web technologies, as well as striking out on a path of its own, with strong links to SAP’s R/3 ERP package.

We were provided with a late beta of the Windows version of HAHTsite 4.0. This was compatible with both Windows NT and Windows 95/98 – allowing you to use a Windows PC as a development environment, before deploying your application to a production server. Installation is easy enough, allowing you to install a development environment quickly and easily. We were able to get an IDE and development server running on our test machine in under 10 minutes. You’ll need to read the READ ME files, as they include information on new features and bugs.

Installing and configuring HAHTsite

HAHTsite is compatible with a wide range of different web servers. However, you’ll find that HAHT include a copy of the Apache web server (our NT copy included Apache 1.3.4). We tested HAHTsite with both IIS 4.0 on an NT 4.0 server and with PWS 4.0 on Windows 98 development workstation. Both systems worked well, and were detected as part of the installation procedure. You only need to change the default installation details if you’re running a multi-homed HTTP 1.1 web server. A specific tool is provided to allow you to edit the set up of the HAHT application server – which is available as either a local development tool, or a full clustered server environment. One issue to note is that the development server is only a CGI tool, and won’t take advantage of ISAPI or NSAPI. HAHT also include Visigenic’s Object Broker, to allow you to create CORBA applications.

HAHT’s development tools are designed for use on Windows systems (Windows 95 and NT), but you can deploy the full application server on a wider range of platforms. HAHT supports deployment on Sun Solaris 2.4 for SPARC, as well as HP’s HP-UX 10.0x and IBM’s AIX 4.1 and Windows NT. Licensing is per cluster of servers, with additional licenses required for more than 25 concurrent users. HAHT also provide an annual subscription driven support contract.

Once installed, you’ll find you have all the tools required for developing and running HAHTsite 4.0 applications. The main tool you’ll use is the HAHTsite IDE. If you’ve used any application development tool over the last few years, you’ll find its look and feel very familiar. A three-pane window and a dynamic tool bar allow you to work with your applications, one pane providing an Explorer-like view of the files associated with your application, one showing you the files you’re currently editing and the third providing debug information.

Building HAHTsite applications

The key to building HAHT applications is the project. This allows you to manage all the items in a Web application, including HTML pages, frames pages, style sheets, images, image maps, as well as code written in Java or HAHTtalk Basic, and any other files that may be needed by the application. The HAHTsite IDE uses a project window to show all of these items.

You can develop HAHTsite applications in HAHTtalk Basic or Java. HAHTtalk basic is a dialect of Visual Basic for Applications (VBA) and has been licensed from Microsoft by HAHT. As well as the familiar VBA commands, HAHT have added their own extensions to enable its use in a web application development environment. There’s plenty of documentation on HAHTtalk Basic in the online help files – including a complete command reference. We weren’t able to see any printed documentation for HAHTsite 4.0, but previous versions have also included plenty of printed language reference materials. There is also a selection of sample applications that you can deconstruct to understand how HAHTtalk is used. You can also use “widgets”, reusable code snippets that allow you to add specific functions to your pages and applications. HAHT provide an SDK to enable you to create your own widgets, but you’ll need to use Visual Basic 5.0 for this.

Whilst it’s possible to produce a simple web application in HAHTsite without having to resort to code development, there will come a time when you’ll have to add your own code to an application. This is more likely if you want to use COM in an NT environment and CORBA in a cross platform system. A COM based DNA application is probably best developed in HAHTtalk, and a CORBA application in Java – so you’ll need to make any decisions about the languages you are using quite early in the development process.

HAHTsite’s object model is very similar to that implemented by Microsoft’s Active Server Pages, with Server, Application and Session objects for holding application-level information. The server object is designed to hold information that can be passed from application to application (as long as they are running in the same process of an application server), the application object holds information that can be passed between instances of a single application, and session objects hold information relating to a single user session. The response and request objects are used to transfer information between the server and browser. This can include HTML form contents, as well as cookies and dynamically generated HTML.

Data access is via ODBC connections to external databases. Once you’ve created an ODBC connection, you can use HAHTsite’s built in data access wizards to quickly add data-driven components to a page. These include a data access form, a master/detail report – a tool for building queries that work across multiple database tables (no doubt familiar to NetDynamics users!) – and a report wizard for producing table driven reports based on database queries. These wizards will automatically create SQL, but you’ll eventually need to write your own data access pages.

HAHTsite provides a set of data access classes, the two most important of which are DataAgent and DMConnectionManager. These use Microsoft’s ADO data model to handle database connections. The DataAgent class represents an ADO recordset – allowing you to set SQL queries and perform actions on the resulting recordset. The DMConnectionManager is designed to handle opening ADO connections. You can share these between DataAgent implementations, or create private connections for transactional applications.

Two more key packages provided by HAHTsite are the access and CORBA packages. The access package is a set of classes that allow you to manage the security of your application, without having to delve into the complexities of web server security models. This allows you to handle a wide range of user privileges, and to store them in external databases. The CORBA package allows you to use a HAHTsite application as a CORBA server, so that Java applets in the browser can communicate directly with your application, rather than via the web server. It will also allow other CORBA-compliant applications in your infrastructure to use methods implemented in your HAHTsite applications.

As most applications are built in teams, rather than by individual developers, some form of source control integration is important. HAHTsite supports most of the popular source control tools – including Microsoft’s Source Safe and StarBase’s StarTeam. You can set up links via the HAHTsite IDE, and each user will then be able to check pages in and out of a central repository.

Designing web pages with HAHTsite

Whilst the core of an application is its business logic, any web-based application will require a well-designed user interface. The HAHTsite IDE provides you with a set of HTML page design tools, which include:

  • WYSIWYG HTML page editor
  • Cascading style sheet (CSS) editor
  • WYSIWYG frames editor
  • Image editor
  • Image-map editor

You’ll find you’ll be using the HTML page editor as your main tool for creating a user interface. If you’ve used a tool like FrontPage, you’ll find the editor very familiar: HTML pages are displayed in the editor window, just as you would see them in a browser. Editing the page is easy enough - just place the cursor where you want and then add page elements as required. Like other WYSIWYG HTML development tools, the HAHTsite IDE creates the HTML for the page. If, like most web application developers, you prefer a HTML view of your page, you can switch to HAHT’s syntax coloured HTML Tags. You’ll find that HAHTsite will roundtrip between both views, preserving edits and the cursor position.

One of the HAHTsite IDE’s strongest features is its CSS editor. This produces cascading style sheets according to the CSS1 standard. You use a standard properties dialog to create style-sheet rules and to define the properties associated with each rule. Simple formatting information can be set quickly and easily, and there’s a full list of the available tags and stylesheet properties if you want to work with stylesheets in more detail. The beta we were given didn’t have any way of previewing a style sheet – or saving out for use as site style, rather than an inline page style. We’d hope these features are added before the product ships.

You can also use the HAHTsite IDE to create frame-based pages. HAHT will generate most of the basic framed page layouts automatically. When an HTML frames page is opened, the frames editor shows you a WYSIWYG view of the frames, including the borders and scroll bars. A property dialogue allows you to modify the structure of your frames, and to modify any properties directly.

If you want to work with images in your application, the HAHTsite IDE contains an image editor. This allows you to edit any GIF, JPEG, or PNG images in your project. This is a “Web-aware” editor, so any results are designed to make an image suitable for use on the Web. HAHTsite will manage the size of your file and also produce interlaced images. The HAHTsite image editor is a reasonable tool for quick image creation or editing, but the IDE interface doesn’t lend itself to image editing – so you’re better off working with tools like Ignite or PaintShop Pro. The image editor is linked to an image map editor, HAHTspot. Using this you can draw “hot spots” on an image that will activate particular URLs when a user clicks on them. The hot spots can be circles, rectangles, or arbitrary polygons.

HAHTsite also includes tools for creating client-side scripts. You can switch to a scripting view of your page, and then take advantage of HAHTsite’s comprehensive list of the available objects, methods and events in the standard document object model. We were pleased to see that the IDE indicates which browser supports which elements, with a simple icon-based system in the DOM list view.

Connecting HAHTsite to external applications

It’s also possible to link HAHTsite 4.0 into SAP R/3 ERP systems, to provide them with a web-based interface. By using Java custom data sources, information can be passed between HAHTsite and non-relational data sources like SAP and MQSeries. By using HAHTsite with HAHT’s e-scenario tools, it’s possible to build SAP-based web applications. The first of these packages to be made available is the e-scenario for Sales and Distribution. This includes a license for the e-scenario toolset, as well as 5 IDE licenses and a 100-user application server.

Conclusion

HAHTsite is a useful tool for the experienced web application developer, especially with its ability to work in the Microsoft COM space and the non-Microsoft Java space. However, it’s not a tool for the beginner – unless a lot of training in the basic processes of web application design is given. You’ll find the Explorer-view of the components of a project the most confusing aspect of the application, as this gives you a view of what goes into your application, but not how your application is put together. Without some form of “flow” for a web application, debugging and development can become very complex. If HAHTsite were able to show how the components of a web application were connected, this would be a very powerful tool indeed. However, until such a feature is added, it will remain a useful tool for experienced developers – even with its SAP R/3 integration features

 

HAHTsite 4.0 beta build 52
Home
Reviews