欢迎来到天天文库
浏览记录
ID:51212796
大小:603.00 KB
页数:6页
时间:2020-03-09
《使用WCF实现SOA面向服务编程.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、使用WCF实现SOA面向服务编程——架构设计作者:风尘浪子 来源:博客园 发布时间:2011-04-1211:07 阅读:3121次 原文链接 全屏阅读 [收藏] SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。因此,基于SOA的架构也一定是从企业的具体需求开始构建的。但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性。业
2、务灵活性是指企业能对业务变更快速和有效地进行响应、并且利用业务变更来得到竞争优势的能力。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还未知的业务需求的IT架构。使用WCF实现SOA,正好可以利用WCF的灵活性,把业务层封装,发布为Web服务。这样可以降低系统的耦合度,加大对未知业务的扩展性。 Web服务本来就是没有区分代码的,在这个例子里在下多开发了一个ServiceInterface目的是为了使系统更易于管理。在开发期间,Service是不断更改的,如果在UI层上直接调用服务层,那更改将会是频
3、密的,所以在这里在下开发一个ServiceInterface层目的是为了把WSDL集成在同一个DLL程序集里面,进行统一修改。最后UI层只要直接调用ServiceInterface,就可以对系统直接进行操作。要以不同开发工具来实现ServiceInterface,这个的代价并不大,开销是可以承担的。下面附上最简单的例子,希望有经验的高手给予点评,有不妥的地方请多加指教。//实现Ucsmy.Portal.BLL层namespaceUcsmy.Portal.BLL{publicclassExampleManager{public
4、IListGetList(intworkers){IExampleDALexamleDAL=DataAccess.CreateExampleDAL();returnexamleDAL.GetList(workers);}}}//在Ucsmy.Portal.Service层里使用WCF直接调用BLL层里面的方法namespaceUcsmy.Portal.Service{[ServiceContract(Namespace="Ucsmy.Portal.Service")]publicinterfaceIExam
5、pleService{[OperationContract]IListGetData(intworkers);//TODO:在此添加您的服务操作}publicclassExampleService:IExampleService{publicExampleManagerexampleManager;publicExampleService(){exampleManager=newExampleManager();}publicIListGetData(intworkers){IList6、xample>exampleList=exampleManager.GetList(workers);if(exampleList!=null)returnexampleList;elsereturnnewList();}}} 在原代码中,在下以Ucsmy.Portal.ServiceFactory实现ServiceInterface层,其实这个ServiceFactory没有太多工作,只是对WCF添加服务引用,然后直接生成DLL即可。当然这只是初步的做法,在日后完善代码的时候,这一层还需要对WCF的生命7、流程进行管理。 最后在UI层只要直接添加对Service.Portal.ServiceFactory的引用就可以直接运行,无需再理会BLL,DAL.......等复杂的逻辑转换。在实现多功能分布式开发的时候,以WCF实现的SOA的开发方式更能展示其优势。在现代的大型企业系统开发过程中,系统往往会使用B/S,C/S混合的开发模式。在以往的开发过程,开发人员往往把B/S,C/S分开来实现。在使用WCF技术后,开发人员可以把功能模块统一发布为WCF,然后绑定不同的endpoint进行发布,将B/S和C/S方式的业务逻辑层真正地融8、合在一起,从而降低开发难度。 使用WCF实现SOA,可以对事务、安全、编码等进行统一管理,协调了各服务器之间的系统操作。它涵盖了之前微软推出的所有用于分布式开发的技术,包括Remoting、WebServices、WSE、MSMQ等,并以一种统一的编程模式来实现。WCF既支持具有互操作性
6、xample>exampleList=exampleManager.GetList(workers);if(exampleList!=null)returnexampleList;elsereturnnewList();}}} 在原代码中,在下以Ucsmy.Portal.ServiceFactory实现ServiceInterface层,其实这个ServiceFactory没有太多工作,只是对WCF添加服务引用,然后直接生成DLL即可。当然这只是初步的做法,在日后完善代码的时候,这一层还需要对WCF的生命
7、流程进行管理。 最后在UI层只要直接添加对Service.Portal.ServiceFactory的引用就可以直接运行,无需再理会BLL,DAL.......等复杂的逻辑转换。在实现多功能分布式开发的时候,以WCF实现的SOA的开发方式更能展示其优势。在现代的大型企业系统开发过程中,系统往往会使用B/S,C/S混合的开发模式。在以往的开发过程,开发人员往往把B/S,C/S分开来实现。在使用WCF技术后,开发人员可以把功能模块统一发布为WCF,然后绑定不同的endpoint进行发布,将B/S和C/S方式的业务逻辑层真正地融
8、合在一起,从而降低开发难度。 使用WCF实现SOA,可以对事务、安全、编码等进行统一管理,协调了各服务器之间的系统操作。它涵盖了之前微软推出的所有用于分布式开发的技术,包括Remoting、WebServices、WSE、MSMQ等,并以一种统一的编程模式来实现。WCF既支持具有互操作性
此文档下载收益归作者所有