Architecture Prototype

Objectives

The Phoenix Architecture Prototype is intended to select, try, and prove architectural concepts, patterns, and components to be used in the data analysis software. The prototype is not intended as a production system.

  1. The prototype will establish an architecture that supports multiple environments:
    • Desktop application
    • Rich internet application
    • Served application
  2. The prototype will include frameworks for:
    • Numerical analysis
    • 2D graphics
    • Persistence
    • Error handling
    • Report generation
    • Data interchange — import of collected data and export of analyses
  3. The framework for numerical analysis will prove support for multiple data analysis methods. The prototype will build out a handful of algorithms, some instructive but not particularly useful, and one intended for eventual use. Each algorithm will include a quality-of-fit metric. Each algorithm will be applied to systolic blood pressure, diastolic blood pressure, and heart rate.
    • Mean line fitting
    • Linear least squares approximation
    • Parabolic least squares approximation
    • One-part parametric cosinor analysis
  4. The prototype will include stubs for several other analysis methods:
    • Two-part parametric cosinor analysis
    • Non parametric cosinor analysis
    • Arterial compliance
    • 7-day summary
    • Cross-spectral analysis
    • Phase identification
    • Phase synchronization
    • Time-varying study of coherences
  5. The prototype will model sphygmochrons as reports.
  6. The effort will include a search for and application of architectural and design patterns.
  7. The prototype will use third-party components. All components will be free and open-source. However, assessment of licenses is outside the scope of the prototype.
  8. The prototype will incorporate the following technologies:
  9. The prototype will address the following components:
    • NetBeans Platform — desktop applications framework
    • Colt — a set of libraries for high performance scientific and technical computing
    • JAMA — a linear algebra package
    • JFreeChart — a graphing library
  10. The development environment will consist of:

The prototype will not address:

  • Performance
  • User interface design
  • Report design




1 Java SE 5 is the current production version of Java. Based on a cursory assessment of Java SE 6, the objectives of the prototype should be attainable with Java SE 5. Because some features of Java SE 6 are desirable and assuming the prototype validates the selection of Java, the system will be migrated to Java SE 6 at the earliest convenience.

2 Subversion is the preferred revision control tool. It works with NetBeans IDE but requires special setup, including that of a Subversion server. It is assumed that the prototype can more easily meet it's other objectives with CVS. If this assumption proves incorrect, CVS will be replaced with Subversion.

This page is maintained by Christopher J. Adams. It was last updated on 11 December 2006.

Copyright (c) 2006 Christopher J. Adams
Copying and distribution of this page is permitted in any medium, provided this notice is preserved.