SlideShare a Scribd company logo
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
1
OLAP for Web applications
X4js
MLA
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
2
Welcome, thanks for attending!
● Roland Bouman; Leiden, Netherlands
● Ex MySQL AB, Sun Microsystems
● Web and BI Developer
● Co-author of “Pentaho Solutions”
● Blog: http://rpbouman.blogspot.com/
● Twitter: @rolandbouman
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
3
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
4
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
5
In a nutshell...
● XML/A = XML for Analysis
● Industry standard for OLAP over HTTP
● Xmla4js = javascript API to enable XML/A
● OLAP data for your web applications
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
6
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
7
XML/A Overview
● XML for Analysis is a communication
protocol
– SOAP Webservice: XML, HTTP
● Initiated by Microsoft
● Supported by multiple vendors and products:
– Microsoft Analysis Services
– Oracle Essbase
– SAP BW
– PALO Server (EE)
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
8
XML/A is SOAP
● Standard HTTP request/response:
– Client sends a request using an URL
– Server sends a response
● SOAP Webservice
– simple object access protocol
– request and response are XML documents
– XML format is more or less predefined
● Method invocation analogy
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
9
XML/A Methods
● Discover:
– Obtaining metadata
– Request: request type, properties, restrictions
– Response: Tabular schema rowset
● Execute:
– Performing queries
– Request: MDX statement, properties
– Response: Multidimensional resultset
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
10
Typical XML/A Calling Sequence
ServerClient
Discover
Schema Rowset (metadata)
Model
(metadata)
Visualization
(data)
Request type, restrictions
Statement (MDX)
Execute
Multidimensional Resultset (data)
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
11
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
12
Using XML/A in webpages
● Webpage client-side programming:
– Javascript
● HTTP requests: AJAX
– XMLHttpRequest
● Working with XML:
– Document Object Model (DOM)
– XPath, XSLT
– Framework like jQuery
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
13
XML/A in webpages: Example
SELECT [Measures].[Profit]
ON COLUMNS,
[Product].[All Products].Children
ON ROWS
FROM [Sales]
Measures
Profit
Drink $ 29,358.98
Food $245,764.87
Non-Consumable $ 64,487.05
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
14
XML/A with raw javascript
<script type=”text/javascript”>
var url = "http://localhost:8080/pentaho/Xmla?userid=joe&password=password";
var datasource = "Pentaho Analysis Services";
var catalog = "FoodMart";
var mdx = "SELECT [Measures].[Profit] ON COLUMNS," +
" [Product].[All Products].Children ON ROWS " +
"FROM [Sales]";
var request = "<SOAP-ENV:Envelope" +
" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"" +
" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">" +
" <SOAP-ENV:Body>" +
" <Execute" +
" xmlns="urn:schemas-microsoft-com:xml-analysis"" +
" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">" +
" <Command>" +
" <Statement>" + mdx + "</Statement>" +
" </Command>" +
" <Properties>" +
" <PropertyList>" +
" <DataSourceInfo>" + datasource + "</DataSourceInfo>" +
" <Catalog>" + catalog + "</Catalog>" +
" <Format>Tabular</Format>" +
" </PropertyList>" +
" </Properties>" +
" </Execute>" +
" </SOAP-ENV:Body>" +
"</SOAP-ENV:Envelope>";
var xhr = new XMLHttpRequest();
xhr.open("POST", url, false);
xhr.setRequestHeader("Content-Type", "text/xml");
xhr.send(request);
var response = xhr.responseXML;
var rows = response.getElementsByTagNameNS(
"urn:schemas-microsoft-com:xml-analysis:rowset", "row"
);
var colHeaders = response.getElementsByTagNameNS(
"urn:schemas-microsoft-com:xml-analysis:rowset", "row"
);
var rowArray = [];
for (var i=0; i<rows.length; i++){
var row = rows.item(i);
var cols = row.getElementsByTagName("*");
var rowArrayEntry = {};
rowArray.push(rowArrayEntry);
for (var j=0; j<cols.length; j++){
var col = cols.item(j);
rowArrayEntry[col.nodeName] = col.firstChild.data
}
}
</script>
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
15
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
16
Xmla4js sample code
<script type="text/javascript" src="../src/Xmla.js"></script>
<script type="text/javascript">
var rowArray = new Xmla().execute({
async: false,
url: "http://localhost:8080/pentaho/Xmla",
statement: "SELECT [Measures].[Profit] ON COLUMNS," +
" [Product].[All Products].Children ON ROWS "+
"FROM [Sales]",
properties: {
DataSourceInfo: "Pentaho Analysis Services",
Catalog: "FoodMart",
Format: "Tabular"
}
}).fetchAllAsObject();
</script>
[
{"[Product].[Product Family].[MEMBER_CAPTION]":"Drink",
"[Measures].[Profit]":29358.9754}
, {"[Product].[Product Family].[MEMBER_CAPTION]":"Food",
"[Measures].[Profit]":245764.86650000003}
, {"[Product].[Product Family].[MEMBER_CAPTION]":"Non-Consumable",
"[Measures].[Profit]":64487.0545}
]
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
17
Xmla4js Library Overview
● One file (< 20 kb minified but uncompressed)
● Cross browser
● Standalone (no dependency on framework)
● LGPL
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
18
Xmla4js API Overview
● Just three “Classes”
– Xmla
– Xmla.Rowset
– Xmla.Exception
● YUI Doc documentation
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
19
Xmla4js Methods:
● Xmla:
– addListener()
– request()
– discover()
– execute()
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
20
Xmla4js Methods:
● Xmla.Rowset:
– hasMoreRecords(), curr(), next()
– getFields()
– fetchAsArray(), fetchAsObject()
– fetchAllAsArray(), fetchAllAsObject()
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
21
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
22
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
23
Program
● In a nutshell...
● XML/A overview
● Using XML/A in webpages
● Making life a little easier – Xmla4js
● Demonstration
● Questions and answers
● Links and resources
Roland Bouman: http://rpbouman.blogspot.com/
Xmla4js: http://code.google.com/p/xmla4js/
24
Links and resources
● Project: http://code.google.com/p/xmla4js/
● Specification: http://www.xmlforanalysis.com/xmla1.1.doc
● Docs: http://msdn.microsoft.com/en-us/library/ms187178(SQL.90).aspx

More Related Content

What's hot (20)

PDF
FOSDEM 2015: gdb tips and tricks for MySQL DBAs
Valerii Kravchuk
 
PDF
More on gdb for my sql db as (fosdem 2016)
Valeriy Kravchuk
 
PDF
OpenCms Days 2014 - Using the SOLR collector
Alkacon Software GmbH & Co. KG
 
PDF
Lightweight web frameworks
Jonathan Holloway
 
PDF
Shaping Optimizer's Search Space
Gerger
 
PDF
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
Alkacon Software GmbH & Co. KG
 
PDF
OpenCms Days 2013 - Site Management Tool
Alkacon Software GmbH & Co. KG
 
PDF
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)
Valerii Kravchuk
 
ODP
The why and how of moving to php 5.4
Wim Godden
 
PDF
Drupal debugging tips
Adolfo Nasol
 
PDF
An evening with Postgresql
Joshua Drake
 
PDF
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Julio Bitencourt
 
PDF
MariaDB Server on macOS - FOSDEM 2022 MariaDB Devroom
Valeriy Kravchuk
 
PDF
OpenCms Days 2015 Workflow using Docker and Jenkins
Alkacon Software GmbH & Co. KG
 
PDF
OpenCms Days 2014 - Updating to OpenCms 9.5
Alkacon Software GmbH & Co. KG
 
PDF
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
Alkacon Software GmbH & Co. KG
 
PDF
Quick flask an intro to flask
juzten
 
KEY
Php Power Tools
Michelangelo van Dam
 
PPTX
Powershell: Tu nuevo mejor amigo
Gonzalo Balladares Rivera
 
ODP
Turbo charge your logs
Jeremy Cook
 
FOSDEM 2015: gdb tips and tricks for MySQL DBAs
Valerii Kravchuk
 
More on gdb for my sql db as (fosdem 2016)
Valeriy Kravchuk
 
OpenCms Days 2014 - Using the SOLR collector
Alkacon Software GmbH & Co. KG
 
Lightweight web frameworks
Jonathan Holloway
 
Shaping Optimizer's Search Space
Gerger
 
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
Alkacon Software GmbH & Co. KG
 
OpenCms Days 2013 - Site Management Tool
Alkacon Software GmbH & Co. KG
 
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)
Valerii Kravchuk
 
The why and how of moving to php 5.4
Wim Godden
 
Drupal debugging tips
Adolfo Nasol
 
An evening with Postgresql
Joshua Drake
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Julio Bitencourt
 
MariaDB Server on macOS - FOSDEM 2022 MariaDB Devroom
Valeriy Kravchuk
 
OpenCms Days 2015 Workflow using Docker and Jenkins
Alkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Updating to OpenCms 9.5
Alkacon Software GmbH & Co. KG
 
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
Alkacon Software GmbH & Co. KG
 
Quick flask an intro to flask
juzten
 
Php Power Tools
Michelangelo van Dam
 
Powershell: Tu nuevo mejor amigo
Gonzalo Balladares Rivera
 
Turbo charge your logs
Jeremy Cook
 

Similar to Xmla4js (20)

PPTX
Beyond OData introducing the xmla model for ui5 (Roland Bouwman)
Twan van den Broek
 
PPTX
Beyond OData: Introducing the XML/A model for ui5
Roland Bouman
 
PPTX
Introduction to MongoDB
Moshe Kaplan
 
PDF
Multi model-databases
Michael Hackstein
 
PDF
Multi model-databases
ArangoDB Database
 
PDF
Polyglot Persistence
Scott Leberknight
 
PPTX
advDBMS_XML.pptx
IreneGetzi
 
PPT
DATA INTEGRATION (Gaining Access to Diverse Data).ppt
careerPointBasti
 
PPT
RESTful Services
Kurt Cagle
 
PDF
Getting Started with MongoDB
Michael Redlich
 
PDF
A Mapping-based Method to Query MongoDB Documents with SPARQL
Franck Michel
 
PPTX
Ext JS Presentation
Sergiu-George Boboc
 
PDF
Training Week: Introduction to Neo4j Bloom
Neo4j
 
PPTX
XML DATABASES in the Master of Engineering
poonkodiraja2806
 
PDF
Neo4j Aura on AWS: The Customer Choice for Graph Databases
Neo4j
 
PDF
Training Week: Introduction to Neo4j Bloom
Neo4j
 
PDF
OLAP IN DATA MINING
wilifred
 
PPTX
World 2013 - Pushing MicroStrategy to the Limit, The Hacker Way
Bryan Brandow
 
KEY
MongoDB at CodeMash 2.0.1.0
Mike Dirolf
 
Beyond OData introducing the xmla model for ui5 (Roland Bouwman)
Twan van den Broek
 
Beyond OData: Introducing the XML/A model for ui5
Roland Bouman
 
Introduction to MongoDB
Moshe Kaplan
 
Multi model-databases
Michael Hackstein
 
Multi model-databases
ArangoDB Database
 
Polyglot Persistence
Scott Leberknight
 
advDBMS_XML.pptx
IreneGetzi
 
DATA INTEGRATION (Gaining Access to Diverse Data).ppt
careerPointBasti
 
RESTful Services
Kurt Cagle
 
Getting Started with MongoDB
Michael Redlich
 
A Mapping-based Method to Query MongoDB Documents with SPARQL
Franck Michel
 
Ext JS Presentation
Sergiu-George Boboc
 
Training Week: Introduction to Neo4j Bloom
Neo4j
 
XML DATABASES in the Master of Engineering
poonkodiraja2806
 
Neo4j Aura on AWS: The Customer Choice for Graph Databases
Neo4j
 
Training Week: Introduction to Neo4j Bloom
Neo4j
 
OLAP IN DATA MINING
wilifred
 
World 2013 - Pushing MicroStrategy to the Limit, The Hacker Way
Bryan Brandow
 
MongoDB at CodeMash 2.0.1.0
Mike Dirolf
 
Ad

More from Roland Bouman (9)

ODP
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Roland Bouman
 
PDF
Writing MySQL User-defined Functions in JavaScript
Roland Bouman
 
ODP
3. writing MySql plugins for the information schema
Roland Bouman
 
ODP
2. writing MySql plugins general
Roland Bouman
 
ODP
Common schema my sql uc 2012
Roland Bouman
 
ODP
Common schema my sql uc 2012
Roland Bouman
 
ODP
Optimizing mysql stored routines uc2010
Roland Bouman
 
ODP
Writing MySQL UDFs
Roland Bouman
 
PDF
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...
Roland Bouman
 
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Roland Bouman
 
Writing MySQL User-defined Functions in JavaScript
Roland Bouman
 
3. writing MySql plugins for the information schema
Roland Bouman
 
2. writing MySql plugins general
Roland Bouman
 
Common schema my sql uc 2012
Roland Bouman
 
Common schema my sql uc 2012
Roland Bouman
 
Optimizing mysql stored routines uc2010
Roland Bouman
 
Writing MySQL UDFs
Roland Bouman
 
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...
Roland Bouman
 
Ad

Recently uploaded (20)

PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Per Axbom: The spectacular lies of maps
Nexer Digital
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Per Axbom: The spectacular lies of maps
Nexer Digital
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Researching The Best Chat SDK Providers in 2025
Ray Fields
 

Xmla4js