In response to customer requests, Flux 8.0 transitioned how it provides remote engine services. In releases prior to 8, these services were provided via RMI through TCP/IP. In 8.0, the Flux engine’s cluster networking and remote engine invocations all now utilize REST via HTTP or HTTPS. These engine services are core to the processing of Flux and its failover, configuration, and monitoring facilities. While cluster networking can be disabled with a small performance impact (instead relying on the shared database for failover and load balancing), turning off remote engine invocation disables the Flux Operations Console and remote engine calls via the Java API.
Flux, in its selection of REST implementation technology, selected a well-supported, production-proven, and open source library called Apache Jersey. With the selection of any implementation technology there comes potential constraints. The selection of Apache Jersey to provide Flux REST support comes with the following identified constraints.
- There is a known conflict with JBoss 7 and deploying servlets that use different libraries implementing REST. JBoss only allows one implementation of REST within its servlets. JBoss’s default implementation is RestEasy, while Flux uses Apache Jersey. If a customer-provided servlet requires a different REST implementation, than Flux and the other application will conflict within JBoss. The only resolution to this is to either run Flux as a standalone engine, outside of JBoss, or run it only with non-conflicting servlets in one instance of JBoss, and place the conflicting servlet in its own instance of JBoss.
- There is also a known conflict between Flux and a Java developer adding their own Apache Jersey jar files to the classpath of a program utilizing Flux. In such instances the Flux engine will fail to start. The workaround is to disable Flux cluster networking and server mode before starting the engine.
Flux can provide an alternate REST implementation as a billable services project for unique customer requirements. The costs for such a custom implementation are in the range of USD $25-50K depending upon the specific library requested. Details can be requested from Flux Sales.