博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
“.NET技术”使用WCF实现SOA面向服务编程—— 架构设计
阅读量:6804 次
发布时间:2019-06-26

本文共 2175 字,大约阅读时间需要 7 分钟。

  SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。因此,基于SOA的架构也一定是从企业的具体需求开始构建的。但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性。业务灵活性是指企业能对业务变更快速和有效地进行响应、并且利用业务变更来得到竞争优势的能力。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还未知的业务需求的IT架构。使用WCF实现SOA,正好可以利用WCF的灵活性,把业务层封装,发布为Web服务。这样可以降低系统的耦合度,加大对未知业务的扩展性。

  Web服务本来就是没有区分代码的,在这个例子里在下多开发了一个Service Interface目的是为了使系统更易于管理。在开发期间,Service是不断更改的,如果在UI层上直接调用服务层,那更改将会是频密的,所以在这里在下开发一个Service Interface层目的是为了把WSDL集成在同一个DLL程序集里面,进行统一修改。最后UI层只要直接调用Service Interface,就可以对系统直接进行操作。要以不同开发工具来实现Service Interface,这个的代价并不大,开销是可以承担的。下面附上最简单的例子,希望有经验的高手给予点评,有不妥的地方请多加指教。

 
//
实现Ucsmy.Portal.BLL层
namespace
Ucsmy.Portal.BLL
{
public
class
ExampleManager
{
public
IList
<
Example
>
GetList(
int
workers)
{
IExampleDAL examleDAL
=
DataAccess.CreateExampleDAL();
return
examleDAL.GetList(workers);
}
}
}
//
在Ucsmy.Portal.Service层里使用WCF直接调用BLL层里面的方法
<br />
namespace
Ucsmy.Portal.Service
{
[ServiceContract(Namespace
=
"
Ucsmy.Portal.Service
"
)]
public
interface
IExampleService
{
[OperationContract]
IList
<
Example
>
GetData(
int
workers);
//
TODO: 在此添加您的服务操作
}
public
class
ExampleService : IExampleService
{
public
ExampleManager exampleManager;
public
ExampleService()
{
exampleManager
=上海网站建设n> new ExampleManager();
}
public IList<Example> GetData(int workers)
{
IList
<Example> exampleList = exampleManager.GetList(workers);
if (exampleList != null)
return exampleList;
else
return new List<Example>();
}
}
}

  在原代码中,在下以Ucsmy.Portal.ServiceFactory实现Service Interface层,其实这个ServiceFactory没有太多工作,只是对WCF添加服务引用,然后直接生成DLL即可。当然这只是初步的做法,在日后完善代码的时候,这一层还需要对WCF的生命流程进行管理。

  最后在UI层只要直接添加对Service.Portal.ServiceFactory的引用就可以直接运行,无需再理会BLL,DAL.......等复杂的逻辑转换。在实现多功能分布式开发的时候,以WCF实现的SOA的开发方式更能展示其优势。在现代的大型企业系统开发过程中,系统往往会使用B/S,C/S混合的开发模式。在以往的开发过程,开发人员往往把B/S,C/S分开来实现。在使用WCF技术后,开发人员可以把功能模块统一发布为WCF,然后绑定不同的endpoint进行发布,将B/S和C/S方式的业务逻辑层真正地融合在一起,从而降低开发难度。

  使用WCF实现SOA,可以对事务、安全、编码等进行统一管理,协调了各服务器之间的系统操作。它涵盖了之前微软推出的所有用于分布式开发的技术,包括Remoting、Web Services、WSE、MSMQ等,并以一种统一的编程模式来实现。WCF既支持具有互操作性的Web服务,也能够实现.NET客户端 与.NET服务端的通信,提供了分布式事务的支持,同时在安全性上,它完全遵循了WS-*的标准,此外,它还支持队列服务,可以非常方便地利用消息队列完 成异步操作与脱机调用。在众多优点的支持下,使用WCF实现SOA面向服务开发不失为一种理想地选择。

  

转载地址:http://hxjwl.baihongyu.com/

你可能感兴趣的文章
【ASP.NET Web API教程】1 ASP.NET Web API入门
查看>>
EXCEL中ABS
查看>>
java代理模式与反射机制
查看>>
android Adapter
查看>>
数据结构利器之私房STL(中)
查看>>
“他们”将变身为全国最大的房屋租赁供应商
查看>>
HDU 2079 选课时间(母函数)
查看>>
最新人生感悟语句摘选
查看>>
Windows 8实用窍门系列:11.Windows 8 中的Toast Tile Badge通知
查看>>
wxpython学习笔记
查看>>
html中iframe子页面与父页面元素的访问以及js变量的访问
查看>>
linux screen 命令详解
查看>>
[Linux] 获取Shell脚本自身所在位置的绝对路径;
查看>>
Console-算法[for]-素数
查看>>
C#操作注册表全攻略
查看>>
MVC项目开发中那些用到的知识点(Ajax.BeginForm)
查看>>
hdu 2295(DLX+二分)
查看>>
Apache PDFBox 1.8.1 发布
查看>>
学习之路二十七:三种序列化方式的一些注意点
查看>>
XAML绑定
查看>>