Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

61
Combine XSL and DXL for Rich Web Applications Mac Guidera IBM Software Services for Lotus

description

 

Transcript of Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Page 1: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Combine XSL and DXL for Rich Web Applications

Mac GuideraIBM Software Services for Lotus

Page 2: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 3: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The New Web

Web 2.0 The Web as a Platform

Application Delivered as a Service

Architecture of Participation

People Collaborating

Page 4: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The New Web

Web 2.0 Examples Blogs

frequently updated and intended for general public consumption and participation

Google Maps Interactive street map and satellite images for the whole world

through web site or API

Flikr Free site to share personal photographs, the service allows

photos to be tagged and browsed by collaborative but unsophisticated means

Wikipedia Free, online encyclopedia that anyone can edit

Page 5: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The New Web

Service Oriented Architecture Software architectural concept that defines the use of

services to support the requirements of software users

Loosely coupled, highly interoperable application services Departs from binding data and processing together

Interoperate based on a formal definition Web Services WDSL

Independent of development technology

On Demand processing

Page 6: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The New Web

Where Domino fits Strongest collaborative system

20 years in market Email Application development

Incorporates industry-proven open components XML Java JavaScript Web Services

Data separation of data from presentation Documents Forms Views

Page 7: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements XML DXL XSL Ajax

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 8: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XML Stands for eXtensible Markup Language

Markup language much like HTML

Designed to describe data

Uses a Document Type Definition (DTD) or an XML Schema to describe the data

With a DTD or XML Schema is designed to be self-descriptive

A W3C Recommendation

Page 9: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XML XML was not designed to DO anything

XML tags are NOT predefined, you must "invent" your own tags

XML is not a replacement for HTML

XML is a cross-platform, software and hardware independent tool for transmitting information

XML is everywhere and ready for use

Page 10: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XML Elements Building blocks of XML documents

Strict syntax

< name attribute1 attribute2 >

content

</ name >

Page 11: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XML Example

<?xml version="1.0" encoding="ISO-8859-1"?>

<reminder type=“gentle”>

<to>Mac Guidera</to>

<from>Lotusphere Staff</from>

<heading>note</heading>

<body>See you in Orlando, January 22-26th</body>

</reminder>

Page 12: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements XML DXL XSL Ajax

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 13: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

DXL Domino XML Language

Domino data expressed in XML DXL is XML

A universal format for all Domino data within an NSF

Page 14: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 15: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 16: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 17: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 18: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 19: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 20: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 21: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Lotus DevCon 2001

Page 22: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

DXL - A Brief History 1999

Iris begins working on DXL Document Type Definition (DTD) and the Exporter

Lotus Toolkit team members begin working on Importer 2000

DXL/XML team at Iris is expanded In Release 5.0.2, ?ReadViewEntries URL syntax documented

and supported Lotus XML Toolkit is released for Notes/Domino 5

2002 Notes/Domino 6 ships with DXL and XML support

2005 Lotus adds XML Schema Definition and continues to add DXL

functionality into Notes/Domino 7

Page 23: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

Page 24: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

DXL – Using XML in Domino Applications ?ReadViewEntries

Returns a view’s contents as XML via the web

NotesDXLExporter / DxlExporter Converts Domino data to DXL data

NotesDXLImporter / DxlImporter Converts DXL data to Domino data

NotesXSLTransformer / XSLTResultTarget Represents the transformation of DXL (Domino XML) data

through XSLT

Page 25: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

DXL Example<?xml version='1.0' encoding='utf-8'?><!DOCTYPE form SYSTEM 'C:\Program Files\IBM\Lotus\notes\xmlschemas/domino_7_0.dtd'><form name='Contact' alias='Company|Person' xmlns='http://www.lotus.com/dxl' version='7.0' replicaid='88256D950006A0C8' nocompose='true' publicaccess='false' designerversion='7' language='en' default='true' bgcolor='#f7f7f7' editonopen='true' conflictaction='mergeconflicts'>

<noteinfo noteid='13e' unid='41DF9E09D1334A018525621100042F95' sequence='5566'>

<created><datetime dst='true'>19950806T204543,25-04</datetime>

</created><modified>

<datetime>20051220T151200,49-05</datetime></modified> …

Page 26: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements XML DXL XSL Ajax

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 27: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XSL Stands for eXtensible Stylesheet Language

Is valid XML

Describes how the XML document should be displayed

Consists of two parts XSLT is a language for transforming XML documents into

XHTML documents or to other XML documents XPath is a language for navigating in XML documents

Page 28: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XSLT Stands for XSL Transformations

The most important part of XSL

Transforms an XML document into another XML document

Uses XPath to navigate in XML documents

A W3C Recommendation

Page 29: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XPath Syntax for defining parts of an XML document

Uses path expressions to navigate in XML documents

Contains a library of standard functions

Major element in XSLT

A W3C Standard

Page 30: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

Client-Side XSLT in a Browser Easy to implement

Uses client resources

Processing ability built in IE 6.0 Firefox 1.0.2 Mozilla 1.7.8 Netscape 8 Safari 1.3 Opera 8

Page 31: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XSL Transformation Processing

XML

XSL

XSLT

Processor

XML or

XHTML

Page 32: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XSL Transformation Processing

Page 33: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

XSL Transform<xsl:template match='dxl:lotusscript'> <H3>

<xsl:choose><xsl:when test='../@section'>

<xsl:value-of select='../@section'/></xsl:when><xsl:otherwise>

<xsl:value-of select='../@event'/></xsl:otherwise>

</xsl:choose> </H3> <p>

<PRE CLASS='Event'> <xsl:value-of select='.'/> </PRE></p>

</xsl:template>

Page 34: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

Domino DTD and XSD C:\notes\xmlschemas

Page 35: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements XML DXL XSL Ajax

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 36: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

Ajax Stands for Asynchronous JavaScript and XML

Term that refers to the use of a group of technologies together

Combination of HTML, CSS, DOM, JavaScript

Relies on XMLHttpRequest object to exchange data asynchronously with a web server

Page 37: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

Why use Ajax Web as a Platform

Full-blown applications demand richer styles of interaction

User Frustration The standard "click-and-wait" form-based model no longer

suffices

Web 2.0 Zeal Creating opportunities for new breeds of applications, as well

as fodder for improving existing systems. Ajax is the "web" in Web 2.0

Multiple Access Points Hosting the data online is a more straightforward solution and

accessing it from a rich web application is a natural fit

Page 38: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

Why use Ajax Web is the Platform

Everyone has web access

Better Infrastructure Broadband in homes and prolific server environments

Productive Development Easy and open development, no proprietary code

Browser Improvements Improvements in areas such as XML-processing and

debugging support, as well as adherence to standards, have eased the pain for the Ajax development style

Page 39: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

Ajax Application Model

Browser ClientBrowser Client

User Interface

Domino

Server Side

NSF

HTTP

RequestHTML

Ajax Engine

Domino

Server Side

NSF

HTTP

RequestXML

Browser Client

User Interface

JavaScript HTML

NewClassic

Page 40: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

The Design Elements

DHTML

Page 41: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements XML DXL XSL Ajax

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 42: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Working in Concert

Resume Building Buzz Words Ajax

DXL

XML

JavaScript

XMLHttpRequest

XSL

SOA

Web Services

Collaborative Systems

DTD

XSD

DOM

CSS

XHTML

XSLT

Web 2.0

Page 43: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Working in Concert

System Architecture

NSF

Domino Ajax Engine

Request XSLT

XSL

XHTML

Server Client

Page 44: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Working in Concert

Happy User

CSS

XSLT

Java Script

XML

Domino HTML

DXLServer

Page 45: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements XML DXL XSL Ajax

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 46: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Demo – Rich Client Application

Application Use Existing Domino System

Create DXL Request Service

Create Ajax Processor

Interactive Web Client

Page 47: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Agenda

The New Web

The Design Elements XML DXL XSL Ajax

Working in Concert

Demo – Rich Web Application

Resources

Summary

Page 48: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Ajax Toolbox http://www.ajaxtoolbox.com

Page 49: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Ajax Toolbox – request code

function getResponse(target,groupName) { AjaxRequest.get( {

'url':'sleep.pl',

'onSuccess':function(req){ target.value=req.responseText;},

'groupName':groupName,

'onGroupBegin':AjaxRequestGroupBegin,

'onGroupEnd':AjaxRequestGroupEnd,

‘onError’:function(req){ alert(‘Bummer’) ;}

} ); }

Page 50: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

W3 Schools http://www.w3schools.com

Page 51: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Sarissa http://sourceforge.net/projects/sarissa

Page 52: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Google AJAXSLT http://goog-ajaxslt.sourceforge.net/

Page 53: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Ajax Patterns http://ajaxpatterns.org/

Page 54: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Rico http://www.openrico.org

Page 55: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

script.aculo.us http://script.aculo.us/

Page 56: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Ajax in Action ISBN: 1932394613

Page 57: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

Learning XSLT ISBN: 0596003277

Page 58: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

XPath and XPointer ISBN: 0596002912

Page 59: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Resources

XML Powered by Domino ISBN: 073842109X

Page 60: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Summary

Domino heavily embraces XML

XSL is XML for display

Ajax Gives Applications New Life

The Web is Shifting Towards Collaboration

Domino is Well Suited for the Next Generation

SOA Allows for Existing Application Integration

Page 61: Lotusphere 2006 BP305 Combine Xsl And DXL For Rich Web Applications

Summary

Contact Me http://[email protected]

Please turn in session evaluations

PDF and Code available on my site