The Future of the Web Browser

The web browser has become a common feature on most people’s desktops. Now the browser is set to change dramatically, with the development of the latest web technologies - from dynamic HTML to XML.

Since the early days of the world wide web, developers have seen it as the beginnings of a powerful application framework. The combination of browser and web server is an effective means of delivering information to many different platforms over both local and wide area networks, but as a means of delivering applications the combination of HTTP and HTML is rather limited.

Despite the limitations, the browser application model has received a lot of backing, from Microsoft and Sun, and Oracle and Netscape. It’s at the heart of the network computer model that’s the basis of most of IBM’s application and operating system strategy, and with the 1998 releases of Windows 98 and NT 5.0, it’s going to be built into the operating system running most of the world’s PCs.

Thin clients across the web

Listen to any speech by Larry Ellison, and you’ll hear him talk about the network computer, a low-cost way of rolling out applications across the desktops of a large organisation. With cost of ownership a recurring problem for most IT departments, the NC is an attractive idea - though initial sales are still low, as it’s expensive to replace the existing PCs on people’s desks. Of course, if you’ve installed a web browser on your PC, you’ve got a fully-functional network computer ready to roll.

Web-based applications have been around for a while, ever since the development of the initial CGI-specifications. Using a web browser you can enter data into forms embedded in a web page, and read the results returned in another. It’s easy enough to build database application using the many PERL libraries that can be found in the CPAN archive, and CGI-based web applications were among the first Internet electronic commerce applications.

This led to the development of “web-scraping”, where traditional green-screen applications could be given a modern web-based front end, and rolled out across users’ desktops without the expense associated with traditional terminals. Now IBM provide web front ends to their OS/390 mainframes and AS/400 mid-range systems, and Netscape include a plug-in that acts as an IBM terminal in the Professional release of their Communicator package.

The web-server developers were quick to see the limitations in CGI: slow, with the risks resulting from working through shared environment variables, and the need to spawn a fresh runtime for the chosen scripting environment every time a user launched a CGI-application. The second generation of web servers quickly addressed this issue, with the development of APIs that allowed developers direct access to the server. Microsoft’s Internet SDK, is a prime example of the tools used to develop web applications, in this case as DLLs that can be accessed by web pages. This approach led to the development of web application environments that plug directly into these server APIs. Using tools like Allaire’s Cold Fusion and HAHT’s HAHTsite, you can link web applications directly to ODBC databases.

The latest generation of servers from Microsoft and Netscape have taken this approach a step further, extending their APIs with a powerful in-server scripting environment. These allow developers to use integral server database connections, or external objects in a rapid-application development environment. Microsoft’s Internet Information Server 4.0 now adds a transactional model for application development, using the NT transaction server to turn the server into web-based middleware. Server-side ActiveX components control access to databases, and a full fledged development environment in Visual InterDev 6.0 allows you to interactively debug applications in the web server. Netscape’s Enterprise Server 3.0, in conjunction with the LiveWire scripting environment uses similar techniques, to link applications to both ODBC data and native Oracle and Informix databases. Using the Visual JavaScript development tool, you can produce web applications that use both JavaScript and JavaBeans.

These techniques can be extended, using the dynamic HTML technologies introduced in the latest 4.0 browsers. The browser object model allows you to produce data driven applications that use data binding in the browser, as well as allowing sections of a page to be displayed as and when required. Whilst the HTML 4.0 standard includes dynamic HTML elements, the DHTML implemented by Microsoft and Netscape differ considerably, and so an HTML front-end designed for one will be unlikely to work with the other. You can use Macromedia’s DreamWeaver HTML authoring tool to help with this, as it will produce DHTML that will work with both implementations.

Object orientation has given the web another route to delivering applications to the desktop. Web-front ends have been used to replace the GUI in some popular OO application development environments like Forté and Dynasty, whilst the latest tools are designed to produce web applications directly, using Java and HTML. A leader in this area is NetDynamics, with their Java and CORBA system. Thanks to NetDynamics PACs (Platform Adapter Components), you can use the web to deliver access to SAP R/3 and PeopleSoft applications, as well as to back end databases.

The objected oriented approach lies at the heart of Netscape’s Open Network Environment. A close relationship with Visigenic (now part of Borland) lead to the inclusion of Visigenic’s ORB in the Enterprise Server and the latest releases of the Navigator browser. You can use these to build CORBA-complaint Internet applications, using IIOP to communicate between server and client ORBs, with Java applications running on the server and in the browser.

Using these techniques, the browser becomes a front end to enterprise applications, from traditional green screen terminal applications to a new generation of distributed multi-tier applications. But in order for the web to become the standard environment for the development of distributed applications, it needs something new: a cross-platform file description language.

Metadata and the truly common file format

Probably the biggest buzz-word in Internet development at the moment is XML - the eXtensible Markup Language. Issued by the World Wide Web Consortium (W3C) on the 10th of February 1998, XML 1.0 is a standard for metadata: data about data. As the W3C put it, XML is intended to be “a system for defining, validating and sharing document formats on the Web”, though the potential for XML is even greater, especially in helping develop tools for working with object databases.

Like HTML, XML is a subset of the international text processing standard SGML, the Standard General Markup Language. XML is designed to retain most of the features of SGML, remaining vendor-independent, whilst offering user extensibility and human readability. It’s also intended to be easier to implement and understand than SGML, and can be processed by existing commercial tools like SoftQuad’s HoTMetaL editor.

It was developed by a cross-industry working group at the W3C, which included companies such as Adobe, ArborText, DataChannel, Inso, Hewlett-Packard, Isogen, Microsoft, NCSA, Netscape, SoftQuad, Sun Microsystems, Texcel, Vignette, and Fuji Xerox. Backing from rivals like Sun, Microsoft and Netscape is a good sign for the future of XML. Already Microsoft has implemented Internet Explorer 4.0’s active channels using XML-based channel description tools, and Sun are developing tools for integrating Java and XML. Microsoft are also expected to use XML and HTML as a common file format in the next release of their Office productivity suite.

XML is by definition extensible, but it’s also ready for the international market, as it’s designed to use Unicode to represent European and Asian character sets. This does mean that you won’t be able to write XML processors in PERL, as it currently doesn’t support Unicode - though support is due soon. You should be able to read a XML tags as if they were natural language descriptions, and this will make it easier for you to use XML as a content description language.

So how does XML solve the problems that HTML gives the application developer? Unlike HTML, XML is not a presentation technology. It’s easy to use HTML to say how something is displayed, but that says nothing about the data itself. A tag like <h1>Stilton</h1> is obviously an HTML level 1 header, but what is the content itself - is it a place, a cheese or a person’s name? With XML, you can use a tag that both can be used to define how a section of text is displayed, and what it actually is… This is helped by XML having an extensible tag set which means that you can add your own tags as and when you need them - unlike HTML, where only the W3C can add new tags. Together, these two attributes of XML turn the HTML document into an application platform.

XML is likely to make web-based electronic commerce easier to implement, as it enables you to use web technologies to deliver structured information. This is ideal for EDI applications, where groups of companies design methods of describing information. These content models could be used to develop XML tags that could then be used to mark up documents which could then be processed directly in an XML aware browser or a Java application. This is one of the reasons why Sun have become involved in the development of XML, as client-side Java can use the XML metadata to process documents - rather than relying on server-side scripts and CGI.

One of the first XML applications available is Inso’s web content management system, DynaBase. Using this, you can build dynamic web sites that are controlled by embedded server-side Visual Basic and XML tags in the HTML code. Using DynaBase, you can deliver and manage multi-lingual web sites or browser dependent applications without users knowing that other options are available.

Inso are also involved with Microsoft in developing a series of extensions to XML that will enable it to be used to link databases. XML-Data is intended to add syntax to XML that will be used to describe database schema, and will help XML data describe itself to applications that don’t already contain data descriptions. XML-Data will also allow you to add additional information to schemas, including data types, inheritance and validation rules.

Building the browser into your software

With XML and HTML it’s possible to build complex web applications that can be used across a wide range of systems - as long as you use a web browser to read the data. Whilst technologies like style-sheets and the HTML 4.0 browser object model make web page layout controllable, a browser interface on a web-based application removes the developer’s control of navigation through the application.

A browser can be broken down into three main parts: a TCP/IP network application, an HTML rendering tool and a navigation framework. If you’re going to produce a custom front-end to a web application, all you need are the first two.

Building an application around an HTML rendering engine isn’t as strange as it may seem. Take a look at the tools you’ve downloaded from the Internet, and the odds are there’s an HTML engine in them. One of the first technologies to embed the web-browser were stock and news tickers. Using HTTP data connections, these applications link to specific web sites at specific intervals, downloading headlines and displaying them as a scrolling window. These were quickly followed by applications that could access the Internet’s most popular search engines, collating and sorting the responses.

A key technology in the future development of Internet applications is Sun’s Java component architecture, JavaBeans. By providing a framework for Java classes that allow other classes and applications to access a bean’s methods, JavaBeans allow developers to link separate components into Java applications, using tools like IBM’s Java development environment Visual Age for Java.

Java is designed as a network-aware language, and can be used to connect applications to web servers. Whilst you can write your own HTML rendering engines based on the W3C’s specifications, it’s easier to use Sun’s HotJava HTML Component. Based on core routines from Sun’s pioneering HotJava web-browser, this is a JavaBean designed to parse and render HTML, and is ready for you to embed it into your applications. The HotJava HTML engine also forms part of the Java Electronic Commerce Framework, a Java electronic wallet that not only handles credit card transactions via SSL and SET, but also implements electronic cash tools like Mondex. Sun aren’t alone in producing a Java HTML engine, as Netscape are developing a Java version of the Navigator browser. Code-named Maui, the “Javagator”, as it’s become known, is rumoured to be a collection of JavaBeans, and is expected to be included in future releases of Sun’s Java development kit.

You don’t have to use Java to build custom HTML applications. If you’re working in Microsoft’s Win32 environment, then you can access core components of the Internet Explorer web browser, as well as the networking functions of the Windows operating system.

Ever since the release of Internet Explorer 3.0, Microsoft’s browser has seemed deceptively small. With most of Microsoft’s Internet technology implemented as Windows components, OCXs and DLLs, all the browser application has to do is control history files and a hotlist, as well as generating a frame for the browser components, and handling page navigation. Using any of the Visual Studio development tools, you can reuse these DLLs in your applications. One of the key components is Microsoft’s HTML rendering engine, MSHTML.DLL. The latest release, included in the Internet Explorer 4.0 web browser helps you to use dynamic HTML in your applications, and also includes an early XML parsing engine. Microsoft have been careful to ensure backward compatibility between versions of MSHTML, as the Windows environment will only support a single instance of this DLL.

Whilst Microsoft only publish an API that lets you reuse browser components, Netscape have gone one step further. Taking a leaf out of the book of Richard Stallman’s book, Netscape are to make the source code of the next release of Navigator freely available. With copious documentation, and a range of online support groups (as well as a website - http://www.mozilla.org), Netscape will help developers use their browser technology in their applications.

 

The Future of the Web Browser
Home
Columns