ACME Server User's Manual


Contents:

  1. Introduction
  2. Installation
  3. Start Up
  4. Acme Server Messages
  5. Acme Server Programming
  6. Adding New Message Formats
  7. Adding New Message Handlers
  8. DEComm Library

Introduction

ACME Server is a communications front-end to the ACMELib package that allows tools to interact with a textual ACME description of an architecture.  There are three programming interfaces to the server, a native C/C++ interface, a TCL/TK 8.0 interface (DEComm) and a Java interface (JavaComm).   ACME Server is described in the product brochure located here.

Dataexchange and PBIO provide the portable binary IO and communications infrastructure.  These packages are available separately from the System's group at Georgia Tech if desired.


Installation

ACME Server is available as a gzipped tar file for UNIX systems and as a zipped distribution for Win95/NT.  There is also a source and a binary distribution available.  Installation varies by platform and distribution.

BINARY:

Windows 95/NT:

1.  Download the binary distribution from the ACMEServer home page. (acmeserverbin.zip)
2.  Place the file in a temp directory and unzip.
3.  Run setup.exe and select the base directory to install.
4.  Setup will now build the correct directory structure. The server executables are in the bin directory, and the interface libs for Tcl and Java are in the DEComm and JavaComm directories.

UNIX:

1.  Download the binary distribution from the ACMEServer home page. (acmeserver-1-0.bin.solaris.tar.gz)
2.  Place the file in the directory you want it to install into.
2.  Unzip the file using the command "gzip -d acmeserver-1-0.bin.solaris.tar"
3.  Untar and expand the file using "tar -xvf acmeserver-1-0.bin.solaris.tar"
4.  The server executables are now in the ../morale/acme/acmeserverbin directory, and the interface libs for Tcl are in the ./morale/acme/acmeserver/decomm directory.

SOURCE:

Windows 95/NT:

  1. Download the source distribution from the ACMEServer home page. (acmeserversrc.zip)
  2. Unzip the file into the desired directory ( This should be the parent directory which contains morale if you have downloaded other MORALE applications, unzip it in the directory you wish to contain the MORALE application group).
  3. This creates the toplevel directory ../morale containing the directories: acme/acmeserver, acme/acme-library, acme/dataexchange, acme/pbio.
  4. Build PBIO and Dataexchange according to the directions in each specific package's README.(Project files are included). A project file for VC++ 6.0 is included. For versions 4.2 - 5, you will have to manually create a project file. From the project wizard, select static library and name it libio. Include the source files io.c, io_conv.c io_formats.c, io_get.c, nt_io.c, server_acts.c, version.c in the project. Build the io library libio.lib. For dataexchange, create a static library project from the wizard and name it libDE. Include the files channel.c, de_control.c, de_data.c, de_lock.c, de_monitor.c, dexch.c, dexch_os.c, gen_info.c, group.c, group_formats.c, version.c. Build the library libDE.lib.
  5. Build the acme library according the the directions in the readme. Basically cd into ../morale/acme/acme-library/src. A project file for VC++ 6.0 is included. To manually create a project file, select static library from the project wizard and name it libacme.Then include the following files: acme_application.cxx, acme_base.cxx, acme_containers.cxx, acme_element_types.cxx, acme_elements.cxx, acme_exceptions.cxx, acme_factory.cxx, acme_object_containers.cxx, acme_object_containers_header.cxx, acme_parser.cxx, acme_properties.cxx, acme_property_types.cxx, acme_representation_descriptions.cxx, acme_representations.cxx, acme_streams.cxx, acme_tokens.cxx, acme_type_manager.cxx, lex_acme_yy.c. Be sure to go to Tools->Options and add an include directory for ../morale/acme/acme-library/include
  6. To build ACMEServer, change to the ../morale/acme/acmeserver/src directory. Again a VC++ 6.0 project file is included. If you have to create a project file manually, create a win32 console application and include the following files: acmedesign.cpp, acmeserver.cpp, connection.cpp, handlers.cpp, main.cpp, server.cpp. In the Project->Settings, be sure to include the libraries libacme.lib, libio.lib, libDE.lib and wsock32.lib. Also in the Tools->Options, be sure the include directories include: ../morale/acme/acme-library/include, /morale/acme/dataexchange, ../morale/acme/pbio, and ../morale/acme/include. Be sure the libraries directory points to the locations of the libs built in steps 4 and 5.
  7. To build DEComm (if a Tcl interface is needed) cd to the ..morale/acme/DEComm directory and use the VC++ 6.0 project file provided. If you have a different version, select the .dll project from the wizard (non-MFC) and name it decomm. Include the file tcldll.c. Be sure the include directories point to you tcl include files and the directories in step 4. In Project->Settings, enter the wsock32.lib, libDE.lib, libio.lib and tcl80vc.lib. Be sure in Tools->Options you have the directories pointing to these libraries.

UNIX:

  1. Download the source distribution from the ACMEServer home page. (acmeserver-1-0.src.tar.gz)
  2. Move the tar file into the desired directory ( This should be the parent directory containing morale if you have downloaded other MORALE applications, otherwise put it in the directory you wish to contain the MORALE application group).  Unzip using "gzip -d acmeserver-1-0.src.tar" , then untar using "tar -xvf acmeserver-1-0.src.tar"
  3. This creates the toplevel directory ../morale containing the directories: acme/acmeserver, acme/acme-library, acme/dataexchange, acme/pbio and acme/decomm.
  4. Build PBIO and Dataexchange according to the directions in each specific package's README.(Project files are included). Basically, cd into ../morale/acme/pbio, type ./configure. After configure is done, type make. Do the same thing in the ../morale/acme/dataexchange directory.
  5. Build the acme library by changing to the acme-library directory. Type make all to build the library.
  6. To build ACMEServer, change to the ../morale/acme/acmeserver/src directory. Edit the makefile to set ACME_HOME to the install directory
  7. Build DEComm.so using the provided make file (If a TCL interface is needed).  cd to the ..morale/acme/DEComm directory and use make. Edit the Makefile to update the ACME_HOME variable. You also need to update the TCL_HOME variable to the directory where your Tcl/Tk8.0 install is located.

Start Up and Configuration

After ACMEServer has been built, it can be started from the command line with "acmeServer [server config file name]." If no configuration file is specified, the server uses the file server.config to get its initial settings. Currently the configuration file contains the following entries:

server_port 9999. =>This sets the server port to 9999

repository f:\acmeserver\repository\ => This sets the location where the server will receive and store acme descriptions from remote clients. This location should be changed to the location where you would like your server to store these files.

The server then accepts connections and handles requests automatically until it receives a disconnect message which causes it to shutdown. There is no further user interaction required.


[Next]