25
Mid Morning Discussion Introduction to the IBIS- Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a Module and where does it fit in How to build a Module (or two)

Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Embed Size (px)

Citation preview

Page 1: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Mid Morning DiscussionIntroduction to the IBIS-Q Front-End System ("Module" Emphasis)

What is the front end

Where does the front end fit in

What is a Module and where does it fit in

How to build a Module (or two)

Page 2: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a
Page 3: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a
Page 4: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Request Module Set Page(url contains selected module set name)

Module Set Page Response

Qu

ery

Ho

me

Pa

ge

Use

r S

ele

cts

a M

odu

le S

et.

Module / Measure Request(url contains selected module and measure)

Module / Measure Response

Confirmation Page Response

Results Page Response

Submit Query Request

Get Query Results Request

Query Servlet(part of the ibisph-view

system on the OIT server).

IBIS-Q CGI Application(stand alone executable

program on the HLUnix server).

SAS Application(stand alone executable

program on the HLUnix server).

Mo

du

le S

et

Pag

eU

ser

sele

cts

mod

/mea

use

.M

od

ule

Pa

ge

Use

r b

uild

s qu

ery.

Co

nfi

rma

tio

n P

age

Use

r se

lect

s pr

oce

ed (

els

e a

uto

sub

mit

pre

fere

nce

).

Re

sult

s P

ag

eU

ser

sele

cts

new

filt

er

and

d

rill

dow

n gr

oup

ing

.

Drill Down Request(url contains the new filter criteria

and new group by dimension)B

uild

re

que

sted

mod

ule

set

pa

ge b

ase

d o

n th

e

“mo

dule

_se

t.xs

lt” a

nd th

e

spec

ifie

d m

odu

le_

set

nam

e.

Bu

ild r

equ

este

d m

odul

e p

age

bas

ed

on

mod

ule

.xsl

t a

nd

nam

e/m

eas

ure

.

Bui

ld q

uery

co

nfirm

atio

n pa

ge

base

d on

su

bmit.

xslt

and

use

r’s q

uer

y se

lect

ions.

Get

dat

a fr

om C

GI,

retu

rn

resu

lts b

ased

on r

esul

t.xs

lt.

XML Data is returned(data encapsulated within XML tags and

streamed back/returned)

Par

se n

ew

filte

r a

nd

grou

p

by v

alu

es,

con

firm

atio

n

pag

e / d

o s

ubm

it lo

op.

Confirmation Page Response(same process as

defined above - loop)

Pa

rse r

eque

st,

build

SA

S

pro

c, c

all

SA

S,

retu

rn X

ML

stre

am.

Query Request(url contains the filter criteria and group by dimensions)

Output data file created

SA

S r

uns

pro

ced

ure

and

cre

ate

s o

utpu

t fil

e.

Call/Execute SAS(command line contains

procedure filename to be ran)

IBISPH Query System---------------------------

Query Request Sequence DiagramIBIS Query

System Request Sequence Diagram

Page 5: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

HLUnix (Apache Web Server)

ITS Java Application Server (iPlanet)

IBIS-PH System Architecture

IBISQ CGI Application

IBISPH Data Administration System(ibisph-admin)

User / ClientIndicator Profile Data Maintenance

SAS Application

SAS database

User / ClientIndicator Profile Type Requests

User / ClientCustom Queries

OIT IBIS Server (Tomcat)

ITS Oracle database Server

HL_IBISPH_ADMIN_OWNER

IBISPH Public Presentation System(ibisph-view)

XSLTs. One foreach “type” of

requested output

XMLs. One foreach output page.

Control files

SAS program / procedure file

SAS output data file

Page 6: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

This Morning's Road MapSystem Documentation Overview

Query System Diagram Review

Query Front End Components

How the Front End Works

Query Front End UI File Types

Query Module File

Introduction to XML

Review Sample Query Module XML

Page 7: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

IBIS Query Documentation PacketDiagrams

Overall High Level System ArchitectureQuery System ArchitectureQuery System Request SequencesQuery Module Set RequestQuery Module RequestQuery Submit RequestQuery Get Results Request

Query User Interface XML Types OverviewQuery Module XML Element Dictionary

Page 8: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Other IBIS Query Documents

IBISQ Application Parameters DictionaryXinclude Overview

Documentation Packet Cont.

IBISQ Backend File DefinitionsIBIS-IRV Query Front End File Definitions

PopMain.xml – Example Module XMLModule FAQs and Troubleshooting.doc

Other Files of Interest

Page 9: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

HLUnix (HP running HPUX)

Module_set.xsltModule_set.xslt

OIT IBIS Server (Compaq PC running Linux)

IBIS Query System – System Architecture

`

PC / Mac / etc

2 U

Compaq Proliant

IBISQ CGI Application

Tomcat Application Server Service

Query Servlet

XSLT/XML Transformation Engine

Request Command Handlers

User / Client

Internet BrowserFor selection type pages, javascript is used to control expansion/contraction of steps/questions/answers and for saving user preference cookies via browser cookies.

Module_set.xslt

Browser cookies

Optional user preference IBIS Query selection

cookies

HTML PageResponse

Request(show module set,

show module,submit query,

get query results,drill down)

Get Query Results Request(filters, grouping, config params)

Query Results Response(data records - XML elements)

Module_set.xslt

tomcat/webapps/ibisph-view/xslt/query directory (folder)

XSLTs. One foreach “type” of

requested output

Module_set.xslt

tomcat/webapps/ibisph-view/xml/query directory (folder)

Home type pages, module sets,

module definitions

UDOH LAN

HP xxxxInternet

Query servlet handles all user query requests, builds the CGI app URL based on user’s filters and grouping choices, processes, controls xml and xslt and delivers HTML responses via XSLT/XML transformations

CGI App parses the html request and loads specified configuration file information. The appropriate definition file, label files, are then read and a SAS procedure / program / code is built. This SAS code is then saved to a file.

SAS is called with the just built procedure file specified as a command line argument. A results text file is then created according to the SAS code.

The results file is then read where the data is merged into the XML elements (xml_out#.xml???). These query record results data are then streamed back to the requestor (Query servlet).

SAS Application

SAS database

SAS output data file (module name.dat).

Module_set.xslt

module directory /folder

query.cfg

SAS procedure file

The procedure file contains SAS code which controls which dataset to use, how to calculate the results, and creates a data results output file.

Query servlet passes what XML (file or an in memory document),and which XSLT to apply

func#.def

{var}.lbl

xml_out#.lbl

ibisq_head.xml

ibisq_tail.xml

{dimension}.grp

Page 10: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

IBIS-Q Front-End – ComponentsTomcat Application ServerJava Servlet Controller (named Query)XML Data Files (which includes Modules)XSLT XML to HTML Transformation TemplatesTypical Static Web Content like javascript files, gif images, cascading style sheets.

Page 11: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

OIT IBIS Server (Compaq PC running Linux)

Tomcat Application Server Service

Query Servlet

XSLT/XML Transformation Engine

Request Command Handlers

HTML PageResponse

HTTP Request(show module set,

show module,submit query,

get query results,drill down)

tomcat/webapps/ibisph-view/xml/query directory (folder)

Module Definitions

Query servlet handles all user query requests, builds the CGI app URL based on user’s filters and grouping choices, processes, controls xml and xslt and delivers HTML responses via XSLT/XML transformations

Query servlet passes what XML (file or an in memory document),and which XSLT to apply

Basic HTML Content

(Entry/Home, helps etc.)

Module Set Definitions

Common Module Includes

tomcat/webapps/ibisph-view/xslt/query directory (folder)

Module Definitions

(module.xslt)

Basic HTML Content

(home.xslt)

Module Set Definitions

(module_set.xslt)

Query Confirmation(submit.xslt)

Query Results (result.xslt)

Data Files to be merged

Template Files

IBIS Query System – User Interface

Page 12: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

IBIS-Q Front-End – Basic WorkingsTomcat/Query servlet receives a request from a user/browserQuery servlet invokes a certain set of business rule code based on the user's requestQuery servlet opens the associated request's page template file (think of it as a mail merge)Query servlet opens the appropriate data file and merges content into the templateReturns the merged data page to the user/browser which made the requestUser's browser then displays the page

Page 13: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Query Front End UI File TypesThree Basic Types of User Interface Data Files

HTML Content. Provides basic text information - home or entry page, overview type pages, help type pages Module Set Definitions. Provides a way for the user to navigate to and select a module and measure Module Definitions. Provides a way for the user to define and submit the query to the backend query system.

See the "Q XML File Overviews.doc" for a more detailed discussion on the different file/data types

Page 14: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Query Front End Module OverviewRoot Container Element named "QUERY"Basic Structure Diagram

See the "Q Module Elements.doc" file for a more detailed description of the file's structure and all of it's elements.

Page 15: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Query Front End Module Main XML Elements

Root Container Element named "QUERY"Three Main Types of Data Elements contained within the QUERY Element

Module Definition (MODULE). Used to produce the user's HTML module selection page. Data in this element includes: Overviews, Measure definitions, CGI App control parameters, Step/Question/Answer definitions, and Dimension definitions. Parameters (PARAMETERS). This element contains the user's selections made on the Module page. IBISQ Query Result (IBISQ_QUERY_RESULT). Contains the query results data returned from the IBISQ app.

Page 16: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Module's MODULE Element

Page 17: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

Main MODULE ElementsNAME. Name of the module. This should match the filename sans the ".xml" and path.TITLE. Shown as the browser's page title and is also shown at the top of the page.DESCRIPTION. Optional text which is used for the HTML meta data "description" tag.KEYWORDS. Optional text which is used for the HTML meta data "keywords" tag.

Page 18: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

IBISQ_APPLICATION_PARAMETERS Element

IBISQ_APPLICATION_PARAMETERS. Contains common IBISQ configuration and control element parameters. These are items that the user doesn't need to specify but are needed by IBISQ to function (like: configuration filenames, testing and debugging flags, SAS control flags etc).Each PARAMETER element contains two elements.

NAME. Name of the parameter that will be passed to the IBISQ system.VALUE. The value of the parameter.

Page 19: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

MEASURE Definition ElementA module/dataset can contain different types of dependant values. Each different type of value is called a measure. Examples of a measure are count, age adjusted rate, percentage etc.

Page 20: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

OVERVIEW ElementThe OVERVIEW element contains the text shown at the top of the module page giving the user a basic introduction to what this module is about. Each overview contains sections. Each section can contain a title for that section and the actual paragraph of text.

Page 21: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

DIMENSION Element DefinitionThe DIMENSION elements define the available ways the IBISQ system can group or summarize the queried data values by (examples are year, age group, gender, county, etc).

Page 22: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

STEP Element DefinitionThe STEPS/STEP element contains all the data to define that step's Questions and Answers.

Page 23: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

QUESTION Element DefinitionThe QUESTION element contains all the data to define a step's Question (and contains that question's answers).

Page 24: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

ANSWERS Element DefinitionThe ANSWERS element contains the data to define a question's answers.

Page 25: Mid Morning Discussion Introduction to the IBIS-Q Front-End System ("Module" Emphasis) What is the front end Where does the front end fit in What is a

ANSWER Element DefinitionThe ANSWER element contains the data needed to define a question's answer.