a framework approach eases support for the iserver brio mid-atlantic user group 8 th april 2003 socs...

48
A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

Upload: charla-black

Post on 12-Jan-2016

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

A framework approach eases support for the iServer

Brio Mid-Atlantic User Group8th April 2003

Socs CappasQIQ Solutions

Page 2: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

2

Agenda

Where to from here

Our Brio iServer Experience

Introduction

A Framework for Brio JavaScript

Leveraging the Framework

Page 3: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

3

Who is QIQ Solutions?

• Part of the Forge Group– Australian owned and operated since 1996– Offices in Sydney, Canberra and Melbourne

• Forge Research– Developer of Telco Management Systems– Tens of thousands of network devices– 7x24 nationwide operation

• Forge Data Solutions– Business Intelligence implementation

• QIQ Solutions– Business Intelligence Product Development– Brio Solutions Partner

Page 4: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

4

What QIQ does (1 of 2)

• 2000 – Query Intelligence– Harvest BQYs for their attributes– Load attributes into RDBMS– Query and Report on your BQYs

• 2001 – ES Designer– Framework for dashboards– Dashboard building via a Wizard

• 2001 – QIQ Merge– Merge your existing BQYs

• With each other • With our framework

Page 5: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

5

What QIQ does (2 of 2)

• 2002 – ES Architect– IDE for Brio JavaScript

• Color coded syntax, brace match• Break points, Step execution, Peek and poke properties• Search and replace etc

• 2003 – Upgrade Dashboards for iServer– iServer has changed the Brio model– We change our users’ dashboards to match it

• 2003 – Upgrade Data Models– RDBMS changes, data model changes– Replace your old data models with new data models– Make your old Queries work against new schemas

Page 6: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

6

ES Designer and its Dashboards

ES Designer

Wizard

Page 7: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

7

ES Architect - IDE for JavaScript

ES Architect

Page 8: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

8

Agenda

Where to from here

Our Brio iServer Experience

Introduction

A Framework for Brio JavaScript

Leveraging the Framework

Page 9: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

9

Architecture – Pop up dialogsDesigner / Explorer / Insight

QuickView FreeView

Click to start

JavaScript executes locally

Dialog pops-up

Screen is refreshed

JavaScript executes locally

JavaScript executes locally

User answers

Page 10: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

10

Architecture – Helper FormsiServer

Click to start

JavaScript executes remotely

New HTML is sent to browser

JavaScript executes remotely

Click to start

New HTML is sent to browser

Click to start

JavaScript executes remotely

New HTML is sent to browser

Page 11: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

11

Architecture – JooleDesigner / Explorer / Insight

QuickView FreeView

var jo=new JOOLEObject(“param”)

jo.methodCall()

Lets you call and interact with the local operating System

Page 12: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

12

Architecture – JooleiServer

var jo=new JOOLEObject(“param”)

jo.methodCall()

iServer ignores this

Why?

a) It could be an attack on the server

b) the local OS is the server!

c) the local OS may not be Windows

Page 13: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

13

Architecture – Print / ExportiServer

• Browser Print button for screens

• Brio print feature not available

• The server’s resources may be

• behind the firewall

• on another continent

• etc

• Export feature not available via menus but can be implemented using JavaScript

Page 14: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

14

Platform DifferencesiServer

• OnDoubleClick() – not available

• RefreshAvailableValues() broken

• Intermittent firing of OnActivate()

• ActiveSection construct can cause unexpected behavior

• Connected status ambiguous

• No Console Window

• Charts and Pivots on EIS act as hyperlinks always……but there is no back button

• Ovals / round boxes => rectangles

• Multiple spaces are reduced to one

• Browser versions are critical

Page 15: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

15

Who is the Audience?iServer

• Can only be built via EIS / JavaScript…

New Data models

New Queries

New Charts

New Pivots

New Reports

New or existing Local Limits

• The audience seems “casual users”

• Dashboards are essential for this audience

Page 16: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

16

Making Dashboards iServer ready

• Deploy to the iServer

• Run all critical paths and observe the behavior

• If something is broken – find it and fix it – For all platforms

• It took us almost 2 months

• ESD dashboards only have ONE code base – No matter how many dashboards

• We have complex and sophisticated code

• We have our own fully featured diagnostics– We don’t use the Console window so don’t miss it

Page 17: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

17

Agenda

Where to from here

Our Brio iServer Experience

Introduction

A Framework for Brio JavaScript

Leveraging the Framework

Page 18: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

18

Your BQYs & Our FrameworkR

ep

ort

s

Queries

Results

Piv

ots

Ch

art

s

Regular BQY

QIQ Merge / Import feature

Template

Co

re C

las

ses

Fra

me

Cla

ss

es

Ex

tra

Cla

sse

s

Co

re C

olle

cto

r

Run Time

Build Time

Page 19: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

19

Template

Framework Needs Configuration

Runtime Framework

Ex

tra

Cla

sse

s

Co

re C

las

ses

Build Framework

Re

po

rts

Queries

Results

Piv

ots

Ch

art

s

Fra

me

Cla

ss

es

Co

re C

olle

cto

r

Page 20: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

20

Source MasterRuntime

Wizard Driven Application BuildingR

ep

ort

s

Runtime FrameworkQueries

Results

Piv

ots

Ch

art

s

Ex

tra

Cla

sse

s

Fra

me

Cla

ss

es

Co

re C

las

ses

Build Framework

Co

re C

olle

cto

r

Wizard Builder InterfaceEIS - User Interface

Page 21: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

21

Source MasterRuntime

Extend with Plug and Play ComponentsR

ep

ort

s

Runtime FrameworkQueries

Results

Piv

ots

Ch

art

s

Ex

tra

Cla

sse

s

Fra

me

Cla

ss

es

Co

re C

las

ses

Build Framework

Co

re C

olle

cto

r

Wizard Builder InterfaceEIS - User Interface

P-n

-P C

olle

cto

r

P-n

-P C

las

ses

P-n

-P F

ram

e C

lass

Page 22: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

22

Analytic Development Platform

Development Lifecycle with Templates and Components

ES Designer

Templates

Point, Click, Generate

Components

Design, Code, Test

ES Architect

Components

Page 23: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

23

Let us look closely at the framework

Runtime Framework

Ex

tra

Cla

sse

s

Co

re C

las

ses

P-n

-P C

las

ses

EIS - User InterfaceVisible EIS sections

Hidden EIS sections

Back plane

OnStartup(){

discover environment

initialize diagnostics

initialize back plane

initialize core

initialize extra

initialize P-n-P

activate welcome EIS

}

Page 24: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

24

QIQ Diagnostics – our life saver

Page 25: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

25

Pattern for Qiq_trace

OnStartUp()

function Qiq_trace(str,level,component){

if (str.slice(0,3).toLowerCase()==“in ”){

Qiq_arrProcStack.push(str)

}else{

if (str.slice(0,4) ).toLowerCase()==“out ”){

Qiq_arrProcStack.pop()

}

if (Qiq_harTraceLevel[component]>=level){

Sections[“QIQ Diagnostics”].lbxTrace.Add(str)

}

}

ActiveDocument.Qiq_trace=Qiq_trace

Page 26: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

26

Pattern for Component Initialization

OnStartUp()

ActiveDocument.harSections1020=new Array()

for (var a=1;a<=Sections.Count;a++){

if (Sections[a].Type==bqEIS){

if (Sections[a].FrameType.Text==1020){

harSections1020[Sections[a].Name]=Sections[a]

for (var b=1;b<=Sections[a].Shapes.Count;b+){

if (Sections[a].Shapes[b].Type==bqCommandButton){

Sections[a].Shapes[b].OnClick()

}

}

}

}

}

Page 27: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

27

Hidden EIS Section

Buttons Text Labels

Pattern for Components

Control Click

Drop Down Select

StartUp

ShutDown

Pre Process

Post Process

On Activate

On Deactivate

Is System Section

Reset

Others…

Frame Type = 1020

Version Info

Component Info

Tool tips

Language Strings

Other persistent settings

Page 28: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

28

Pattern for functions

CommandButton1.OnClick Event

var tp = this.Parent

Qiq_trace("In " + tp.Name+"."+ this.Name,0,tp)

tp.harConstants=new Array()

function Qiq_onClick(mySection){

Qiq_trace("In "+tp.Name+".Qiq_onClick()", 1,tp)

// regular code

Qiq_trace("Out "+tp.Name +".Qiq_onClick()", 1,tp)

}

tp.Qiq_ onClick =Qiq_ onClick

Qiq_trace("Out " + tp.Name+"."+ this.Name,0,tp)

Page 29: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

29

Sample Initialized Brio Object Model

Page 30: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

30

Visible EIS Section

Scripted Shapes Hidden Text Labels

Pattern for User EIS sections

Picture 1

Picture 2

Button 1

Button 2

Button n

Drop Down 1

Drop Down 2

Drop Down n

Picture n

Text Label 1

Others…

Configuration info for Button 1

Configuration info for Button 2

Configuration info for Button n

etc

txlMe => Template back plane

txlClass => Component

Page 31: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

31

Events on User EIS

Any Control - Any Event()

Sections[txlMe.Text].Qiq_onControlClick(this.Parent,this)

Page 32: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

32

Pattern for Event Broker

function Qiq_onControlClick(mySection,myControl){

switch (myControl.Name){

case (“known id1”) : handler1(mySection,myControl); break

case (“known id2”) : handler2(mySection,myControl); break

case (“known id3”) : handler3(mySection,myControl); break

// etc…

default:

var c=findComponent(mySection,myControl)

c.OnClick(mySection,myControl)

}

}

this.Parent. Qiq_onControlClick = Qiq_onControlClick

Page 33: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

33

Source MasterRuntime

Typical InteractionR

ep

ort

s

Runtime FrameworkQueries

Results

Piv

ots

Ch

art

s

Ex

tra

Cla

sse

s

Fra

me

Cla

ss

es

Co

re C

las

ses

Build Framework

Co

re C

olle

cto

r

EIS - User Interface

P-n

-P C

olle

cto

r

P-n

-P C

las

ses

P-n

-P F

ram

e C

lass

Page 34: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

34

Agenda

Where to from here

Our Brio iServer Experience

Introduction

A Framework for Brio JavaScript

Leveraging the Framework

Page 35: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

35

Code only exists in the Infrastructure

Runtime Framework

Ex

tra

Cla

sse

s

Build Framework

Re

po

rts

Queries

Results

Piv

ots

Ch

art

s

Co

re C

olle

cto

r

Co

re C

las

ses

Fra

me

Cla

ss

es

EIS - User Interface

P-n

-P C

olle

cto

r

P-n

-P C

las

ses

P-n

-P F

ram

e C

lass

System Infrastructure

Page 36: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

36

So when the world changes…

Runtime Framework

Ex

tra

Cla

sse

s

Build Framework

Re

po

rts

Queries

Results

Piv

ots

Ch

art

s

Co

re C

olle

cto

r

Co

re C

las

ses

Fra

me

Cla

ss

es

EIS - User Interface

P-n

-P C

olle

cto

r

P-n

-P C

las

ses

P-n

-P F

ram

e C

lass

System Infrastructure

Page 37: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

37

We can Upgrade it safely

Runtime Framework

Ex

tra

Cla

sse

s

Build Framework

Re

po

rts

Queries

Results

Piv

ots

Ch

art

s

Fra

me

Cla

ss

es

Co

re C

las

ses

Fra

me

Cla

ss

es

P-n

-P C

olle

cto

r

P-n

-P C

las

ses

P-n

-P F

ram

e C

lass

EIS - User Interface

Co

re C

olle

cto

r

System Infrastructure

Page 38: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

38

Template Make

TemplateDev App

Template

Sample and Production

Applications

newsections.dat

1) Code & Test Dev App

2) Generate Template

3) Upgrade newsections.dat

4) Upgrade Applications

Page 39: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

39

Components

Component Make

TemplateDev App

Template

Sample and Production

Applications

1) Code & Test Dev App

2) Generate Component

3) Upgrade newsections.dat

4) Upgrade Applications

ComponentDev Apps

newsections.dat

Page 40: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

40

Template & Component Make

TemplateDev App

ComponentDev Apps

Template Components

Sample and Production

Applications

newsections.dat

1) Code & Test Dev App

2) Generate Template

3) Upgrade newsections.dat & Component Dev Apps4) Upgrade Applications

Page 41: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

41

Computer Literate Developers

The Productivity Advantage

Highly Technical Developers

Analytic Applications

Components and Templates

Analytic Applications

Analytic Development Platform

Traditional EIS Development

Page 42: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

42

Tool and Component Productivity

Hand written Applications no IDE

Pro

duct

ivity

Flexibility

Generated Applications

Component basedGenerated Applications

Hand written Applications with IDE

Page 43: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

43

Benefits of this framework

• Construction productivity– Focus on the business…not on programming bugs– Empower the business users to drive performance– Build dashboards in hours not days and weeks

• Standardization– Reduce the cost of training – standard features

• Saving on maintenance and enhancement– Write no code – maintain no code– QIQ support the framework with new versions of Brio– Leverage QIQ’s JavaScript for your P-n-P components– Maintain only your P-n-P components

• Save on how you keep dashboards current– ES Upgrade automates deployment of upgrades and

enhancements

Page 44: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

44

Agenda

Where to from here

Our Brio iServer Experience

Introduction

A Framework for Brio JavaScript

Leveraging the Framework

Page 45: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

45

Change is the Management Challenge

• What needs to change?

• How to apply it quickly and effectively?

• How to apply it consistently?

• How to ensure no unwanted side effects?

• How to authorize changes?

• How to work within enterprise standards?

Page 46: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

46

The Management Vision

• Reduce the time and effort to roll out changes– Build lists of impacted documents easily

• By defining criteria• By matching against provided samples• By selecting specific documents

– Specify changes verifiably• Change specification generate scripts• Scripts can be saved and re-used• Changes can be tested on subsets of a list• Change reports generated

– Authorization of change• Who can identify documents to be changed• Who can specify and apply changes• Recording who made the changed

– Automation of change• Schedule execution of changes

– Assist organizations with their change control process• Development, Test and Production

Page 47: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

47

Desktop Client

ServiceManager

QIQ Workbench

Desktop Transform

Engine

Change Scripts & Doc Lists

BrowseFolders

Ad-hoc Changes

Define Favorites

Standard Changes

Page 48: A framework approach eases support for the iServer Brio Mid-Atlantic User Group 8 th April 2003 Socs Cappas QIQ Solutions

48

What Kinds of Changes?

• Section Merge– With full dependency– Yank and graft

• Section Replacement– EIS– Data Models, resolving all references

• Re-Parent of Charts and Pivots

• Document-wide shape properties– Locking, Visibility, Image replacement, Colors

• Ad-hoc changes

• Program changes in JavaScript