【转】Web服务软件工厂

patterns & practices开发中心

摘要

Web服务软件工厂(英文为Web Service Software Factory,也称作服务工厂)是一个集成的工具、模式、源代码和规范性指导的集合。它的设计是为了帮助你迅速、一致地构建符合普遍的体系结构和设计模式的Web服务。

如果你是一名负责创建面向服务的应用程序的架构师或开发员,那么我们的patterns & practices (模式与实践)小组就会邀请你参加学习,以了解服务工厂在未来的服务开发活动中的作用。服务工厂提供了相关的指导,以帮助你应对众多与创建ASP.NET (ASMX)、Windows Communication Foundation (WCF) Web服务和分布式应用程序组件相关的挑战。这些挑战包括:

设计ASMX和WCF消息以及服务接口。

应用异常屏蔽和异常处理。

在域模型中设计业务实体。

转换往返于业务实体的消息。

设计、创建和调用数据访问层。

使用代码分析来验证服务的实现、配置和安全性的一致性。

为移植到WCF制定计划。

向WCF服务应用安全措施。

应用消息验证工具。

使用下列信息来确定服务工厂是否适合你、你的团队以及你正在创建的服务。

下载

Web Service Software Factory–December 2006 (ASP.NET and WCF services in C#)

Web Service Software Factory–July 2006 (ASP.NET services in VB.NET)

Web Service Software Factory Hands-on Lab

媒体

MSDN Architecture Webcast: Web Service Software Factory (27 June 2006)

Web Service Software Factory Presentation (with PowerPoint slides)

Web Service Software Factory Demonstration (with code files)

MSDN Webcast: Web Service Software Factory (5 April 2007)

社区

Web Service Software Factory Community Workspace

The Service Factory Blogs

许可

End User Licensing Agreement (EULA)

*
本页内容
服务工厂(Service Factory)是什么?服务工厂(Service Factory)是什么?
目标受众目标受众
入门指南入门指南
系统要求系统要求
未来计划未来计划
已知问题已知问题
反馈和支持反馈和支持
作者和参与人员作者和参与人员

服务工厂(Service Factory)是什么?

总体来说,服务工厂代表了一个指导集合,它可以帮助架构师和开发人员创建特定类型的应用程序。因此,服务工厂可帮助开发人员和架构师创建Web服务应用程序。Web服务应用程序不仅仅属于发送和接收SOAP消息并公布WSDL协定的技术,它们还包括了实施服务行为所需的功能。图1展示了此应用程序的各个组件以及它们彼此之间的关系,服务工厂将帮助你创建它们。

.

图1. 服务工厂创建的服务的结构

除了“摘要”部分列出的挑战之外,实际上这些技术一直都在发展变化。另外一个应该注意的挑战是如何使用.NET Framework 2.0 (ASP.NET和Web Services Enhancements (WSE))创建XML Web服务,以便使它们可以在不久的将来移植到NET Framework 3.0 (WCF、Windows Workflow (WF)和CardSpace™)中。服务工厂可基于目前发布的技术创建服务,这些技术可能成为未来的技术。它能够引入与下一代技术密切相关的概念,并提供可最大限度减少未来变化的设计指导,从而完成此项工作。如果你已经在使用WCF创建服务,那么服务工厂还可帮助你创建和保护这些服务。

服务工厂的指导可通过三种基本方式获得:

书面文档。除了通过服务工厂提供的详细基本主题和可打印的范例之外,还有几个与体系结构相关的主题,它们介绍了更详细的指导信息和指导的基本原理。例如:

Web服务应用程序体系结构

面向服务的应用程序中的消息设计

面向服务的应用程序中的异常处理

为移植到WCF制定计划

指导包。通过结合指导包使用指导自动化扩展程序(Guidance Automation Extensions),开发人员可以使用向导和快捷菜单与Visual Studio 2005进行“对话”。对话将会生成源代码和配置,它们可遵循已证实可行的实践方法。服务工厂中包含了两个指导包:

ASMX指导包。该指导包有助于创建服务接口、服务将要公布和使用的消息以及将这些消息映射到域模型实体的转换器。

数据访问指导包。 该指导包有助于从现有的数据模型创建业务实体,从某个数据模型创建存储过程,生成包含数据访问逻辑的仓库类和工厂。

WCF指导包。该指导包有助于创建服务接口、服务将要公布和使用的消息和数据合同以及将这些消息映射到域模型实体的转换器。

WCF安全性指导包。该指导包可使用X.509和Kerberos保护WCF服务,并通过生成必要的配置节对验证过程进行引导。

引用实现。世界银行(Global Bank)是一个虚构的组织,该解决方案满足了它的需求。该解决方案是使用上述的指导包创建的,它可用作一个实例,以说明如何对服务使用附加功能,比如日志、异常管理等。欲了解详细信息,请参见世界银行方案(Global Bank Scenario)。

服务工厂提供了下列好处:

提高的质量。它提供了经过测试和验收的可重用资产、指导和实例,它们能够处理一般的方案和挑战。它以来自于已证实的行业实践方法和Microsoft实践方法的范例为基础。

提高的可预测性。patterns & practices小组与负责创建目前和未来两代的服务和数据访问技术的开发小组进行了密切合作。所有要使用服务工厂创建的服务都将以一种可预测的方式进行创建,并得到可预测的结果;同时,它们还将通过一条可预测的路线移植到未来的技术。

提高的生产力。它包括了专门为Visual Studio 2005生成的自动化代码和配置文件。借助于这种自动化技术,开发人员可以通过一致的、可重复的方式轻松地应用指导内容。同时,他们还可以有效地使用.NET Framework,而无须花费大量的时间来学习必需的API。

提高的灵活性。服务工厂是根据已证实可行的实践方法精心设计的,但它也具有开放性和高度的可定制性。架构师和开发负责人可以对工厂进行定制,以包含专用于某个小组或组织的约定、策略和实践方法。

目标受众

基于目标受众,服务工厂将提供不同等级的价值。目标受众可由服务工厂用户的角色和正在创建的应用程序的类型进行定义:

架构师。如果你是一名关注面向服务的架构师,由于你的角色责任,服务工厂的设计很可能考虑到了你的因素。

团队开发人员。如果你是某个团队中的一名开发人员,并且你的责任没有跨越图1中的所有层级,那么各指导包就可以分别安装,以帮助你创建你负责的那部分应用程序。这些不同的层级经常可以同时开发。而且,服务工厂应该能够帮助较大的团队实现更高的生产力收益。

单独的开发人员。如果你是一名负责创建整个服务的开发人员,那么对于你如何、何时执行构建每个层级所需的活动,服务工厂都提供了详细的指导。在此过程中,你还将获得自信你正在遵循既定的模式和已证实可行的实践方法。

服务类型。服务工厂的这个发布版本有助于实施以下服务:

实体服务。这些服务提供了对于数据实体的访问功能,数据实体提供了组织流程在封装长期战略详细信息的同时管理和操作的信息的面向业务视图。一个可能性的操作实例是“GetCustomerDetails”(获得客户的详细信息)。

活动服务。这些服务提供了可重复封装的业务价值,它们可能需要使用实体服务来满足请求。一个可能性的操作实例是“RetrieveCreditScore”(检索信用分数)。

服务工厂的未来发布版本还将有助于实施以下服务:

流程服务。这些服务负责管理长期运行的业务流程。这些服务由组织的工作流进行控制,它们经常会配合其它服务进行使用。一个可能性的操作实例是“ProcessInsuranceClaim”(处理保险索赔)。

实用工具服务。这些服务提供了基础结构功能,比如日志、内容路由、安全性以及发布/订阅功能。这些服务可以对消息标题或消息正文发挥作用,但它们必须符合WS-Security等规范的要求。

patterns & practices小组希望个人和组织能够在使用服务工厂进行服务开发的过程中实行标准化。这将保证各种服务之间的一致性,并为将来的技术发展提供可预测性。

入门指南

了解服务工厂的最佳方式是观看“摘要”部分中列出的网络广播。该简介将告诉你为什么要创建服务工厂,同时它还会在Visual Studio中演示本指导的自动化体验。在网络广播结束之前,将会演示如何使用服务工厂的下一个发布版本向WCF服务应用安全性。

开始评估服务工厂的最佳方式是下载“摘要”部分中列出的动手实验。该实验介绍了使用C#为虚构的Coho Winery构建ASP.NET服务的过程中要进行的众多活动:

练习1:创建解决方案结构

练习2:创建数据类型

练习3:创建消息类型

练习4:创建服务操作

练习5:创建业务实体

练习6:在消息和业务实体之间进行转换

练习7:创建CRUD(创建、读取、更新、删除)的存储过程

练习8:创建数据存储库类

练习9:调用数据访问层

练习10:连接客户端和测试服务

该实验采取了一种整体集中的方式,这样就可以按顺序完成练习,但你也可以从任何一点开始做起,以任何适合你学习的顺序完成练习。

如果你想更详细地了解某些特定的领域,你可以使用文档中的“浏览服务工厂”主题。

系统要求

如要在开发环境中查看和运行服务工厂的资产,你需要在计算机上安装下列软件:

Microsoft Windows 2000、Windows XP Professional、Windows Server 2003或Windows Vista操作系统

Microsoft .NET Framework 3.0

Microsoft Visual Studio 2005 (除Express版之外)

Microsoft SQL Server 2005 Express Edition或SQL Server 2005

指导自动化扩展程序技术预览(2006年6月发布,用于Visual Studio 2005)

另外,你可能需要安装下列软件:

如果你要修改Web服务软件工厂的指导包,那么除了指导自动化扩展程序之外,你还须安装指导自动化工具包技术预览(2006年6月发布,用于Visual Studio 2005)。

如果你要使用企业库配置工具(Enterprise Library Configuration Tool),比如修改引用实现中正在使用的数据访问应用程序块(Data Access Application Block)里面的配置,你就需要安装.NET Framework 2.0的企业库。

如要进行Visual Studio Team System (VSTS)单元测试,你必须安装Visual Studio Team System 2005版。欲了解VSTS的详细信息,请参见MSDN上的Microsoft Visual Studio小组系统开发人员中心。

如要进行NUnit测试,你必须安装NUnit 2.2.7.0版。你可以从NUnit网站下载NUnit。

未来计划

好消息是,这不是Web服务软件工厂的最后一个版本。服务工厂的下一个版本将在2007日历年度结束之前发布,其侧重点主要集中在服务建模、附加的自动化指导以及组成应用程序体系结构的各个组件。这些版本的发布计划尚处于最初阶段,不过它们的核心内容可能会包括以下方面:

服务建模

数据访问

服务建模

服务工厂下一个发布版本的主题是支持使用领域特定语言(DSL)进行Web服务建模。具体如何实现这项目标尚未最终确定。欲了解服务工厂下一个发布版本的详细信息,请对服务工厂 社区站点保持关注。

数据访问

服务工厂的这个发布版本包括了相关的指导,其目的是在使用ADO.NET 2.0创建基于业务实体的数据访问层的同时,使开发人员能够遵循已证实可行的实践方法。

Visual Studio的下一个发布版本将包含附加的功能,它们的设计是为了通过.NET语言集成查询(LINQ)的形式简化数据驱动的.NET Framework应用程序的设计和实现过程。专用于ADO.NET的LINQ使LINQ编程模型能够与Microsoft托管代码数据访问平台协同工作。由于提供了这些新技术,创建数据驱动应用程序的建议性实践方法也将得到更新。

服务工厂的初期版本定位于ADO.NET 2.0,但是创建数据访问层和实体的建议模式和方法的设计是为了简化将来到ADO.NET LINQ技术的移植过程。为了演示此移植过程,patterns & practices小组将发布相关的移植指导和参考实现工具,它们展示了服务工厂的体系机构是如何应用这些新技术的。服务工厂也将得到升级,以便在这些技术正式发布时对它们提供完整的支持。

已知问题

欲了解服务工厂已知问题的相关信息,请阅读KnownIssues.htm文件。欲查看该文件,请单击任务栏上的开始,指向所有程序,指向Microsoft patterns & practices,指向Web Service Software Factory,然后单击已知问题。

反馈和支持

如要提供有关本指导的反馈或获得针对任何问题的帮助,请访问Web服务软件工厂社区网站。社区工作区上的留言板是首选的反馈和支持渠道,因为它允许你与整个社区分享你的想法、问题和解决方案。

说明 你需要了解,社区工作区上的所有发布内容在任何情况下都不是最终版本,这一点非常重要。它们尚未通过一系列完整的性能和安全性测试,因此patterns & practices小组推荐你将这些从社区下载的文件视为试验性指导内容。

作者和参与人员

The Service Factory was produced by the following individuals:

Program and Product management: Don Smith, Dmitri Ossipov, Jason Hogg, Sanjeev Garg, and Tom Hollander (Microsoft Corporation)

Architect: Dragos Manolescu, Wojtek Kozaczynski, and Edward Jezierski (Microsoft Corporation)

Development: Chris Tavares (Microsoft Corporation); Hernan de Lahitte (Digit Factory); Pablo Galiano, Juan Wajnerman, José Escrich (Clarius Consulting); and Brian Button (Asynchrony Solutions, Inc.)

Test: Larry Brader and Carlos Farre (Microsoft Corporation); Tushar More, Mani Krishnaswami, Manickavasagam Shanmugasundaram, Arunkumar Sundararajan, Sajjad Nasir Imran, Meenakshi Krishnamoorthi, Muralidharan C Narayanan, Manu Agarwal, Bhavin Raichura, Vinod Kumar S, Venkata Reddy Donthireddy, and Lalitha Sundaram (Infosys Technologies Ltd)

Documentation: Nelly Delgado and RoAnn Corbisier (Microsoft Corporation); Lonnie Wall (RDA Corporation); William French (Linda Werner & Associates, Inc.); Paul Slater (Wadeware LLC); Tim Osborn (Ascentium Corporation); Tina Burden McGrayne (TinaTech, Inc.); and Claudette Siroky (CI Design Studio)

.

Many thanks to the Microsoft Practice team at CGI's Quebec City office who contributed to the development of the Service Factory and who were entrusted with its conversion to Visual Basic .NET. A leading IT and business process services provider with approximately 25,000 professionals operating in more than 100 offices worldwide, CGI works on behalf of its clients to evolve Service Factory and other patterns & practices offerings. To learn more about CGI's Microsoft solutions, visit the CGI corporate Web site.

Many thanks to the following advisors who provided invaluable assistance:

Edward Bakker and René Schrieken (LogicaCMG); Aaron Skonnard (Pluralsight); Gabriel Gilabert and Patrick Johnston (Thomson Financial); Norman Headlam (Fidelity Investments); Brandon Bohling (Intel Corporation); Alejandro G. Jack (Southworks); Christian Weyer (Thinktecture); Daniel Cazzulino (Clarius Consulting); Steve Millet, Jan Alexander, Andy Gordon, Mark Fussell, Ford McKinstry, Steve Maine, Eugene Osovetsky, Daniel Roth, Jezz Santos, Beat Schwegler, Shy Cohen, Serena Yeoh, Vajira Weerasekera, Sam Keall, Jason McConnell, Pablo Castro, Sanjay Mishra, and Umachandar Jayachandran (Microsoft Corporation)

相关主题

Smart Client Software Factory

Mobile Client Software Factory

Guidance Automation Extensions and Guidance Automation Toolkit

Enterprise Library for .NET Framework 2.0



本文转自刚刚博客园博客,原文链接:http://www.cnblogs.com/lijigang/archive/2008/03/19/1113596.html,如需转载请自行联系原作者

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值