next up previous contents
Next: Quick Roadmap Up: Optimization Services 1.0 User's Previous: List of Tables   Contents

The Optimization Services (OS) Project

The objective of Optimization Services (OS) is to provide a general framework consisting of a set of standards for representing optimization instances, results, solver options, and communication between clients and solvers in a distributed environment using Web Services. This COIN-OR project provides source code for libraries and executable programs that implement OS standards. See the COIN-OR Trac page projects.coin-or.org/OS or the Optimization Services (OS) Home Site www.optimizationservices.org for more information. The OS project provides the following:

1.
A set of XML based standards for representing optimization instances (OSiL), optimization results (OSrL), and optimization solver options (OSoL). There are other standards, but these are the main ones. The schemas for these standards are described in Section 6.

2.
Open source libraries that support and implement many of the standards.

3.
A robust solver and modeling language interface (API) for linear and nonlinear optimization problems. Corresponding to the OSiL problem instance representation there is an in-memory object, OSInstance, along with a set of get(), set(), and calculate() methods for accessing and creating problem instances. This is a very general API for linear, integer, and nonlinear programs. Extensions for other major types of optimization problems are also in the works. Any modeling language that can produce OSiL can easily communicate with any solver that uses the OSInstance API. The OSInstance object is described in more detail in Section 8. The nonlinear part of the API is based on the COIN-OR project projects.coin-or.org/CppAD by Brad Bell but is written in a very general manner and could be used with other algorithmic differentiation packages. More detail on algorithmic differentiation is provided in Section 9.

4.
A command line executable OSSolverService for reading problem instances (OSiL format, AMPL nl format, MPS format) and calling a solver either locally or on a remote server. This is described in Section 10.

5.
Utilities that convert AMPL nl files and MPS files into the OSiL XML format. This is described in Section 7.3.

6.
Standards that facilitate the communication between clients and optimization solvers using Web Services. In Section 7.1 we describe the OSAgent part of the OS library that is used to create Web Services SOAP packages with OSiL instances and contact a server for solution.

7.
An executable program OSAmplClient that is designed to work with the AMPL modeling language. The OSAmplClient appears as a ``solver'' to AMPL and, based on options given in AMPL, contacts solvers either remotely or locally to solve instances created in AMPL. This is described in Section 12.1.

8.
Server software that works with Apache Tomcat and Apache Axis. This software uses Web Services technology and acts as middleware between the client that creates the instance and the solver on the server that optimizes the instance and returns the result. This is illustrated in Section 11.

9.
A lightweight version of the project, OSCommon for modeling language and solver developers that want to use OS API, readers, and writers, without the overhead of other COIN-OR projects or any third party software.


next up previous contents
Next: Quick Roadmap Up: Optimization Services 1.0 User's Previous: List of Tables   Contents
Kipp Martin 2008-01-16