Dynamic visualization of schedule data: DrawGantt web service

Download Report

Transcript Dynamic visualization of schedule data: DrawGantt web service

Show & Tell
Informal discussion
Dynamic visualization of
schedule data:
DrawGantt web service
by Dave Porter
Do not redistribute. Data shown are examples & simulations. Does
not represent an official position of my employer.
Motivation
Motivation
• Inspired to learn and validate SVG (starting with an SVG Open paper)
• Transcend typical painful Powerpoint experiences
• Create just-in-time visuals of "gantt" project mangement archetype
• Create vocabulary for data content
• Create a set of practical and robust web service templates and
patterns, support broad range of use cases
• Added value dimension to existing Excel, Project, and SQL data (with
small marginal effort)
• Demonstrate data-oriented web standards and infrastructure
capabilities (XML, XSLT, ASP, XMLHTTP)
Screenshot #1
Solution design
Client browser
• IE + ASV
• Firefox
• "Click here"
• Composite
webpages
(IFRAME)
Web service
• RESTful
interface
Data
DrawGantt
.ASP
Get..xsl
other XSLT
transforms
Office
2003 XML
• XMLHTTP
• SQL
Excel, Access,
Project
Raw XML
DrawGantt
.XSL
View + links
• Stand alone SVG
display
• IFRAME
• XHTML views
• IIS, ASP, MSXML
• XSLT, XPath, etc.
• Documentation &
usage homepages
Database
RDBMS / XML
Data Interface
Demo #1
Screenshot #2
Simplified XML vocabulary
<Report>
<ForwardLook><BackwardLook><Autorange><Title>...
<Row UID="101">
<Title><Hyperlink><Author><Category><Keyword>...
<Event>
<Title><PercentComplete><Keyword><Hyperlink><Fill>...
<Begin>1-1-09
<Text><MarkerFill><Hyperlink><Symbol><Keyword>...
<End>12-12-10...
</Event>
</Row>
</Report>
Typical REST-style URL
http://services/drawgantt.asp
?data=http://server/folder/data.xml
&Forward=630&Backward=90
&transform=GetExcel,ShowChildren
&Autorange=true
&Author=Porter*,Smith*
Like SVG because...
• Multiple browser support, single code base (with caveats)
• XML dialect so XSLT works like a charm to generate
• ASP+XSLT+SVG solution factored out the functional capabilities extremely
well, code base is remarkably small, modular, and easy to sustain
• Javascript-able, CSS style-able
• Layering, framing, clipping, coordinate systems, and advanced graphic effects
are "easy" and expressed in simple declarative specs
• Easy to paste in bits of graphic generated elsewhere (Visio, Inkscape, clip art)
• Efficient and scalable on the network
Pain points...
• Multi-standard and multi-tool learning curve is a barrier
• Some of using community are locked into parochial mindset of standalone
PPT or PDF, less comfortable with a dynamic web experience. Pagination
doesn't come naturally to SVG. Copy / paste not a great answer.
• <text> workarounds in SVG 1.0 are painful
• IE+ASV is an unpopular answer. ASV is missing scrollbars
• Firefox font support is dicey
• <title> and <desc> not supported?
• Mixed HTML and SVG, "inline" promising but flawed, was abandoned