ESI - Extended Script Infrastructure
system:inmation is a generic industrial real-time information management system, which can be customized in an easy and powerful fashion using the Lua scripting language. The integration with the product core is documented online in inmation Wiki. ESI stands for "Extended Script Infrastructure" and extends the software customization possibilities of system:inmation, based on multiple aspects:
The development of custom scripts is regulated throughout a user and developer community across multiple organizations. This will help creating consistency and reusability of custom scripts. By avoidance of redundant, repetitive solution coding, ESI will guarantee an ever-evolving set of script libraries, of which multiple organizations can use what is required and also contribute to the continual improvement and feature extension of such libraries. The source code consistency will be enforced by a shared GitHub repository. The GitHub repository will be featured in document github.
ESI enforces the integral development of script components, covering function, implementation and documentation. Each library must be written and documented in a fashion which allows the user of one or multiple libraries to call methods of the library in a declarative fashion, thus avoiding any complicated script bodies. The top-down nature of resulting script appliances in system:inmation will also allow for the next level of code automation, external code generators which will be able to fully control executed scripts in an inmation system. This concept will be detailed in document declarative-scripting.
ESI enforces coding standards which will hinder badly written code to enter any production system. The coding standards have to be kept by every contributor to the ESI standard and will be monitored by the ecosystem stakeholders. There is a zero-deviation policy in place, which will simply exclude any violation from the managed code base. The coding standards will be outlined in document esi-coding-standards.
Existing and future ESI libraries are by nature candidates for system:inmation extensions. Only ESI libraries can ever qualify to be integrated with system:inmation’s code base. The evolution workflow from first development of a new library or set of libraries to full system integration and shipment as part of the product release will be described in future document.
ESI will evolve under guidance of the highest experienced individuals (either on the development or approval side) who have built the inmation software and have applied it to various industrial use cases. This group will further ensure the quality and fit for purpose of new script libraries added to the ecosystem. The ESI community and initial roles are listed in document esi-community.
Before you start contributing to the ESI standard make sure you read all the supplemental documentation provided in this repository.