Providing Engineering Software Services with Internet Applications
Karlheinz LEHNER <email@example.com>
Internet applications, i.e., software based on technologies that allow the use and distribution of software products over the Internet, can fundamentally change the way we will view software in the future, from both a customer and vendor point of view. The implications inherent in the design of Internet applications are far-reaching, profound, and often not fully realized by most Internet users. Basically, while end-users are often not particularly interested in software as such, but rather in the services provided by execution of the software products, vendors, particularly those that are only marginally interested in commercial software development, are reluctant to spend a great amount of effort to market, distribute, and service a software product. Technologies for Internet applications offer a way to address these problems.
Consider, for example, how software and computers are currently being used today in small engineering firms, research institutes or computing departments of large engineering companies. Small engineering firms with only a few workers usually have a small number of computers, typically PCs. On these computers, members of the technical staff typically run engineering software packages such as CAD (computer aided design) programs to design structural systems or structural analysis programs such as FEM (finite element method) programs to numerically check and verify designs. Also, computers are used not just for number crunching engineering tasks, but also for daily office activities such as technical documentation, accounting, planning and other administrative tasks.
The computing environment in a large engineering firm or research institute, on the other hand, typically contains a large number of networked computers, including UNIX workstations and multi-processor systems especially suited for number crunching. The software used to analyze structural systems is designed to cope with larger and more complex structural systems. Engineers can access available software over the network by using, for example, X-windows based graphical front-end programs.
In both small and large firms, software programs running on computer systems basically provide the services needed by the users to carry out their work. However, up to now, using a particular software product (for example, a CAD system, a structural analysis program or even a text editor) meant the user had to carry out a number of basic system administrative tasks unrelated to his primary work, such as the acquisition, the installation, the configuration, the maintenance and (much too soon) the update of a software package. In a small firm, the user must do these steps himself or have access to a system operator who will do it for him -- either way, substantial costs are involved. In a computer center, installing and updating software for users is a major activity that needs to be done on a regular basis.
For heavily used software (a standard CAD program, for example), the system administrative effort needed to use a particular software product is justifiable. However, software needed only casually (such as a program to analyze unusual structural systems) is often not used, simply because it is not worth the time and effort needed to carry out the preliminary system administration tasks. From a vendor's point of view, similar hurdles exist that hinder the deployment of niche market software. Consider again a small engineering firm that designs industrial buildings, where the workers have a large amount of know-how and specialized skills. The expertise of the firm is often held in the form of software programs coded by the engineers and used, for example, to design custom made steel structures. In other words, highly professional software products can be developed in a firm that could be of great value for customers, but the prospect of commercially marketing and supporting a complex software product can be daunting for an engineering firm.
So both from the user's and developer's point of view, the distribution as well as the installation of software becomes a major deterrent for software deployment. The effect of Internet applications is exactly that of reducing or even eliminating these steps of a software product life-cycle, thereby allowing vendors to offer software services to a potentially large Internet audience with relatively little effort, always in the latest version, and allowing customers to access specialized software services without first having to acquire, install, and administer a software product.
The term "Internet application" as used in this paper can be defined as follows:
The development of a large and complex software application can be simplified by not designing it as a single, monolithic software component, but rather by decomposing it into smaller components, where each individual component is easy to implement, easy to test and designed to carry out only a specific task. The client-server paradigm can then be used to create a distributed application on a network with the intent of using the resources available on the network in the most efficient manner. A typical example is the already mentioned structural analysis program, where the computations are performed on a compute server and graphical workstations serve as front-ends.
Although Internet applications also based on the client-server paradigm, the paradigm is used in an entirely different manner. The aim of Internet applications is not primarily to use local networks resources efficiently; rather, Internet applications are developed with the intent to reduce the costs associated with the distributed and installation of software products. Internet applications have redefined the relationship between the developers and the customers of software systems.
A brief historical summary of software development makes clear how current technologies for the development of Internet applications have evolved from the desire to create cost-effective, robust and user-friendly software. In the 70s and earlier, when computing needs were mainly satisfied by mainframe computers, programming specialists were required to have knowledge not only in the application field, but also knowledge about the hardware and software environment on which the software was expected to run. Scarce resources forced programmers to spend a considerable amount of time on system specific details. The users of tailor-made applications usually worked in close cooperation with the developers. Consequently, the question of distribution and installation of a software application was not an issue; rather, it was considered a part of the total software development package.
In the 80s, the paradigm shift from centrally managed mainframe computers to individually operated workstations and personal computers was well under way. Because the hardware costs of computing equipment and standard software fell dramatically, computers became a mass market product with the subsequent rise in the number of computer owners. Computers have now become viable for a large number of homes and small offices, resulting in a software market where software has taken on the role of a commodity. General software packages (such as text processors, spread sheets and graphic programs) are readily available, in contrast to the usually user-specific software of mainframes.
The creation of a software mass market, however, has also resulted in a complete split between the developers and the end users of software. This implies that the problems of distribution and installation of software, including marketing, documentation and media distribution have become essential to the commercial success of software programs. Because end users must install their own software, intuitive and robust installation procedures are important. To reduce the system administration effort required by the user of a computer system, a number of computers can be connected to a local area network, where, in a proper software environment, centrally operated remote administration should be possible. Still, the amount of effort needed to administer a large network with many systems remains substantial. The development of network PCs is largely motivated by the pressure to reduce the "total cost of ownership."
Typical distributed applications in local area networks basically use the client-server paradigm to share the resources available on the network. Examples are distributed database applications, where a large database might be replicated on several servers, X-window or MS-Window applications serving as front-ends to number crunchers, or file servers for PC-based applications. In all these cases, however, the "distance" between the developers of an application and the potential end users still remains as large as ever.
The use of Internet applications entails the use of several computers that -- as the name suggests -- are connected by the Internet. Internet applications can be divided into three basic types: server-based, client-based and, more generally, distributed Internet applications. Internet applications are expected to be easy to use, simple, transparent, portable and secure. All these requirements can be fulfilled by using software development techniques bases on a hypertext paradigm as realized in the World Wide Web. This includes the Hypertext Transfer Protocol (HTTP) for the transport of data and other information between computer systems as well as the Hypertext Markup Language (HTML) or, as a recent development, the Extensible Markup Language (XML) for the encoding of hypertext information. The contents of hypertext documents are presented to the user by a suitable HTML browser.
In server-based Internet applications, the application code runs on a (preferably high-end) server connected to the Internet under the control of the software developer. The user accesses the application using a HTML browser; thus server-based applications must contain a suitable HTTP daemon to accept and process HTML requests. Server-based Internet applications derive their name from the fact that, aside from the resources required to display HTML documents or to connect to the network, the main hard- and software resources (CPU power, disk space, run-time libraries, etc.) are needed by the server system.
The main advantage for developers of server-based Internet applications is that they have complete control over their own software on their own computer system. Because users' access server-based Internet applications only via HTTP (without downloading or executing any software code locally), they, by definition, always use to latest up-to-date version of the software. Also, because users do not run code locally, the question of portability reduces to the problem of installing a HTML browser on the user's computer with the necessary enhancements (Java-enabled, frame-compatible, Active-X compatible, etc.). If server-based Internet applications are only used by a relatively small number of users, response time and service quality will probably remain acceptable. However, if the number of users that try to access the application simultaneously rises, degradation of service is to be expected. Because applications basically run on only one server, increasing loads cannot be easily compensated. Techniques such as server replication are possible, but increase the complexity of the application. Typical technologies for the development of server-based Internet applications include the VisualWave Smalltalk programming environment , Tarantella software to display X-Window applications in a Java window  and multi-user NT versions such as Ntrigue client .
As an alternative to server-based Internet applications that don't easily scale, techniques for developing client-based Internet applications are also available. Instead of providing the services of an application on a central server, the application is transported to each individual user on demand and run on his computer system locally. In other words, not the computer system of the developer, but rather the user's own computer must now provide the necessary resources to execute an application. This approach is acceptable, because typical computers available today are powerful enough to carry out moderately complex software applications. In case an application requires a larger amount of computer resources (for example, structural analysis programs can run for hours even on large computer systems), distributed applications as described in the next section can also be created. In this case, client-based Internet applications can be developed as front-ends that can, for example, gather input for a structural analysis program, monitor the session progress and display the results graphically.
The development of client-based Internet applications, however, raises the question of portability, because it should be possible to run a single application on practically any computer connected to the Internet. One strategic solution to this problem is to define a single hardware and software platform and then declare these platforms as the standard. Alternatively, a more open solution consists in the definition of a "virtual computer environment" in which client-based Internet applications can be run using an interpreter. Typical technologies for client-based Internet applications include Java , Active-X  and, more generally, Windows DNA .
As in the technologies for developing server-based and client-based Internet application, the paradigm of software services is also realized in the technology of distributed Internet applications. However, whereas server- and client-based Internet applications are software programs that rely mainly on HTTP and HTML for data exchange and presentation, the aim of distributed Internet applications is to offer software services in the form of (object-oriented) software components readily accessible by users over the Internet. A distributed Internet application can be construed as a complex software system composed of various software building blocks, each designed to carry out a specific task in an efficient manner. The interfaces between the software components must be rigorously defined and should ideally be independent of the programming language or hardware platform used to implement the components. Technologies for creating distributed Internet applications include CORBA (Common Object Request Broker ), DCOM (Distributed Component Object Model ), RMI (Remote Method Invocation for Java ) and others.
To demonstrate the possible capabilities of Internet applications in the field of civil engineering, examples are given of a server-based Internet application (OWASWeb) and a client-based Internet application (CadKonvert), both developed at the Institute of Computational Engineering. An example of a distributed Internet application, also being developed at our Institute, uses the CORBA technology to allow complete network access to the public domain finite element program FElt . This program, implemented in C, functions a CORBA server. Prototypical CORBA client programs, written in Java, C++ and Smalltalk can use the services provided by the FElt server employing straight-forward object-oriented techniques. A more detailed description of this example is, however, beyond the scope of this paper.
OWASWeb  is an example of a server-based Internet application. It is a knowledge-based civil engineering program that verifies steel structures according to German industrial codes (DIN 18800 ). The application was first developed in the Smalltalk programming language (then called OWAS) using the VisualWorks programming environment from ParcPlace to create an interactive application with a graphical user interface. Knowledge is represented in OWASWeb on the basis of a formal, object-oriented model. This complete model is composed into various submodels designed to interact with one another efficiently. Submodels in OWASWeb are used to describe the structural system to be investigated using mechanical elements, to codify the knowledge (statements, formulae, tables, exceptions, etc.) contained in the underlying industrial codes and to represent the final and intermediate results of a session done with OWASWeb. As a knowledge-based system, OWASWeb contains an explanation facility that not only demonstrates the final results, but also tries to explain why (or why not) a particular section of the code was used, or to show how the value of a key parameter was derived. Thus, its intended use is not just to verify steel structures to get a simple answer, but also to allow the user to explore the knowledge contained in the industrial code and to help him get acquainted with the structure of the code.
After OWAS was completed, it was decided to port the application to the VisualWave programming environment. VisualWave is based on VisualWorks, but also includes a fully functional HTTP daemon and support for hypertext HTML documents. This allows the development of Smalltalk programs with graphical user interfaces as server based Internet applications.
The HTTP daemon running in the VisualWave interpreter accepts appropriate URL requests from the HTML browser of a user, decodes the URL and starts a user-specific application based on the contents of the URL. As an example, the URL to start the OWASWeb application is
This URL contains the type of protocol (http), the name of the server (delta.inf.bi.ruhr-uni-bochum.de) and the port number (9009). It also contains the key word "launch" to initiate an application, in this case, an instance of the user-defined Smalltalk class Vorgang.
As noted above, the VisualWave environment can be used to create applications with a "standard" graphical user interfaces that can run as stand-alone programs on an X-based UNIX system, a PCs with MS-Windows or on a Mac. What VisualWave can do as well is to transparently transform the graphic output of a Smalltalk program (that is normally displayed on the screen) into corresponding HTML code. This code can then be sent via HTTP over the Internet to the end user and displayed on his HTML browser. This way, any user connected to the Internet can instantly access the services provided by the OWASWeb application using just a standard HTML browser.
Figs. 1 and 2 display two typical screen shots of an OWASWeb session. In Fig. 1, the user has entered the data to define the load for a particular member of the structural system. This window contains some typical widgets (labels, input fields, radio buttons and action buttons) that are used in graphical user interfaces. Because these widgets have direct counterparts in HTML code, a user interface very similar to the stand-alone version of the Smalltalk program can be presented in the HTML browser of the end user. For example, there are HTML tags available to create input fields, radio buttons and action buttons. Label widgets can be represented by normal text. The layout of the user interface can be emulated using HTML tables. Fig. 2 displays the results of a structural analysis computation, both in tabular and graphical form. In this instance, a HTML table is generated to display the numerical results. The line drawing is created in VisualWave and displayed as GIF-file in the HTML browser.
The amount of effort needed to transfer the stand-alone version of the OWAS program into the Internet accessible OWASWeb version was minimal, requiring only little change:
The software developer (or vendor) only needs to maintain the version of his product running on his server. In conclusion, such Internet applications can be viable as a central application server in a closed Intranet, as a sales or marketing tool (product demonstration) with free access, or as a commercial software service provided for a fee (using electronic cash, for example).
CadKonvert  was developed as a prototypical Java program to display technical drawings, both as a stand-alone application and as a HTML applet. It was designed as a component in a large database system that represents and manipulates prefabricated objects in the construction field. Technical drawings still remain the main source of information among the many participants that design, evaluate and construct structural buildings. The use of electronic communication to exchange information in a quick and efficient manner therefore has a positive effect on the cost and time needed for civil engineering projects.
CadKonvert can display graphics in standard DXF (Data Exchange Format), JPEG or GIF formats. Also, it can display drawings stored in its internal and efficient MIN format. Because the applet version of the CadKonvert program is severely restricted by the security guidelines imposed in current HTML browsers (for example, it is not possible to store or read a file on a local disk), CadKonvert also has access to a network based SQL-database MSQL  (which, of course, must run on the same computer system as the HTML daemon). Fig. 3 shows a drawing in a HTML browser running CadKonvert as an applet.
Technologies available for developing Internet applications can significantly reduce the amount of distribution and installation effort needed before users can take advantage of the software product. This is because software doesn't first have to be physically acquired on media and then installed on a computer by the customer. Rather, it is more or less transparently possible for a user to access and use software over the Internet when and where it suits him or her, allowing the paradigm of "computer software" to be viewed more of a "software service" rather than a "software product".
The reduction in the "distance" between software developers and end users results in many benefits for both parties involved. For example, an engineering firm not primarily concerned with developing commercial software products, but nevertheless having the know-how available in the form of software programs, can use the Internet to commercially exploit its know-how by providing specialized software services as Internet applications. A user wishing to employ the services need only have access to the Internet and readily available Internet software to use Internet applications.
Similarly, Internet applications can also be developed during the course of research projects to demonstrate, test and verify research goals. By allowing members of the worldwide academic community to access Internet applications, critique, comments and valuable feedback can be obtained which can significantly contribute to a project's success. Some Internet applications being developed at our Institute have been presented in this paper and demonstrate the viability providing civil engineering services on the Internet.