 
=  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 
