A carefully crafted industry-wide consensus on a set of standards for Web Services that was in the process of fracturing is now showing the first signs of true integration, or at least a quick repair job with duct tape. But integration is occurring not because the companies on each side of the gap — IBM, Sun, and various tool vendors on one side and Microsoft on the other — have gotten together to work out their differences, but because new companies and tools are emerging that may provide a bridge between the two environments.
Web Services are Internet applications designed to interoperate across the Web with other Internet applications. These applications are modular and can be combined to provide unique functionality. For the end user and for the developer of client devices — PDAs, desktop computers, and consumer devices containing embedded controllers — everything appears rosy. No matter what language the application maintained on the client or the server, what they will see is a common mechanism for delivery of services, based on the eXtensible Markup Language (XML) and the Simple Object Access Protocol (SOAP).
Where the fractures are occurring is behind the scenes in the development environment in which applications are written. Sun, IBM and half a dozen other web development tool vendors have built web services development frameworks based on XML and Java but in which there is no effort to incorporate Microsoft's C-sharp and .NET mechanisms. On the other side, while Microsoft has talked a good standards game, even to the point of submitting its C-sharp/run-time executable to international standards organizations, there is not, as far as I can find, any room for Java under the .NET roof.
Individual companies, such as Intrinsyc, IBM, and Wind River Systems, among others, are beginning to introduce “bridgeware” products to act as negotiators between the two. In addition, the open-source Linux operating system, or at least tools developed for use there, appears to be emerging as a third way.
The results of a just-released study by Evan's Data Corp. (Santa Cruz, Ca.) indicate that many developers see Linux as a way to do web services development in what is becoming a much more heterogeneous environment than everyone had previously assumed. The big question for developers seems to be how to walk a fine line between the two web frameworks and still maintain enough independence to be perceived as a viable middle ground for development.
The new Evan's Data Corp. survey of about 300 Linux developers indicates that despite relative newness and the unproven status of many of its support technologies, the Web Services Internet application model has caught on with programmers.
Talking to Lou Grinzo, an Evans Data Linux analyst, about the just-completed worldwide survey of Linux developers, he told me that there is a high commitment to the Web Services concept and implementation of Web Services. Of more than 300 Linux developers contacted by Evans Data, he said, 70 percent believe that the Web Services model represents the “future of Internet applications.” More than 42 percent of respondents said they are currently developing Web Services-enabled applications with more than two-thirds expecting to develop Web Services-enabled applications in the next 12 to 24 months. In response to questions about technology adoption for Web Services, the study found that more than half of respondents expect to use the Java programming language in developing Web services-enabled applications. SOAP and Lightweight Access Directory Protocol (LDAP), both standards being pushed by Microsoft, trailed Java as technologies forecast for heaviest use.
“Linux developers are embracing the new Web Services technology and not remaining stuck in the old client-side-only model,” he said. “Even though Unix and Linux programmers have long histories of network integration development, a high percentage of programmers on such platforms have long been focused exclusively on the client side.”
But, said Grinzo, the dilemma facing Linux developers is how to develop a Web services environment that is sufficiently framework independent and flexible enough to work in what is emerging as a confusingly heterogeneous protocol environment. “Most Linux developers are stuck between the rock and the hard place,” he said. “On the one hand, they are being asked to commit to a web services environment supported by Sun, IBM and about half a dozen or so other major vendors that is based on Java. On the other hand, there is Microsoft and its planaxes of desktop developers that represent the enemy to most Linux and open source developers.”
In their efforts to find a way to work within each environment and at the same time remain true to their open source roots, some developers have started develop a set of open source tools that may be the ultimate bridgeware link between the two worlds: Mono and dotGNU.
Mono is an attempt to develop an independent open-source development environment and will incorporate a C# compiler; a Virtual Execution System with a Just-in-Time compiler, garbage collector, loader, a threading engine and a byte code interpreter; and an implementation of the .NET class library. It will also include a set of visual development tools. DotGNU, a FreeDevelopers Project, is in a sense a web services superset of both the .NET and Java/XML frameworks. It will contain a Secure Execution Environment which can download any byte code, including Java and C-sharp, from the network, execute it in a secure manner in a Distributed Execution Environment. The latter has been described to me as an operating system for a “distributed computer” consisting of several instances of the secure execution environment that are running on several computers. A main focus will be an effort to support multiple languages, including both Java and C-sharp, allowing the development of applications that could execute in a number of different programming languages.
One of the implications of such efforts is that, if successful, the industry can leave both Java with its Virtual Machine and .NET/C-sharp with its run-time executable behind and still have a viable Web Services framework. Not only do they seem transparent to language but are capable of working with any run-time executable or virtual machine.
Michael Tiemann, chief technical officer at Linux/Gnu tool vendor Red Hat Inc. (Research Triangle Park, N.C.) harbors some doubts that the Web Services paradigm will become a reality as soon as many expect and also has serious reservations about Microsoft's .NET vision. He believes that open source developments such as Mono and DotGnu could provide a way for Linux developers to participate in and perhaps provide bridges between the two environments. “Within most corporations there is a high degree of differentiation, with many mission-critical server applications based on Linux and other more mundane ones in which an overly abundant API are more important,” he said. “Now, to that has been added two frameworks very similar in some respects, but very different in others.”
The same thing is true, he said, of consumer and embedded products developed within the same large organization, with some based on WindowsCE, some on Linux, some on .NET/XML/C# and others on Java/XML.
According to Tiemann, if open source efforts such as Mono and DotGnu come to fruition, they could tip the balance in favor of Linux versus the various proprietary OSes. “I don't think programmers would mind having to do development such a mixed environment, if they had the right tools” he said. “After all, at least in the embedded space, that is what developers have to do all the time: develop applications that mix languages, mix processors and so on. What they want is a common environment in which to do both.”
Right now, said Tiemann, Java-centered Web services frameworks seem to have the momentum in the market. If there is anything that will impede the movement of .NET/C# into the Web services market, he said, it will not be resistance amongst developers, but Microsoft itself. “Microsoft is very good at exposition and promotion of its visions, and as far as web services are involved we should all be grateful,” he said. “It is in the timely implementation of that vision where it falls short.” Compared with the Java/XML web services frameworks, for which there are dozens of tools and support software, Tiemann does not expect to see fully supported tools from Microsoft that are reliable enough for a number of years.
Bernard Cole is the managing editor for embedded design and net-centric computing at EE Times. He welcomes contact. You can reach him at or 520-525-9087.