= The Alexis Server And Client Components please send comments and questions to: matthew@ella-associates.org INTRODUCTION Alexis is a program which aims to allow lexicographers and other editors of large scale XML documents, to collaborate in the creation of dictionaries and other projects. This document is not complete. Alexis is in the process of being 'refactored' (april 2003), that is, rewritten and redesigned. It is probably true to say the Alexis is still 'vapor-ware'. THE ARCHITECTURE The new design for Alexis make heavier use of Apache Open Source components as well as 'industry standard' protocols. Alexis is a Java Based Client/Server Application. The Client component is based apon the NetBeans IDE and Development Platform. The Client and Server communicate with the WebDav protocol which is transported over HTTP. It was decided to use an HTTP based-protocol in order to avoid problems involving proxy servers and fire-walls. Also, the WebDav protocol has some large enterprise users and backers, such as Microsoft and Sun Microsystems (?check?). The server component is based around the Apache Slide component which is a client and server implementation of WebDav. Slide is currently (5 june 2003) running in a 'standalone' mode, (as opposed to running as a 'webapplication' within Apache Tomcat, but this may change. All data for the application is stored in a MySQL Database (which is currently running on a RedHat Linux System. The MySql Database acts as a JDBCStore component for the Apache Slide WebDav Server. SOFTWARE COMPONENTS Java 1.4 http://java.sun.com Netbeans Java IDE and Development Platform http://www.netbeans.org MySQL Relational Database Management System http://www.mysql.com Apache Web Server http://www.apache.org Apache Tomcat Java Servlet Engine. http://www.apache.org 'Slide' http://jakarta.apache.org/slide/ HISTORICAL NOTES A proceedural description of a server client transaction. Please note that none of the following description applies to the new Alexis architecture. This description is retained purely for historical reasons. When the Alexis Client makes a request of the Server it is currently sent to the URL: http://ella-associates.org/alexis/alexisServer/ This URL contains a Java Servlet running under the Apache/ Tomcat Web-server. The servlet is currently located in the development directory structure at /alexis/webApp/WEB-INF/classes/ChakriyaServletWrapper.java To achieve its work the ChakriyaServletWrapper uses three classes ChakriyaManager, ChakriyaCommunicator, ChakriyaCommunication The ChakriyaCommunication class encapsulates the XML text data that is sent back and forth between the Alexis Server (Chakriya) and the Alexis Client. The ChakriyaCommunicator only has one significant method, namely its '.communicate' method. This method examines the ChakriyaCommunication object to determine if the request type is a Login Request or a FileSystem Request. Based on this evaluation the ChakriyaCommunicator then passes the ChakriyaCommunication object to the correct 'processor' class, either the 'LoginProcessor' class or the 'FileSystemRequestProcessor' class. The '.communicate' method then calls the appropriate methods on the processor class to ensure that a response from the Server is generated. The '.communicate' method then places that response in the 'ChakriyaCommunication' class. Usually the requests are parsed into 'beans' which in this context are Java Classes with the same structure as the Xml document which constitutes the request. For example, a 'login request' is parsed into a 'requestBean' Object, which is a property of the RequestProcessor class. This parsing is done by the '.setSourceNode()' method of the RequestProcessor class. It is possible to see the XML protocol which is being passed back and forth from the Alexis client and the Chakriya Server by using the 'Output Window' which is in the Client application. Currently there are 4 main types of requests: Login Requests and 3 types of 'File-system Requests' A Login Request, obviously, is sent by the Alexis Client (Columbine) in order to initiate a session for a particular user. The Login Request transports a user-name and password. The Login Response sent by the Alexis Server, either: validates the user-name and password and sends back a 'session-id' number or, Informs the client that the user-name is valid or, Returns nothing, (when neither item is valid) The 3 types of 'file-system' request correspond to the actions of retrieving a list of sub-folders, retrieving a list of word data, or updating modified word data. please send comments and questions to: matthew@ella-associates.org or add them in the HTML form, if you are viewing the HTML version of this document Author: m.j.bishop COMMENTS Added by: mjb, on Friday, 06 June 2003, 03:44 PM The retention of the historical notes doesn't really do any body any good