Application Conceptual View

.NET Architecture Center

 

July 2002

The conceptual view of application architecture is one of multiple views on application architecture introduced in the Microsoft Architecture Overview.

Introduction

The advent of Web services introduces a new set of fundamental architectural elements for architects to work with at a conceptual level. These are Web services, messages, state, and processes, which are introduced in this document.

Services

Software services are discrete units of application logic that expose message-based interfaces suitable for being accessed across a network. Service-based architectures permit very flexible deployment strategies; rather than requiring that all data and logic be resident on a single computer, the service model allows applications to leverage networked computational resources. This document describes an application architecture that depends on interoperable services for the provision of high-value business logic and state management.

Messaging

In the service model presented here, the service is defined purely by the messages it will accept and produce, including the sequencing requirements for those messages. Successful routing of messages between services is a complex process, which is best handled by a messaging infrastructure shared across the services an organization exposes. This document explores these concepts in detail, presenting a conceptual view of the role of messages and message passing in a service-based architecture.

Contracts

Services communicate through service interfaces, which send and receive messages. Service-to-service communication follows a contract, and by making this contract explicit it is possible to change one service implementation without compromising the interaction.

Policies

Services need to be managed and secured. A policy consists of a set of rules, and each rule applies to an aspect of the run-time behavior. For instance, a service may have multiple interfaces; you may have rules that apply to the service as a whole and you may have rules that apply to one or more of its interfaces.

State

Services manage state; this state is the very reason for their existence. Services guard this state and they ensure through their business logic that it is kept consistent and accurate. This state is the only true and current source of information.

Processes

Business processes control the step-by-step actions of executing work, moving the system from one state to another. At each step, a business operation is called. These processes can be hosted in a business process service or process service. A process in such a process service will send a message to call a business operation contained within a service, and then move on to the next step, which may require the use of a different service.

Applications

Within a service-based architecture, an application is composed of process services and more elemental services that implement business functions and user interfaces. This model is valid for both traditional applications that have a user interface communicating with business services and for business-to-business scenarios where business services communicate with other business services.

Glossary