Toronto:Design extensibility
From Toronto
This page will describe how the design of Votorola may be extended.
Contents |
[edit] Cross-domain architectural
This really should come under #Domain architectural. But Votorola is perhaps the only engine that currently supports this. We're a pure voting engine, as a rule we don't integrate with other media locally.
So we interface remotely with third-party media. Currently the big ones are drafting (like wikis or Google Docs) and discussion (mailing lists, forums). These can all be seen as extensions of Votorola, because we depend directly on them. New ones may be added, of course. We expect to interface with many other domains, in future.
[edit] Domain architectural
Mostly cross-vendor macrocomponent frameworks related to voting functions. Mostly network protocol APIs. This includes all the stuff we're just starting to talk about, for example in the list.[1] [2] We don't have any of these open frameworks yet (#1 priority for us).
[edit] Administrative configuration
Votorola is configured via scripts. For examples, grep ".js" here: http://zelea.com/project/votorola/s/manual.xht
Currently only JavaScript is supported. We'll add other languages on demand (not too difficult). https://scripting.dev.java.net/
[edit] Non-Java coding
By direct access to data and files. A voting engine is nothing but a database/filebase in a "halo" of voter UIs (Web, mail, command line) and admin tools (vocount, volist, etc.). The UIs and tools are documented in the main sections of the manual: http://zelea.com/project/votorola/s/manual.xht
New UIs and tools may be added to the halo as extensions, or alternatives. They needn't be written in Java. Java programmers have the advantage of being able to easily reuse Votorola's library code. Others can either duplicate it (where needed) or link into the native Java. (There might be a few Java dependencies to factor out of files, and so forth. Nothing too difficult.)
[edit] Java coding
This the trivial case. Just work within the existing Java codebase. http://zelea.com/project/votorola/a/
