eXsyst Anywhere is an application development platform developed by eXegeSys, Inc., originally created to allow the porting of the eXegeSys ERP applications to multiple platforms. eXegeSys, Inc. now offers the eXsyst Anywhere Platform for business application development. Use of the eXsyst Anywhere platform while developing an application allows the developer to create source code that is OS and Database independent. Additionally, the eXsyst Anywhere Platform is written so that the business application functionality is also independent of the data definitions, a technology that is unique to the eXegeSys products (i.e. eXegeSys Customizer Technology). This means that the end user of the application can modify many aspects of an application variable (such as name, data type, size, decimal precision, etc.) without the need to recompile the original application source code. This is a unique technology in ERP applications, to be able to customize the ERP system without touching the source code, and the customizations are supported through application upgrades. eXsyst Anywhere is comprised of several components, described below: 1. Application Server - Written in C++, compiles and runs on Linux, HP-UX, Solaris, and Win32 (2000, XP and Server 2003), this is a set of executables and libraries needed for running business applications written with the eXsyst Anywhere SDK. The application server is a distributed system, so the executables can be installed on multiple machines and even across multiple OS's for scalability purposes. Each executable/process of the distributed system uses TCP/IP network sockets for communication purposes. All communications between processes is performed through a proprietary messaging protocol. All communications with external processes (such as the GUI client or the Web Client described below) are performed through the use of XML messages, through the "eXcalibur" (proprietary) DOM. Apache Xerces is used as the XML parser. The server also includes database drivers offering support for MySQL, Oracle, DB2, Sybase, SQL Server, MS Access, and a generic ODBC driver. Business applications are compiled as shared libraries (.dll, .so, or .sl) and are linked as part of the application server startup. The application server can be started from the command line or as a Win32 service. User authentication is available using a proprietary method or through PAM, LDAP, or SSPI. This component is stable and production ready. 2. Windows GUI Client - Written in Visual Basic.NET, compiles and runs on Win32 clients with .NET platform version 1.1. This component consists of a UI designer and a UI runtime that displays the UI forms. The UI designer is a graphical IDE similar to Visual Studio, it allows you to select controls from a toolbox and draw them on a window. The properties for each form or control can be modified through a properties grid. Collections of forms are titled projects, and projects can be deployed for use by the UI runtime. Window forms and project properties are stored in XML files. The UI runtime opens a deployed project, and allows connection to the application server. Once connected and authenticated, the end user can submit data through the window forms to the application server. This communication is accomplished through network sockets using the "eXcalibur" XML DOM as referenced above. This component is stable and production ready. 3. Java Web Client - Written in Java, and requiring a J2EE web server (such as Apache Tomcat), can be deployed to any OS that is supported by the J2EE web server. Engineered to use Jakarta Struts. This web client essentially performs the same function as the UI runtime as described above. It translates the project and form XML files created by the UI designer into web pages, thus providing a cross-platform UI. This component is currently in Beta. 4. Administration utilities - Consists of the System Administrator Interface (SAI) and Customizer utilities: a. SAI - This is a GUI for Win32 only, written in C#, it allows a system administrator to directly access the application server for configuration and administration purposes. The server functionality is implemented in C++ as part of the application server component above. This component is stable and production ready. b. Customizer - This is a GUI for Win32 only, written in C#, it allows a system administrator to perform data-level customizations on application variables as described in the general description above. The server functionality is implemented in C++ as a business application that is hosted by the application server. Thus the server component of this utility can be compiled and run on any of the platforms supported by the application server (see #1 above). Customizer also requires a database to execute, this database can be any of the databases supported by the application server (see #1 above). This component is stable and production ready. 5. SDK - This component contains the C++ header and source code files, libraries, and miscellaneous utilities needed for developing business applications to run on the application server. These are all written in C++, and can be compiled on the same platforms as the application server (see #1 above). In addition supplying the C++ classes needed to interface with the application server components and the XML communications, these classes also provide platform-independent interfaces to the following functionality: file and directory access and manipulation, network ports and sockets, OS pipes, process and thread manipulation, registry/environment variable access, service/daemon functionality, shared libraries, and UTF-8 string manipulation. In addition, C++ exception handling techniques are used to abstract OS-level exceptions as well as provide a method for business applications to generate errors. This component is stable and production ready. 6. PHP Web Client - This component is a set of PHP scripts that provide the same end-user functionality as the Java Web Client (see #3 above.). This component is currently in the pre-Alpha development stage. Please also note that GCC is the compiler of choice for C++ on all platforms except Win32, where Visual Studio.NET is preferred.