SlideShare a Scribd company logo
1 of 24
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

FOSDEM 2015: gdb tips and tricks for MySQL DBAs
FOSDEM 2015: gdb tips and tricks for MySQL DBAsFOSDEM 2015: gdb tips and tricks for MySQL DBAs
FOSDEM 2015: gdb tips and tricks for MySQL DBAsValerii Kravchuk
 
More on gdb for my sql db as (fosdem 2016)
More on gdb for my sql db as (fosdem 2016)More on gdb for my sql db as (fosdem 2016)
More on gdb for my sql db as (fosdem 2016)Valeriy Kravchuk
 
Shaping Optimizer's Search Space
Shaping Optimizer's Search SpaceShaping Optimizer's Search Space
Shaping Optimizer's Search SpaceGerger
 
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve contentOpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve contentAlkacon Software GmbH & Co. KG
 
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)
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
The why and how of moving to php 5.4The why and how of moving to php 5.4
The why and how of moving to php 5.4Wim Godden
 
Drupal debugging tips
Drupal debugging tipsDrupal debugging tips
Drupal debugging tipsAdolfo Nasol
 
An evening with Postgresql
An evening with PostgresqlAn evening with Postgresql
An evening with PostgresqlJoshua Drake
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Julio Bitencourt
 
MariaDB Server on macOS - FOSDEM 2022 MariaDB Devroom
MariaDB Server on macOS -  FOSDEM 2022 MariaDB DevroomMariaDB Server on macOS -  FOSDEM 2022 MariaDB Devroom
MariaDB Server on macOS - FOSDEM 2022 MariaDB DevroomValeriy Kravchuk
 
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace Alkacon Software GmbH & Co. KG
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flaskjuzten
 
Turbo charge your logs
Turbo charge your logsTurbo charge your logs
Turbo charge your logsJeremy Cook
 

What's hot (20)

FOSDEM 2015: gdb tips and tricks for MySQL DBAs
FOSDEM 2015: gdb tips and tricks for MySQL DBAsFOSDEM 2015: gdb tips and tricks for MySQL DBAs
FOSDEM 2015: gdb tips and tricks for MySQL DBAs
 
More on gdb for my sql db as (fosdem 2016)
More on gdb for my sql db as (fosdem 2016)More on gdb for my sql db as (fosdem 2016)
More on gdb for my sql db as (fosdem 2016)
 
OpenCms Days 2014 - Using the SOLR collector
OpenCms Days 2014 - Using the SOLR collectorOpenCms Days 2014 - Using the SOLR collector
OpenCms Days 2014 - Using the SOLR collector
 
Lightweight web frameworks
Lightweight web frameworksLightweight web frameworks
Lightweight web frameworks
 
Shaping Optimizer's Search Space
Shaping Optimizer's Search SpaceShaping Optimizer's Search Space
Shaping Optimizer's Search Space
 
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve contentOpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
OpenCms Days 2012 - OpenCms 8.5: Using Apache Solr to retrieve content
 
OpenCms Days 2013 - Site Management Tool
OpenCms Days 2013 - Site Management ToolOpenCms Days 2013 - Site Management Tool
OpenCms Days 2013 - Site Management Tool
 
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)
Instant add column for inno db in mariadb 10.3+ (fosdem 2018, second draft)
 
The why and how of moving to php 5.4
The why and how of moving to php 5.4The why and how of moving to php 5.4
The why and how of moving to php 5.4
 
Drupal debugging tips
Drupal debugging tipsDrupal debugging tips
Drupal debugging tips
 
An evening with Postgresql
An evening with PostgresqlAn evening with Postgresql
An evening with Postgresql
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
 
MariaDB Server on macOS - FOSDEM 2022 MariaDB Devroom
MariaDB Server on macOS -  FOSDEM 2022 MariaDB DevroomMariaDB Server on macOS -  FOSDEM 2022 MariaDB Devroom
MariaDB Server on macOS - FOSDEM 2022 MariaDB Devroom
 
OpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and JenkinsOpenCms Days 2015 Workflow using Docker and Jenkins
OpenCms Days 2015 Workflow using Docker and Jenkins
 
OpenCms Days 2014 - Updating to OpenCms 9.5
OpenCms Days 2014 - Updating to OpenCms 9.5OpenCms Days 2014 - Updating to OpenCms 9.5
OpenCms Days 2014 - Updating to OpenCms 9.5
 
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace OpenCms Days 2015  Creating Apps for the OpenCms 10 workplace
OpenCms Days 2015 Creating Apps for the OpenCms 10 workplace
 
Quick flask an intro to flask
Quick flask   an intro to flaskQuick flask   an intro to flask
Quick flask an intro to flask
 
Php Power Tools
Php Power ToolsPhp Power Tools
Php Power Tools
 
Powershell: Tu nuevo mejor amigo
Powershell: Tu nuevo mejor amigoPowershell: Tu nuevo mejor amigo
Powershell: Tu nuevo mejor amigo
 
Turbo charge your logs
Turbo charge your logsTurbo charge your logs
Turbo charge your logs
 

Similar to Xmla4js

Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012scorlosquet
 
Scraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHPScraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHPPaul Redmond
 
Web Development in Django
Web Development in DjangoWeb Development in Django
Web Development in DjangoLakshman Prasad
 
Shining a light on performance (js meetup)
Shining a light on performance (js meetup)Shining a light on performance (js meetup)
Shining a light on performance (js meetup)Yoav Niran
 
Splunk's api how we built it
Splunk's api   how we built itSplunk's api   how we built it
Splunk's api how we built itGlenn Block
 
10 Things Webdesigners tend to do Wrong in SEO - SMX 2014
10 Things Webdesigners tend to do Wrong in SEO  - SMX 201410 Things Webdesigners tend to do Wrong in SEO  - SMX 2014
10 Things Webdesigners tend to do Wrong in SEO - SMX 2014Timon Hartung
 
Last Month in PHP - May 2016
Last Month in PHP - May 2016Last Month in PHP - May 2016
Last Month in PHP - May 2016Eric Poe
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)Eric Johnson
 
Open Source.HK Workshop - 2014 Oct 11th
Open Source.HK Workshop - 2014 Oct 11thOpen Source.HK Workshop - 2014 Oct 11th
Open Source.HK Workshop - 2014 Oct 11thWong Hoi Sing Edison
 
S1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco WebinarS1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco WebinarJCK
 
(some) Drupal Theming by Ryan Price
(some) Drupal Theming by Ryan Price(some) Drupal Theming by Ryan Price
(some) Drupal Theming by Ryan PriceRyan Price
 
Drupal 7 and RDF
Drupal 7 and RDFDrupal 7 and RDF
Drupal 7 and RDFscorlosquet
 
Data Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to ProductionData Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to ProductionFormulatedby
 
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...SOASTA
 
Drupal 7 and schema.org module (Jan 2012)
Drupal 7 and schema.org module (Jan 2012)Drupal 7 and schema.org module (Jan 2012)
Drupal 7 and schema.org module (Jan 2012)scorlosquet
 
Stanford Drupal Camp 2015 - Repelling Bots, DDOS, and other Fiends
Stanford Drupal Camp 2015 - Repelling Bots, DDOS, and other FiendsStanford Drupal Camp 2015 - Repelling Bots, DDOS, and other Fiends
Stanford Drupal Camp 2015 - Repelling Bots, DDOS, and other FiendsSuzanne Aldrich
 
DrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeDrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeAlejandro Moreno
 
Leancamp - are you ready to rock
Leancamp - are you ready to rockLeancamp - are you ready to rock
Leancamp - are you ready to rockChristian Heilmann
 

Similar to Xmla4js (20)

Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012
 
Scraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHPScraping the web with Laravel, Dusk, Docker, and PHP
Scraping the web with Laravel, Dusk, Docker, and PHP
 
Web Development in Django
Web Development in DjangoWeb Development in Django
Web Development in Django
 
Beginners Guide to Drupal
Beginners Guide to DrupalBeginners Guide to Drupal
Beginners Guide to Drupal
 
Shining a light on performance (js meetup)
Shining a light on performance (js meetup)Shining a light on performance (js meetup)
Shining a light on performance (js meetup)
 
Splunk's api how we built it
Splunk's api   how we built itSplunk's api   how we built it
Splunk's api how we built it
 
10 Things Webdesigners tend to do Wrong in SEO - SMX 2014
10 Things Webdesigners tend to do Wrong in SEO  - SMX 201410 Things Webdesigners tend to do Wrong in SEO  - SMX 2014
10 Things Webdesigners tend to do Wrong in SEO - SMX 2014
 
Last Month in PHP - May 2016
Last Month in PHP - May 2016Last Month in PHP - May 2016
Last Month in PHP - May 2016
 
Introduction to PHP (SDPHP)
Introduction to PHP   (SDPHP)Introduction to PHP   (SDPHP)
Introduction to PHP (SDPHP)
 
Open Source.HK Workshop - 2014 Oct 11th
Open Source.HK Workshop - 2014 Oct 11thOpen Source.HK Workshop - 2014 Oct 11th
Open Source.HK Workshop - 2014 Oct 11th
 
S1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco WebinarS1: Side Labs & Alfresco Webinar
S1: Side Labs & Alfresco Webinar
 
(some) Drupal Theming by Ryan Price
(some) Drupal Theming by Ryan Price(some) Drupal Theming by Ryan Price
(some) Drupal Theming by Ryan Price
 
Drupal 7 and RDF
Drupal 7 and RDFDrupal 7 and RDF
Drupal 7 and RDF
 
Data Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to ProductionData Science Salon: A Journey of Deploying a Data Science Engine to Production
Data Science Salon: A Journey of Deploying a Data Science Engine to Production
 
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
Keys To World-Class Retail Web Performance - Expert tips for holiday web read...
 
Drupal 7 and schema.org module (Jan 2012)
Drupal 7 and schema.org module (Jan 2012)Drupal 7 and schema.org module (Jan 2012)
Drupal 7 and schema.org module (Jan 2012)
 
Stanford Drupal Camp 2015 - Repelling Bots, DDOS, and other Fiends
Stanford Drupal Camp 2015 - Repelling Bots, DDOS, and other FiendsStanford Drupal Camp 2015 - Repelling Bots, DDOS, and other Fiends
Stanford Drupal Camp 2015 - Repelling Bots, DDOS, and other Fiends
 
DrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low CodeDrupalCon Europe 2020 Low Code
DrupalCon Europe 2020 Low Code
 
Embedding Linked Data Invisibly into Web Pages: Strategies and Workflows for ...
Embedding Linked Data Invisibly into Web Pages: Strategies and Workflows for ...Embedding Linked Data Invisibly into Web Pages: Strategies and Workflows for ...
Embedding Linked Data Invisibly into Web Pages: Strategies and Workflows for ...
 
Leancamp - are you ready to rock
Leancamp - are you ready to rockLeancamp - are you ready to rock
Leancamp - are you ready to rock
 

More from Roland Bouman

Beyond OData: Introducing the XML/A model for ui5
Beyond OData: Introducing the XML/A model for ui5Beyond OData: Introducing the XML/A model for ui5
Beyond OData: Introducing the XML/A model for ui5Roland Bouman
 
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Roland Bouman
 
Writing MySQL User-defined Functions in JavaScript
Writing MySQL User-defined Functions in JavaScriptWriting MySQL User-defined Functions in JavaScript
Writing MySQL User-defined Functions in JavaScriptRoland Bouman
 
3. writing MySql plugins for the information schema
3. writing MySql plugins for the information schema3. writing MySql plugins for the information schema
3. writing MySql plugins for the information schemaRoland Bouman
 
2. writing MySql plugins general
2. writing MySql plugins   general2. writing MySql plugins   general
2. writing MySql plugins generalRoland Bouman
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012Roland Bouman
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012Roland Bouman
 
Optimizing mysql stored routines uc2010
Optimizing mysql stored routines uc2010Optimizing mysql stored routines uc2010
Optimizing mysql stored routines uc2010Roland Bouman
 
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...Roland Bouman
 

More from Roland Bouman (10)

Beyond OData: Introducing the XML/A model for ui5
Beyond OData: Introducing the XML/A model for ui5Beyond OData: Introducing the XML/A model for ui5
Beyond OData: Introducing the XML/A model for ui5
 
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)
 
Writing MySQL User-defined Functions in JavaScript
Writing MySQL User-defined Functions in JavaScriptWriting MySQL User-defined Functions in JavaScript
Writing MySQL User-defined Functions in JavaScript
 
3. writing MySql plugins for the information schema
3. writing MySql plugins for the information schema3. writing MySql plugins for the information schema
3. writing MySql plugins for the information schema
 
2. writing MySql plugins general
2. writing MySql plugins   general2. writing MySql plugins   general
2. writing MySql plugins general
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012
 
Common schema my sql uc 2012
Common schema   my sql uc 2012Common schema   my sql uc 2012
Common schema my sql uc 2012
 
Optimizing mysql stored routines uc2010
Optimizing mysql stored routines uc2010Optimizing mysql stored routines uc2010
Optimizing mysql stored routines uc2010
 
Writing MySQL UDFs
Writing MySQL UDFsWriting MySQL UDFs
Writing MySQL UDFs
 
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...
Roland bouman modern_data_warehouse_architectures_data_vault_and_anchor_model...
 

Recently uploaded

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Xmla4js

  • 1. Roland Bouman: http://rpbouman.blogspot.com/ Xmla4js: http://code.google.com/p/xmla4js/ 1 OLAP for Web applications X4js MLA
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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)
  • 8. 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
  • 9. 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
  • 10. 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)
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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>
  • 15. 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
  • 16. 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} ]
  • 17. 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
  • 18. 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
  • 19. Roland Bouman: http://rpbouman.blogspot.com/ Xmla4js: http://code.google.com/p/xmla4js/ 19 Xmla4js Methods: ● Xmla: – addListener() – request() – discover() – execute()
  • 20. 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()
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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