Web (WCF) Service设计的 基本观念
来源:互联网 发布:计算排卵期软件下载 编辑:程序博客网 时间:2024/06/01 17:37
文章来自: IT工程技术网 http://www.systhinker.com/html/33/n-11533.html 继续谈谈SOA Service Layer方面的设计考量。 前一篇网志文章中提到,通常有跨平台整合、或是需要透过网路提供远端存取的共用元件,通常才会考虑建立成为Web Service。除此之外,在设计Web Service的时候,也有些需要注意的基本概念。 Web Service虽然是透过服务介面(interface)与用户端程式系结,然而就跟一般应用程式一样,每个Web Service所提供的功能是独立的,而且与一般应用程式一样,采用层级的架构设计。 Web Service基本的层级架构如下图: 在设计时,必须尽可能的将Data Layer 与Business Layer分别封装在不同的元件中,并且各层级之间再透过抽象的介面结合。一般来说,后端的元件可以制作成Shared Component,再提供给内部的其他系统整合时使用。 而开发Service Layer时,必须要把Service Contract、Service Implementation、Data Contract等等,分别定义到不同的组件中。换句话说, 你并不应该使用Visual Studio 开发工具新增一个预设的Web Service或是WCF Service专案之后,就只用这一个专案完成所有Service Contract、Service Implementation、Data Contract 的开发;正确的做法应该是另外再建立不同的ClassLibrary专案来开发与维护不同用途的服务元件。这样的做法可以让你将来需要调整服务的内容时,可以拥有比较高的弹性;同时也可以比较容易进行单元测试,确保Web Service的稳定性。 同时,也必须要注意到,每个Web Service 同时也会是一个独立的应用程式,用户端程式必须要透过Service Layer所定义的介面(服务合约),才可以使用其功能。而Web Service 之间若是需要整合的话,可以透过下面几种方式: 1. 若是后端资源(如:资料来源)方面的整合,可以透过Data Layer所提供的Shared Assembly: 而通常这种方式,因为跳过了Business Layer,所以仅能做比较逻辑较单纯的资料异动。 2. 若是要进行功能面的整合,则必须要透过ESB(Enterprise Service Bus),或是再建立一个更上层的Web Service 来完成;而不是在Web Service 之间直接建立交互参照:
举例来说,假设Service A 是库存系统的服务,提供产品库存查询与异动的介面;而Service B 是订单管理系统的服务,提供新增订单与订单异动的介面。而若是需要整合客户系统提供即时下单功能时,就应该另外建立一个新的Service C,并且把处理订单的流程( Business Workflow)封装到新服务的功能当中。这样的架构会比你在Service A 和B之间建立交互参照来得有弹性,而且也较容易维护多变且复杂的商业流程。
文章来自: IT工程技术网 http://www.systhinker.com/html/33/n-11533.html
- Web (WCF) Service设计的 基本观念
- WCF 、Web API 、 WCF REST 和 Web Service 的区别
- WCF、 Web API、 WCF REST 和 Web Service 的区别
- WCF 、Web API 、 WCF REST 和 Web Service 的区别
- WCF ,Web API , WCF REST 和 Web Service 的区别
- WCF 与Web Service的区别
- Web Service 与 WCF 的区别
- WCF与Web Service的区别
- WCF 与Web Service的区别
- WCF 与Web Service的区别
- WCF 与Web Service的区别
- WCF与 Web Service的区别
- wcf和web service的区别
- web service与wcf的区别
- Web Service和WCF的关系
- Web Service 与 WCF 的区别
- WCF光芒下的Web Service
- 聊聊WCF与Web Service的差异
- 如何突破技能发展上的瓶颈
- POJ 2192-zipper(动态规划)
- POJ第一天
- 为何中国人比美国人更拜金
- Cow Picnic
- Web (WCF) Service设计的 基本观念
- java 转义字符
- ora-03206 maximum file size of blocks in autoextend clause is out of range
- MFC 获取系统时间
- 好长时间没来了
- ASP.NET 4.0 New Feature : 表单控制项之延伸RepeatLayout功能
- word按backspace键不能删除问题
- linux学习笔记
- Application = Code + Workflow