面向服务的体系结构(SOA)——(4)对于服务的理解
在接触SOA之前对“服务”这个词没有太多的感触,无非就是为别人做事情么。当然在SOA中这个词也脱离不了这层基本的涵义,但是具体到实际的架构中对这个词的理解就更加深刻了。本文就以“服务”为中心说说笔者对这个词的理解,尤其是它在SOA这个环境下的理解。
由浅入深咱们先从现实说起,通常我们日常所说的“服务”这个词既可以是动词,也可以是名词例如:“为人民服务”“服务行业”。在国内对“服务”这个词理解有些误差,这和我们的民族文化有很大的关系。在很久之前作为官员常常说“做人民的公仆,为人民服务”使得人们感觉当官的没有架子,一心一意为人民办事(可事实上官员就是官员,有权利及时有权利,高高在上就是高高在上,人民无肯奈何)。这里的服务是指作为一个有能力的人处于某种目的来为别人办事。所以一般人们认为服务这个字眼是等级高的人才享有的特点。
其实它的本意(这里指从国外的翻译而来意思)不是这样的,能为别人服务只能说明你的功能比较高级,不能表示你的地位高级。很简单的一个例子,在国外服务行业称客户为Client,这和BS系统中的那个Server与Client是一个Client。而且令人深思的是国外还有一句话叫做“The customer isgod”。这里的customer和Client是等价的,都是需要服务的对象。所以Server与Client如果从功能上来说Server更复杂、高级一些,但是无论Server多么的高级与复杂都是为Client服务的,是受Client调用的,是出于低级位置的。而国内资料将Server翻译为服务或者服务器这明显就是提升了Server的等级。从这一点说台湾的书籍就翻译的比较到位,他们把Server翻译为“伺服器”,重点在于这个“伺”字。帝王之家伺候王室的人个个身怀绝技但最终也只能是受用于人……好像扯远了;)
前面说了那么多目的就是为了说明服务的提供者是底层而服务调用者才是上层。这么一来在SOA中所说的“服务”这个词就很好理解了。提供服务的系统或者模块在整个业务中是处于低级的,虽然功能高级、实现复杂但终究是低级的。
进而可以很好的理解服务应该有的主要特征:
体现业务功能
我们说一个Server或者说一个系统能提供某项服务,那么这个系统一定可以完成某项具体的操作来满足需求。说白了就是每个服务都是为了完成某项或某一系列相关联的业务功能而存在的。
良好的契约以及类接口特性
一项服务的提供必需是以接受他人消息作为前提,然后返回处理后的消息,或者改变实体的状态。所以说服务必须要有的就是接受消息的接口,或者可以更宏观一些,可以把整个服务理解成一个接口
自足
既然为别人服务首先需要要做的就是可以自己顾住自己,不能出现泥菩萨过河的情况。
可互操作
在整个SOA的架构中没有绝对的服务提供者也没有绝对的服务调用者,大家彼此相互服务。所以当自身作为服务提供者的时候就必须要接受其他系统的调用为其他系统服务,在自己需要其他服务的时候又可以调用其他的系统为自己实现相应的功能,美其名曰“互操作”(笔者更愿意理解为协调合作,因为原版书籍中用的是interoperability)。
【有感】就目前而言,感觉学计算机更多的学的是国外的文化与思维方式,很多时候恍然大悟,”丫的,蓝眼珠大鼻子的怪物们居然是特么这么想的!“
面向服务的体系结构(SOA)——(4)对于服务的理解的更多相关文章
- 面向服务的体系结构(SOA)——(1)目标与核心概念
什么是SOA? 常常听到人们拿OOP和SOA一起来说事,诸如SOA是否可以代替面向对象(OOP)或者两者比哪个更加有优势?直接回答有难度举个例子可能显得答案更容易理解.小孩子问你该认真写作业呢?还是高 ...
- 面向服务的体系结构(SOA)——(5)关于MEP(Message Exchange Patterns)
SOA中的MEP和JavaEE中的JMS类似,当然了就应该是类似的,因为都是关于消息方面的.一个是对系统架构当中消息的解决思路,一个是针对Java平台中的消息的具体解决办法(严格说不是具体的,只是提供 ...
- 面向服务的体系结构(SOA)——(3)关于BPM
什么是BPM 很多情况下企业当中所提供的服务不是由一个分布式业务流程就可以完成的,整个服务的提供需要多个分布式流程有机的组合,于是BPM就应运而生了.要将现有的服务通过配置.编排(关于配置与编排的区别 ...
- 面向服务的体系结构(SOA)——(2)ESB介绍及职责
企业服务总线(Enterprise Service Bus)是SOA的基础设施,之所以这么说是因为要达到SOA的目标(增强灵活性)就必须有调用服务的方法,ESB的存在有效的保证了消费者能够调用供应者提 ...
- 面相服务的架构SOA
SOA体系结构是基于服务组件模型,将应用程序的不同功能单元通过定义良好的接口契约联系起来,接口是采用中立方式进行定义的,独立于实现服务的硬件平台,操作系统和编程语言.使得构建在这样的系统中的服务可以以 ...
- SOA 面向服务的体系结构
SOA:面向服务的体系结构(service-oriented architecture) 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采 ...
- SOA(面向服务的体系结构)
SOA(面向服务的体系结构) 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务 ...
- SOA (面向服务的体系结构)
面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言 ...
- 面向服务的体系结构(service-oriented architecture,SOA)
SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”. 一.SOA的定义 SOA分为广义的SOA和狭义的SOA,广义的SOA是 ...
随机推荐
- ci 4.2
超级对象 $this 当前的控制器对象 有很多属性 $this->load 装载器类的实例在systme/core/loader.php 里面有view方法 $obj = new CI_ ...
- html标签页图标
在head标签加入如下内容: <!--可以在收藏夹中显示出图标--> <link rel="Bookmark" type="image/png" ...
- 如何做一名好的web安全工程师?
在网络安全行业里面,web安全方向的人相对来说算是占大头,因为web安全初学阶段不像系统底层安全那么枯燥,而且成功hack目标网站的成就感相对也是比较强的. web安全工程师这个职位在甲方和乙方公司都 ...
- 单机安装TFS(转载)
一.安装操作系统:windows server 2003 + Sp2具体步骤: 1.安装windows server 2003时选用工作组(默认为workgroup).由于在工作组环境中部署,因此使用 ...
- 连接ssql语句
- dos 下 查看和设置classpath的命令
dos 下 查看和设置classpath的命令查看:echo %classpath%设置:set classpath=%classpath%path 其中%classpath%代表以前的值,pa ...
- smarty中math函数的用法
在查看项目代码时,发现smart代码中有这样写. {if $auctionInfo.printingNum} 印数:{math equation="cid/1000" cid=$a ...
- [Effective JavaScript 笔记]第59条:避免过度的强制转换
js是弱类型语言.许多标准的操作符和代码库会把输入参数强制转换为期望的类型而不是抛出错误.如果未提供额外的逻辑,使用内置操作符的程序会继承这样的强制转换行为. functin square(x){ r ...
- characterCustomezition的资源打包代码分析
using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; class Creat ...
- OpenStack 的Nova组件详解
Open Stack Compute Infrastructure (Nova) Nova是OpenStack云中的计算组织控制器.支持OpenStack云中实例(instances)生命周期的所有活 ...