Changes between Version 2 and Version 3 of HighLevelOverview


Ignore:
Timestamp:
Jan 12, 2013, 3:34:19 AM (6 years ago)
Author:
Shawn A. Wilson
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HighLevelOverview

    v2 v3  
    11= High-Level Overview =
    22
    3 IOVAR Web Shell presently runs in Tomcat on Linux. Thus it has the privileges of the Tomcat user. It is written in Java and shell scripts. Note that even though many of these shell scripts may run in BASH just fine (since the syntax and command names are similar) they are not technically BASH scripts and so there is no guarantee that they will work in any shell but this one.
     3IOVAR Web Shell presently runs in Tomcat on Linux. Thus it has the privileges of the Tomcat user. It is written in Java and shell scripts. Note that even though many of these shell scripts may run in BASH just fine (since the syntax and command names are similar) they are not technically BASH scripts and so there is no guarantee that they will work in any shell interpreter but the one included with this project.
    44
    5 Aside from parsing commands and executing jobs, part of a shell's function is to keep track of an environment for the user. This environment generally consists of current directory, typed-in command history, executable search path, and other shell-defined and user-defined variables. The IOVAR Web Shell is no different. However, since commands inputted and parsed on one server may in fact point to executables on a different server, there must be a mechanism by which the user's environment can be passed from one server to another. This is currently accomplished by making the environment available at /proc/shell/<hash> (where <hash> is automatically generated) and passing a reference to this location in an HTTP parameter named ''iosession''.
     5Aside from parsing commands and executing jobs, part of a shell's function is to keep track of an environment for the user. This environment generally consists of current directory, typed-in commands history, executable search path, and other shell-defined and user-defined variables. The IOVAR Web Shell is no different. However, since commands inputted and parsed on one server may in fact point to executables on a different server, there must be a mechanism by which the user's environment can be passed from one server to another. This is currently accomplished by making the environment available at /proc/shell/<hash> (where <hash> is automatically generated) and passing a reference to this location in an HTTP parameter named ''iosession'' (automatically).
     6
     7== Directory Structure ==
     8
     9A well-defined project structure makes it easier for developers and users to find what they are looking for.
     10
     11Starting at the top of the project (the project root), the significant files and directories are:
     12
     13* '''$''' - link to com.iovar.web.bin.shell.Interactive servlet
     14* '''build.xml''' - Ant build script for compiling, etc.
     15* '''bin/''' - core executables
     16* '''dev/''' - devices
     17* '''etc/''' - configuration
     18 * '''shrc''' - read by the shell when entering interactive mode
     19 * '''web.xml''' - web application configuration for Tomcat
     20* '''nbproject/''' - Netbeans project folder (only required if using Netbeans for development)
     21* '''proc/''' - system process information
     22* '''src/''' - source code
     23 * '''com/'''
     24  * '''iovar/'''
     25   * '''web/''' - Java sources for com.iovar.web package (this project)
     26* '''usr/''' - shareable additions
     27 * '''bin/''' - additional, non-essential executables
     28 * '''local/''' - placeholder for site-specific customizations
     29* '''var/''' - resources which are likely to be constantly changing (variable data)
     30 * '''lib/''' - root point for attaching database objects
     31* '''WEB-INF''' - Java web application resources used by the servlet container
     32
     33== WEB-INF ==
     34
     35The /WEB-INF directory is the standard location for Java web application resources. A web.xml file in this directory describes for the servlet container how the web application is set up. For convenience, in this project mapping a "program name" to a servlet is accomplished with symbolic links to the .class files on the filesystem instead of editing entries in web.xml. The file /etc/web.xml is copied to /WEB-INF/web.xml with the symbolically-linked servlet entries automatically included (see `app.webxml` Ant task).
     36
     37== Ant Build ==
     38
     39Apache Ant is a powerful and flexible dependency-based build tool. It is used for compiling the Java code, performing file maintenance tasks in the project, and more.
     40
     41Some noteworthy targets defined for this project include:
     42
     43* '''app''' - build entire application (default)
     44* '''app.webxml''' - search for symbolic links to servlets and regenerate web.xml only
     45* '''app.clean''' - clean up all compiled and temporary files
     46* '''tasks''' - build only the project Ant tasks
     47
     48== Tomcat Servlet Container ==
     49
     50Apache Tomcat is a reliable servlet container that is quick to install and easy to use.
     51
     52== Java Virtual Machine ==
     53
     54The Java Virtual Machine provides a consistent and developer-friendly programming environment. It includes features such as automatic garbage collection. The well-defined specification is public and may be implemented by any custom-built virtual machine.
     55
     56== Linux Kernel ==
     57
     58The open-source Linux kernel operates on a wide range of hardware. It has a strong security track record and may be modified at-will.