Orchestration

A number of processing functions (tasks) are needed for the OCS. It most cases is better to use tools that are written and supported by others rather that have them be integral components of DfR. This provides a logical separation of concerns between infrastructure managing the execution of a set of tasks and tools for the tasks themselves. Since there may be different tools used for purposes that a particular to the items being processes or the output of the processes that may be more that one path though the process. And it is best is controlling the patch is as simple as possible.

Since similar requirements have been found in many software systems there has been the development of orchestration engines. This has been a fertile field of development and there many competing tools, terminology and use cases. So much so that is is difficult to compare products together. To make our choice we examined a few of the most common products that perform some function in this space and achieved a consensus on components to use initially. We intend to used them in operation but they also act and a starting point to "get smart" about orchestration.

Our evaluation criteria include that the engine is FOSS, has a wide, well-supported community, is simple to use, integrates well with Spring, Maven and JMS and permits a very gradual introduction into use in DuraSpace projects (in this case DfR is leading).

Component

Notes

Conclusion

ActiveBPEL

Used my Hull for RepoMMan. Has gone back being commercial. Uses industry standard BPEL. High learning curve.

Too complex for this project

Mule

Widely used and successfuly. Commercial license for full features. Moderately complex to integrate into DfR

Good alternative but something simpler is needed

JBoss JBpel

Widely used and well supported. May wind up requiring a commercial license. Requires JBoss as broker. Fairly larger learning curve.

Too many constraints

Apache Camel

Widely used and well supported. Simplest to use. Apache 2 License. Integrate very well with Spring and JMS. Low risk.

Best choice to start

Apache ServiceMix

Widely used and well supported. Complex and SOAP-oriented. Apache 2 License. Integrates well.

Not a good starting point especially due o our REST-Web orientation

JMS (ActiveMQ or others)

Industry standard. ActiveMQ is Apache 2 License

A required sub-component

Spring Web-flow

Very good but not oriented to the OCS requirements

Not for OCS

  • No labels