Abstract The undeniable popularity of the web makes the efficient accessing of distributed databases from web clients an important topic. Various methods for web database integration have been proposed but recently there is an increasing interest on those based on Java-based ones. This is due to the inherent advantages of Java, which supports platform independence and secure program execution, and produces a small size of compiled code. In this experimental paper, we evaluate all currently available Java-based approaches. These include Java applets, Java Sockets, Servlets, Remote Method Invocation, CORBA, and Mobile Agents. To this end, we implemented a Web client accessing a remote database using each of these approaches and compared their behavior along the following important parameters: (1) performance expressed in terms of response time under different loads, (2) transparency of communication expressed in terms of complexity of networking API, and (3) extensibility expressed in terms of ease of adding new components. Keywords: Distributed Databases, WWW, Java Mobile Agents, Distributed Objects, CORBA I. INTRODUCTION Providing efficient access to distributed databases from Web clients using a Web browser [2] is crucial for the emerging database applications such as E-Commerce. Several methods for Web database connectivity and integration have been proposed such as CGI scripts, active servers pages, server side include, databases speaking http, external viewers or plug-ins, proxy-based, and HyperWave [4]. However, there is an increasing interest in those that are Java-based due to the inherent advantages of Java [1], namely, platform independence support, secure program execution, and production of a small size of compiled code. Several Java-based methods are currently available for Web database integration but in the best of our knowledge, there is no quantitative comparison of them. This experimental paper contributes such a comparison. Specifically, it evaluates six approaches, namely, Java JDBC applet, Java Sockets [7], Servlet [7], Remote Method Invocation (RMI) [7], CORBA [9], and Java mobile agents (JMA) [3]. Each approach differs in the way the client establishes connection with remote database servers. For our evaluation, we used each of these approaches to implement a Web client accessing a remote database and 1 This work was partially supported by NSF grants IRI-9502091 and IIS- 9812532, and AFOSR award F49620-98-1-043. 2 Computer Science Dept., Univ. of Pittsburgh, PA 15260, USA. 3 Computer Science Dept., Univ. of Cyprus, Nicosia, Cyprus. 4 Computer Science Dept., Univ. of Ioannina, Ioannina, Greece. compared their behavior along the following important parameters: (1) performance expressed in terms of response time under different loads, (2) transparency of communication expressed in terms of complexity of networking API, and (3) extensibility expressed in terms of ease of adding new components. Further, we characterized these approaches in terms of the total development effort based on lines of code at both the client and the server side in conjunction with the two latter parameters, namely, transparency and extensibility. In the next section, we briefly describe our testbed. In Sections III to IV, we elaborate on the characteristics of each approach when comparing them along the dimensions of communication transparency and extensibility. In section VI, we present our performance evaluation results. II. EXPERIMENTAL TESTBED Two design principles were adopted in the selection of the various components during the development of the testbed. First, our Web clients should be lean with the purpose of allowing fast downloads and therefore increasing support for wireless and mobile clients. Second, no a-priori configuration of the Web client should be necessary to run the experiments in order to maintain portability, and therefore support arbitrary clients. For every approach, our Web client program was a Java applet, which was installed on a Web server machine along with an html page. Every experiment was initiated by first pointing to the html page from a remote client computer (Figure 1). After the Java applet was initialized at the client computer, queries were issued through the applet's GUI and executed at the remote database server. Our remote database server, a 3-table relational Microsoft Access database, was installed on the same machine with the Web server. The communication between the server and the client computer was a wireless LAN at 1.2Mbps. In all cases, the client establishes Web database connectivity through a middleware program typically running on the Web server machine. For the Java JDBC applet, we used a type 3 JDBC driver in accordance to our design criteria. In this case, the middleware corresponds to the middle-tier gateway of the type 3 JDBC driver [8]. In the case of JMA, the middleware is a local stationary agent that provides the information necessary for a mobile agent to load the appropriate JDBC driver and connect to the database server. In our experiments, we used DBMS-aglets [6]. In all other cases, we developed the middleware program, which plays the role of an application server that uses a JDBC-ODBC bridge driver to connect to the database server. For more details, see [5]. A Survey on the Java-based Approaches for Web Database Connectivity 1 Stavros Papastavrou 2 , Panos K. Chrysanthis 2 , George Samaras 3 , Evaggelia Pitoura 4