We are re-architecting the RAFT application to accomplish the following:

  1. Make it easier to add new features
  2. Make it possible to unit test the application
  3. Make it possible to functional test the application
  4. Make it easier for new developers to understand and work on the code
  5. Make the code more modular
  6. Prove that a modular, extensible skeleton based on a known JavaScript MVC framework (Can.js in this case) can make application development fast, simple, repeatable and manageable.
  7. Try to discover the required documentation needed for a software development project: what is needed for project management, requirements, design, development, testing, and help.

The RAFT application basic security configuration and application structure is:

Security is initiated by sending users from the app to a Shibboleth login. If the user successfully authenticates, they are routed to a php file that begins a RAFT session and authenticates every subsequent call against the Shibboleth token. After that, every AJAX and http call is routed through that php session and checked for the Shibboleth token. If it is not there or has expired, the call is refused. Every 10 seconds, the front-end makes a "heartbeat" AJAX call to the middle tier. If the database layer is down or the person is not authenticated the heartbeat call will return this message and end the user's session.

  1. 3-Tier View: The html the user sees is coded in a JavaScript single-page-application framework called CANJS (http://canjs.com). This framework is loaded via one page, app.html. That page bootstraps the entire front-end Model-View-Controller framework, which in turn makes AJAX calls to the REST stack.
  2. This middle-tier REST stack is implemented in the php framework called Zend. Zend also internally uses an MVC framework. This middle-tier calls Oracle PL-SQL stored procedures that represent the RAFT back end. RAFT_architecture
  3. Front end setup
  4. RAFT front end configuration


 

  • No labels