The Enterprise Services Platform (ESP Server) is a C++ web services development framework for the HPCC Platform and includes auto-generated functionality to bind to Roxie services, integrates logging, billing and security.
It is a Web services framework that allows one or more services to be “plugged in” to provide various types of functionality to client applications, via multiple protocols, using common Internet standards like HTTP, XML, SOAP, and JSON.
Custom Security components
- ESP uses security manager objects to abstract how authorization and authentication are mapped to backend systems.
- Custom objects are written to support various standard or proprietary backend systems.
- Adaptive logging server maps logging transactions to alternate backend architectures.
- Fault tolerant data persistence.
- Pluggable components do data mapping i.e. for billing, monitoring, accountability.
- Allows ESP transaction servers to send logging messages to logging servers.
- Another level of fault tolerant data persistence (in case LoggingServer is unavailable).
- ESP service that facilitates read / write database interaction with HPCC ECL services.
- Provides a channel for HPCC queries to write to the database at the end of any transaction.
- Provides an interface for HPCC queries to read from the database.
- Data can be migrated to native HPCC files on a regular basis.
- An interface "façade" that can sit in front of other services... adapting them to emulate the interfaces of other systems.
- This has been extremely useful when migrating large groups of users from another system to ESP.
- Allows our system to look like the interface of another existing 3rd party application.
- Can also be used to match open standards or schemas.
- Puts a clean well defined interface in front of 3rd party services.
- 3rd party interfaces can be very inconsistent and non-intuitive.
- Standardizes access in an intuitive way for ECL and application developers, increasing accuracy and productivity.
- Acts as an adapter simplifying use of third party services from ECL queries.
- Provides internal security and logging in front of 3rd party access.
ESDL based front end to HPCC services
- Uses Enterprise Services definition language to create highly structured well defined interfaces in front of HPCC queries.
- Enforces contract driven development where the interface is designed separate from the query logic.
- Enforces interface versioning to make sure old clients don't break. (Schema driven XML clients can be very sensitive to changes).
- Provides a layer of highly specific security and logging in front of HPCC queries.
- Processing of messages is driven completely by the ESDL interface definition.
Custom protocol support
- When new non-http based standards, or highly proprietary protocols are needed new protocols objects can be created.
- Uses existing ESDL interface definitions to map messages so often custom service specific logic is not required.
- Great for migrating applications using binary or other non-http protocols to ESP.
- Since protocol and service logic are separate, a custom protocol service can also be accessed through standard protocols: REST/XML, SOAP, etc.