面向服务编程

    从最初的面向过程编程,到后来觉得难以理解的面向对象编程,从软件工程的发展历程中来看,这已经成为我们编程路上熟知的两种编程方式。

    接触了ITOO项目这么长时间,才发现,不知不觉,我们已经进入了软件工程发展历程之面向服务编程的开发。本篇博客的主题便是面向服务编程。

   
【一.面向服务编程从何而来?】

    想要了解面向服务编程的发展方向以及它在软件行业中所占的地位,我们首先要了解的便是它的起源和发展。没有任何一种方法是一蹴而就的,应该是经历了数十年渐进的演化历程。下面,我们就来简单了解软件工程的发展历程及发展趋势。

    其实,对于软件工程的发展历程,我们在自考《软件开发工具》一科中学习过。

    上世纪四五十年代,第一台电子计算机诞生后,语言是面向机器的,程序完全依赖于硬件,这也成为了第一代语言。

    第二代语言,即汇编语言的出现。它实现了人们的知识经验到对计算机操作命令的自动转变。

    第三代语言的出现,属于高级程序设计语言。它实现了对机器的独立,即不依赖于特定的硬件系统,大大提高了程序的可移植性。

    第三代语言一般都是过程化语言,即需要由编写程序的人一步步安排好机器的执行次序。而第四代语言,即非过程化语言,都是由人下达命令,然后机器自己去安排执行的顺序。

    这些语言发展的背后,其实也就与结构化程序设计、面向对象程序设计、面向组件的程序设计方法相对应着。

    现如今,面向服务的程序设计方法已成为潮流。

   
【二.面向服务编程为什么而来?】

    在大致清楚了上述的发展历程后,我们不难发现,每一种新的方法与技术的出现都是建立在融合前一代技术的优点基础之上,并致力于改善前一代技术的缺陷。然而,每个新技术的出现又会面临新的挑战。

    所以,在2000年末,面向服务方法作为应对面向对象以及面向组件的缺陷的解决方案出现。从各方面看,服务都是组件的一个本质上的飞跃,就像组件是对象的一个本质上的飞跃一样。

    在软件行业中,面向服务是我们目前所知的构建可维护的、健壮的以及安全的应用程序的最佳方案,也是最可行的方案。

   
【三.什么是面向服务编程(SOP)】

      SOP是一种体系结构,目标是在软件代理交互中获得松散耦合。一个服务是一个服务提供者为一个服务消费者获得其想要的最终结果的一个工作单元。

    

在生活中,SOP的实例无处不在。例如发出了播放一个CD的消息,你可以将要播放的CD放入CD机中,CD机将为你播放这张CD,CD机提供了一个CD播放服务。这里的好处就是你可以用不同的CD机去播放同一张CD,上图中各个服务代表着不同的CD机,他们能提供同样的CD播放服务,但是服务质量是不同的。

    在面向服务的应用程序中,开发者只需要关注于业务逻辑的编写,以及通过可交换的、可互操作的服务终结点暴露业务逻辑。客户端调用这些终结点,而不是服务代码或者它的实现包。

   
【四.面向服务编程有什么好处?】

    (以下内容来源于《WCF编程》一书中,对于这部分内容自己体会的并不多,先记录下来,了解)

    在开发面向服务应用程序时,我们能够实现服务代码与客户端使用的技术与平台的解耦(有所体会),也与并发管理、事务传播和管理以及通信可靠性、协议和模式无关。总的来讲,实现客户端到服务的消息传递的安全,就是对调用者的认证,它属于服务范围之外。服务根据需求仍然要实现服务自身的本地授权。在大多数情况下,客户端并不知道服务的版本:只要终结点支持客户端期望访问的契约,客户端就不用考虑服务的版本。为了处理客户端与服务之间传递数据的版本兼容,面向服务同时还构建了版本兼容的标准。

   
【五.ITOO中的面向服务编程?】

    结合ITOO项目来说,每个模块都有各自的服务端和客户端。服务端都会有一个WCF服务应用程序,如下图:

客户端在配置文件中添加本系统的终结点配置,便实现了应用程序的通信。

【六.学习感受】

     其实,在自己写的关于WCF学习的第一篇博客《什么是WCF》中,最开始就提到了面向服务编程。但那时候,焦点并不在那上面。那时候,接触WCF框架很久了,但一直都是照猫画虎,写了一个又一个方法,并没有对其中的思想、理论知识进行过思考。

    从上周开始,和师父交流后,在师父的安排下,又让我重新开始WCF的学习,这一次,我想了很多问题。就拿ITOO项目来说,我不知道为什么加上WCF技术,我不知道WCF从哪而来,我不知道用WCF的意图是什么......这么多的不知道,让我回到了面向服务编程,所以,这应该算是我的WCF之旅的第一站。

时间: 2016-01-24

面向服务编程的相关文章

Web Service——面向服务编程的方式之一

    在上篇博客中,我们认识了面向服务编程.本篇博客,将学习Web Service,它属于实现面向服务编程的方式之一.     [一.什么是Web Service?]     Web Service也叫XML WebService,是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.     从生活中举一个简单的例子,我们平时在浏览不同的网站的时候,都会看见很多相同网站的身影,换句话说,我们在各种网站都可以看见百度.淘宝等,这便是他们将自己

C#面向服务编程技术WCF从入门到实战演练

  一.WCF课程介绍 1.1.Web Service会被WCF取代吗? 对于这个问题阿笨的回答是:两者在功能特性上却是有新旧之分,但是对于特定的系统,适合自己的就是最好的.不能哪一个技术框架和行业标准作比较,任何对于二者的比较都是错误的,因为两者根不不在同一个范畴里.就好比不能拿个汽车和交通法规比较一样,这是个误区. 阿笨的宗旨就是学完此<C#面向服务编程技术WCF从入门到实战演练>课程,让您从零基础上手后直接将学习的成果运用到实际项目中去.阿笨本次分享的WCF技术是完全来源于切身实际项目中

使用WCF实现SOA面向服务编程—— 架构设计

本文转载:http://kb.cnblogs.com/page/96479/   SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功 能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但 是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务

使用WCF实现SOA面向服务编程“.NET研究”—— 架构设计

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统上海企业网站制作中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务变更来得到竞争优势的能力.对企业级架构设计师来说,创建一个业务灵活的架

“.NET技术”使用WCF实现SOA面向服务编程—— 架构设计

SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的.因此,基于SOA的架构也一定是从企业的具体需求开始构建的.但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性.业务灵活性是指企业能对业务变更快速和有效地进行响应.并且利用业务变更来得到竞争优势的能力.对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个

使用WC“.NET研究”F实现SOA面向服务编程——使用AJAX+WCF服务页面开发

在上一篇讲到,如果将BLL层的每一个类都转化为*.svc,这是一个不实在的想法.它会使服务变化复杂,难于管理. 这时候,我们第一时间想到的是23个简单开发模式中的Factory,在这里,Factory正好派上用场.我们把这个Factory称之为管道(pipeline) ,通过这个管道客户端可以随意调用服务器BLL层里面的类. (关于管道的概念,建议参考Cory Isaacson的杰作<多核应用架构关键技术-软件管道与soa>) 当你使用B/S方式开发UI层时,只要了解此开发模式,使用Ajax加

使用WCF实现SOA面向服务编程——使用AJAX+WCF服务“.NET技术”页面开发

在上一篇讲到,如果将BLL层的每一个类都转化为*.svc,这是一个不实在的想法.它会使服务变化复杂,难于管理. 这时候,我们第一时间想到的是23个简单开发模式中的Factory,在这里,Factory正好派上用场.我们把这个Factory称之为管道(pipeline) ,通过这个管道客户端可以随意调用服务器BLL层里面的类. (关于管道的概念,建议参考Cory Isaacson的杰作<多核应用架构关键技术-软件管道与soa>) 当你使用B/S方式开发UI层时,只要了解此开发模式,使用Ajax加

一起谈.NET技术,使用WCF实现SOA面向服务编程——使用AJAX+WCF服务页面开发

在上一篇讲到,如果将BLL层的每一个类都转化为*.svc,这是一个不实在的想法.它会使服务变化复杂,难于管理. 这时候,我们第一时间想到的是23个简单开发模式中的Factory,在这里,Factory正好派上用场.我们把这个Factory称之为管道(pipeline) ,通过这个管道客户端可以随意调用服务器BLL层里面的类. (关于管道的概念,建议参考Cory Isaacson的杰作<多核应用架构关键技术-软件管道与soa>) 当你使用B/S方式开发UI层时,只要了解此开发模式,使用Ajax加

一起谈.NET技术,使用WCF实现SOA面向服务编程——简单的WCF开发实例

前面为大家介绍过WCF的特点,现在再讲解一下WCF基础概念. 在WCF里,各个Application之间的通信是由EndPoint来实现的,EndPoint是WCF实现通信的核心要素.一个WCF Service可由多个EndPoint集合组成,每个EndPoint只能有一种绑定,就是说EndPoint就是通信的入口,客户端和服务端通过 EndPoint交换信息. <service name = " " >< endpoint address = ""