Professional Developers Conference, aka. PDC 2003, concluded on October 30, leaving developers overwhelmed with new horizons to discover and specifications to explore and pleasantly baffled with terminology that appears to be from Homer's Odyssey or Iliad. I focused on the Web services sessions, more specifically, Longhorn's proudly acclaimed new communication technology, code-named Indigo, which apparently has enhanced support for security, reliability, transaction messaging and interoperability. Despite several other important topics on architecture, Web services stayed in the limelight with almost 30 sessions targeted at Indigo and service-oriented architecture.
I assume you've read the article by Scott Bellware on Longhorn's icon rendering UI features (Avalon), XAML for winforms, and Robert Chartier's article on.NET Generics. In this article I'll be focusing on a brief yet concise introduction of Indigo and ASP.NET 2.0 "Whidbey". The core purpose of this writing is to explore what "the technology that will define the digital decade" has to offer for industry's leading, non proprietary, open standard communication protocol i.e. XML Web services.
Speaking of Web services, Indigo is the unification of ASP.NET-based Web service architecture, .NET remoting and Enterprise services. This singularity will harness the power of simple configuration, interoperability, service orientation, transaction enabling, attributes (exciting square bracket fellows) and components. There are various ways of defining Web services in Indigo as it merges .NET remoting, the light weight object remote procedure call (ORPC), and asmx assembly infrastructure.
Indigo, in a pre-PDC article "A Guide to Developing and Running Connected Systems with Indigo" by Don Box, is defined as "a set of .NET Framework-based technologies for building and running connected systems. Indigo is the next step in the evolutionary path that started with COM, COM+, and MSMQ, and continues through .NET Remoting, ASMX, System.Messaging, and .NET Enterprise Services. Indigo subsumes these technologies and offers a single unified programming experience for developing services using any CLR-compliant language."
Also, as defined by Omri Gazet at PDC, Web services sits on the application layer of the Internet protocol stack. He demonstrated a one-to-one correspondence between WS architecture and OSI model. As shown in figure below.
The current Web services model is a blend of URI addressing and SOAP messaging. Platform vendors and standards bodies are trying to enhance this by introducing into it security, reliability, and transaction oriented features. Indigo is described as a quantum leap in this niche.
Furthermore, Don Box, in the "Service and Future of Distributed Applications" session, emphasized the "sharing the schema, not objects" slogan. The mantra of XML Web services, as I'd loosely put it, is the integration on the level of XSDs, exposed Web methods, and simple text based standard messaging. Indigo offers a wide number of evolutionary features to current serialization stacks, which are quite challenging in Web services development. When Web services changed the way objects were marshalled, it provided a dilemma of how to perform mapping on skeleton/stubs in order to achieve ideal serialization. A combination of Whidbey and Indigo is providing us, the developers, with the sheer power to perform XML serialization to and from CLR and XSD.
Web services security is another feature, chiefly addressed in Indigo using three layers of security called Turnkey, Custom and Security Extensibility Layer respectively. Turnkey deployment includes security through configuration and profile settings, authentication mechanisms for instance Kerberos, challenge response, X.509 B2B and federated XrML (extensible rights markup language) or SAML (security assertions markup language), both OASIS based security standards. The custom security layer provides modules to change or amend the turnkey security features and can also provide additional token, signature, and encryption requirements to a message for further security. It also provides an implementation bridge, a migration path as Steve Millet put it, for WSE security users. The security extensibility layer provides a facility for developers to plug in a custom authorization provider. This layered architecture provides a strong and robust framework for Web services security.
Indigo Architecture Model - Courtesy Microsoft Corporation
From the definitions described above, it can easily be concluded from PDC WS that advanced Web services protocols for security, reliability and transaction orientation in Indigo have extended the basic Web services stack. This extensibility was inevitable for complex implementations. Also, the protocol standardization is in progress and WSE 2.0 is bringing further enhancements to the basic Web services model.
Understanding Advanced Web Services
On September 17, 2003, Gates and IBM Software chief Steve Mills coined the term "advance Web services", showcasing interoperability among Web services while demonstrating reliable messaging and secure, authenticated transactions across a federated, heterogeneous environment.
According to Gates, "You always have to believe in demand elasticity, or Moore's Law will put you out of business. The kind of apps that people will build around advanced Web services will drive business decision makers to adopt products that use those services."
The backend of that particular demo was a Linux server running IBM WebSphere and Windows Server 2003, and a Sharp Zaurus PDA running Linux and the Opera browser as client. Sales pitch apart, this was a real breakthrough in intercommunication on a secure and reliable scale.
But it was more than that.
"For basic Web services, that's been done," Gates said. "What you're seeing here for the first time is a heterogeneous case, with IBM in half the systems and Microsoft on the other half of the systems."
It signifies the sequel of further development. This Web services advancement was further clarified by Dino Esposito in a pre-PDC article, "A First Look at Writing and Deploying Apps in the Next Generation of Windows", stating "Longhorn provides a set of framework classes that extend and enhance the .NET Framework 1.1. Extensions available in Longhorn range from XAML support to the storage system and from the application model to trustworthy computing and advanced Web Services."
Finally, Gates opening statement at PDC demystified this notion.
"We have the advanced Web services. I hope all of you have been following the progress in this area, and it was very exciting just in the last month to have an event that both Microsoft and IBM created where we showed IBM's WebSphere and Microsoft's Windows .NET connecting up with deep security, transaction capabilities and reliable messaging. Those are the key features that characterize the advanced Web services and those specifications are in a very strong form today. We're soliciting comments, having workshops, even doing interoperability fests and we hope to have those finalized in standards bodies by the end of next year."
In terms of advance Web services and interoperability, Indigo is a giant leap forward. Indigo introduces transactions to provide reliable, traceable, and ACID (atomicity, consistency, integrity and distributed) based communication. Message buffering and disconnected buffering, which Gates mentioned in his opening message, are true enhancements in this respect.
Web Services support through Indigo is is innate in Windows Longhorn's architecture:
Longhorn Architecture Model - Courtesy Microsoft Corporation
Indigo's key concept of connectors and low level API accessibility gives developer gives developer the power to harness on the wire data as well as the Whidbey promise to cutting code by 70%. Built-in WSDL support, XML Serialization and wire-format compatibility for soap 1.1 and 1.2 are a few other changes. Object remote procedure call (ORPC) is the generic name of protocols and APIs that developers use to instantiate objects on remote machines and invoke methods. The .NET Framework has three distinct ORPC technologies i.e. DCOM, Enterprise Services, .NET Remoting and Web services (SOAP). In Indigo all of these three are being integrated to form a powerful messaging infrastructure.
The Microsoft vision was clearly portrayed by Bill Gates in the PDC's opening session.
"Designing around Web services, making sure you've got that as your extensibility architecture, your connection architecture, you're seeing us drive forward with that. Using managed code for any new things you do and yet we allow managed code to work with existing code. Exploiting the client, delivering data in the form of XML to the client and then having local rich rendering while still being able to have mapping to HTML for reach, that's something we're making very simple. "
Terminology Explained
Avalon is the codename for the all-new graphics/ presentation subsystem in Longhorn. Avalon provides the foundation for building applications and high fidelity experiences in Longhorn, blending together application UI, documents, and media content, while exploiting the full power of your computer.
Indigo is Microsoft's programming model and framework for building connected applications and Web services. "Indigo" brings together the best of .NET Remoting, MSMQ, ASMX and .NET Enterprise Services to form a unified model and runtime for building connected applications on the Windows platform
Yukon: SQL Server "Yukon" is empowering a new era of database applications. It provides greater interoperability, greater flexibility and choice in programming models. The integration of SQL Server "Yukon" with the .NET Framework represents the delivery of a more symmetrical programming model between the middle and database tiers. Writing database logic in either Transact SQL (T-SQL) or any .NET-compliant language means greater productivity for developers.
XML integration is as important as the .NET Framework integration. SQL Server "Yukon" will ship with a full-fledged XML data type that will support XSD for schema validation. Moreover, support for existing and emerging open standards such as HTTP, XML, SOAP, and XQuery. This will allow SQL Server "Yukon" to facilitate communication across extended enterprise systems.
Whidbey: Next release of ASP.NET, codenamed ASP.NET "Whidbey" will be a major release that includes significant new features that will define a new level of functionality against which all Web development is measured. It will also be 100% backwards compatible with the current version of
ASP.NET
Visual Studio code name "Whidbey" (2004): This release of Visual Studio and the .NET Framework will offer innovations and enhancements to the class libraries, common language runtime (CLR), programming languages, and the integrated development environment (IDE). In addition, this product will provide deep support for SQL Server code name "Yukon" by enabling developers to write stored procedures using managed code.
Visual Studio code name "Orcas" (2005): This version of Visual Studio and the .NET Framework will provide tools support for the code name "Longhorn."
WinFS: The code name for the next generation storage platform in Windows "Longhorn." Taking advantage of database technologies, Microsoft is advancing the file system into an integrated store for file data, relational data, and XML data. Windows users will have intuitive new ways to find, relate, and act on their information, regardless of what application creates the data. Also, "WinFS" will have built-in support for multi-master data synchronization across other Longhorn machines and other data sources. The platform supports rich managed Longhorn APIs as well as Win32 APIs.
Courtesy MSDN
Web Services are rapidly replacing the existing proprietary standards for the sake of reusability and interoperability. Microsoft's vision of Integration Equals Innovation is quite old. In April '98, Gates (http://www.internetnews.com/bus-news/article.php/20241) mentioned the vision which leads Microsoft to Longhorn.
Taking this concept further, in a recent interview Eric rudder states:
"So if you look at Siebel or SAP or PeopleSoft, you know they're all going away from their proprietary interfaces, like BAPI or those types of interfaces, to a Web services interface. And I think you'll see lots of enterprise software exposed as Web services"
Web Services Orchestration
Web services orchestration was another very important topic we don't expect our friends at PDC to miss. It was discussed in BizTalk sessions and other EAI tutorials. As its name prescribes, this is the idea of integrating business Web services. Two proposed XML grammars for describing the orchestration of Web services are Microsoft's XLANG used by BizTalk and IBM's WSFL (Web Services Flow Language). These may be merged into a W3C standard.
The whole orchestration picture was practically demonstrated by Simon Thurman in Logon Web day London last month. Simon works at Microsoft UK as a systems engineer focusing on BizTalk and systems integration. He drew the messaging diagram and described how easily this integration could be implemented. Also, in his paper on "Web Services Orchestration", Chris Peltz of HP described BPEL4WS (business process execution language for web services) and WSCL (Web services conversation language) as the key element in Web services development. Chris described the vendor landscape as divided among BEA Web Logic Workshop, Microsoft BizTalk Server, Collaxa Orchestration Server, IBM Bpws4j, Sun Wsci Editor and Intalio|N3.
He further concluded with "orchestration, choreography, business process management, and workflow -- these are all terms related to connecting web services together in a collaborative fashion. The capabilities offered by web services orchestration will be vital for building dynamic, flexible processes. The goal is to provide a set of open, standards-based protocols for designing and executing these interactions involving multiple web services."
Similarly in the PDC birds of the feather session, "Web Services Orchestration: More Than Just Getting the Weather and Checking Your Stocks" developers tried to paint "A picture of a world where service oriented enterprises execute business processes comprised of Web services."
Christoph Schittko's session discussed how "orchestration can compose new services from existing services or they can combine services to execute a business process. You can build them using graphical drag-and-drop designers and then execute them through execution engines such as BizTalk Server 2004 or comparable implementations from ISVs such as OpenStorm or Collaxa."
Talking of standards, Schittko says, "The enabling standard to allow cross-vendor process design and execution is the Business Process Execution Language (BPEL), jointly proposed to an OASIS TC by Microsoft and IBM and other partners."
Some of the topics discussed in this session were:
the foundation standards of Web service orchestration
the enabling standards for orchestration
gaps between the pile of WS-* standards and BPEL (Business process execution language)
tool support today
Who is using it already?
How are orchestrations an enabler for Service Oriented Architectures?
Web services are about integration, synergy and interoperability among business processes. To achieve this with Indigo, "We're going to use the mainstream architecture to build in a level of management capabilities that goes beyond what traditional management systems did -- including things like policies on how quickly you expect something to execute; including policies on how you deal with certain error conditions, and so that as much automatic activity can take place as possible; understanding what kind of failure might take place, and being able to model those so that it's not just thousands of error messages when, say, the network connection goes down." Gates said.
While Indigo provides great communication standards by leaps and bounds, ASP.NET 2.0, code named "Whidbey", is also planning to give developers an uplift via a major upgrade. As Scott Mitchell says comically in 4GuysfromRolla, "Just when you were getting comfortable with ASP.NET 1.0, Microsoft has announced the next version of ASP.NET - codenamed 'Whidbey'".
For Web services support in ASP.NET 1.0, there was a simple file format i.e. asmx. With framework support, this exposes all the members, i.e. attributes and methods. It provides security and role based authorization framework for Web services. It provides very easy deployment, the xcopy way. Also the configuration was made easy by XML-based configuration files. Version 2.0 has all of this and much more.
In PDC Whidbey tutorial sessions, Alex Homer's latest book, A First Look at ASP.NET 2.0 was widely mentioned. It's a good book, period. It tells us how Whidbey is a major update with Data Controls, SQL Cache Invalidation, Master Pages, Themes/Skins, Personalization, Web Parts, Mobile Device Support, Membership/Role Management and Security Controls, Web Administration Tool, MMC Administration Tool, Site Pre-Compilation and the exciting new Visual Studio Web Tool environment. ASP.NET 2.0 promises to reduce the code written by 70%. I tried so and it worked. Validating users' credentials is also charming. As far as I've explored, there are various new dimensions in development of personalization, portal, authorization, transaction, visual inheritance through master pages, etc. Too many to mention!
I'll conclude with Nikhil Kothari's quote on Whidbey, author of one of my all time favorite books, "Developing Microsoft ASP.NET Server Controls and Components". He conducted workshops on developing Server controls for Whidbey in PDC. Nikhil says, "A couple of interesting statistics to summarize: At this point, System.Web.dll contains well over 1,000 public classes built from over 300,000 lines of code, compared to its version 1 counterpart which had 321 public types from 90,000 lines of code."
microsoft.public.windows.developer.winfx.winfs Discuss Longhorn data and file storage topics.
About the Author
Adnan Masood is a software developer for UKIM in London and is getting his Msc in software engineering from UNW Stratford London campus. With a broad hybrid development vision on multiple software development technologies, Adnan's main expertise is in server-side programming on Microsoft and Sun Platforms. He's been an active ASP and Java developer for the past five years and holds a Bachelors of Science degree in Computer Science and a Sun Java-II Certification (SCJP-II). He can be reached via e-mail at adnanmasood@btconnect.com.
In the second article of his series on Indigo web services, Chris Peiris explains how to host an Indigo web service and examines the IIS, self hosting, and Windows Activation Service hosting options. He then provides step-by-step instructions and sample code for an IIS-hosted and self-hosted Indigo web service. [Read This Article][Top]
In the first part of his series on Microsoft Indigo, Chris Peiris examines the basics of SOA, explains how Indigo fits into the picture and the problems it solves. He then introduces Indigo's programming model and finishes by building a sample Indigo web service using the Microsoft .Net Framework 2.0. [Read This Article][Top]
Adnan Masood concludes his discussion of Microsoft SQL Server Analysis services and Microsoft SQL Server Reporting services. In the final part, he discusses Reporting Server web services and using custom code in reports. [Read This Article][Top]
This article explains the features of the IE Web service behavior and shows how to asynchronously communicate with an ASP.NET Web service directly from the client. [Read This Article][Top]
Calvin Luttrell shows how to validate e-mail addresses stored in Excel 2003 and
provides a special function for solving that pesky problem Yahoo! mail servers cause. [Read This Article][Top]
This short article describes a quick and easy way to provide some security to an ASP.NET Web service by modifying its associated documentation file. [Read This Article][Top]
Kerberos authentication is the cornerstone of Windows operating system authentication architecture. Web Services Enhancement 2.0 (WSE 2.0) extends Kerberos support to ASP.NET Web services. Chris Peiris explains the support for this new feature in WSE 2.0. [Read This Article][Top]
Chip Irek examines the architectural issues and component design issues of building a .NET application in a service-oriented architecture. [Read This Article][Top]
Thiru Thangarathinam shows how to use asynchronous Web services, Windows
Service applications, server-based timer components and .NET XML API classes to create high-performance, scalable, and flexible applications. [Read This Article][Top]
Part one showed how to transform XML data into HTML by using an XSL stylesheet from within a .NET application. This part explains how to make use of XSLT Extension objects and invoke a C# class method from an XSL stylesheet. [Read This Article][Top]
Mailing List Want to receive email when the next article is published? Just Click Here to sign up.