UIT2201: CS & the IT Revolution
Class Software Project (Fall 2003)

IDEA Systems Architecture (Sp2003)


This is the sample software architecture used for IDEA (Spring 2003).

Architecture:

The following architecture has been carefully designed (in Feb 2003) after consultation with my graduate students, Francis Ng and Chong Ket Fah. This architecture is designed so that each of the four main components (Controller, GUI, DBMS, and Feature-Engine) can be independently developed after each team have understood the idea behind the architecture.

        IDEA           IDEA 
        Page           result
        (submit)       page
           |            ^
           |            |
          cgi          cgi
           |            |
===========|============|=======================================
           |  I D E A   |
           V            |
     +---------------------------------------------------+
     |                                                   |
     |  +-----------------+         +----------------+   |
     |  | IDEAController  |-------->| IDEAGUI        |   |
     |  |                 |         | Component      |   |
     |  +-----------------+         +----------------+   |
     +---------------------------------------------------+
         |           ^
. . . . .|. . . . . .|. . . . . . . . . . . . . . . . . . . . . . . . . . 
         V           |
     +-----------------------+          +----------------+ 
     |                       |          |                |
     |  IDEAFeatureEngine    |--------->|  IDEADBMS      |
     |  Component            |          |  Component     |
     |                       |<---------|                |
     +-----------------------+          +----------------+

================================================================
Brief Explanation:
  1. Web pages served out by IDEA are called IDEA Page (which may be simple html or html with forms and buttons and other stuffs).
  2. Whenever an IDEA page is activated, the request is send to IDEA system for processing (via cgi). The IDEA system should "process" the web request, computing whatever it needs (using the IDEAFeatureEngine) and returns a new IDEA Page that will display the "outcome" (or "result") of the web request.
  3. The result IDEA Page may also contain Forms or Buttons or menu for other action.

  4. In order to reduce the inter-dependence of the various subsystems, there are four components:

  5. Communication APIs: (Being cleaned up....) When calling the IDEAFeatureEngine function, it sends a code that contains information on the parameters of the web request, the function to be called, the sub-system that it belong to, and so on.
    The output will also contain a list that includes the above AND the output generated.


Sample Codes:

A sample (mockup) has been written by Francis Ng. I have provided some explanatory notes:


UIT2201: CS & IT Revolution; (Fall 2003); A/P Leong HW