Toronto:Design extensibility

From Toronto

Jump to: navigation, search

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/

[edit] Notes and references

  1. http://groups.google.com/group/votorola/browse_thread/thread/ccc5f17ec83f2ad8
  2. http://groups.google.com/group/votorola/browse_thread/thread/6605b98997a7ae7d
Personal tools