MOE Deployment Strategies
Chemical Computing Group Inc.
In this article, we describe deployment strategies for the computer software package for computational chemistry, cheminformatics and bioinformatics called MOE, which stands for Molecular Operating Environment. The phrase "Operating Environment" (an amalgam of "Operating System" and "Application Environment") was chosen deliberately to re-enforce the fundamental design objective:
MOE shall be a computerized environment dedicated to computational chemistry and bioinformatics in which scientific methodology can be rapidly prototyped, experimented with, verified, deployed and effectively used.
This sentence warrants some elaboration as it touches upon a number of issues relevant to the practice of computational chemistry in both industrial and academic settings.
Firstly, the phrase "a computerized environment dedicated to chemistry" is used so as not to restrict MOE to any particular facet of computational chemistry, cheminformatics, or bioinformatics. In many cases, computer programs for chemistry are specialized and integrate poorly with other programs. MOE is intended to be an environment in which scientists can exploit the many techniques and methodologies they require in order to be effective. For example, Molecular Mechanics programs have traditionally been separate from Chemical Information systems. The artificial line between them has caused the unfortunate identities:
Chemical Information = Database Management
Both activities are more properly contained in the general notion of Chemical Computing and there is no real reason to make such an artificial delineation. MOE is intended to be a general platform for all activities pertaining to Chemical Computing.
Secondly, the phrase "in which new methodology can be rapidly prototyped, experimented with ..." means an environment in which computer programs can be written quickly and tested. Here, two notions are important:
Thirdly, the trailing conjunction "... deployed and effectively used" means that MOE must be user-friendly, available on many computer platforms, efficient and exhibit reasonable performance. It was our intention that the vast majority of programs written with MOE be efficient enough to be deployed as end-applications. To this end, the environment itself had to contain the necessary components (e.g., graphics, molecule file I/O, force fields, window interface, etc.) and applications (e.g., Homology Modeling, Molecular Similarity, etc.) to be used as a complete computational chemistry applications package.
The Molecular Operating Environment (MOE) is the next generation of molecular computing software tool. MOE is not a software package in the usual sense, but an integrated Applications and Methodology Development Platform; that is, a tool for chemical computing software development and deployment. MOE integrates visualization, simulation and application development in one package. Custom methodology modules can be developed with the built-in high-performance data-parallel programming language SVL, the Scientific Vector Language.
At the time of this writing, MOE contains ready-to-use and self-contained applications for:
Methodology development in MOE is based upon SVL, the Scientific Vector Language. SVL is a new high-performance data-parallel programming language built into the MOE Molecular Operating Environment. SVL is an embedded language; that is, its compiler and run-time environment are an integral part of MOE. SVL serves as the command, macro, scripting, and high-performance computing language of MOE.
MOE is not a C or Fortran subroutine library but a complete executable application. The run-time environment contains the basic core graphical user interface, molecular data structure services and the SVL development and run-time environment. SVL programs are run from within the MOE application.
Most methodology is developed in SVL; however, in-house codes can be linked into MOE with the SVL Application Program Interface (API). For example, toolkits such as those provided by Daylight can be linked into MOE through API extensions of the SVL language.
In addition to the internal molecular data structures, force fields and I/O facilities, MOE contains the following major modules for methodology development:
A very important benefit results from the architecture of MOE. Any program written in SVL will run as-is on any platform that runs MOE; that is, every SVL program can leverage MOE's portability. Currently, MOE runs on a variety of computer platforms and comes in a variety of guises:
Chemical Computing Group's goal is to port the MOE environment to as many computer platforms as possible from desktop through super computers. In this way, every SVL program will be able to run, unchanged, on the full spectrum of computing equipment.
Because of the foregoing factors, MOE is an extremely flexible chemical computing software software software system that can be used effectively in a number of ways
In the remainder of this article, we will elaborate on a number of possible ways in which MOE and its applications can be deployed.
As was mentioned in the preceding section, MOE runs in a number of forms:
These versions of MOE will run the same SVL applications (with the exception that the batch versions will not run graphical applications). These variants of MOE are instrumental to the scalability of MOE: by making the appropriate selection these deployment vehicles MOE can serve both small and large organizations.
While it is impossible to enumerate all of the configurations that can be put together, we will, however, examine the building blocks and some example configurations. We start with two basic building blocks:
Naturally, either of these two building blocks can be replicated giving a pure applications group or a pure methodology group. By combining these building blocks we obtain
which consists of a group in which some scientists are primarily applications scientists and some are (possibly occasional) methodology developers that that support the group. In larger organizations, the two groups may be separated and specialized. In either case, the fact that the same software is used by both kinds of scientist streamlines the development and deployment process.
We are now in a position to introduce the batch/server building blocks. In general, MOE/batch will be used on compute servers while other applications are used as clients. These applications may be other instances of MOE, Network Browsers or Office applications.
Putting all of the components together we see that the MOE family of products and applications can serve large organizations consisting of diverse and separate groups of users.
In this kind of configuration a large organization can exploit the full benefits of MOE. There are multiple delivery paths for scientific applications and different classes of users can choose their level of complexity. For example, Suppose that a new methodology is developed and written in SVL. Such an application may have been developed by the Methodology Development Group or perhaps by Chemical Computing Group. This application can now be deployed in a number of ways; for example,
MOE is not just another software package. Firstly, MOE was conceived as a general purpose Chemical Computing Environment; that is, a single tool that facilitates all forms of computational chemistry. Chemical Computing Group sees MOE as the vehicle for the integration of Quantum Chemistry, Molecular Modeling and Chemical Information. Secondly, MOE is a Methodology Development Platform, a package in which chemists can build and assemble their own tools quickly with SVL, the built-in high-performance programming language.
Although one is not compelled to develop new methodology with MOE, the concepts of an integrated Applications and Methodology Development Platform are the keys to MOE's flexibility. Once the decision is taken to use the methodology development capabilities of MOE, the full benefits of MOE can be reaped:
The high-level nature of SVL programming makes methodology development a viable alternative for those that do not want to allocate the resources to C and Fortran development. Even if the decision is taken to refrain from custom development, the fact that Chemical Computing Group uses this model to produce its own applications allows us to react rapidly to the needs of our customers who can then further benefit from MOE's deployment flexibility.