SOA : Hands On Lab使用笔记(一)

今天研究了一下微软发布的SOA Hands On Lab: Web Service Software Factory.此组件是微软提供的一个SOA开发辅助包,方便那些使用.NET创建SOA应用的开发者应用最佳实践。

[@more@]

当直接使用微软提供的ASMX模板创建项目时,项目的目录结构如图:

resserver.php?blogId=28147&resource=21939-image001.jpg

业务组件

Business Logic项目文件夹中,有两个项目:

BusinessEntities:业务实体,代表着数据库表的对象表达。微软提供了对于SQL Server数据库的自动实体生成支持,对Oracle数据库并不支持。

resserver.php?blogId=28147&resource=21940-image002.jpg

业务实体是基础类——数据库表的对象化。它不依赖任何项目。

BusinessLogic:这里的类调用数据访问层(DataAccess)的方法,对业务实体进行操作,即调用了真正的CRUD方法,操作了数据。

因此,它引用了业务实体和数据访问层2个项目:业务实体和数据访问层。

resserver.php?blogId=28147&resource=21941-image003.jpg

综合来讲,Business Logic项目文件夹命名为“Business Component”更为合理。

数据访问层

Resource Access文件夹中,包含数据访问层。微软默认的支持对SQL ServerCRUD SP的自动创建,并能够自动的生成资料库类,完成业务实体与资料库中SP之间的映射。

resserver.php?blogId=28147&resource=21942-image004.jpg

resserver.php?blogId=28147&resource=21943-image005.jpg

因此,数据访问层项目引用了业务实体项目。

resserver.php?blogId=28147&resource=21944-image006.jpg

服务接口

Service Interface项目文件夹中定义的是Web Service层的项目。

l DataTypes项目

首先是DataTypes项目,此项目定义了Web Service方法中传递的对象的定义,实际上,大多是业务实体的简单XML序列化表达。这些数据类型定义,可以手工创建,也可以从XSD自动生成,这对使用RosePowerDesigner一类的设计工具的项目来说,是个很实用的功能。

数据类型项目是个基础项目,它不依赖任何其他项目。

l 服务契约项目

resserver.php?blogId=28147&resource=21945-image007.jpg

服务契约项目定义了一系列抽象接口。它依赖于DataTypes项目。一般的,先使用向导创建Message TypesMessage Types是用在接口签名中的请求与响应。由于它们也是在Web Service的方法中使用的参数,故也是XML序列化的。当你调用该方法是,必需知道该方法相关的参数的定义,因此,把消息类型和方法签名放在一个项目中定义,是合理的。

实际上,Message Types是根据方法的需要,对DataTypes类的组合

l 服务实现项目

服务实现项目是对服务契约的实现。对于服务而言,实际就是,把来自客户端的数据,转换成数据访问层可识别的数据对象,然后调用逻辑层方法,实现功能。

resserver.php?blogId=28147&resource=21946-image008.jpg

因此它依赖于以上所有项目——除了数据访问层项目,显然,数据访问层应该隐藏在逻辑层之后。

对于其实现的契约方法,服务实现必须编写一个对应的从DataTypes对象转换到业务实体对象的一个映射方法。这个方法是静态的,这的确是个枯燥的事情,幸好微软给我们提供了向导,自动生成相关代码,防止出错。

服务契约转换届面:

resserver.php?blogId=28147&resource=21947-image009.jpg

l Web 项目

服务器端的最后一个项目是Web Host项目,它用于Expose Web Service

未完待续…….

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7176288/viewspace-904033/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7176288/viewspace-904033/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值