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