I have been doing some thinking on the ScriptEngine. Actually a whole lot of thinking, and planning. Lots of alien squid-like drawings in my notebook.
Trying to run through the process: Idea, required elements, architecture and finally simplification.
The idea is simply: Moving ScriptEngine to a separate daemon, independent from the region.
This has several big advantages and of course some drawbacks.
- Script does not need to be moved between regions when object it is inside does.
- Scripts can run on separate servers and even clusters of servers, offloading the main region server.
- Script source (and binary) can be secured by running it from a trusted server. Even makes it possible with script rental. You can run your own ScriptEngine.
- We can add the option to move script between regions as usual to avoid network lag on time-critical scripts.
- It is easier to write alternative ScriptEngines, developers are not restricted to .Net.
- ScriptEngines can be more complex and allow bigger and more complex scripts than the region would by default.
- Regions can be more secure as they do not have to execute scripts locally.
- Each region may have to speak to many different scriptengines.
- Network latency will affect script performance.
- Script reliability is much lower.
- Various problems related to authentication.
Of course all the work done with implementing LSL commands so far will survive. That is independent of this rewrite.
I’ll be back with more as it unfolds.