Roger de Coverly wrote:Angus French wrote: Paolo's API idea:
API is a jargon term understood by system developers.
In English what does it mean for how systems would operate?
Introducing an API usually does not fundamentally change what you can do but defines a standardized way for different systems to do that in an automated way; more important, allows any new/existing system to be able to perform that function if compliant to the API.
In the case in hand, the easiest way to implement the communication between the new ECF league management system (LMS) and the grading server (GS) is to define a communication protocol of some sort, without telling anyone how it works. This has the major advantage that you do not need a lot of upfront thinking for that communication protocol, you can modify things as you go along and you do not need a lot of formal documentation. The drawback is that you end with only one ECF LMS that supports that direct communication and you need to spend a lot of cash for developing a full new system.
When defining an API, you spend a lot more time upfront defining the communication protocol between the LMS and the GS, then you produce detailed documentation and possibly sample code using the API. The advantage is that, once the GS supports that, any existing/new LMS can be modified to support it and you do not need a proprietary ECF LMS to ensure this communication is flawless.
Using such an API, whether the LMS pushes data to the GS every day or only every six months (or whether the GS pulls data from registered LMS instances) this is the "what to do" part of the action and remains to be decided. The API allow you to solve the issue of "how to do" such a what.
PS: nothing stops the ECF to both develope a new ECF LMS and at the same time publish the communication APIs for other LMS to use as well. You have to wonder though what's the ECF is trying to achieve, what are the priorities and what are the available resources.