23
Navigation Framework Navigation Framework using CF using CF Architecture for a Client- Architecture for a Client- Server Application using the Server Application using the open standards of the Web open standards of the Web presented by Kedar Desai Differential Technologies, Fairfax, VA

Navigation Framework using CF

  • Upload
    geordi

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Navigation Framework using CF. Architecture for a Client-Server Application using the open standards of the Web. presented by. Kedar Desai. Differential Technologies, Fairfax, VA. Navigation… a new paradigm. Non URL (menu based) navigation ‘FORM’ based application control - PowerPoint PPT Presentation

Citation preview

Page 1: Navigation Framework using CF

Navigation Framework using CFNavigation Framework using CF

Architecture for a Client-Server Application Architecture for a Client-Server Application using the open standards of the Webusing the open standards of the Web

presented by

Kedar Desai

Differential Technologies, Fairfax, VA

Page 2: Navigation Framework using CF

www.differentialtech.com

Navigation… a new paradigmNavigation… a new paradigm

Non URL (menu based) navigationNon URL (menu based) navigation ‘‘FORM’ based application controlFORM’ based application control ‘‘Queue’ and ‘Keys’ philosophyQueue’ and ‘Keys’ philosophy

Page 3: Navigation Framework using CF

www.differentialtech.com

What is Navigation?What is Navigation? User’s perspectiveUser’s perspective

– Ability to use the system in the most effective Ability to use the system in the most effective manner.manner.

Designer’s perspectiveDesigner’s perspective– Ability to manage or direct the course of the Ability to manage or direct the course of the

user using the system.user using the system.

Page 4: Navigation Framework using CF

www.differentialtech.com

What is this ‘Client-Server’ What is this ‘Client-Server’ application?application?

Two – tier applicationTwo – tier application Rich GUIRich GUI Thick client built using tools like, Thick client built using tools like,

PowerBuilder or Visual BasicPowerBuilder or Visual Basic MDI interfaceMDI interface Interacts with a database at the backendInteracts with a database at the backend Deployed using executablesDeployed using executables

Page 5: Navigation Framework using CF

www.differentialtech.com

Associated problemsAssociated problems

Maintaining a code Maintaining a code basebase

DLL hellDLL hell Distributing an exeDistributing an exe Maintaining help filesMaintaining help files Difficulties in adding Difficulties in adding

new functionalitynew functionality

Page 6: Navigation Framework using CF

www.differentialtech.com

About the ApplicationAbout the Application

Justice Information SystemJustice Information System Psuedo three tier architecturePsuedo three tier architecture Has a look and feel of a standard windows Has a look and feel of a standard windows

applicationapplication

Page 7: Navigation Framework using CF

www.differentialtech.com

Application architectureApplication architecture

Database

ApplicationServer

IE5.0, HTML, JS, CSSSybase database

ColdFusion 4.5

Page 8: Navigation Framework using CF

www.differentialtech.com

ChallengesChallenges

200+ database tables200+ database tables 500+ functions500+ functions Database drivenDatabase driven Transaction intensiveTransaction intensive

Page 9: Navigation Framework using CF

www.differentialtech.com

Application frameworksApplication frameworks

Two main frameworksTwo main frameworks– NavigationNavigation

» NavigationNavigation» Error handlerError handler» Business Rules engineBusiness Rules engine

– SecuritySecurity Each framework is an independent unit.Each framework is an independent unit.

Page 10: Navigation Framework using CF

www.differentialtech.com

What is so great?What is so great?

Uses ColdFusion.Uses ColdFusion. Enables parallel development of user Enables parallel development of user

interface and application logic.interface and application logic. Gives a look and feel of a standard Gives a look and feel of a standard

windows application.windows application. Extends ColdFusion’s error handler.Extends ColdFusion’s error handler. Separates the GUI from the business logic.Separates the GUI from the business logic.

Page 11: Navigation Framework using CF

www.differentialtech.com

Features of the FrameworkFeatures of the Framework

Driven by keys.Driven by keys. Works on a queue architecture.Works on a queue architecture. Maintains state in Session variables and Maintains state in Session variables and

allows multiple sessions from one client allows multiple sessions from one client machine.machine.

Page 12: Navigation Framework using CF

www.differentialtech.com

Message ModuleMessage Module

Provides the ability to maintain messages in Provides the ability to maintain messages in the database.the database.

Functions include:Functions include:– Search for messagesSearch for messages– Add, Modify and Delete messagesAdd, Modify and Delete messages– View specific details about messagesView specific details about messages

Page 13: Navigation Framework using CF

www.differentialtech.com

DemoDemo

Page 14: Navigation Framework using CF

www.differentialtech.com

Function ArchitectureFunction Architecture

Five ‘.cfm’ files per Five ‘.cfm’ files per functionfunction– Form pageForm page

» Main cfmMain cfm» OnError cfmOnError cfm» CFForm cfmCFForm cfm» Presentation cfmPresentation cfm

– Action pageAction page» Action cfmAction cfm

Hidden fieldsHidden fields– Function IdFunction Id– Page IdPage Id– Target Function IdTarget Function Id– Main cfm file nameMain cfm file name– OnError cfm file nameOnError cfm file name– Action cfm file nameAction cfm file name

Page 15: Navigation Framework using CF

www.differentialtech.com

Navigation ControllersNavigation Controllers

Form controllerForm controller– Opens the pageOpens the page

Action controllerAction controller– Fires the actionFires the action

Error controllerError controller– Handles errorsHandles errors

Business Rules EngineBusiness Rules Engine– Handles business rule Handles business rule

validationsvalidations

Keys/Queue controllerKeys/Queue controller– Maintains the keys and Maintains the keys and

queuesqueues

Page 16: Navigation Framework using CF

www.differentialtech.com

What are keys?What are keys?

Every function has a set of input and output Every function has a set of input and output keyskeys

A key is a value that fetches data to be A key is a value that fetches data to be displayed on the pagedisplayed on the page

If no keys exists, the default function is If no keys exists, the default function is opened.opened.

Page 17: Navigation Framework using CF

www.differentialtech.com

What is a queue?What is a queue?

Maintain information about the activities Maintain information about the activities that the user wants to perform.that the user wants to perform.

Works on FIFO logic.Works on FIFO logic. Two typesTwo types

– Function queuesFunction queues» store the function id’s in a queue.store the function id’s in a queue.

– Data queuesData queues» store the keys in a queue.store the keys in a queue.

Page 18: Navigation Framework using CF

www.differentialtech.com

User selectsfunction

ABC frommenu

Open Main cfmfile of function

ABC

Get the keysfrom the Data

Queue

Do Keys forfunction ABC

exist?

Open On Errorcfm file of

function ABC

Open CFFORMcfm file of

function ABC

OpenPresentation

cfm file offunction ABC

Does DefaultTarget exist forfunction ABC?

Add functionABC to

FunctionQueue

FORMController

Error Controller

Open ABC

Open Default target of ABC

YesNo

No

Yes

2

0

1

3

4

5

Show Errorto User

Displayfunction

ABC to User

Page loading processPage loading process

Error propagation is 5-4-3-2-1-0

FORM Controller Main cfm file

Page 19: Navigation Framework using CF

www.differentialtech.com

Action processing logicAction processing logicUser

clickedOK (save

data)

Action Controller Fire the action ofcurrent page

Business RuleEngine

Put keys in DataQueue

Does TargetExists?

FORM Controller

Do functionsexists in

Function Queue?

Presentnext

function touser

NoYes

Yes No

Business RuleErrors?No

Error ControllerShow

Error toUser

Yes 3

21

0

Open the first Function inQueue

Open the Main Page

Open the target

Action Controller

Error propagation is 2-1-0 or 3-0

Page 20: Navigation Framework using CF

www.differentialtech.com

FeaturesFeatures Secure accessSecure access Centralized action and form pagesCentralized action and form pages Centralized error handlerCentralized error handler Everything is a custom tagEverything is a custom tag Complete isolation of logic & presentation Complete isolation of logic & presentation Supports version control and independent Supports version control and independent

developmentdevelopment F5 (refresh) works as in a browserF5 (refresh) works as in a browser

Page 21: Navigation Framework using CF

www.differentialtech.com

Points to ponderPoints to ponder

Browser back and forward buttons a Browser back and forward buttons a problemproblem

Custom tag directory cannot be usedCustom tag directory cannot be used Not much use for Application.cfmNot much use for Application.cfm

Page 22: Navigation Framework using CF

www.differentialtech.com

Productivity metricsProductivity metrics

Built in under three monthsBuilt in under three months A team of five and churning out a function A team of five and churning out a function

every two days.every two days.

Page 23: Navigation Framework using CF

www.differentialtech.com

Visit us on line at www.differentialtech.com

or write to me [email protected]@hotmail.com