|
The CP-Inside project aims to make Constraint Programming (CP) technology more accessible for real-world business software developers. In particular, it facilitates the embedding of CP technology in decision support applications, and its integration with familiar software tools independently of the used CP solvers. A major objective of the CP-Inside project is to allow business developers to create constraint-based decision engines utilizing the power of CP technology in a vendor-neutral way. CP-Inside is based on the following design principles:
- Use main-stream programming languages like Java giving business application developers a simple CP API with no new languages to learn and with an easy access to already existing business objects and packages
- Provide pre-built interfaces to commonly used software products such as MS Excel, Google Apps, and different rule engines. Application developers should be able to use familiar languages, tools, and quickly learn how to use CP solvers by-examples instead of becoming CP gurus
- Not to develop another CP solver, but rather externalize commonly used features from the most popular CP solvers and provide a unified way to build adapters for different, already existing solvers
- Allow CP researchers to implement new algorithms/constraints in a standardized way, test them with different solvers, and make them commonly available.
CP-Inside is based on the emerging standard "CP API" (see www.cpstandards.org) that will provide a standardized interface for major CP concepts and methods. CP API will allow business application developers to define and solve their own constraint satisfaction problems independently of the underlying CP solvers. CP-Inside intends to support a Common Implementation for the standard Java CP API and provide a simplified way for different CP solvers to stay compliant with the standard. In this way, different CP solvers will also take advantage of different tools and business interfaces built on top of the standard CP API.
CP-Inside provides examples of how to develop web interfaces for CP-based decision engines and how to deploy them as web services to be used by business applications in both Java and .NET worlds.
|
|