다음을 통해 공유


SDM Architecture

SDM Architecture

Using SDM, you can extend Distributed System Designers in Visual Studio 2005 Team Edition for Software Architects and Visual Studio Team System 2008 Architecture Edition by adding new application, logical server, and endpoint types as well as additional resources and constraints, and by adding relationships among new and existing concepts.

This topic describes the main building blocks of the System Definition Model. The building blocks can be categorized as SDM objects, relationships, and optional additions to objects such as settings, flows, and constraints. Definitions of each appear inside an .sdm document file. SDM also uses other terminology, such as members, managers, and Design Data.

Objects

SDM objects represent both the physical and logical aspects of a modeled system. Be aware that in the Distributed System Designers, an atomic system is referred to as an "application" and the term "system" is used to refer to a composite system in the application layer where a composite system consists of applications or other systems.

Object Description
System

Represents standalone entities that perform well-defined tasks in the physical world and are independently deployable. Systems may make use of other SDM building blocks, including other systems. Interactions between systems are explicitly modeled using communication relationships. Examples of SDM systems include Web applications, Web services, Web servers, and database servers.

Resource

Represents a software or hardware element that is not independently deployable in the physical world. A resource must be deployed as part of a system. Resources can contain other resources, but not endpoints or systems. Resources within an SDM system cannot express dependencies on resources outside the system. Examples of resources include certificates, certificate stores, files, and directories.

Endpoint

Represents a communications interface on a system. Endpoints allow SDM systems to form communication relationships with other systems. Because resources within a system cannot have dependencies on resources that lie outside the system, endpoints are used to model the interaction of a system with other systems where such external resources are required. Examples of endpoints include the HTTP, TCP/IP, and SOAP connectors.

Relationships

Relationships define associations between SDM systems, resources, and endpoints. All relationships are binary and directed (they specifically apply from one object to another). In addition to capturing aspects of the interactions between SDM objects, relationships can place constraints on the objects that participate in the relationship and can pass configuration information between the participants.

Relationship Description
Containment

Specifies ownership of an SDM object. For example, a Web application system may contain a file or a directory resource and may contain a Web services endpoint.

Hosting

Identifies the execution environment for an SDM object (called the guest). At any given time, a guest may have exactly one host, even though in a different deployment scenario, it may have another host. An example of a hosting relationship is a Web application system hosted on a Web server system (display names in the designers are ASP.NET Web application and IIS Web).

Communication

Models an interaction between SDM systems. This relationship is expressed between compatible endpoints on each system. Note that the relationship may be between endpoints on the same system.

Reference

Captures dependencies between resources. The dependency is usually known only to the resource that has the dependency. The current release of SDM does not support the creation of reference relationships.

Delegation

Exposes endpoints from nested SDM systems or a resource from a host.

Settings, Flows, and Constraints

To model configurations and validate for deployment, the following optional additions can be added to systems, endpoints, and resources.

Term Description
Settings

Create simple value elements, which can then be used to store configuration information. All definitions can expose settings members, which are called setting declarations within the SDM schema. These members are used to describe the configuration values associated with the definition. Values are provided to setting members using <SettingValue> elements or through flows.

Flow

Specifies particular transforms applied to values for settings. Where <SettingValue> elements support assigning static settings values at design time, flow supports the dynamic assignment of settings at deployment. Flow passes settings values between members of an object definition and between participants in relationships. As part of a flow, transformations can be specified that combine, separate, or calculate new setting values. SDM supports several standard flow definitions to simplify the construction of flow elements where straightforward transformations are required. Examples include copy, merge, and string substitution operations. Because flow definitions can be parameterized, simple transformations can perform different actions based on configuration parameters.

Constraints

Capture detailed requirements that depend on the configuration of SDM objects involved in a relationship. For example, a constraint may be used to ensure that participants at each end of a communication protocol are using compatible security settings. The restrictions modeled by a constraint are evaluated at design time.

SDM Terminology

The following terms are also used in SDM documentation.

  • Member
    A definition can contain members that reference other definitions. Members allow one definition to reuse another definition in a custom way. Each definition type has a corresponding member type.

    Setting members are used to identify configuration information that is associated with the definition. Setting members (called setting declarations) are based on setting definitions.

    Object members are used to reference a particular object definition.

    Relationship members define the relationships that object members participate in. For example, an object member that is contained by its parent is represented by a containment relationship member that associates the object member and the containing definition.

    Constraint members are used to narrow the scope of a relationship.

    Flow members are used to define the flow of configuration between members. They collect input values from settings on members, process on that information and then distribute the results to settings on other members.

  • Manager
    Managers provide custom behavior when the SDM compiler validates models. There are several roles that a manager can support for each type that it manages: it can provide a CLR representation of the type, it can be involved in policy decisions about how bindings between types are resolved, it can support localization of a model, and it can provide the implementation for setting definitions, complex constraints, and flow.

  • Design Data
    Design Data is XML used by Distributed System Designers. Design Data can specify a bitmap, add a default display name, or color. Design Data is mandatory when an endpoint is the client in a communication relationship. For more information, see Design Data in the System Definition Model.

Send comments about this topic to Microsoft

Build date: 10/2/2007