Internet development tools roundup

Introduction

Internet technologies are an important part of the modern business. Over the last few years web applications have moved away from just providing simple database queries to giving access to key business functions, and forming the basis for future IT strategies. With e-business covering everything from internal intranets to business-to-business transactional applications (as well as the more familiar online shopping experience popularised by sites like Amazon.Com), a web applications strategy and development environment is becoming a necessity rather than a luxury.

Enterprise level web application development is still a youngster, compared to most other development areas. However, it is a close relative of the n-tier distributed application developments that have become common. In fact, it’s often easiest to think of a web application as a component-based distributed application, with the web server and HTML acting as the presentation layer. This model has formed the basis of the new generation of application servers and distributed application environments.

You’re unlikely to find a single monolithic tool that will provide you with the team level application development that enterprise development demands. Whilst most tools will integrate with external source control environments, they’re not really designed to allow large numbers of developers to work with different code components that may deliver results to the same URL. You may also have difficulty in linking the requirements of your application with those of page designers – especially if you’re developing a public facing Internet site.

So what should you be looking for in a web application development system? We took a look at a selection of some the tools available in three areas: IDE-based tools, Page-based design tools and web application servers. The tools we looked were designed to work with a range of different operating systems – from OS/390 main frames to Windows.

IDE web application development tools

One option is to choose a tool based around an IDE. Integrated Application Development environments are familiar to most developers, and allow you to use a project-based process for building your applications. IDE tools will also link into external source control tools, allowing a team-based web applications development process.

Microsoft Visual Studio 6.0

One of the most common development environments around is Microsoft’s Visual Studio. Most users won’t think of it as a web application development environment – especially if they’re familiar with Visual Basic or Visual C++ - but it contains all the tools you’ll need to build distributed web applications in a Windows NT environment.

Visual Studio contains all of Microsoft’s development tools: Visual Basic, Visual C++, Visual FoxPro, Visual InterDev and Visual J++. Whilst they don’t yet share a common IDE, all have similar looks and feels. All of these tools can be used to build Internet applications, linked to Microsoft’s Back Office suite of server tools, or to external systems like Oracle or IBM Mainframes. The key to this is Microsoft’s COM common object model, which allows you to create distributed applications.

By using the bundled NT Option Pack, you can build distributed, transactional COM applications using all Microsoft’s languages (including scripting languages like Visual Basic Script and JavaScript), gluing them together in a Visual Basic or Visual InterDev framework. The Option Pack contains Transaction Server, a transactional object broker for COM, and the Microsoft Message Queue, an assured message delivery environment designed for asynchronous disconnected systems and networks.

The main tool web developers will use is Visual InterDev. This is a development environment for Internet Information Server 4.0’s Active Server Pages. ASP scripts are embedded in the HTML of a web page, and allow information to be passed to and from COM objects and Transaction Server packages. COM objects can be instantiated by ASP pages, and used by Visual Basic scripts. Visual InterDev comes with a collection of COM objects, including the ActiveX Data Objects (ADO), which allows easy access to SQL databases via ODBC.

Visual Studio is the heart of the DNA architecture, and is the key to building Internet applications in a Microsoft Win32 environment. However it does have flaws – there is no system for handing fail over or load balancing. As these are critical features for any large scale web application, you may need to consider developing your own system for offering these features, or else wait until the release of Windows 2000 and the updated version of MTS, COM+, which adds these features to the environment.

Apple WebObjects 4.0

Apple’s WebObjects was inherited from NeXT, and owes a lot to the NeXTStep development environment. In fact it runs in what Apple calls the Yellow Box – a cross platform run-time environment that contains the Mach kernel. This means that any code you develop will run under Win32 on Windows NT, on Solaris systems and Apple servers that run the BSD Unix-derived MacOS X.

The development system is divided into three main components: the WebObjects Builder, the Project Builder and the Enterprise Objects Modeller. The Web Objects builder is the heart of the development environment, and is a fully featured web-application IDE, with an integral HTML editor. Code can be developed in Java or WebScript, WebObjects own internal scripting environment. You can manage your whole application, scripts and pages, from the Project Manager.

If you’re working with data, you’ll find the Enterprise Objects Modeller extremely useful. This is designed to help you create persistent data objects for use in your application. Whilst not based on Enterprise Java Beans, the Enterprise Objects Modeller will allow you to create persistent Java data objects – giving you an object-based view of a relational database. You’ll find the EOM stores persistence information in the database itself. As WebObjects is designed for the creation of n-tier applications, you’re also able to use the EOM to handle the partitioning of your applications.

Actual development of a WebObjects application mixes visual programming with HTML and script editing. Whilst elements on the page may appear to be traditional HTML elements, you’ll find that they are in fact WebObjects components, which can be used to deliver dynamic content to your site. In order to build more complex functions you can introduce “repetitions” on to your pages, allowing complex structures like tables and lists to be built. The use of custom enterprise objects in WebObjects is very important. These allow you to add business logic to your applications, based on existing data objects. You can then use these to either pre- or post-process data.

WebObjects is a very popular and powerful tool that is used to create a large number of large customer-facing e-commerce sites, including the Disney Store. It’s also used by parts of the BBC as the basis for custom content-management applications.

Sun NetDynamics 5.0

NetDynamics bridges the gap between the IDE-based web application development environment and the Java application server. Sun’s purchase last year of NetDynamics gave the company its first application server environment. You’ll find that NetDynamics is designed for medium- to large-scale enterprise web application development. Larger scale applications can be developed using the Netscape Application Server (previously Kiva), which was acquired by Sun as a result of AOL’s purchase of Netscape.

The NetDynamics Studio IDE uses a large collection of wizards to help you create your application. These handle creating data connections, generating HTML and server and client-side Java. The IDE is also able to handle application security, as well as working with external applications through PACs (Platform Adapter Components). Team development can be handled through external source control tools, including the popular PVCS environment.

NetDynamics 5.0 uses both HTML and Java to provide application user interfaces. Java can be used both client and server side, and an integral Java Beans editor enables you to use Beans as user interface components, as well as in server side logic.

As part of Sun’s Java initiative, it’s no surprise that NetDynamics has been designed to use Sun’s Enterprise Java Beans. These allow you to create large-scale business logic components that will take advantage of NetDynamics’ integral fail-over and load-balancing features. The IDE will use Java’s integral debugging features and IIOP to allow you to debug a deployed application, even when it’s running across a large network of machines.

NetDynamics gives you an object framework that speeds development of the Java needed to handle application and business logic. The framework includes classes for handling UI, state and session management, as well as security and data access. By using these you can develop applications without having to delve into the complexities of the full Java model used by NetDynamics.

One of NetDynamics key features is its use of PACs to provide access to third-party environments and applications. Using these you can create web applications that are linked to ERP or HT applications, as well as mainframe transaction systems. An SDK is available to allow you to create your own PACs, or you can purchase them from third parties.

Page design application development tools

An IDE tool may not be what you need. Sometimes web applications are best approached at page level, using an HTML editor – either a WYSIWYG tool or an HTML tag editor. On an Intranet you may not need the complex nature of an IDE or an application server, if all you’re trying to do is offer quick access to your corporate databases. These tools are also ideal for SMEs wanting to put together their first web presence.

Allaire HomeSite

One of the most successful web development tools around is Allaire’s HomeSite. However, don’t expect it to be a graphical editing tool – this is a package for those familiar with HTML, and who also want to get to grips with the code that builds their HTML pages.

HomeSite is a tag-based HTML editor. It is able to insert HTML tags directly into your document, by picking them from menus and toolbars. You can also use it as a colour-coded context sensitive text editor, which will also parse your documents for valid HTML syntax. HomeSite will work with both local and remote files, making it useful as a site maintenance tool as well as a page development environment.

You’ll find that HomeSite supports all the common web technologies, as well as some of the latest. Not only will you find that you can develop DHTML scripts, but if you’re interested in looking at how to integrate hypermedia with multimedia you can use HomeSite to experiment with SMIL (the Synchronised Multimedia Integration Language).

Other options allow you to use HomeSite with a range of different external web application environments. HomeSite comes with built in support for Allaire’s own Cold Fusion tool (you’ll find that a modified version of HomeSite is used as Cold Fusion’s own editing environment) and Microsoft’s ASP technology. Of course, as HomeSite is a tag-editor, and is at heart a text editor, you can use it to develop HTML pages for use with any application server environment of your choice.

The future of web based technologies is moving away from the traditional PC browser, to a huge variety of different web-appliances, which can fit in any number of different form factors. Among the first of these are Web TVs and hand-held devices. HomeSite comes with tag support for the HDML hand-held device dialect of HTML, allowing you to create web applications that will run on hand-held devices and mobile phones.

NetObjects Fusion 4.0

With the power of IBM’s investment capital behind it, NetObjects Fusion has rapidly become one of the most accomplished of the WYSIWYG web page design tools. Available both as a stand-alone package and as an Authoring Server for group HTML development, Fusion is designed to allow the quick development of websites with a consistent look and feel.

Fusion uses a site-centric approach to web site design, and allows you to create a site layout, using an organisational chart view. This allows you to see how your site is laid out, and also enables Fusion to automatically generate navigation icons and frames. You can generate static HTML pages, or what Fusion describes as “stacked” pages. These are HTML templates, which are populated by a query from an ODBC database on publication – ideal for news or catalogue sites.

You can maintain a strict look and feel for your site by defining a site style. This fixes the images used on a page, as well as banners and navigation icons, as well as animations and other page elements. You’ll find Fusion comes with a large selection of site styles, and it’s possible to create your own – forcing a consistent design for all your sites pages, based on your corporate design standards.

The application developer will take advantage of Fusion’s various connectors. Out the box, Fusion comes with connectors that allow access to ASP, Cold Fusion and to the iCat e-commerce store. These allow you to create simple ASP and Cold Fusion data driven applications, allowing you to create dynamic data driven sites within the strict design framework of a Fusion style. If you’re selling products online, the iCat store is an implementation of the iCat e-commerce suite, which allows you to run credit card-based transactions, without having to host a shopping system of your own.

As Fusion is part of a suite of tools, which includes a server and client side scripting tool, and a Java Bean visual component assembly tool, you can use these in your site design, giving you access to the latest web application technologies from a WYSIWYG environment.

Application server environments

Java may have been a bit of a damp squib as a universal GUI, but it’s certainly become a successful tool on the server. Web application environments have taken Java to heart – especially in the role of universal middleware in application server environments. The development of Enterprise Java Beans, and the Enterprise Edition of the Java 2.0 specification will enable Java-based application servers to handle a wider range of business tasks than currently available.

IBM WebSphere

Probably the best-known application server environment, IBM’s WebSphere is in fact a relative newcomer to the web applications scene. In the year or so since its initial release, WebSphere has undergone significant developments – especially as a result of IBM’s large research labs.

WebSphere comes in three versions: Standard, Advanced and Enterprise. It is designed to offer web application developers a Java-based application environment, using Servlets and Java Server Pages. The Standard Edition offers basic servlet and JSP support, as well as tools for working with XML and Lotus Domino. IBM includes an Apache based web server, which adds commercial features – including SSL. If you want to build a more complex application you can use the Advanced Edition, which allows you to use Enterprise Java Beans and CORBA. This version also includes an EJB Server, which acts as a transaction manager. Whilst the Enterprise Edition isn’t available yet, it will include IBM’s TXSeries enterprise transactional environment, and the Component Broker ORB. You will also be able to use it with the MQSeries message queuing environment. If you’re building large business systems, you can also use the San Francisco Java application framework in conjunction with WebSphere, enabling you to build business logic quickly and easily.

WebSphere us designed to run on a wide range of platforms, including Windows NT, Solaris, AIX and OS/2. You can also use it on AS/400 mid-range systems and OS/390 mainframes. A Linux version has just entered beta.

The Application Server isn’t the only part of the WebSphere suite. Other components include the Performance Pack and the Studio. The Performance Pack is a set of tools that helps you build web farms for WebSphere applications, and contains caching, load-balancing and site replication features. You’ll find the Studio a useful suite for building WebSphere applications and sites.

The Studio is a complete web application development suite. Amongst its many components you’ll find tools for building servlets and using Java Beans. IBM also includes their Visual Age for Java application development suite, and NetObjects Fusion and BeanBuilder, as well as the ScriptBuilder scripting tool. IBM is in the process of integrating Wallop’s Build-IT site management tools into the Studio.

WebSphere is still a work in progress, but it offers an excellent route into working with Java and EJB in the context of a web application server.

Apache/PHP/Midgard

The biggest buzzword around at the moment is Open Source. As a development methodology, Open Source offers an alternative to the monolithic applications and application development environments currently in use. One of the most successful Open Source projects is the Apache web server, which now hosts over half the world’s web sites.

However, until recently there was no integrated application server environment for Apache. You could use Apache modules to create your own application environment, but system management would be a problem – especially if you were dealing with complex Perl modules. The PHP3 scripting environment made developing Apache applications easier, but this still was difficult to manage.

Midgard has been designed to extend the PHP3 environment, and to allow Apache to become the heart of a managed application server. You can use Midgard’s management tools to control your applications, and these give you a web-based view of your server. Midgard also adds a page and template based model, that allows rapid development of applications with a consistent look and feel.

Currently Midgard is limited to using only the MySQL database. This is a low cost implementation of an SQL database, and is able to operate as a front-end database to external systems like Oracle or Sybase. Future developments will allow other databases to be used directly – and as it’s an Open Source project, you can work with the Midgard code to add your own database access functions if you want, as you have access to the complete source code.

As Apache is a modular architecture, you’re free to build Midgard applications that include other Apache functions. These can include using JServ for Java Servlets, and using Perl to handle complex text processing functions. You can even make your Apache server part of a WebSphere implementation, thanks to IBM’s involvement in the Apache project.

Midgard is at a very early stage of its development, but promises a lot. Its main competitor is the Zope Python-based system, but this is difficult to implement, and requires a deep understanding of the Python scripting language. Midgard’s links to PHP3 mean that it is closely integrated with the web server, and gives you a shorter learning curve.

Conclusion

Web application development is still a very fragmented process. You can use IDE driven environments like Visual Studio or HAHTsite (see June/July for details) to put together applications with HTML front ends, or page design tools like HomeSite and Fusion to build the applications behind your HTML, or use Java skills to deliver HTML from scalable enterprise application servers. You could even just sit there with a text editor, a copy of Apache and a set of O’Reilly books…

However, one thing is clear, that the perfect web application development tool isn’t here yet. You might find some of the features you’re looking for in some of the tools we’ve looked at, but it’s likely that you’ll find yourself wanting more. However, we’ve recently seen signs that things are likely to change. Java One this year saw the first appearance of Forte’s application server environment: SynerJ. By mixing an EJB-ready application server with a Java and HTML IDE, and an n-tier partitioning environment, Forte look likely to mount a serious challenge for the best web application development environment around.

Until then, however, the best tool for building web applications we’ve seen isn’t a single tool, but the whole suite of tools that make up Visual Studio 6.0 and Microsoft’s DNA distributed applications environment. The mix of Visual InterDev’s server scripting techniques with the ability to build COM components in everything from XML to C++, and the integration with Back Office, make this the one to beat. The release of Windows 2000 with the integral COM+ application server environment and the upgraded IIS 5.0 web server is likely to make DNA even more attractive to the web developer.

Testing with Cyrano Web Tester

A key problem for the web application developer is site testing. You can test a site by developing a complete testing plan during development, but this may not be able to help you test the site under actual loading conditions.

There’s very little information available on the load performance of dynamic web sites, and designing the hardware infrastructure for a large-scale web application can often be an exercise in educated guesswork. However, the latest release of Cyrano’s WebTester suite (http://www.cyrano.com) offers a solution to this perennial problem.

Web Tester consists of three components: the script driven WebTester and WebMonitor and the WebLoader. Site monitoring and testing scripts can be developed in the visual environment of WebTester, and then used by the WebLoader. A library of different interaction scripts can be created and then used by the WebLoader, in conjunction with a number of “virtual users”. The number of simultaneous users can be adjusted on the fly, to allow testers to examine different usage scenarios for their sites, in order to determine effective metrics and to give the basis for an expansion plan.

 

Internet Development Tools Roundup
Home
Reviews