| TOC | Start here >> |
Automatically generated 2000-02-29 18:34 by steve
0 >> contents start |
|
![]() |
|
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 1 >> contents start |
Outline |
|---|---|
![]() |
|
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 2 >> contents start |
Major Trends in Web Applications |
|---|---|
![]() |
|
|
Web Applications
|
|
| The PIA, an XML-based platform for Web Applications |
<< 3 >> contents start |
Challenges for Web Application Developers |
|---|---|
![]() |
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 4 >> contents start |
The Typical Web Application |
|---|---|
![]() |
|
|
HTML documents for content, ``code'' for actions. |
|
| The PIA, an XML-based platform for Web Applications |
<< 5 >> contents start |
PIA: an XML-Based Web Application Framework |
|---|---|
![]() |
|
|
XML documents for both content and actions. |
|
| The PIA, an XML-based platform for Web Applications |
<< 6 >> contents start |
A new design approach |
|---|---|
![]() |
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 7 >> contents start |
Let's see how we develop a typical page |
|---|---|
![]() |
|
|
Day of the week |
|
| The PIA, an XML-based platform for Web Applications |
<< 8 >> contents start |
Here's the XML for that page |
|---|---|
![]() |
|
<h3>Day of the week</h3>
<form action="&DOC:url;">
<heading>A Simple Form</heading>
<numeric-input name="year" default="&year;"/>
<numeric-input name="month" default="&month;"/>
<numeric-input name="day" default="&day;"/>
<form-submit name="day of week" />
<if-form-submitted>
<weekday>
<year>&FORM:year;</year>
<month>&FORM:month;</month>
<day>&FORM:day;</day>
</weekday>
</if-form-submitted>
</form>
parts look like plain HTML...
|
|
| The PIA, an XML-based platform for Web Applications |
<< 9 >> contents start |
Here's the XML for that page |
|---|---|
![]() |
|
<h3>Day of the week</h3>
<form action="&DOC:url;">
<heading>A Simple Form</heading>
<numeric-input name="year" default="&year;"/>
<numeric-input name="month" default="&month;"/>
<numeric-input name="day" default="&day;"/>
<form-submit name="day of week" />
<if-form-submitted>
<weekday>
<year>&FORM:year;</year>
<month>&FORM:month;</month>
<day>&FORM:day;</day>
</weekday>
</if-form-submitted>
</form>
other parts are application-specific...
|
|
| The PIA, an XML-based platform for Web Applications |
<< 10 >> contents start |
Here's the XML for that page |
|---|---|
![]() |
|
<h3>Day of the week</h3>
<form action="&DOC:url;">
<heading>A Simple Form</heading>
<numeric-input name="year" default="&year;"/>
<numeric-input name="month" default="&month;"/>
<numeric-input name="day" default="&day;"/>
<form-submit name="day of week" />
<if-form-submitted>
<weekday>
<year>&FORM:year;</year>
<month>&FORM:month;</month>
<day>&FORM:day;</day>
</weekday>
</if-form-submitted>
</form>
some tags perform processing...
|
|
| The PIA, an XML-based platform for Web Applications |
<< 11 >> contents start |
Processing is controlled by a tagset |
|---|---|
![]() |
|
|
... that contains definitions for all the tags |
|
| The PIA, an XML-based platform for Web Applications |
<< 12 >> contents start |
The tagset specifies what each tag does |
|---|---|
![]() |
|
|
here's a typical tag definition
<define element="if-form-submitted"
syntax="quoted">
<doc> expand the content if responding
to a form submission (query)
</doc>
<action>
<if><get name="queryString"/>
<then>
<expand><get name="content"/>
</expand>
</then>
</if>
</action>
</define>
A tagset is simply another XML document |
|
| The PIA, an XML-based platform for Web Applications |
<< 13 >> contents start |
Some tags are ``primitives'' |
|---|---|
![]() |
|
(A primitive is a tag defined by implementation code rather than
defined in terms of XML.)
<define element="if"
class="ifHandler">
<doc> Expand the "then" sub-element
if the condition is true
(i.e. expands to something
other than whitespace).
</doc>
</define>
|
|
| The PIA, an XML-based platform for Web Applications |
<< 14 >> contents start |
The set of primitives is small |
|---|---|
![]() |
|
|
About 30 primitive operations, comprising a complete language. |
|
| The PIA, an XML-based platform for Web Applications |
<< 15 >> contents start |
Many domain-specific vocabularies |
|---|---|
![]() |
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 16 >> contents start |
Now let's look at data |
|---|---|
![]() |
|
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 17 >> contents start |
Site Structure may get complicated |
|---|---|
![]() |
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 18 >> contents start |
Site structure defined by XML |
|---|---|
![]() |
|
|
Where to find the files
<Container file="~/Calendar"
virtual="/PIA/Apps/Calendar">
<Ext name="xh"
type="text/html"
tagset="Calendar-xhtml" />
<AGENT name="Calendar" time="0042">
<initialize>
<user-message> Calendar initialized
</user-message>
</initialize>
<daily-action>
</AGENT>
</Container>
|
|
| The PIA, an XML-based platform for Web Applications |
<< 19 >> contents start |
Site structure defined by XML |
|---|---|
![]() |
|
|
how to map file types to tagsets
<Container file="~/Calendar"
virtual="~/PIA/Apps/Calendar">
<Ext name="xh"
type="text/html"
tagset="Calendar-xhtml"/>
<AGENT name="Calendar" hour="00">
<initialize>
<user-message> Calendar initialized
</user-message>
</initialize>
<daily-action>
</AGENT>
</Container>
|
|
| The PIA, an XML-based platform for Web Applications |
<< 20 >> contents start |
Site structure defined by XML |
|---|---|
![]() |
|
|
Agent runs at midnight
<Container file="~/Calendar"
virtual="~/PIA/Apps/Calendar">
<Ext name="xh"
type="text/html"
tagset="Calendar-xhtml" />
<AGENT name="Calendar" hour="00">
<initialize>
<user-message> Calendar initialized
</user-message>
</initialize>
<daily-action>
</AGENT>
</Container>
Not using a DTD or PI's in the document. |
|
| The PIA, an XML-based platform for Web Applications |
<< 21 >> contents start |
Tree-Structured Data Guarantees Well-formedness |
|---|---|
![]() |
|
|
The PIA's internal representation is parse trees
|
|
| The PIA, an XML-based platform for Web Applications |
<< 22 >> contents start |
Platform-Neutral Processing |
|---|---|
![]() |
|
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 23 >> contents start |
Portable Implementation |
|---|---|
![]() |
|
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 24 >> contents start |
Other PIA Components |
|---|---|
![]() |
|
|
(You can read about these on the web site)
|
|
| The PIA, an XML-based platform for Web Applications |
<< 25 >> contents start |
Summary: Answering the Challenges |
|---|---|
![]() |
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 26 >> contents start |
Status and Resources |
|---|---|
![]() |
|
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 27 >> contents start |
Appendix: PIA Features |
|---|---|
![]() |
|
|
|
|
| The PIA, an XML-based platform for Web Applications |
<< 28 >> contents start |
Comparison to PHP3 | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
||||||||||||||||||||||||
|
and other platforms that embed code in web pages
|
||||||||||||||||||||||||
| The PIA, an XML-based platform for Web Applications |
<< 29 >> contents start |
Comparison to XSLT | |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
||||||||||||||||||||||||
|
and other stylesheet-based publishing systems
|
||||||||||||||||||||||||
| The PIA, an XML-based platform for Web Applications |