1. Optimize the number crunching
In a risk management workflow you are crunching numbers millions of times. Pricing and calibration engines are optimized in C++.
2. Provide declarative programming
To described financial objects in the language of mathematics, we integrated our engines into Mathematica and inherit a vast variety of technologies.
3. Parallelize it
We multiply performance by applying coarse grain symbolic parallelization techniques from Mathematica. In a few lines of code UnRisk became gridUnRisk.
4. Make data persistent
UnRisk's I/O relations and and control objects are represented in MS SQL. Mathematica's JDBC support and Java was the natural choice.
5. Web it
UnRisk interaction patterns, represented as JSPs, part of a Java implementation are wrapped up as Servelet web application.
6. Tie everything together
Web browser - UnRisk servelet - data base - UnRisk service - gridUnRisk - numerical engines; using a mix of Mathematica link technologies and communication protocols.
7. Scale it
Scalability is "outsourced" to license management.
Web browsers on smart phones and cloud computing makes UnRisk FACTORY a pervasive computing solution.