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)
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
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
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
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
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
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
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.
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
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
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
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.
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.
Module's MODULE Element
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.
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.
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.
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.
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).
STEP Element DefinitionThe STEPS/STEP element contains all the data to define that step's Questions and Answers.
QUESTION Element DefinitionThe QUESTION element contains all the data to define a step's Question (and contains that question's answers).
ANSWERS Element DefinitionThe ANSWERS element contains the data to define a question's answers.
ANSWER Element DefinitionThe ANSWER element contains the data needed to define a question's answer.