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 |
|
Managed |
|
Managed |
|
Managed |
|
Managed |
|
Managed |
|
Managed |
|
Managed |
|
Managed |
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 |
|
Managed |
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 |
|
Unmanaged |
.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 |
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 |
|
Unmanaged |
|
Managed |
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 |
|
Unmanaged |
|
Unmanaged |
|
Unmanaged |
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 |
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 |
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 |
|
Unmanaged |
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 |
See Also
Concepts
Communication and Services
Connected Applications and Web Services
Networking