参照Service Oriented的四宗旨:
Boundaries are explicit
Services are autonomous
Share schema and contract and not class
Service compatibility is based on policy
仅仅这四个宗旨,对于将分布式的服务进行重构整合的SOA来说是不够的。少了什么呢? 所缺少的关键点在于:如何和将这些服务整合的指导,系统地特征,和将人作为应用整合的一个因素考虑在内。考虑到这些就是下面的四个新的,更加全面的宗旨:
1.Workflows are long-running and stateful: Fundamentally, systems are created by the composition of multiple services and, following good design practices, components that perform specific roles should be created as autonomous services. The behavior between these services can be as simple as passing and mapping behaviors or more complex such as sharing transactional semantics and temporal constraints. The temporal aspects of service composition enforce asynchronous requirements on the system. A service that submits a purchase order to other services as part of a composite application waits for two hours for an acknowledgement. This asynchronous controller, or model, should be independently factored as a specialized service component. Hand in hand with the requirement to model asynchrony is the need to include state as part of the model. The service that sent out a purchase order and received an invoice requires information on the purchase order to later update another service. State may be relevant to a single call, relevant across multiple calls, or relevant across an entire asynchronous workflow.
2.Workflows are transparent and dynamic through their lifecycle: Services and the applications to which they compose should not be, as they are today, like concrete bunkers with no windows. Although policy provides rigor in the definition of how to talk to the service, what the service does—its behavior—is opaque beyond its method call syntax. System behavior should be transparent, enabling the developer to rapidly ascertain the behavior at design-time and make a change in that behavior. Even more importantly, system behavior should be transparent at the runtime level. If the behavior of each service in a composite application were transparent the advantages would be significant. No longer is the service a concrete bunker; rather, it is more analogous to a greenhouse. Troubleshooting, tracking, and understanding the overall composite application behavior becomes dramatically simpler because of the additional visibility into the thread of execution. Entirely new scenarios can be envisioned where the behavior of the system thus far executed can be queried at runtime and used to influence of the future behavior. With access to the system behavior metadata, the thread of execution can analyze the currently completed behavior and make changes to its behavior on the fly on the basis of new program conditions. Having asserted that system behavior should be transparent by default, there are times when the developer will want to decrease the level of transparency. For example, some service behavior may need to be obstructed for intellectual property reasons, or specific service behavior is visible within a bounded set of services but not beyond that. The dial that sets the service transparency should be set through policy and access control rather than the traditional development approach where a transparent system is not a default and developers add small windows to prebuilt concrete bunkers.
3.Workflows coordinate work performed by people and by software: The original tenets for services make no reference to people and yet people are a vital part of any composite application. Today services typically send messages to people through email and pagers, or receive inputs from people through user interfaces that pass their parameters to and from services. Sometimes a single person provides the information required for the composite application to continue but more often than not an entirely out-of-band interaction occurs between multiple people in a manner that has been historically challenging to model in software before a result is returned to the composite application to continue. People are important; optimizing their behavior as part of the overall system behavior may provide as high a return as optimizing the system behavior itself with some systems having 80% of their cost in exceptions managed by people. The downside of including people from a software engineering perspective is that modeling their behavior is significantly less straightforward than modeling service behavior. People tend to work in a more ad hoc manner—it is typically more challenging to be imperative with people, and the flow of information between people may not be easily drawn in a flow-based sense because they make choices that may change the workflow at runtime, but is more ad hoc and is better represented as a set of interacting exception conditions.
4.Workflows are based on extensible models: Every workflow comprises some number of steps, each of which performs a particular part of a complete business process. The set of actions that are used to construct a workflow can be thought of as comprising a model for that particular problem domain. Different problem domains have different actions, and so a single model isn't appropriate for all workflows. Instead, different groups of actions—different models—can be created for specific domains. Those actions can then be used to construct workflows supporting various business processes in that domain.
分享到:
相关推荐
通过学习这个系列课程,开发者可以更好地利用WinFX来构建高效、安全且具有现代用户界面的Windows应用程序,从而适应Windows Vista操作系统带来的技术变革。同时,这些知识也能为向更高版本的Windows操作系统(如...
### Windows Workflow Foundation 构建工作流应用 #### 一、Windows Workflow Foundation 概览 **Windows Workflow Foundation (WF)** 是由微软开发的一个用于构建工作流应用程序的框架。它旨在为开发者提供一个...
作为即将问世的 Microsoft WinFX 的组成部分,Windows Workflow Foundation 同时提供了 API 和一些工具,用于开发和执行基于工作流的应用程序。Windows Workflow Foundation 提供单个统一的模型,以便创建跨越多个...
基础版的流程学习教程 适合初学者 流程相关的东西 从WinFX到NET3.x再到NET4.0 ,WPF,WCF,WF 始终是放在一起的,WPF(silverlight)用于程序UI的展现,WCF用于程序通信,WF用于程序的逻辑控制,这种思想在微软提出WinFX到...
从WinFX到NET3.x再到NET4.0 ,WPF,WCF,WF 始终是放在一起的,WPF(silverlight)用于程序UI的展现,WCF用于程序通信,WF用于程序的逻辑控制,这种思想在微软提出WinFX到现在的NET3.x再到NET4.0都是十分明确的. WPF...
首先,要开始学习WWF,你需要安装WinFX(即.NET Framework 3.0的核心组件)以及Visual Studio 2005的.NET Framework 3.0扩展,这些是开发WWF应用的基本工具。教程由微软实验室提供,分为10个部分,从基础开始逐步...
### WPF学习笔记知识点概述 #### 一、Application **Application** 在 WPF 中扮演着极其重要的角色,它是应用程序的入口点,负责管理程序的生命周期。与 WinForms 的设计不同,WPF 中的 **Application** 类默认由...
### C# WCF入门学习知识点概述 #### 一、什么是WCF? WCF(Windows Communication Foundation)是由微软推出的一个统一的编程模型和技术框架,旨在帮助开发者构建和运行面向服务(Service Oriented Architecture, ...
文档强调了对于希望深入学习Java语言的读者来说,这份资料具有较高的参考价值。接下来,我们将基于文档提供的信息,对其中涉及的核心知识点进行详细阐述。 #### 二、软件架构的基本概念 **1. 架构层级** 文档中...
- **WinFX Runtime Components**:为了在Windows XP和Windows Server 2003等较旧的操作系统上使用WCF,需要安装WinFX Runtime Components。 - **Visual Studio 2005**:尽管Visual Studio 2005本身并不包含WCF,但在...
### WPF基础知识与核心概念详解 #### 一、Application与WPF程序启动机制 WPF(Windows Presentation ...通过这些内容的学习,可以帮助开发者更好地理解和掌握WPF的核心技术,为后续的项目开发打下坚实的基础。
Windows Workflow Foundation并行为新一代 Windows 操作系统以及 WinFX 的三个重大应用程序开发类库。 程序示例为WCF的简单应用,如何创建合约,如何配置。程序中有详细的说明注释,请下载源码程序学习使用来自51...
在开发平台方面,基于Windows Vista的全新WinFX编程模型可称为一次重大变革。基于WinFX, 开发者可以高效开发出安全可靠、更易维护的面向服务的应用;以简洁的方式创建具有丰富视觉体验的用户界面;还令开发人员...
- **安装Visual Studio 2005**:尽管Visual Studio 2005本身不包含WCF,但安装了WinFX Runtime Components后,可以在该环境中开发WCF应用。 - **下载和安装WCF工具**:例如SvcUtil.exe等工具,通常包含在WinFX ...
传输安全性相关的定义 它是 NET框架的一部分 由 NET Framework3 0 开始引入 与Windows Presentation Foundation及Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库 ...