Towards the industrialization of XML processing

Last updated Friday, December 28, 2001

XPipes as XComponents

In XPipe, Pipes and Components share the same fundamental "API". Components take a input stream and produce an output stream. Pipes also take an input stream and produce an output stream.

The fact that they have the same "API" allows XPipes, to masquerade as XComponents. Some scenarios:

  • I supply you with an XComponent written in Java. You use it without caring how it was written. I wrote it using XPipe, splitting the task into 5 XComponents written in XSLT. When it was ready to be shipped, I complied the XPipe with the Translet compliler
  • I have a 120 stage XPipe and I want to use XGrid to scale the processing throughput. using XMonitor I have determined that file IO over the network is killing performance. IO would be cut dramatically if individual XML files went through all 120 stages "in one go" on an XNode. I comple the 120 stage XPipe into a single XComponent. Then I create an XPipe with one stage. Now it is trivial using XGrid to scale the processing without concern for IO. All the benefits of transformation decomposition are retained, yet the solution now scales without increased complexity.