What is ArupCompute?
ArupCompute is an API used to access a number of Arup-created libraries.
Hosted libraries have their methods / functions / calculations exposed by ArupCompute so they are accessible via the web interface, Excel, Grasshopper, Dynamo, Python, .NET, Node.js and the REST API.
The main benefits of using ArupCompute to host a library are:
- Easy deployment and updates
- Automatically works with: web browser, Excel, Grasshopper, Dynamo, Python, .NET, Node.js, and REST API
- Easy to share calculations
- Usage analytics
- Scalability
- Security associated with the protection by Arup credentials
High level explanation
The below diagram gives a high level overview of the infrastructure that hosts ArupCompute.
New library version upload sequence:
- Developers write their library of code, and put ArupCompute-specific meta-data on it
- They upload a .zip file of their compiled code and dependencies, which is then stored in Azure blob storage
- ArupCompute uses reflection to pull out the relevant meta-data and stores it in a database
- ArupCompute creates an Azure function to store the version of the library within
Then when a user sends a request to the library:
- ArupCompute uses the unique calculation identifier to lookup the relevant information
- The user request is routed to the correct Azure function
- The library undertakes the calculations and returns the answer to ArupCompute
- ArupCompute sends the result to the user
Detailed explanation
To read in more detail, and understand some of the growing pains that ArupCompute is undergoing, you can read this architecture review from July '21.