Deployment of AIMMS applications
Once the development of an AIMMS model is completed, you can choose to deploy your model as a graphical end-user application using the GUI builder capabilities of AIMMS, or as an optimization component called by another application with its own front-end GUI. In either case, you can choose to deploy your application as a local stand-alone application, or as a server-based optimization application. This leads to the four deployment options shown below. AIMMS offers features to support each of these deployment options.
| AIMMS GUI | Other GUI | |
|---|---|---|
|
Stand- alone |
1. Stand-alone AIMMS applications | 2. Local AIMMS optimization components |
|
Server- based |
3. Server-based AIMMS applications with AIMMS Clients | 4. Server-based AIMMS optimization components |
1. Stand-alone AIMMS applications
With a stand-alone AIMMS application, you can offer the end-users of your application the full functionality that you have developed in AIMMS, including the Graphical User Interface (GUI). End-Users could for example load and modify data, perform optimization runs, and view and export the results; all from the GUI of your application. For this type of use, we offer AIMMS End-User licenses.
In addition, you can also use the freely distributable AIMMS Viewer to allow anyone to browse the saved results of an AIMMS-based optimization application through the GUI of the application. The Viewer does not allow entering or modifying data or performing optimization runs, but enables you to easily share your results with colleagues and customers.
To facilitate deploying your stand-alone AIMMS application to end-users, AIMMS offers a feature to wrap your entire application plus corresponding data into a single file: an AIMMSpack. We also offer an installation-free version of AIMMS, which enables users who do not have administrator rights on their computer to run an AIMMS application as a simple executable file.
2. Local AIMMS optimization components
By deploying your AIMMS model as an optimization component, you can make the benefits of your AIMMS optimization model available to end-users, while at the same time allowing the end-users to retain the existing IT application and GUI that they are familiar with. For this type of use, we offer AIMMS Component licenses.
AIMMS models can be integrated as an optimization component into many other applications, such as Excel, Oracle and SAP, but also into applications written in programming languages such as C/C++, C#, Visual Basic or Java. To integrate an AIMMS component, AIMMS offers several integration interfaces and technologies:
- Excel add-in (described in the Excel add-in User’s Guide)
- Web Services (described in the server-based section below)
- C/C++ API (Application Programming Interface)
- COM object
The C/C++ API and the AIMMS COM object expose interfaces for opening and closing AIMMS projects, assigning and retrieving multidimensional data declared in a model in either a dense or sparse manner, and running procedures declared in a model.
Dense data exchange in the form of passing arrays is convenient for 1- and 2-dimensional identifiers, where the total amount of data to be passed is relatively small. For other cases, AIMMS offers sparse, row-oriented data exchange as an option to prevent excessive memory requirements. Alternatively, all data exchange for multi-dimensional identifiers can be achieved by using AIMMS database connectivity features.
Because AIMMS also possesses a powerful and compact procedural language, AIMMS components cannot only be used to solve optimization models, but can also perform extensive data manipulations on behalf of the calling application. This is especially useful, whenever such data manipulations can be more easily expressed in AIMMS than would be possible the programming language in which the calling application is written.
For a full description of the AIMMS API, see the chapter on the AIMMS Programming Interface in the Language Reference.
For a full description of the AIMMS COM Object, see the AIMMS COM documentation.
3. Server-based AIMMS applications with AIMMS Clients
To deploy your AIMMS model on a larger scale, AIMMS offers the option to choose a server-based set-up, where end-users of your model use locally the AIMMS GUI to prepare and visualize data and to communicate with central server computer(s) that execute the optimization requests. Choosing such a server-based application set-up can bring significant advantages:
- A large number of users can benefit from a small number of high-performance server computers with powerful AIMMS licenses, thus leveraging your investment in hardware and software. You can even use the same server and licenses for multiple AIMMS optimization applications.
- You can maintain your optimization model centrally, so all users can benefit immediately from model improvements, model extensions and faster solvers once you make them available on the server.
For the client-side of such a client-server deployment architecture, we offer packages of AIMMS Client licenses. For the server-side, we offer AIMMS Component Network licenses.
To facilitate the technical implementation, AIMMS allows the generation of model-specific web services based on the platform-independent RPC (Remote Procedure Call)-technology. AIMMS can generate a WSDL file and a configuration file, which allows a generic AIMMS-provided web service handler to call an AIMMS session through a problem-specific web service. It supports full asynchronous messaging between AIMMS sessions, so multiple AIMMS sessions can be used to service incoming requests. AIMMS allows the implementation of both stateless and session-oriented web services.
The web services generated by AIMMS allow multi-dimensional input data to be passed to, or multi-dimensional output data to be retrieved from the associated AIMMS session. AIMMS web services also allow attachments to be sent along with the web service requests, e.g. to pass XML data in a customer-specific format from and to AIMMS sessions. Such customer specific XML data can be read and/or written using the XML mapping feature of AIMMS.
For a full description of the AIMMS Web Services see the AIMMS Webservices User's Guide.
4. Server-based AIMMS optimization components
As a fourth deployment option, you can also choose to use another IT application instead of an AIMMS GUI as the front-end to the server-based architecture. This server-based architecture is described above, and brings the important benefits:
- The same server hardware and AIMMS licenses can serve many users and many AIMMS applications.
- Model maintenance and updating can be done centrally.
Any external application can communicate with the server via Web Service requests according to the AIMMS-generated WSDL description of the service, or via the AIMMS COM object. For this server-based deployment architecture, we offer AIMMS Component Network licenses for the server.
Applied Optimization, an AIMMS Service Partner, has developed a
demo to illustrate the use of a server-based AIMMS optimization component with a local HTML front-end.
Security for end-user applications and components
When you have created an AIMMS optimization model and want to deploy it to your clients, security aspects play an important role, such as:
- How can you protect the proprietary knowledge used in your model?
- How can you prevent the end-users of your application from modifying the project?
- How can you control the usage and/or distribution of your models?
- How can you distinguish between the various end-users and their level of authorization within your application?
AIMMS has several built-in features to address these security issues:
Encrypting your model contents
As developing a professional decision-support application may represent a considerable investment in time and money, AIMMS includes facilities to prevent unauthorized access to the underlying model. The source code of your model can be protected by using an encryption scheme based upon your own unique customer code.
Application licensing
To control the use of your application, AIMMS allows you to create your own application-specific VAR licenses that can be linked to a specific AIMMS license or to a range of AIMMS licenses. With such a VAR license you can either restrict the number of (concurrent) users or the lifespan of your application.
User management
AIMMS also has integrated facilities for creating a database of your end-users, and linking this database to one or more AIMMS-based applications. The end-user database contains information (entered by you) on the level of authorization of all end-users within an application. Through these authorization levels you can specify such items as whether an end-user is allowed to access case data, view pages, modify data, and execute particular parts of the model.
For a full description of security functionalities in AIMMS see the chapter on Project Security in the User's Guide.

E-mail this page
Our Webinars

