- Ubiquitous Computing
- Web Services
- The Semantic Web
- Spaces Computing
- Peer-to-Peer Computing
- Collaborative Computing
- Dependable Systems
- Pervasive Computing
- Cluster Concepts
- Distributed Agents
- Distributed Algorithms
- Distributed Databases
- Distributed Filesystems
- Distributed Media
- Distributed Storage
- Grid Computing
- Massively Parallel Systems
- Mobile and Wireless Computing
- Network Protocols
- Operating Systems
- Real-Time and Embedded Systems
There is nothing either good or bad but thinking makes it so.
William Shakespeare, Hamlet
From the sublime to the ridiculous, the first two NDC fitscapes reveal an interesting yin/yang: the transcendent hope of ubiquitous computing versus the gritty reality of Web Services. Arg! Reaching Nirvana through the church of Web Services may be a long journey indeed.
I am not a fervent evangelist of the vanilla Web Services approach to NDC. My own biases are drawn to the more organic approaches, embodied in spaces computing, mixed with the sensibilities of real-time and embedded computing. In my view, the advent of SOAP was not the brightest day in world of Internet standards. Alas, my personal views are not germane to a reasoned discussion of NDC in a larger sense, so I'll attempt to not color this commentary accordinglyat least not just yet.
Web Services are based on several XML-derived concepts, designed to facilitate standardized, portable exchange of "component" data in NDC enviroments. In the fall of 2001, Microsoft and IBM jointly announced the Global XML Web Services Architecture, which includes XML, SOAP, and UDDI.
XML: eXtensible Markup Language
SOAP: Simple Object Access Protocol
UDDI: Universal Directory and Discovery Interface
WSDL: Web Services Description Language
The Global XML Web Services architecture would also define specification principles that, in tandem with aspects of the Semantic Web, would give one day give rise to an NDC framework that would be
Modular Composable modules that can be combined as needed to deliver end-to-end capabilities (new modular elements enjoined into ensembles as needs arise);
General purpose Designed to meet a wide range of XML Web Services scenarios, ranging from business-to-business and enterprise application integration solutions to peer-to-peer applications and business-to-consumer services;
Federated Fully distributed, designed to support XML Web Services that cross organizational and trust boundaries, requiring no centralized servers or administrative functions;
Standards based Based on protocols that are submitted to "appropriate standards bodies."
Component reuse, one holy grail of software development, may potentially be realized if both the Web Services and Semantic Web visions are viable and embraced. Indeed, promises from Microsoft and IBM in the Web Services arena would clearly indicate that component composability is not only within reach, it is imminent. The promise of component reuse and composability is to software what COTS VLSI chips were to hardware; once enabled by NDC, the joint visions of the Semantic Web and Web Services promise a composable NDC architecture. The operative word is promise. Composability is nontrivial in any environment that involves distributed systems, and is especially so in NDC. Much like the clarinet player, a component needs more than sheet music and a functioning instrument if a viable orchestration is to be achieved.