Analysis Server User Guide
Total Page:16
File Type:pdf, Size:1020Kb
Analysis Server User Guide This manual explains the basic principles and functionality of the Analysis Server, a software system that enables users to incorporate legacy software into reusable components that can be published on a network. This manual also discusses seven utilities for creating new software components: AnalysisLibraryWrapper, FileWrapper, ExcelWrap- per, ScriptWrapper, PerlWrapper, PXCWrapper, and Java Bean component authoring. The Analysis Server answers several questions that have plagued engineering analysis groups for years: l "How can I provide multi-platform access to our legacy software?" l "How do I make our complicated, convoluted codes a little easier for novices to use?" l "Why do I have to spend all day writing input files and parsing output files when I only want a few critical val- ues?" The Analysis Server allows the user to control complex engineering programs through a simple set of commands (e.g. get, set, and execute). This interface is consistent across all Analysis Server components, so users who understand how to manipulate one component can manipulate them all. The result is enhanced user-friendliness without rewriting the original software. Distributed access and ease of use are only the tip of the Analysis Server's capabilities. Its command set can be incor- porated into a client program, which means that other programs can directly access data from Analysis Server com- ponents. An Analysis Server client can transfer data directly from legacy software to an Excel workbook, for example. If the client program has an integration architecture, it is possible to make several previously stand-alone leg- acy programs from geographically distant, hardware distinct machines work together as though modules of a single program. This manual provides useful information for those who wish to author components and place them on a server machine or use Analysis Server components on their own machines. Topics Quick Links l The Analysis Server Overview l FAQ (online) l Installing and Configuring the Analysis Server l Build History l Analysis Server Security l FileWrapper Statements l Analysis Server Commands l aserver.conf Syntax l Adding Your Components to the Server l The AnalysisLibraryWrapper Utility l The FileWrapper Utility l The ExcelWrapper Utility l The ScriptWrapper Utility l The PerlWrapper Utility l The PXCWrapper Utility l Custom Components Using Java l Setting up a Naming Service Analysis Server Overview The Analysis Server enables users to incorporate analysis software into reusable components that can be published on a network. Once published, users can access these components from any computer on a network, regardless of their platform type, through a simple protocol. The Analysis Server protocol is similar to the HTTP protocol used to pub- lish web documents; as long as the components are properly placed on the server's computer, they can be accessed and used generically. The Analysis Server allows users to control computationally intensive software from cheaper, lightweight platforms. The Analysis Server also hides the details of data management from the user. This means that the user can concentrate on what the data means rather than how to make it fit into an arcane file format for a legacy program. This chapter explains the concept behind the Analysis Server and its benefits to engineers. Concept The Analysis Server provides generic access and control for components through a technique known as software wrapping. Since the advent of object-oriented technology, programmers have used wrapping as a means of reusing legacy software in object-oriented environments. A software wrapper is a thin software program or module that con- verts program-specific input and output operations into generic sets of commands that can apply to a wide range of programs. For example, an engineer may have a FORTRAN program that uses input and output decks. In order to publish the program on the Analysis Server, they could write a wrapper allowing them to enter all inputs and run the program using get and set operations, like these: >set program.input1 = 3 value set for <program.input1> >execute program program completed. >get program.output1 6.0 Notice that engineers do not have to write the actual input decks for the program; in fact, they do not need to know that the program requires input decks at all. Once the component author invests the one-time effort required to write the wrapper, the wrapper automatically performs the tedious task of writing the input and output file. This leaves the engineer free to focus on results. Most input and output files can be wrapped quickly and easily using the FileWrap- per utility. Even files with hundreds of inputs and outputs can be wrapped using the FileWrapper utility in a minimal amount of time. If more flexibility and control is desired, the author can write a wrapper in Java. A user is not limited to accessing components through an interactive session. Developers can write Analysis Server cli- ents that can access components automatically. For example, it is possible to write Excel spreadsheet routines that call an Analysis Server component repeatedly to perform a parametric study. Programmers can write Analysis Server cli- ents in a variety of languages, such as Perl, Java, and C++. The Analysis Server can also be reused as an OLE auto- mation component. Because it is possible to connect to the Analysis Server from multiple locations simultaneously, several users can access the same code from different workstations. Benefits As mentioned, one benefit is saving time otherwise spent building and troubleshooting complex files. When software is used extensively as an R&D or production tool, users may spend a large portion of their time on this tedious, error- prone task. Smart users write scripts that partially automate some of the repetitiveness of these tasks, but these scripts often require program-specific knowledge to use. The Analysis Server's simple get and set methods allow users to operate the code without worrying about these details. The flexibility of software wrapping also allows the Analysis Server to present legacy software as a set of several simple-to-use components rather than as a complex, monolithic program. Expert users understand all of a program's high-level features and can interpret its data accurately and confidently. Basic users operate the program occasionally for a limited number of tasks and may lack the overall conceptual understanding. These basic users may present a dilemma since they cannot reliably use the program in all situations, but may not have an expert available for con- sultation. The Analysis Server solves this dilemma by allowing developers to create one wrapper that exposes the entire program for the expert user and one wrapper that exposes only one or two well understood features to the novice. Writing Analysis Server client programs provides another benefit. Developers can integrate several analysis com- ponents into a single program where they can share data dynamically. These programs can be written with drivers, such as optimizers and graphing tools, that can treat these components as a unified whole. For example, a user can cre- ate a client that links a UNIX-based FORTRAN analysis to a PC based business application. With the client, the user can enter a range of analysis inputs and then graph these inputs against the outputs of the business application. If a bet- ter analysis becomes available, the user can swap the new program for the old one without affecting the client, provided that the new program's wrapper has the same interface functions as the old one. Phoenix Integration has created an Analysis Server client called ModelCenter that enables users to access all the Ana- lysis Servers available on a given network, retrieve their components, and compose them visually into a model con- taining several components and their data sharing relationships. These relationships, called links, enable users to graphically assign the outputs of one analysis to the inputs of another, creating a chain of linked analysis programs that can operate as a single unit. Users can then employ a collection of tools to perform operations such as graphing, parametric sweeps, and optimization on the integrated model. Analysis Server Terminology A public_aserver directory is a base user directory that holds all of the categories and components that a user has published. When the user establishes a connection to the Analysis Server, the Analysis Server searches for all the pub- lic_aserver directories that it can find in a specified path. The Analysis Server's configuration file specifies that path. Each public_aserver is listed as a category when the user performs a listCategories command. The public_aserver directory is similar to a public_html directory; all items inside this directory are accessible to the public, but no items outside of these directories are accessible. Typically, each user in a multi-user system can own a public_aserver directory in their home directory, just as they can own a public_html directory. The analyses directory provides the base repository for Analysis Server components. When publishing a widely used component on the Analysis Server, it can be placed inside of the analyses directory. The analyses directory is a master directory for components; components in this directory and its subdirectories belong to the Analysis Server itself rather than to individual users with accounts on that server. When users want to publish their own components, the components can also be placed in their public_aserver directories. A category is a grouping of components inside an Analysis Server directory. A category hierarchy is analogous to a conventional directory structure inside the computer's directory hierarchy. It is actually implemented by creating sub- directories inside the analyses directory or any public_aserver directory on a server machine. The user can create a hierarchical organization of categories by placing subdirectories inside higher-level category directories.