Local API - Guidance for interfacing with centrally-hosted SIMS
Overview
Background
Many SIMS systems are hosted by ESS for schools within cloud services. This service is called SIMS Connected:
- The SIMS database is held in the cloud
- The SIMS application is provided via a a remote desktop or HTML5 presentation of the application(s)
- Third party applications are provided via a 'third party connector' which connects to the database over a VPN (Virtual Private Network) or secure connection.
The third party connector (TPC) is simply a PC located in the school (or possibly a virtual machine) which:
- Has a copy of SIMS Workstation installed and maintained.
- Has access to the SIMS database (as a SIMS user)
- Has access to the SIMS Document store.
- Has access to the web (outbound)
This is just like a server in a locally hosted school.
Differences
Most third party applications work well in this environment because their typical working model:
- Is provided as a console application or service
- Is configured on installation and updated occasionally
- Can be 'left in the cupboard' for months between visits.
This model does not suit a 'chatty' interface between the third party application and SIMS, mainly because the machine will be in a server room or other inaccessible area and needs to be secured appropriately.
Latency considerations for SIMS Connected
Where a machine is accessing a database over a wide area network (WAN) rather than a local area network (LAN) there will be an element of latency when the calls are compared. Recent (2023) research suggested that there may be a latency of ~ 1/4 of a second per call. At peak times or over some internet connections, this might be slower.
Recommendations for using SIMS Connected successfully
Request data in sensible chunks
If a school has 1,000 pupils and an application asks for each pupil's attendance marks individually then that needs 1000 calls. This may work at an acceptable speed in a locally hosted environment but could incur a 250s overhead when requesting the same data from SIMS Connected. However, if the application asks for all of the pupils' session marks for today by Year Group, it may only require 5 calls and the 1 1/4 minute overhead is minimal.
Do keep in mind, however, that asking for all of the attendance marks for all of the pupils for the past 5 years in one call would likely time-out or exceed packet size limits.
Schedule sync intervals sensibly
The most successful third party applications will typically break down their data needs in to groups and for each group have a scheduled sync time. Photographs, for example, are expensive to exchange due to their size and usually get an annual refresh. Syncing these every hour would likely burden day to day use of SIMS unnecessarily and could be made worse if every technical integrator application on the machine had similar inefficiencies.
The most advanced models
- Create a local console application that runs say every 30 minutes.
- Calls out to the TI's web system to find out what data exchanges are needed.
- Invokes whatever code is required to exchange data before going back to sleep.
- Has all of its configuration (post installation) in the cloud within the TI's application
- Has all of its feedback, such as a sync log, within the TI's application.
That way, data is kept up to date on a schedule and for unexpected needs can be resolved within 30-40 minutes; for example if the new school photos had just been updated in SIMS.
Update large objects during out-of-hours
Photographs and documents are typically large objects which are slow and expensive in terms of time over the net. We recommend that photos are updated using change tracking and out of hours. Documents are of an unknown size and could be slow to extract, as well.
In addition please remember that some documents may be accessed by school staff but may contain information which parents are not entitled to see. SIMS does not have sufficient information to make an automated decision to publish any generic document outside of the school's staff. We recommend that all publications are approved by an accountable member of school staff.
Use change-tracking calls
It may be possible to request updates every 5 minutes but this might create an unnecessary burden in terms of running cost and efficiency. To keep systems functioning optimally, use change tracking calls. Standard change tracking has a maximum discrimination of 1 hour. Attendance, however, has a last-updated model which discriminates to a much smaller time window.
More Details
Do not install applications that need regular attention on a TPC
Often a TPC is located in an inaccessible place like a server room. As such they are not usually a great place to install applications that need regular user access.
Connect.INI
Typically there is one copy of SIMS per terminal server. The connect.ini in the sims .net folder will be a redirect to a network share, for example s:\sims\connect.ini.
S:\sims\Connect.ini will be a mapped drive and set by the user’s network login script. This makes it a bit more difficult to deal with accessing multiple schools' systems but the norm of a single school per user works well using this technique. Care must be taken to ensure that any login script finishes executing before any application runs.
Partner applications need not be dependent on connect.ini. Command reporter for example takes /Server and /Database parameters which allows a partner application calling it to script multiple database extracts from one application loop.
Typically a SIMS API application cannot access multiple database from a single application call. However if a partner provides an application say ‘DoDataExtract.exe’ it can be invoked by a loop in the calling application in a similar way to command reporter above.
For partners running applications linking to SIMS Business Objects, the login process can take a server name and database name which is an alternative to re-pointing the mapped drive.
Security
Whilst it may be tempting to create a user ‘MyCompany’ with a fixed password of ‘Secret’, this would not stand scrutiny and should not be acceptable to a school or host. It is much better for the school to provide a user and password where SQL security is in use.
NT Authentication would be more secure and so ‘Domain\MyCompany’ could be granted access by the school and the password can be managed by Network Admin.
Other Considerations
Closed Systems
The TPC offers access to applications using SIMS APIs / FMS APIs. They would however not allow access to the SQL server directly.
ESS does not support direct SQL access whether on a TPC or not, but specifically on a TPC these calls will be prevented for security reasons.
Accreditation
We now have detailed telemetry for utilisation on SIMS Connected. We are reaching out to existing TIs where this telemetry shows inefficiency or high demand and will offer to assist with optimisation. Applications that are not deemed viable 'SIMS Connected' will no longer be accreditable. Further details to follow.
Conclusion
We look forward to working with our partners to improve the performance / efficiency of data exchange in order to give a good experience to mutual customers regardless of whether they be SIMS Connected schools or locally hosted.