Share via


Connected Applications and Web Services 

Connected applications enable the exchange of data between applications and devices on an as-needed basis. For example, you can create an application that creates a purchase order, connects to a warehouse application to check on availability, and returns the cost of the shipping. Using Windows technology, you can create either end of this connected scenario—the order application or the service that returns the order and shipping information.

Creating Distributed Applications

Distributed applications connect to each other to process data efficiently. You can create distributed applications using any of several Windows technologies or a combination of these technologies, depending on the type of application you want to create.

Web Services created Using Windows Communication Foundation

WCF is designed to offer a manageable approach to distributed computing, broad interoperability, and direct support for service orientation.

WCF simplifies development of connected applications through a new service-oriented programming model. WCF supports many styles of distributed application development by providing a layered architecture. At its base, WCFprovides asynchronous, untyped message-passing primitives. Higher-level services that layer on top of this base include secure and reliable exchange, a typed programming model including serialization facilities, queued and transacted exchanges, peer-to-peer support, and integration with other technologies such as MSMQ, COM+, and ASP.NET). Built on Web services standards, WCF provides interoperability with ASP.NET Web Services, Web Services Enhancements (WSE), and a wide variety of Web services environments on Windows and other platforms. In addition to broad support for Web services industry standards, WCF also includes efficient, binary-only wire encodings that are optimized for high throughput and small network footprint.

WCF services can be hosted in any application. Rich process model support for reliability features such as recycling and pooling is readily available for HTTP/HTTPS based transport bindings on Internet Information Services (IIS) on Windows XP (IIS 5.1) and Windows Server 2003 (IIS 6.0). The process model support is broadened to any WCF supported transport when using the Windows Activation Service (WAS) on Windows Vista and the forthcoming Windows Longhorn Server.

WCF is the preferred managed programming model and runtime for most types of connected applications built on the Windows platform.

Programming Model Documentation Link

Managed

Getting Started

Managed

Basic Programming

Managed

WCF Features

Managed

Extending WCF

Managed

Guidelines and Best Practices

Managed

Administration and Diagnostics

Managed

Windows Communication Foundation Configuration Schema

Managed

Windows Communication Foundation Tools

Managed

Windows Communication Foundation Samples

Web Services Created Using ASP.NET

ASP.NET Web services is the first generation Web services technology embedded in the ASP.NET runtime. ASP.NET Web services are an industry-strength Web services platform for building WS-I Basic Profile 1.1 compliant services that enable broad interoperability with other Web services environments on Windows and other platforms.

The client side portion of ASP.NET Web services is available on the .NET Compact Framework and is the preferred choice to implement Web service clients and specifically clients for Windows Communication Foundation basic HTTP services on the platforms supported by the .NET Compact Framework.

On the server-side, ASP.NET is the preferred platform for implementing basic Web services in shared hosting, partial-trust scenarios. In most other scenarios, the more advanced Windows Communication Foundation is the preferred Web services implementation technology.

Programming Model Documentation Link

Managed

XML Web Services Using ASP.NET

Managed

Walkthrough: Building a Basic XML Web Service Using ASP.NET

Component Services (COM+) and Enterprise Services

COM+ and the managed System.Enterprise Service programming model provide a robust, proven platform for component-oriented, distributed enterprise applications based on the Microsoft Component Object Model (COM). COM+ also provides you with the tools to create, deploy, and manage transactional, multi-tier applications.

For new applications, the Windows Communication Foundation (WCF) offers a set of services very similar to COM+ and Enterprise Services and is the preferred platform for building N-Tier applications that were previously built on COM+. WCF also provides an integration path for exposing COM+ applications as WCF services and for consuming WCF services through COM.

COM+ and Enterprise Services continue to be a viable primary platform choice for applications with substantial existing unmanaged code and COM investments.

Programming Model Documentation Link

Managed

Writing Serviced Components

Unmanaged

COM+ Developers Overview

COM+ Services

Distributed Transactions Overview

.NET Remoting

.NET remoting is a distributed objects technology that enables you to build applications that span multiple application domains, which may reside within the same process or in separate processes. It allows for tightly coupled programming techniques, such as passing objects by reference, remote subscriptions to events, and direct remote access to object properties and fields. The preferred scenario for using .NET remoting is to facilitate communication between parts of one application that must reside in different application domains: for instance, to enable safe loading and unloading of foreign assemblies into isolated security sandboxes or for loading subsystems that require separate configuration scopes. .NET remoting also has built-in network channels for enabling communication across process boundaries and to components of the same application running on other machines in the local network.

For building scalable, service-oriented, distributed applications, the preferred platform choice is the Windows Communication Foundation. .NET remoting remains a sensible choice for distributed applications with substantial existing investments in .NET remoting specific extensibility, such as custom transports or sinks, and applications whose existing architecture has a strong dependency on the aforementioned tightly coupled programming techniques.

Programming Model Documentation Link

Managed

.NET Framework Remoting Overview

Building a Basic .NET Framework Remoting Application

Making Objects Remotable

Creating Message Queues

Message queues (MSMQ) allow an application to decouple workloads between different parts of an application and to add reliable, transacted network delivery of messages or message sequences. MSMQ also enables application scenarios where work is performed in a disconnected fashion and messages are being delivered to the destination when network connectivity becomes available again.

MSMQ is also the underlying transport technology for queued delivery using the MSMQ transport binding in the Windows Communication Foundation and knowledge about how to create and provision queues is a prerequisite to use this particular WCF feature.

Programming Model Documentation Link

Managed

How to: Create Queues

Unmanaged

Message Queuing Overview

Using Message Queuing

Managed

Queues

Using the Real-time Communications Client

The Real-time Communications (RTC) Client API enables you to build applications that can make PC-PC, PC-phone, or phone-phone calls or create Instant Messaging (IM) sessions over the Internet. This section introduces some of the common tasks that can be performed using the RTC Client APIs.

Programming Model Documentation Link

Unmanaged

RTC Overview

Unmanaged

RTC Versions 1.0 and 1.01

Unmanaged

RTC Version 1.2

Unmanaged

RTC Version 1.3

Login to a SIP Server

A Session Initiation Protocol (SIP) server helps users' real-time communications applications find one another and establish a real-time communications session. The SIP server can also help clients achieve a higher level of security, manage presence information, and persist contact lists for users.

A SIP server can act as a SIP proxy that routes and redirects SIP messages across SIP clients. It can also maintain a database of network locations of SIP clients and ensure that all SIP clients update their location information. Last, it can act as a Presence Agent Server (PAS) to maintain presence documents for all registered users, and notify other users whenever presence information changes.

Programming Model Documentation Link

Unmanaged

How to Log On to a Session Initiation Protocol (SIP) Server

Managing Contact Lists and Watchers

Each user has a list of other users they want to communicate with on a regular basis. This list is referred to as a contact list. A user actively tracks the presence information of others in the contact list. Tracking presence information of a contact is referred to as watching presence, and the user watching presence is called watcher.

Programming Model Documentation Link

Unmanaged

Adding Buddies and Watchers

Presence Information

Presence information is an indicator of the availability of a user for real-time communication activities. It is also an indicator of the level of the user's activity for the device publishing the presence information. The presence information can be as simple as whether the user is online or offline, or as complex as the user's meeting schedule.

Programming Model Documentation Link

Unmanaged

Setting Presence Information

Unmanaged

Presence Devices

Managing Sessions

A real-time communications session is an established conversation between two or more real-time users (clients), and involves one or more types of media. The clients might use a Session Initiation Protocol (SIP) server to route the signaling traffic, or they might use a peer-to-peer session in which no SIP server is involved.

The RTC Client API can build a rich set of communication sessions. These session types use different types of media to bring users together. The media types can be used for both person-to-person communications, as well as application-to-application or application-to-user communications. The media types available are instant messages, audio/video, telephony, application sharing, and application-specific sessions.

Programming Model Documentation Link

Unmanaged

Multiparty Instant Messaging

See Also

Concepts

Communication and Services
Connected Applications and Web Services
Networking