EQUIP Component Toolkit (ECT) To Do
last updated 2004-07-30.
Key:
- W needed for first
webstart releae
- C needed for RCA
curious home explorations (also implies W)
Documentation
- All source files need javadoc formatted comments (present in some
already).
- Tutorial docs?
- etc. :-)
Release
- W Canonical set of core
components [kind of]
- W Sample networks and
arrangement [getting there - tar & sxi tutorials/intro/scenarios]
- Wiki [not done], mailing list [done] and/or similar community
support for sharing
arrangements, components, etc.
Licencing
- Choose open source licence
- Release on that licence
- track/prune non-licencable elements
- SourceForge?!
Infrastructure
Bugs
- Per-component persistence...does not atomically transition from
one backup to another, i.e. there
is a period of time during the writing of persistence files in which a
container or host failure will leave an unreadable (typically
truncated, i.e. partially written) persistence file.
- It is still a VERY BAD THING to cross-link component properties
and then re-activate them all at once, e.g. from persistence recovery.
Probably unavoidable deadlock possibilities. Could consider making
property add events (as well as updates) queued.
- Web start container hard-coded hack to only be able to start java
container.
Desirable features
- Standard recording facility (?extension to configuration
management?) for (a) dataspace state and events [=File backed dataspace
logs!] (b) internal component
state and events (c) media (e.g. captured video frames, audio packets).
- Extensible framework for coercion to target property type on set
for non-primitive types, e.g. URL or image to float, etc.
- It should be possible to mark some properties as being propagated
as non-mandatory
[note - discovered that all updates are currently unreliable by default
- beware - 2004-07-13 cmg] updates in EQUIP, specifically those which
may change
very rapidly and for which intermediate values may be missed without
problems. This should
improve the responsiveness and resilience of the
system under load. Suggestion: use custom extension of Bean Property
Info descriptor. Non-mandatory events which change rapidly will
lose intermediate values, e.g. triggers! beware!
- WebStart version
- should show allow installation auto-start to be
configured.
- should run automatically as a service (Windows)
or equivalent.
- ...on
stop container or installation... containers should do persistence
at this point.
- should allow dataspace master a clean shutdown
(to flush persistence) on installation terminate.
- (ComponentExporter) should create new component instance(s) in
a separate thread (remember to resync & check that request still
exists once successfully created and before actually exporting).
- should have an extra persistence indication mechanism to
ensure short-lived components are still persisted
- Something like configurations but transferable between
installations, i.e. templates.
- Allow a partially configured component to be exposed as a
capability (e.g. SimpleVideoProcessor with particular config).
- Move processing import facility to a separate tool, or...
- [after Processing support v.1] support Processing jars directly
as a
component type in ExporterGUI/Container.
- C? Timeview can't cope
with high update rates, i think (was trying a simple video network and
the whole system bogged down).
- Container GUI:
- add label, e.g 'Capabilities'
- Host manager GUI:
- reorder tabs: new -> dicovered -> known
- add restart with download updates options
- 'secure' export of secret, e.g. via memory stick?!
Tools
- (more) New browser(s) and configuration tools that are pretty and
easy
to use.
- Easy link from component browser to web browser [improved through
set value and copy]
- Structure running components to show parent/child hierarchy
- C Timeview version to
work on File backed data store logs.
- Dataspace browser
does not terminate on close (but consider embedded use with
DataManager).
- Log overview/directory/browser ...-->?? replay tool
Current Component Issues
- Bar Code 1D reader is pretty useless in its current form. Does
not read reliably or consistently.
- Component ...X... does not stop. [insert component name] EZIO?
- Nice if video framework image URLs allowed click to give position
in image coordinates for use in Region processor.
- ARToolkit video component missing important outputs - confidence,
image-space position of glyph.
Desirable Components
A-list:
- Input for Java version of the Phidgets Manager and device and
sensor/etc.
components comparable to the C# version using the Phidget Java binding
[still waiting on support from Phidgets- RSN?!].
- TV remote control input/output (with supporting hardware), to
allow system to control TVs, etc., and to be controlled/affected using
a regular remote control. [awaiting parts]
- Bluetooth device monitor [stalled (was Stripes)]
- Motes proxy components [partial version exists - jan].
- URL cacheing/uploading components (a) on infrastructure server
(container server? 'real' server, e.g. tomcat?) [tom??] (b) on remote
public server (via webdav??)
B-list:
- Platform-independent media viewer?? c.f. dynamo media viewer
(Windows-specific)
- Simple image URL viewer?
- Reminder, e.g. of birthdays, appointments (see also ACCORD
reminder).
- Calendar, shared?
- EQUATOR AudioChair interface component(s).
- RSS feed source. [started by tom]
- RSS feed custom client. [probably by tom]
- Email monitor (e.g. unread messages, etc.)
- Ticker Tape??Coffee Biff?? etc.
- Printing and Scanning components - moving documents between
physical and digital.
- Data logger/aggregator, collects and outputs time-series data,
e.g. light level over day, e.g. as CSV [consider processing applets]
- Graph/display, to show output from logger/aggregator [consider
processing applets]
- Contect-aware camera, records annotations with image: who, what,
where, when.
- Mobile display - PDA/phone - for video, images, etc.
- Biometric inputs - fingerprints, etc.
- LEGO Mindstorms
History/done
- Build file needs javadoc target. [2004-07-12 cmg]
- WebStart installation dataspace should be persistent (symptom:
restarting the dataspace loses all component requests and links).
[2004-07-12 cmg]
- Container persistence of sub-component GUIDs for sub-components
and their properties (symptom: after restarting a persistence container
any links to/from sub-components are apparently missing (since they
link to/from the old property GUID)). [2004-07-13 cmg]
- Auto-export of capabilities from the container (present in
Webstart version already). [2004-07-12 cmg]
- WebStart version should show [a little] current status of host,
and give
access to browser(s)/GUIs... [2004-07-12 cmg]
- Automatic coercion to target property type on set, e.g. link a
string property to an int property causing the target to parse the
string if it is a stringified number.[basically only for numbers, char,
boolean and toString - 2004-07-13 cmg]
- Some attempt to enhance synchronization to avoid
races/livelock/deadlock. Note: all property item changes will now be
asynchronous compared to the property change event that triggered them.
[2004-07-13 cmg]
- Save and restore configurations, i.e. back up dataspace,
per-container and per-component persistence information so that the
same arrangement of components can be restored at a later time.
Currently only the state of the system at the present time is
persistent (over partial or complete system failure). [doesn't do
anything about internal component persistence, but i think that is ok
2004-07-13 cmg]
- Component browser adding 'delayed' properties not working (at
least once) - delayed properties not shown in component tree
[2004-07-14 cmg]
- Added Set Value Popup to browser (context menu on Property node
in running component tree) [2004-07-14 cmg]
- Occasional deadlock (?) when accessing video processor embedded
web
server for image viewing or configuration (symptom: capture device
stops printing frame #s indicated stopped or stalled) [hopefully fixed
2004-07-14 cmg]
- Deadlock is possible, e.g. video capture thread emits frame,
locking
capture component and chain of handler components, one of which emits a
property change event which requires the ContainerManager lock to
progress. Concurrently, a change on a linked (source) property changes,
acquires the ContainerManager lock (first), and then attempts to set
the target property on one of the locked components. Resolution:
property change event handler must be able to make progress (with
required sync. access to internal information about bean property
items) concurrently with in-progress property change and set.
[2004-07-14 cmg]
- Vision framework components (processor, average) stop correctly
[2004-07-14 cmg]
- Allow (user) naming of capabilities, components [in progress],
?links, e.g .using RDF statements with property dc:title shared
persistently in dataspace (needs support from browser(s) and config
manager) [2004-07-14 cmg]
- Vision framework capture components crash (JVM crash) if stopped
and restarted. This seems to be a JMF issue?! A messy workaround would
retain the internal stuff but just make the surface bean stuff go away.
[messy workaround done 2004-07-14 cmg]
- ? Restarting a persistent container with a visionframework chain
does not always correctly set the destination sink value. (may be a
more general race condition with initial values) [possible fix;
awaiting confirmation/replication - 2004-07-13 cmg]
- Security needs implementing in webstart (shared secret)
[2004-07-15 cmg]
- WebStart access to
component updates site(s)/facilities with download of components, DLLs,
etc. [2004-07-15 cmg]
- WebStart handling a JAR
and DLL dependencies of components (load,
path)[2004-07-15 cmg]
- Webstart file cache
should remove old un-needed files.[2004-07-15 cmg]
- WebStart version
should show [more] current status of host, ...containers to be stopped
and restarted [2004-07-16 cmg]
- Logging/console
output fixup - for diagnostics/debugging (to file?) [2004-07-15 cmg]
- Add config manager to
webstart [2004-07-15 cmg]
- After joining a newly
discovered installation, then terminating it, the BootFrame still shows
it as discovered, not known. [2004-07-19 cmg]
- If a webstart slave is
(auto)started without its master running the installation is started
but the container is not. This is no good: it should either stop
installation until discovered, or start container as well so that it
will (re)try connect to DS. [2004-07-19 cmg]
- Bean Shell Script
component should have a property that can be used to force it to
execute and also make it stop when it has gone into an infinite loop.
[2004-07-19 ted]
- At least once I used
configuration manager to clear and re-make a video processing network,
and the simple video processor did not recover its configuration. Not
sure if this indicates a more general problem. [fixed - persistence
startup update issue - 2004-07-19 cmg]
- ?Once terminated
installation (with component browser running - might be significant)
and the host manager did not reappear. [not seen this again for a while
- cmg]
- Add timeview (live
and logged) to webstart. [2004-07-19 cmg]
- Fix timeview time
stamps to be something useful (e.g. for
replaytool) [2004-07-19 cmg]
- Timeview should show
given (RDF) names. [2004-07-19 cmg]
- Timeview should allow
property names to be specified (for output to log files) (perhaps using
RDF mechanism). [2004-07-19 cmg]
- Timeview should cope
with any height of tracks (currently fixed-size panel - tracks lost at
top). [2004-07-19 cmg]
- Installation manager
"Dataspace [not] connected" does not change back from "...not..." to
"...connected" when master is restarted. (not async???) [2004-07-19 cmg]
- SmartITs factory components do not stop. [2004-07-20 cmg]
- Video averager does not reflect change in threshold property in
(persisted) config property. [2004-07-20 cmg]
- Java version of the Phidgets Manager and device and sensor/etc.
components comparable to the C# version using the Phidget Java binding
[NB input only, at present - waiting on support from Phidgets 2.0 input
- 2004-07-20 tom hart]
- Various component browser consistency and link view enhancements
[2004-07-20 cmg]
- We need an easy way to
build the webstart verion(s). [2004-07-20 sxi]
- ...per-container persistence
does not atomically transition from one backup to another, i.e. there
is a period of time during the writing of persistence files in which a
container or host failure will leave an unreadable (typically
truncated, i.e. partially written) persistence file. [2004-07-20 sxi]
- Use property values
serialised in container persistence file to
initialise writable properties on non-Persistable components (this
would avoid the need to implement Persistable if a component exposes
all of its state as properties). [2004-07-21 cmg]
- Dynamo media viewer does not stop or re-start. [2004-07-21 cmg]
- Clean shutdown/restart option for containers; Webstart version
should allow containers a clean shutdown (on
stop container or installation), ... [2004-07-21 cmg]
- Dataspace persistence (a) should use write to temp and rename
strategy to avoid exposing incomplete checkpoint files (b) should catch
and log/ignore IO exceptions during reading of event log (which may be
truncated) [2004-07-26 cmg]
- Webstarted container
hangs on attempt to instantiate a
component class which requires (not exactly sure which) loading of a
native library and/or access to another jar file (which may do the
same), i.e. video capture, media viewer, phidgets. [2004-07-28 sxi]
- Container persistance
file path to component jar not always
matched by actual jar on restart (observed when i used webstart version
2004-07-21 ish, logged in as local admin). [presumed fixed 2004-07-23
cmg]
- Installation GUI: show status of download/update; add 'export
secret' GUI option (just display in text field for
now?!) [2004-07-30 cmg]
- Dynamo media viewer hangs on startup in webstart version (new
feature today :-( ). [2004-07-28 sxi]
- Audio capture and processing framework comparable to the video
framework, e.g. to detect noise level from a microphone. [2004-07-30
cmg]
- Bean supporting MIT's Processing language for display components.
[chris 2004-09-01]
- Video plus audio, video-only and audio-only streaming and display
components to support media-server functionality, serving media from
files. Possible channel abstraction? Could use JMF RTP support. Option:
video framework transmitter component, e.g. for remote video
monitoring. [tom has done an initial version]
- RFID Tag Readers (various) [ted TagIt 2004-09-01]
- SMS Gateway [shahram 2004-09-05]
- X10 controller (serial or USB??) [chris 2004-09-19]