ISCO (Discovery of Web Services) is a Microsoft technology for publishing and discovering Web services while UDDI (Universal Description, Discovery, and Integration) is a broader industry-wide initiative that defines a SOAP-based protocol for updating and querying Web service information repositories. But given Microsoft's marketing and development clout, many developers will undoubtedly be giving DISCO a try, creating a red-hot fashion trend in XML discovery mechanisms for Web services. Before digging out their big collared polyester shirts and bellbottoms, .NET Web Service developers might want to consider some other approaches to architecting their Web services.
Object role modeling (ORM) is a way to model database applications that greatly simplifies communications between developers and non-technical domain experts. ORM is not a modeling approach specific to the Microsoft platform: it can be used by both .NET and Java developers; anyone, really, who needs a quick and easy way to capture and validate business rules with subject matter experts (ORM can be used just as effectively by Java developers as developers using the hodge-podge of languages in the Microsoft .NET platform.)
ORM is based on the academic work of Dr. Terry Halpin, a Database Modeling Program Manager at Microsoft and a former Research Director at InfoModelers (which was acquired by Visio in 1998) and then Director of Database Strategy for Visio (which was in turn acquired by Microsoft in early 2000). The Enterprise Architect edition of Microsoft's Visual Studio.NET RAD environment includes an ORM modeling tool as part of Visio.
Because ORM is fundamentally a way to design and query databases via applications written in terms that a layman can understand, it is arguably better for developing and validating conceptual data models with domain experts than the object-oriented approach of UML. Figure 1 shows a simple diagram of the ORM approach. A logical model generated in ORM has the added advantage that it can be translated quickly and easily into SQL and applied to a database system of choice. There are even techniques to abstract Entity Relationship (ER) and UML models from ORM models.
In the emerging field of Web services, where applications are delivered as reusable, interoperable services over the Internet and rapid modeling of "what-if" software scenarios is becoming even more important, ORM's natural-language-based approach seems to be a viable way for Microsoft .NET development shops to create and maintain control of a centralized Web service repository.
There are other approaches. At a recent XML conference, Aaron Skonnard and Don Box, two DevelopMentor instructors (and MSDN Magazine columnists) outlined a project of theirs to integrate all of the existing DISCO-based Microsoft .NET tools and store Web service information in a centralized Microsoft SQL Server repository, a project that they dubbed 'UDDI-Lite.'
Beyond the absurdity of the name, 'UDDI-Lite' is flawed because it's extensively based on the Microsoft DISCO discovery protocol, which is designed for simple document-based lookups and limited by the type and depth of the information that it provides. Microsoft has already jumped feet first into the development of a public UDDI Web services registry and the notion of a "UDDI-Lite" Web service repository specific to Microsoft .NET development shops seems impractical and unmaintainable, especially when there are viable alternatives such as ORM in the Microsoft .NET toolset that organizations can use to retain control of a simplified Web service repository.
DISCO-based Web services tools in the current Microsoft .NET toolset will eventually need to migrate to a UDDI-based toolset. Trying to extend the current generation of DISCO tools via the 'UDDI-Lite' approach is an exercise liable to give smoke and mirrors a bad name.
 |
Roger Smith is former technical editor of Software Development magazine and has been a developer for 15 years. He recently moderated a panel on the status of the UML at UML World in New York City.
|