Enterprise Solution Patterns Using Microsoft .NET

利用Microsoft.NET构建企业级解决方案模式


1.    构建企业级解决方案的模式
        介绍一个模式的概念,解释。。。机制以及展示了模式的集合如何为开发者和架构师提供一个通用语言。本章实施现实模式的缩减版来阐述这些概念

2.    组织模式
        解释模式如何在不同层次的抽象和广泛的领域出现。本章在更细的层次上探究模式并且概括出让你能快速发现相关模式的框架组织。然后描述了模式如何提供一个在不牺牲细节的情况下有效描述复杂的解决方案的词汇

3.    网络展示模式
        描述设计和配置如何构建动态网络应用程序的模式。取决于不同的程序复杂度和规模,需要有不同的设计折中

4.    发布模式
        通过为如何优化应用程序构成和技术基础设施提供指导来有效满足你的方案需求,来减少应用程序开发和系统基础架构之间的耦合,阐述将应用程序组织到逻辑层,精炼各个层提供以及消耗服务,组织硬件为物理层,并且通过一个发布计划分配京城给处理器

5.    分布式系统模式
        介绍和分布式系统以及服务模式都相关的概念,包括基于接口和基于服务协作,以及近链接和元链接。分布式系统模式,集中于基于实例的协作和近链接

6.    服务模式
        展示模式之前简要回顾了前面章节中介绍的应用程序和外部服务的协作概念,相较于分布式系统,服务模式更关心通过远程连接使用基于服务的协作。

7.    性能和可靠性模式
        讨论企业解决方案一定要能可靠的满足数量不可估计的用户,并且经常需要持续开机。虽然有很多方式提高性能并且提高可靠性,此模式族集中于如何组合多系统来提供更高的扩展性和可用性

 

附录A, Pattlets,展示本向导提到的所有模式,但不讨论其细节。这些模式被命名为pattlets以跟目录中的其他模式区分。关于为什么pattlets被使用详见第二章“组织模式”

Chapter 1, “Patterns for Building Enterprise Solutions,” introduces the notion of a pattern, explains how a pattern documents simple, proven mechanisms, and shows how collections of patterns provide a common language for developers and architects. To illustrate these concepts, this chapter applies abbreviated versions of actual patterns to real-life development situations.

Chapter 2, “Organizing Patterns,” explains how patterns emerge at different levels of abstraction and across a variety of domains. This chapter explores pattern levels in detail and outlines an organizing frame that helps you find relevant patterns quickly. The chapter then demonstrates how patterns provide a vocabulary to efficiently describe complex solutions without sacrificing detail.

Chapters 3 through 6 present a catalog of 27 patterns, which are grouped into clusters. Each chapter starts by describing how the patterns in a particular cluster are related and then gives direction on when to use the patterns. For implementation patterns, code examples are written in C# and are for example purposes only. The example code is not meant to be used in production.

Chapter 3, “Web Presentation Patterns,” describes design and implementation patterns related to constructing dynamic Web applications. Depending on the size and the complexity of the application, different design tradeoffs have to be made. The Web Presentation patterns cluster offers a number of pattern alternatives that illustrate the varied types of applications and their resulting tradeoffs.

Chapter 4, “Deployment Patterns,” helps reduce the tension between application development and system infrastructure teams by offering guidance on how to optimally structure your applications and technical infrastructure to efficiently fulfill your solution requirements. The patterns discuss such topics as organizing your application into logical layers, refining layers to provide and consume services, organizing hardware into physical tiers, and allocating processes to processors with a deployment plan.

Chapter 5, “Distributed Systems Patterns,” introduces concepts relevant to both the Distributed Systems and Services patterns clusters, including the distinction between interface-based and service-based collaboration and the concept of near versus far links. Distributed Systems patterns, as defined here, focus on instance-based collaboration and near links.

Chapter 6, “Services Patterns,” briefly revisits collaboration concepts introduced in the previous chapter before presenting patterns that focus on collaboration between applications and external services. In contrast with Distributed Systems, Services patterns are primarily concerned with systems connected by far links using service-based collaboration.

Chapter 7, “Performance and Reliability Patterns,” discusses how enterprise solutions must reliably meet the needs of an unpredictable number of users, and often must operate 24 hours a day, seven days a week. Although there are many ways to increase performance and improve reliability, this patterns cluster focuses how to combine multiple systems that serve any number of applications or users for greater scalability and improved availability.

Appendix A, “Pattlets,” presents a list of patterns that this guide mentions, but that it does not discuss in detail. These patterns are named pattlets to distinguish them from the rest of the patterns in the catalog. For more information about why pattlets are used, see Chapter 2, “Organizing Patterns.”


.NET Data Access Architecture Guide

介绍

谁应该阅读此文档

你应该知道的

新特性

介绍ADO.NET

.NET数据提供者

存储过程与SQL语句比较

属性与构造函数参数比较

管理数据库连接

使用连接池

存储链接字符串

链接用法模式

错误处理

.NET Exception

从存储过程生成错误信息

性能

检索多行

检索单行

穿越防火墙连接

选择一个网络库

分布式事务

处理BLOBs

怎样存储BLOB数据

使用DataSets执行数据库更新

更新用法模式

初始化DataAdapters进行更新

使用存储过程

管理并发

正确更新空字段

更多信息

使用强类型数据集对象

使用强类型数据集

产生数据集类

事务

选择一个实物模型

使用手动事务

使用自动事务

分页

比较选项

使用SqlDataAdapterFill方法

使用ADO

使用手动配置

附录

如何让一个.NET类允许对象构造

如何使用SqlDataAdapter检索多行数据

如何使用SqlDataReader检索多行数据

如何使用XmlReader检索多行数据

如何使用存储过程输出参数检索单行数据

如何使用SqlDataReader检索单行数据

如何使用ExecuteScalar检索一个单独项

如何使用存储过程输出或者返回参数检索一个单独项

如何使用SqlDataReader检索一个单独项

如何编码ADO.NET手动事务

如何通过SQL执行事务

如何编码一个.net事务类

作者

合作者

附加信息

 

 

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  1

Who Should Read This Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

What You Must Know . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

What’s New . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

Introducing ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  2

.NET Data Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5

Stored Procedures vs. Direct SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8

Properties vs. Constructor Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9

Managing Database Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9

Using Connection Pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10

Storing Connection Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  15

Connection Usage Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  20

Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  22

.NET Exceptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  22

Generating Errors from Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  26

Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  29

Retrieving Multiple Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  29

Retrieving a Single Row . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  34

Retrieving a Single Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  35

Connecting Through Firewalls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  36

Choosing a Network Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  37

Distributed Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39

Handling BLOBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  39

Where to Store BLOB Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  40

Performing Database Updates with DataSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  42

Update Usage Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  43

Initializing DataAdapters for Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  43

Using Stored Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  44

Managing Concurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  44

Correctly Updating Null Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  45

More Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  46

Using Strongly Typed DataSet Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  46

When to Use Strongly Typed DataSets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  46

Generating DataSet Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  47

Working with Null Data Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  48

Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  49

Choosing a Transaction Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  50

Using Manual Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  51

Using Automatic Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  52

Data Paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  57

Comparing the Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  57

Using the Fill Method of SqlDataAdapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  58

Using ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  58

Using a Manual Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  59

Appendix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  62

How to Enable Object Construction for a .NET Class . . . . . . . . . . . . . . . . . . . . . . . .  62

How to Use a SqlDataAdapter To Retrieve Multiple Rows . . . . . . . . . . . . . . . . . . . .  64

How to Use a SqlDataReader to Retrieve Multiple Rows . . . . . . . . . . . . . . . . . . . . .  64

How to Use an XmlReader to Retrieve Multiple Rows . . . . . . . . . . . . . . . . . . . . . . .  66

How to Use Stored Procedure Output Parameters to Retrieve a Single Row . . . . . . .  67

How to Use a SqlDataReader to Retrieve a Single Row . . . . . . . . . . . . . . . . . . . . . .  68

How to Use ExecuteScalar to Retrieve a Single Item . . . . . . . . . . . . . . . . . . . . . . . .  69

How to Use a Stored Procedure Output or Return Parameter

to Retrieve a Single Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  70

How to Use a SqlDataReader to Retrieve a Single Item. . . . . . . . . . . . . . . . . . . . . .  72

How to Code ADO.NET Manual Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  73

How to Perform Transactions with Transact-SQL . . . . . . . . . . . . . . . . . . . . . . . . . . .  74

How to Code a Transactional .NET Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  75

Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  77

Collaborators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  77

Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  79

 

3. Application Architecture for NET Designing Applications and Services.pdf

第一章

介绍

内容Roadmap

章节内容

分布式应用程序设计目标

服务和服务集成

应用程序和服务中的组件和层

一个简单应用场景

接下来是什么

第二章

设计应用程序或服务的组件

章节内容

组件类型

应用程序和服务的通用设计建议

设计展示层

设计用户接口组件

设计用户处理组件

设计业务层

业务组件和工作流

设计服务接口

展示数据并且通过层传递

业务实体设计建议

设计数据层

数据存储

数据访问逻辑组件

设计数据访问Helper组件

与服务集成

接下来是什么

 

第三章

安全性,操作性管理和通信策略

章节内容

设计安全策略

通用安全原则

认证

授权

安全通讯

资料管理

审查

设计操作性管理策略

例外管理

监控

配置

元数据

服务位置

设计通信策略

选择正确的通信模型

同步

通信建议

通信格式,模式和协议

前瞻一下

接下来是什么

第四章

物理部署和操作性需求

章节内容

部署应用程序组件

物理部署环境

计划应用程序组件的物理位置

组件之间的分布边界

将应用程序或服务分割为程序集

打包及分发应用程序组件

通用部署模式

基于网络的用户接口场景

富客户端用户接口场景

服务集成场景

生产,测试和阶段环境

操作性需求

扩展性

可用性

可维护性

安全性

可管理性

性能

第五章

附录

附录1:产品图

附录2:术语表

程序集

原子事务

可换性

组件

协约

会话

CRUD

DMZ(非武装区域)

静态数据路由

Emissary

Fiefdom

防火墙

等幂性

长期事务

消息

Orchestration

策略

服务

服务代理

服务接口

有状态

无状态

两阶段提交

工作流

区域

附录3:层次化架构

Chapter 1

Introduction 1

Contents Roadmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Chapter Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Goals of Distributed Application Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

Services and Service Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Components and Tiers in Applications and Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

A Sample Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Chapter 2

Designing the Components of an Application or Service 11

Chapter Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Component Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

General Design Recommendations for Applications and Services . . . . . . . . . . . . . . . . 15

Designing Presentation Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Designing User Interface Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Designing User Process Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Designing Business Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Business Components and Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Designing a Service Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Representing Data and Passing It Through Tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Recommendations for Business Entity Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

Designing Data Layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Data Stores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Data Access Logic Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Designing Data Access Helper Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Integrating with Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Chapter 3

Security, Operational Management, and Communications Policies 71

Chapter Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Designing the Security Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

General Security Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Authorization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Secure Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Profile Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Designing the Operational Management Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Exception Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Service Location . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Designing the Communications Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Choosing the Correct Communication Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Synchronicity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Recommendations for Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Communication Format, Schema, and Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

A Look Ahead . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

What’s Next? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Chapter 4

Physical Deployment and Operational Requirements 119

Chapter Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Deploying Application Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Physical Deployment Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

Planning the Physical Location of Application Components . . . . . . . . . . . . . . . . . . 125

Distribution Boundaries Between Components . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Partitioning Your Application or Service into Assemblies . . . . . . . . . . . . . . . . . . . . 131

Packaging and Distributing Application Components . . . . . . . . . . . . . . . . . . . . . . . 134

Common Deployment Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Web-Based User Interface Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

Rich Client User Interface Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Service Integration Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Production, Test, and Staging Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Operational Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

Maintainability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Manageability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Chapter 5

Appendices 151

Appendix 1: Product Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Appendix 2: Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Atomic Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Commutativity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

Conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

CRUD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Demilitarized Zone (DMZ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Dynamic Data Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Emissary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Fiefdom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

Idempotency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Long-Running Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Orchestration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Service Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Service Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Stateful . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Stateless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Two-Phase Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Zone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Appendix 3: Layered Architectures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Feedback and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

转载于:https://www.cnblogs.com/pursue/archive/2009/07/22/1528301.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值