Hello,

  Welcome back to the XForms Titan Interview series.
Today let's welcome Orbeon project lead and CTO
Alessandro Vernet.

Q: Can you tell us a little bit about yourself?

Alessandro Vernet: After graduating from the Swiss
Federal Institute of Technology in Switzerland, I came
to the US to work for Symantec on the VisualCafe
product line. In 1999, I co-founded Orbeon.

All the way back to the days where Mosaic was the only
browser around, I have been working with Web
technologies. Each step along the way (CGI-BINs,
scripting languages, application servers with a
multitude of complex libraries and frameworks) I have
been part of the people who were saying to themselves:
"there must be a better way to do this!” For many
applications, XML technologies in general and XForms
in particular provide that "better way". Implementing
this vision, I have been working during the last few
years with our team here at Orbeon on Orbeon
PresentationServer (OPS), our open-source J2EE-based
platform used to build XML-centric web applications
with standard technologies like XForms, XSLT, and XML
pipelines.

Q: Can you tell us a little bit about Orbeon?

Alessandro Vernet: Orbeon is an XML Service Company.
We provide XML training and XML consulting, as well as
professional production support for
PresentationServer, our open-source platform. We are
based in Mountain
View, close the Googleplex, and have a European branch
in Switzerland.

Q: How did you get started on W3C's XForms?

Alessandro Vernet: One of the goals of
PresentationServer is to allow developers to easily
build applications that capture data from end-user and
makes this data available to the application as an XML
document. Those documents can then be validated,
transformed, sent to web services, etc. Choosing
XForms 
was a no-brainer as it solves exactly this problem and
it is a W3C standard. (I have to say that we believe
in standards. We try to use standards whenever we can
in PresentationServer and in one case where we
couldn't find a standard - XML pipelines - we wrote
the XPL specification and submitted it to the W3C.) 

Q: How did the Orbeon PresentationServer get started?
 Can you tell us a little bit about the history of the
 Orbeon PresentationServer?

Alessandro Vernet: We came up with the requirements
and the architecture for PresentationServer while
working on a series of large consulting projects for
companies like Ford, Cisco, or DHL. Those projects
created 
challenges that were not adequately addressed by the
available frameworks or libraries. And this was not
because of deficiencies in those frameworks or
libraries, but because the whole paradigm of
programming the application with code on top of
frameworks or libraries and using objects as data
containers was inappropriate.

Instead of focusing on code, libraries, and objects,
an approach based on configurations, engines, and XML
documents provided a much more appropriate paradigm.
Let me put in perspective these two paradigms:

1. Configurations instead of code - Code is good for
writing algorithms. But there are not so many
algorithms to be written in the presentation layer of
a web application. Instead, presentation layers can be

separated in aspects (page flow, forms, validation of
data entered by the end-user, page templates, look and
feel, etc). Each one of these aspects can be
configured with a declarative language. More often
than not, the 
languages are standards (e.g. XSLT or XForms).

2. Engines instead of libraries - Configurations are
interpreted and executed by a set of engines that are
provided with the platform. Engines provide a
well-defined functionality and in general implement a 
standard. In some cases, multiple engines providing
the same functionality are available and can choose
the most appropriate engine with little or no impact
on the configurations (e.g. XSLT implementations). 

3. XML documents instead of objects - Web applications
are about presenting data provided by "services" to
the user and capturing data from the user with forms
and feed that data back to "services". I am using
"services" in a loose way here. Those services can be
Enterprise Applications (CRM, ERP, SCM, etc), actual
web services, XML or relational databases. An
increasing number of services are able to exchange
data 
in XML format, and as XML becomes the data-exchange
lingua franca, being able to manipulate this data
natively in its original format (XML) with tools
that have been designed specifically for that task is
the way to go.   

Luckily for us, almost all the basic technologies we
needed to build a platform based on the
configurations/engines/XML documents paradigm 
were available, and those technologies were more often
than not industry standards! To name a few: XSLT,
XForms, XML Schema or Relax NG. With
PresentationServer we combined those standards to form
a comprehensive
platform.

Q: Can you briefly sketch out the architecture of the
 Orbeon PresentationServer and its building blocks?

Alessandro Vernet: All the major components of
PresentationServer are implemented as "processors".
Processors are XML components which can take zero or
more XML documents as intput(s) and generate zero or
more documents as output(s). Think of an XSLT
processor that takes a stylesheet and a document to
transform as its input, and generates the result of
the transformation as its output. All the processors
implement a given set of interfaces, which means, they
can be combined regardless of the functionality they
provide. The most useful tasks are performed by
combining processors. For instance, getting an XML
document from a web service, validating it,
transforming it, and sending it to another web
service. Combining processors is done with XPL (the
XML Pipeline Language, for which we have submitted the
specification to the W3C). Closing the loop, our
implementation of XPL is itself a processor.

Q: Can you tell us some challenges you faced building
 a server-side XForms implementation?

Alessandro Vernet: XForms has been designed to run on
the client, typically in a web browser. We are happy
to see that the Mozilla/Firefox will soon support
XForms 
in the browser. But with IE having the lion share of
the browser market it is impossible to predict when or
even if XForms enabled browser will ever become a
de-facto standard. In the meantime, developers want to
enjoy the benefits of XForms and target the browsers
deployed today. We provide a solution to those
developers with the server-side implementation of
XForms in PresentationServer.

The main challenge in building a server-side
implementation of XForms is understanding and
explaining what part of the specification can be
implemented with a traditional HTML interface, what
parts require advanced browser features like the
XMLHttpObject, and coming up with a robust
architecture to implement the most dynamic features of
XForms.

Q: Can you tell us how you handle the mapping from
 XForms to classic HTML forms? Do you use lots of
 JavaScript to minimize server-roundtrips? Do you use
 any browser-specific extensions to stretch what you
 can do with "classic" HTML?

Alessandro Vernet: We use XSLT to generate HTML from
an internal representation. This means that users of
PresentationServer can easily customize the
stylesheets and fully control the generated HTML. At
this point, we generate "classic" HTML and use
JavaScript very sparsely. In the future, in addition
to "classic" HTML, we will support sending XForms
directly to XForms enabled browsers (like Firefox),
and the ability to generate more dynamic HTML using
advanced browser features.

Q: Can you tell us if it's possible to render XForms
to
 other formats e.g. Adobe PDF XML Forms, Mozilla's XUL
 or Macromedia Flex/Flash, for example, using the
 Orbeon PresentationServer?

Alessandro Vernet: Rendering is performed with XSLT.
We provide a stylesheet that generates HTML out of the
box, but one could write his/her own stylesheet that
generates SVG or XUL without too much difficulty, by
looking at the existing stylesheet that comes with
OPS. Generating binary format like Flash or PDF forms
would be a little more involved but can certainly be
done.

Q: Can you tell us if it's possible to use your XForms
 engine as a "stand-alone" Java library?  What are the
 dependencies for your XForms engine? Do you have a
 separate distribution? Do you think it's possible or
 wise to use your server-side XForms engine as a
 foundation for a client-side XForms implementation?

Alessandro Vernet: The XForms engine is implemented in
two processors. Since processors can be called through
a Java API, the XForms engine could be used
stand-alone
and, say, called directly from a Servlet. At this
point, we are not providing a distribution of a
stand-alone XForms engine, as we didn't have
much demand for it. XForms is to a Web application
developer what an engine is to a car driver: it is for
sure a very important piece, but an engine without a
chassis, gas tank, wheels, etc. is useless. 
Application writers want of course to declare their
forms using XForms, but they also want to define the
page flow based on data entered by end-users in 
forms, or  perform operations on the XML data that
represents the data entered by the end-user (like send
the document to a web services), etc. A stand-alone
distribution of the XForms engine would make sense for
platform developers or a do-it-yourself kind of
developers which are not our target. Instead, we are
focused on providing a well-documented,
standards-based, full solution to the XML centric Web
application developer.

Q: Can you tell us what the Orbeon PresentationServer
 can do today? What works and what needs to be done?

Alessandro Vernet: The first version of
PresentationServer was released in mid-2002. Since
then, PresentationServer has been adopted and used by
a number of companies on mission critical projects. It
is now a fully functional and mature product. Of
course, we have always plans to make the product
better, for instance we are planning to offer the
option of generating more dynamic HTML leveraging
features provided on recent browser.

Q: Can you tell us how the Orbeon
 PresentationServer compares to Cocoon and how XForms
 fits into an XML pipeline architecture?  

Alessandro Vernet: PresentationServer is often
compared to Cocoon as both are platforms for building
Web applications and they both use XML technologies,
and are both open source. We have on our Web site a
page linked from the FAQ comparing PresentationServer
with Cocoon (http://www.orbeon.com/community/cocoon).
In a nutshell, the main differences with Cocoon are:

1) Commitment to XForms. In PresentationServer, you
create forms with XForms. It is standard and
incredibly well adapted for the task. We are committed
to XForms and have strong plans to move our XForms
engine
forward. 

2) XPL, the XML pipeline language implemented by
PresentationServer. As mentioned earlier, we have just
submitted a first version of the XPL specification to
the W3C. In this case, there is almost no possible
comparison with Cocoon pipelines.

3) Stronger separation of concerns between pages
(based on model + view), forms, page flow, and
processes (implemented with XPL).

4) Commitment to Relax NG, XSLT 2.0, XPath 2.0, and
possibly other specifications which have so far been
largely ignored by Cocoon.

5) Arguably, better organized documentation and
tutorial.

Q: Can you highlight some goodies or addons the Orbeon
 PresentationServer offers that build on or extend
 XForms?

Alessandro Vernet: PresentationServer is not so much
about adding extensions to XForms, it is rather about
providing the features related to XForms that
application developers need. Once a form has been
submitted by the end-user and the XForms engine has
created an XForms instance document that contains the
data entered by the end-user, how do you submit that
document to a Web service? How do you send a SQL query
to your database based on the content of the XForms
instance? How do you decide what page to display next,

based on a button the user just clicked on? This kind
of questions is out of scope for the XForms
specification, but an application developer needs
solutions to those problems. We provide those
solutions in PresentationServer by leveraging best
practices (e.g. MVC model) and standards (e.g. XSLT,
W3C XML Schema, XPL).

Q: Can you tell us how popular the Orbeon
 PresentationServer is? (e.g. How many
 downloads? Are there any applications/projects using
 the Orbeon PresentationServer? What's the interest in
 the XForms/Java community? etc.)

Alessandro Vernet: Today we have thousands of users
(roughly a rate of 1500 downloads a month), hundreds
of emails in our mailing list every month and
prestigious
clients trusting OPS as their platform of choice for
Web development using XML technologies including
Amnesty International, CSC, Wachovia, The 
City of San Diego, Teleflex, Caltech, etc.

Q: Who else is behind the Orbeon PresentationServer? 
 Does Orbeon fund all the work? How many developers
 are involved in the Orbeon PresentationServer
 development? How can someone outside of Orbeon get
 involved?

Alessandro Vernet: Orbeon is the main contributor to
PresentationServer and, at this point, five engineers
are working full-time on PresentationServer and Orbeon
Studio (the Eclipse plug-in for PresentationServer).
The project is open source, and anyone can get
involved. The project is hosted on the ObjectWeb 
Forge site, which is very similar to SourceForge and
provides the tools that open source developers are
used to working with (CVS repository, mailing lists,
bug tracking system, Wiki). We have more information
on how to join the PresentationServer developer
community on the "Getting Involved" page of our site
(http://www.orbeon.com/community/getting-involved).

Q: Can you tell us what professional services you
offer
 for the Orbeon PresentationServer?

Alessandro Vernet: Orbeon funds the development of
PresentationServer by selling services around
PresentationServer. We are doing what is best for our
customers: the product is completely free, with no
strings attached (it is licensed under the very
liberal LGPL license). But when our customers want
training
to get their team started rapidly and on the right
foot, we are there to provide training. When our
customers deploy mission critical applications
and want issues to be dealt with by the most
experienced people, we are there to provide
professional support. When our customers need a 
feature in PresentationServer and don't want to
implement it themselves or wait for us to do it down
the road, they can sponsor the feature…

Q: What's next for the Orbeon PresentationServer?

Alessandro Vernet: There is quite a bit of excitement
around PresentationServer, especially in two areas:
XForms and XPL. XForms because we see both the
interest 
for XForms as a standard, as well as our XForms
implementation which is currently picking up a lot of
steam. We are working on making XForms user
interfaces more dynamic and ensuring that the XForms
engine is even better documented and easier to use. On
the XPL front we see a lot of interest coming from the
hard-core XML community. We have already received 
numerous comments on the draft of the XPL
specification, which we have incorporated
before submitting it to the W3C. By getting the
attention of even more XML experts through this
standardization process, XPL will get better and 
we are committed to implementing those improvements in
our XPL engine for the benefit of the
PresentationServer community.


Thank you Alessandro Vernet for taking time out to
share your thoughts. Keep up the great work on the
Orbeon PresentationServer.

Links:

- Orbeon @ http://www.orbeon.com
- Orbeon XForms Reference @
http://www.orbeon.com/ops/doc/reference-xforms

_____________________________________
XUL News Wire - http://xulnews.com
XUL Alliance  - http://xulalliance.org


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
xul-announce mailing list
xul-announce@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/xul-announce

Reply via email to