Click to Rate and Give Feedback
MSDN
MSDN Library
Windows Vista Technical Articles
The Windows Vista and Windows Server 2008 Developer Story: .NET Framework Communication, IIS, and Collaboration
 

Microsoft Corporation

February 2006
Revised January 2007

In previous installments of the Windows Vista Developer Story, we discussed:

Approximately every two weeks, a new Story will be added to the downloadable Help file, which can be downloaded here. This week, we are presenting a discussion on .NET Framework Communication, IIS, and Collaboration.

Communication

Connectivity has become an essential feature of computers and their applications, both in the home and at work. Modern organizations universally use networked computers with other computing devices for a variety of functions. The Windows Vista wave provides improvements to the basic network infrastructure, Web-based applications and services, and to the range of available collaborative technologies.

Network Infrastructure Improvements

These increase the security, reliability, and efficiency of the network and provide a better platform for developers to build upon. These improvements include a reengineered network subsystem, support for new Internet protocols, completely new network APIs such as the Windows Filtering Platform (WFP) and Winsock Kernel (WSK), and new management features such as Network Diagnostics Framework (NDF) and Network Address Protection (NAP).

For more information, see Network Infrastructure Improvements.

Connecting Technologies

Microsoft provides a range of technologies that enable applications to communicate over open Internet-based technologies, particularly based on the HTTP protocol. Increasingly, this type of communication is used to enable direct application-to-application communication with little user interaction, a use which is commonly termed "Web services". Windows Vista provides a range of technologies to support message-based communication over open Internet protocols, across a wide range of hardware and information exchange requirements.

Windows Communication Foundation (WCF)

The new .NET Framework 3.0 framework provides a highly-productive infrastructure for message exchange in a secure, reliable, and interoperable way. Based on open protocols, it combines the best of many older Microsoft technologies to provide a flexible and extensible approach to building service-oriented applications.

For a complete discussion of Communications and WCF see the downloadable Help file, which can be downloaded here.

.NET Framework distributed computing

Although WCF represents the main thrust of Microsoft's future support for managed Web services, the .NET Framework contains other communication technologies (ASP.NET, .NET Framework Remoting, Message Queuing, and Enterprise Services) that have specific domain applicability and large installed bases.

The .NET Framework also supports three other main IPC technologies: .NET Remoting, Enterprise Services, and ASP.NET. These alternate communication technologies may be of interest to developers for several primary reasons:

  • Related capabilities—WCF is an infrastructure for communications only, whereas some of these other technologies provide other powerful capabilities. For example, ASP.NET enables developing and managing complex Web-based solutions that include rich, data-bound GUIs.
  • Backwards compatibility—many current applications use these technologies and Microsoft is dedicated to supporting them as long as they remain viable. Bug fixes and improvements to these IPC technologies enable applications built with .NET Framework Version 1.x to be easily upgraded to .NET Framework Version 2.
  • Specific communication advantages—although WCF is very robust and capable, these other technologies may have certain advantages in specific communication areas. For example, ASP.NET combined with Web Service Enhancements (WSE) 3.0 has more complete and modern support for the WS-* protocols, and .NET Remoting requires much less overhead, especially for communication between applications on the same computer. For more information about the applicability of these communication technologies, see Connecting Technologies in the Windows Vista Developer Story Help file, which can be downloaded here.

For more information about these technologies, see the Windows SDK or the MSDN online site. For more information about improvements in lower-level network support in the .NET Framework library, see .NET Framework 3.0 Managed Network Classes in Communications Infrastructure.

For a complete discussion of .NET Framework Communications see the downloadable Help file, which can be downloaded here.

Internet Information Services (IIS)

IIS represents a powerful, flexible, extensible platform for creating and managing Internet-enabled solutions. Windows Vista delivers a unified Web platform that provides integrated support for Internet Information Services (IIS), ASP.NET, WCF, and Windows SharePoint Services. IIS 7 is a major enhancement to the Windows Web server and plays a central role in unifying the Web platform. The key pillars of the IIS 7 release are:

  • Unified platform delivering a single, consistent developer and administrator model for Web solutions.
  • Enhanced security and smaller, independent components to reduce attack surface.
  • Flexible extensibility to enable customization and extension.
  • Simplified problem resolution through powerful diagnostic and troubleshooting.

Deprecated and Obsolete IIS Features

IIS 7 will no longer support the following features found in version 6:

  • IIS 5 isolation mode—IIS 6 supported this IIS 5 emulation mode through the IIS5IsolationModeEnabled metabase property in order to assure compatibility with applications developed for IIS 5.1 and older. IIS 7 only supports the native isolation mode, called worker process isolation mode. This mode enables application pooling, recycling, and health detection features.

    This change was necessitated because of a change in the underlying features of HTTP.sys. READ_RAW filter support, which IIS 5 isolation mode depends upon, has been eliminated.

  • By default, the Internet Data Connector (HttpOdbc.dll) extension will be unmapped, disabling the use of legacy IDC scripts to query ODBC databases. This functionality has been superseded by full query libraries, including those provided by ASP and ASP.NET.
  • Automatic metabase account recreation will be eliminated. Previously, during IISAdmin service startup, the Anonymous and WAM user accounts were recreated if they were absent. In Windows Vista, these built-in accounts cannot be deleted so this capability is no longer needed.
  • Server-side image maps are no longer supported; client-side image maps are now universally supported by browsers.
  • Sub-authentication has been eliminated. This feature enables IIS to logon a principal without having a password. This feature only works if the process that loads it runs under the LocalSystem account, which is a security risk.
  • The ASP Content Rotator and Nextlink components will not be installed by default because these are rarely used items.
  • The Convlog tool, which converts log files to the NCSA log file format, is obsolete and has been discontinued. Its functionality can be completely replaced by a simple LogParser script.
  • The PICS content rating UI, which easily enables a server administrator to rate his content for violence, sex, nudity, and language has been discontinued; PICS is not a widely used rating system.
  • Microsoft Passport support will be discontinued in favor of newer WebSSO technologies.
  • The support for clustering IIS 4 and 5 through the IIS Cluster Admin Tool Extension (iisclex4.dll) is discontinued; IIS 7 will not run on Windows 2000 Server.
  • SSINC command execution, which was disabled by default in IIS 6, has been completely removed for security reasons.
  • The IISRESET-reboot command has been removed because it is superseded by the new Vista Shutdown API.

IIS 7 will not include support for web sharing, a feature that previously allowed users to make Window Explorer folders into virtual Web folders. Instead, use the Web Management Tool to create and manage Web folders.

For a complete discussion of IIS see the downloadable Help file, which can be downloaded here.

Collaboration Technologies

Businesses and organizations increasingly depend upon efficient and pervasive collaboration between individuals and groups to perform essential processes and tasks. Collaboration will also become more important to individuals as they form ad-hoc online groups for entertainment and cultural purposes.

Peer-to-Peer (P2P)

Infrastructure improvements reduce the complexity of adding P2P functionality to applications, including better support for identity and contact management, peer naming and discovery, peer presence and session initiation, and mesh communication. Many of these improvements apply to the existing Windows XP collaboration architecture, although Peer Channel is a collaboration extension of WCF.

Windows Vista and WCF address the key challenges traditionally associated with the development and deployment of P2P applications, such as:

  • End-to-end Connectivity—uses IPv6 and connectivity technologies to provide seamless end-to-end host addressing and connectivity across most NATs and many firewalls.
  • Comprehensive Foundation—provides the capabilities required by most P2P applications, including identity and contact management, node discovery and naming, secure session initiation and communication, and scalable multi-party communication.
  • Secure and Scalable Deployment—builds on protocols engineered for large-scale deployment, provides built-in security, and provides the necessary controls to enable IT administrators to control P2P application deployment and use.

P2P solutions are characterized by dynamically-formed, self-organized and self-managed, robust, server-less communication peer networks (sometimes referred to as meshes). Each node is identified by a unique (within the mesh) peer ID. Each node shares bidirectional connections with at least its nearest neighbors.

To resolve peer IDs into their corresponding Internet addresses, the Peer Name Resolution Protocol (PNRP) is used instead of the DNS. Each separate peer computer, user, group, device, service, or other type of peer node can have its own peer ID. The list of IDs is distributed among the peers using a multi-level cache and referral system that allows name resolution to scale to billions of IDs, while requiring minimal resources on each node.

Using an endpoint, which is a combination of a peer ID, a port number, and a communication protocol, data can be sent among peers in one of two common ways:

  • From one peer to another peer in a directed manner.
  • From one peer to all the other others in the same mesh, commonly referred to as flooding. A flooded message may arrive at a single node multiple times through different routes.

Security can optionally be applied to meshes and their communication, including authentication, authorization, and message privacy.

P2P Development Infrastructure

Windows Vista provides a comprehensive set of developer APIs for creating P2P applications and solutions. Typically, these capabilities are layered. Windows Vista provides support for application development at each layer.

Connectivity

IPv6 facilitates end-to-end connectivity between Internet hosts. With IPv6, each Internet host can be identified by a unique address, thereby facilitating direct person-to-person communication. Transition technologies such as 6-to-4, Teredo, and firewall traversal enable IPv6 to be used over the existing Internet without modifying existing infrastructure. In Windows Vista, IPv6 is enabled by default. P2P fully supports IPv6 and, therefore, enables seamless peer-to-peer communication.

The network subsystem of Windows Vista also has robust support for IPSec, TCP, SSL, HTTP, and other higher-level protocols.

Contact Management

P2P enables users to define their own identities and manage trusted third-party contacts. There are three general categories of operations that are common across many P2P solutions:

  • Identity creation and management—when applications first use P2P, the user is prompted to create an identity, which is associated with a unique ID within a mesh. Identities can be dynamically updated during the course of a P2P session. The Identity Manager API is commonly used for this purpose.
  • Contact management—trusted contacts are stored in the Windows Address Book (WAB). Applications can programmatically create and manage trusted contact records, using the WAB API or the Collaboration Contact APIs for WAB. The user can manually manage contacts through the WAB user interface.
  • Contact exchange—user identities and contacts are exchanged as vCards to and from the WAB. Users can simply copy-and-paste or drag-and-drop these vCards to send their own identities to other users, import identities from other users, or share trusted contacts.
Note   Peer identities are transitory, lasting only for the P2P session. To achieve permanence, identities must be stored as WAB contacts.

Naming and Discovery

P2P eases the discovery of endpoints for communication and collaboration. Two methods of discovery are supported: ad-hoc discovery on the local LAN and directed discovery over the Internet. Windows Vista contains the following two technologies to support these two types of discovery, respectively:

  • People Near Me—this service supports discovery on the local LAN. Applications can query discovered endpoints to receive information required to create a persistent trusted contact in the WAB. The People Near Me service allows running applications to publish arbitrary data to other nodes on the LAN. This data can be used to communicate information about running, or specific data needed to establish application sessions.
  • Peer Name Resolution Protocol (PNRP)—provides server-less name publication and resolution over both local networks and the Internet. Applications can announce computer names, user names, and application endpoints without deploying a central service or requiring special end-host provisioning. PNRP name records can contain arbitrary application-provided data. In Windows Vista, PNRP names can be represented as regular hostnames, meaning that they can be resolved by existing applications (for example, Internet Explorer). PNRP is also integrated into P2P Contact Management, allowing applications to locate trusted contacts over the Internet and subscribe to their current presence information.

Session Initiation

P2P supports inviting users to activities and establishing end-to-end application sessions using the following steps:

  1. Register application capabilities. Upon installation, applications can register capabilities that are advertised to other users. Applications also register entry points which are invoked when an invitation has been received and accepted by the local user.
  2. Discover endpoints using a discovery service such as People Near Me or PNRP.
  3. Using the endpoints, applications can obtain a list of activities that the user can be invited to perform, and they can initiate a session invitation to the remote user. The invitation can convey application-specific data required to support establishing a secure application connection if the invitation is accepted.
  4. On the remote host, the user is presented with the invitation, and if it is accepted, the associated application is launched.

P2P also allows application invitations to be initiated from within popular instant messaging applications. The messaging application handles sending and presenting the invitation to the user, and if accepted, launches the requested application on both hosts.

Multi-Party Communication

Windows Vista and WCF provide rich facilities for supporting multi-party communication. These mesh technologies handle the difficult tasks of managing multiple hosts who are participating in a collaboration session:

  • Discovery—meshes are identified by name. Using PNRP, mesh nodes automatically find and connect to each other.
  • Resilient and efficient communication—meshes automatically organize the participant hosts into a resilient communication structure and dynamically optimize communications to account for changing membership, data transmission patterns, network bandwidth, and network latency.
  • Security—meshes provide mechanisms that control membership and encrypt data. Mesh admission control are typically governed through password or individual identity certificates.

Mesh services support two styles of application development:

  • Data replication—the Grouping mesh facility in Windows Vista provides a synchronized database among mesh participants. Applications publish data records that are automatically propagated to other mesh nodes, and all nodes thereby maintain a common view of the available data.
  • Message distribution—the Peer Channel in WCF provides for scalable message distribution among mesh participants. Applications publish records that are automatically disseminated to all hosts. Peer Channel also provides facilities that enable applications to control message propagation.

See Also

Top 10 Ways to Light Up Your Windows Vista Apps

© 2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker