ScriptML™ is a sophisticated application logic transport protocol. It’s a translator, a functionality broker which lets developers and service providers focus on using the right tool for the job every time.
By recognising and understanding the function being requested from a device, ScriptML™ translates this request into any compatible language and executes it at the end point.
The ScriptML™ protocol is a mechanism that allows application logic defined in one node or system, in a particular language, to be transported to a second system and executed there within a completely different execution environment.
For example, a server can place an application logic executable on a device somewhere in the system by accepting the application logic written in a high-level language (e.g. Python or Java), then encoding this high level application into ScriptML™ tokens.
The ScriptML™ protocol delivers the ScriptML™ tokens to a decoder in the target device, then executes the application logic using the device’s native execution environment.
The ScriptML™ protocol avoids creating detailed definitions of complex application frameworks by defining ScriptML™’s syntax, grammar and transportation protocol between server and diverse nodes.
- avoid vendor lock-in
- pick the right hardware and software for every job
- unified, customisable interface for your entire system
- no need to learn a new programming language
- growing community support
- choose your language for each component of your system
- high-level language compatibility (Python, C, Java and many others)
- remote management
The ScriptML™ server provides a complete user-controlled environment with advanced database and graphics processing, all accessed via a web interface.
ScriptML™ servers are available in standalone native Linux nodes, virtual server deployment on most Windows platforms and via cloud-based server instances.
- ScriptML™ scripts input languages: C, Python, Java, C++, Golan and Lua
- dynamic syntax checking based on target IOI capability
- manual or dynamic ScriptML™ deployment
- hierarchical ScriptML™ deployment using an IOI controller
- automatic device capability and registration management
The IOI controller (IOI-C) is an optional middle node in the system that allows multiple IOIs to interact under direct ScriptML™ control.
This allows complex experiments to be created using a diverse set of instruments with the IOI-C deploying and processing ScriptML™ responses from individual nodes.
- hierarchical structure with unlimited IOI interconnection
- hierarchical ScriptML™ deployment with IOI-C aggregating and controlling the IOIs
- data merge, processing and control
The IOI are the endpoints in the system, decoding the individual ScriptML™ scripts.
- ScriptML™ decoder source available for C, C++, Python, assembler and other languages on request
- target processors include most 32-bit CPUs such as ARM and Microchip with 32kByte or more program memory
- 8-Bit microcontroller cores such as 8051 and microchip with 32kBytes program memory or more
- IOI Capability exchange with server for dynamic ScriptML™ syntax checking