Local API - Using SIMS DLLs with a Web Application
Overview of Model for Using SIMS APIs in a Web Environment
Are SIMS .Net APIs Multi-Threaded?
SIMS .Net APIs are not multi-threaded. The use of them in a multithreaded environment may appear to work, but data may bleed between processes potentially causing the wrong data to be displayed. Partners who wish to use the SIMS .Net APIs in a web application or other multi-threaded environment need to implement something along the lines above. All requests need to be sequenced. Theoretically there could be multiple brokers running on the same machine each running in their own process and with their own queue.
Does SIMS .Net APIs support multiple different logins?
If there is a need to login to SIMS .Net APIs as different users, we would recommend that the application be restarted. SIMS .Net itself does not allow you to change the SIMS user part way through SIMS running. Whilst it is simple to code an application that logs in and out of SIMS many times, it may appear to work but caches may not reflect the correct contents for the new user.
In theory it is possible to use Separate App Domains to instantiate multiple SIMS sessions, it was however reported by one partner that there were issues with managing memory. Again this is not something that SIMS .Net does and hence we have no experience of working in this way.
Again in theory, multiple SIMS applications could be started (similar to on a terminal server) but this too is untried by ESS.
One version of SIMS is compatible with one version of the SIMS database. Ergo a web server using version ‘a’ of SIMS would not be able to correctly work with another school’s database running version ‘b’ of SIMS.
Deployment and Distribution of SIMS binaries
Partners do not have the right to distribute copies of SIMS .Net or part thereof to mutual customers. The copy of SIMS licensed by the school can be installed on machines owned by or rented by them. Hence a school may reasonably put their copy of SIMS on a partner provided server, regardless of location.
If a partner intends that a server provided by them is shared between multiple schools, then there is a conflict because one of the schools is in effect providing their copy of SIMS for someone else to use. The same would be true if the partner provided the copy of SIMS.
If this presents an issue then please contact us, the licence would be chargeable but we have yet to be asked and not rates are available.
SIMS .Net access would have to use a service account with high levels of access to SIMS data to access the school’s data. (This assumes that partner applications can’t create an instance of SIMS per login – which is unlikely to be efficient.)
The Partner system MUST therefore manage security for access to their web based system and would not be able to rely upon SIMS security.
ESS would require that the partner system provides documentation to the joint customer to explain how their data is secured. Partners are solely responsible for the security of the SIMS data accessed via these APIs. [ESS does not need to see the document – but will advise schools to ask for one to ensure that they meet their DPA obligations].
Advice and Consultancy
We would recommend that partners considering any new significant development consider consultancy from ESS SIMS. Rates are available here.