Creating service-oriented architecture (SOA) applications using an XML document-centric approach to build Web services without coding may sound too good to be true, but analysts who have seen it say it works and may be the future of SOA development.
In 2003 when SOA was in its early stages the founders of a UK-based startup, Hyfinity Ltd., filed a patent for a development process using "declarative composite services," says Nigel Denham, the company's business development manager. It is a patent that the major vendors in the SOA space may now wish they had and may have to license, said Ronald Schmelzer, senior analyst with ZapThink LLC.
The declarative composite services model provides for the manipulating of XML data, which sounds simple, but is actually powerful, the analyst said.
"It creates an XML machine that processes XML data and XML programs," explained Denham. "You're abstracting the whole development process to a much higher level than the traditional code-centric development approach. The practical effect is through use of our technology you are able to develop enterprise services and applications extremely efficiently."
After filing the patent in 2003, the company built a rich Internet application (RIA) development product called Rapid RIA. "The strategy was to take it to market and prove that it was viable, and fundamentally prove the viability of the development process we patented," Denham said.
The Rapid RIA technology has gotten good reviews and Hyfinity is now looking to take advantage of the patent on the underlying technology, the XML machine, to not only market their patent, but also license it to other vendors, Denham said.
It is a viable strategy because the startup has proved the value of the underlying technology in Rapid RIA, Schmelzer said.
"The company's rethinking the Von Neumann machine in XML terms," the analyst said. "Instead of thinking of a computer as something you program, it's something that you control via XML to create the application. It's an interesting twist on what people are talking about with regards to declarative SOA, declarative BPM and the RIA approach."
Arguing that current tools and technologies are making SOA development more complex, Schmelzer's colleague Jason Bloomberg wrote a ZapThink technology note earlier this year praising Hyfinity's declarative, document-centric approach to Internet application creation that leverages services in the SOA context.
"Only by combining the agility that SOA provides with the rich user interfaces of RIAs can companies evolve their Web applications in a flexible, cost-effective manner," he wrote. "Rising to the challenge of providing adequate tooling for this new class of application is Hyfinity, which offers a combination platform and studio environment for building RIAs that consume and compose Web services in the context of SOA. Hyfinity combines the best of both worlds – rich user interfaces and loosely coupled, agile services in a straightforward, declarative environment that increases time to value and productivity for enterprise application creators."
Steve Bailey, co-founder of Hyfinity, explained how the patented approach works.
"The underlying assembly process thinks about the application requirement as a series of services that need to deal with XML documents to perform a job," he said. "In the context of Rapid RIA there's a service whose job is to actually paint the XHTML screens. It would receive the information back from the browser when someone keyed in the fields, translate that information back into an XML document and pass it on through to other services that will talk to the external Web services."
The approach Bailey describes is so document-oriented and so code-free that it hardly sounds like application development.
"The way we look upon applications is not thinking about code at all," he said. "It's thinking about what XML documents flow from Web services to the browser. When they're getting to the browser, what we're doing is we change the dialect from being a SOAP message with some data in it, to an XHTML [Extensible HyperText Markup Language] form with the data in it. The user keys in data and we transport it back to SOAP message or REST messages and send them to those the services that deal with them."
Everything in the Hyfinity model revolves around translating data into standard XML.
"If we've got a service that wants to talk to a database," Bailey explained, "its job is to talk XML or receive XML, convert that to SQL and then convert the SQL result set back to XML structure. So in our model, each of those services is implemented in exactly the same way. As a service that's defined by a document that says what its purpose is, how it can communicate to other services – transport protocols – what XML assets or resources they need to use to perform their job."
Bailey said, "The series of underlying services that we create are in an analogy a software engine." The ZapThink analysts say it might be the little engine that could.