EQUIP refactoring notes
Chris Greenhalgh, 2004-12-20
Introduction
The design goals for EQUIP have shifted over time. In its first version
it is something of an over-arching and all-inclusive framework, with
IDL, code loading, etc. Over time this has shifted to empasise ease of
use for both programmers and users. For some forms of use this is
supported in ECT through its hosting of standard components and
provision of GUI tools. However this still leaves ECT in a
framework/hosting role. In addition to this we wish to consider easier
use of EQUIP/ECT from non-framework applications across a range of
languages and platforms, e.g. C/C++ applications (such as Chromium
and/or OpenGL applications), C# applications, applications on less
capable platforms (PDAs, phones).
Goals
- Easy to learn for progammers
- small, self-contained APIs
- Easy to integrate for programmers
- easy data-type mapping/specification
- API/library available on a range of languages and platforms
including C#/Windows unmanaged C/Windows, Java
- wire-protocol standardised and relatively simple to implement
against for a new platform
- flexible threading options (including very simple/no internal
threads)
- flexible communication options (including very simple, e.g.
over HTTP for phones)
- works with firewalls, NAT, etc.
- Easy to build/extend
- Easy to add value
- flow control/management
- logging, record & reuse
- state management
- consistency management
- persistence
- tool support
- configuration/deployment support
- helps to make reusable libraries/modules/services
- existing set of reusable services/modules/libraries
- Backward compatibility?!