在接触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)对于服务的理解的更多相关文章

  1. 面向服务的体系结构(SOA)——(1)目标与核心概念

    什么是SOA? 常常听到人们拿OOP和SOA一起来说事,诸如SOA是否可以代替面向对象(OOP)或者两者比哪个更加有优势?直接回答有难度举个例子可能显得答案更容易理解.小孩子问你该认真写作业呢?还是高 ...

  2. 面向服务的体系结构(SOA)——(5)关于MEP(Message Exchange Patterns)

    SOA中的MEP和JavaEE中的JMS类似,当然了就应该是类似的,因为都是关于消息方面的.一个是对系统架构当中消息的解决思路,一个是针对Java平台中的消息的具体解决办法(严格说不是具体的,只是提供 ...

  3. 面向服务的体系结构(SOA)——(3)关于BPM

    什么是BPM 很多情况下企业当中所提供的服务不是由一个分布式业务流程就可以完成的,整个服务的提供需要多个分布式流程有机的组合,于是BPM就应运而生了.要将现有的服务通过配置.编排(关于配置与编排的区别 ...

  4. 面向服务的体系结构(SOA)——(2)ESB介绍及职责

    企业服务总线(Enterprise Service Bus)是SOA的基础设施,之所以这么说是因为要达到SOA的目标(增强灵活性)就必须有调用服务的方法,ESB的存在有效的保证了消费者能够调用供应者提 ...

  5. 面相服务的架构SOA

    SOA体系结构是基于服务组件模型,将应用程序的不同功能单元通过定义良好的接口契约联系起来,接口是采用中立方式进行定义的,独立于实现服务的硬件平台,操作系统和编程语言.使得构建在这样的系统中的服务可以以 ...

  6. SOA 面向服务的体系结构

    SOA:面向服务的体系结构(service-oriented architecture) 是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来. 接口是采 ...

  7. SOA(面向服务的体系结构)

    SOA(面向服务的体系结构) 面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务 ...

  8. SOA (面向服务的体系结构)

    面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来.接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台.操作系统和编程语言 ...

  9. 面向服务的体系结构(service-oriented architecture,SOA)

    SOA的概念是Gartner 在1996年提出来的,并于2002年12月进一步提出SOA是“现代应用开发领域最重要的课题”.   一.SOA的定义 SOA分为广义的SOA和狭义的SOA,广义的SOA是 ...

随机推荐

  1. Ten Tips for Writing CS Papers, Part 1

    Ten Tips for Writing CS Papers, Part 1 As a non-native English speaker I can relate to the challenge ...

  2. DIV+CSS例子

    DIV水平居中+垂直居中 #main_zone{ width:1190px; height:570px; background-color:#fff; margin:0 auto; /*左右居中*/ ...

  3. Objective-C 之优雅的命名(转)

    There are only two hard things in Computer Science: cache invalidation and naming things. 在计算机科学中只有两 ...

  4. lamp 网站打不开,不显示也不报错,

    原因是该网站的编程员,习惯简写,<? ?>;而服务器版本的php.ini 默认不支持只支持<?php ?>这种格式. 解决方法vim /usr/loacl/php/etc/ph ...

  5. DOM: 如何获取元素下的第一个子元素

    Element.firstChild ?,是的,这是第一种方法,当然,通常来说支持 W3C 规范的浏览器,如 Firefox 等取到的应该是 TEXT_NODE.很早之前,或者说现在最流行的方法可能是 ...

  6. 微信发明人竟是他!也是WeChat/Line/WhatsApp的发明者

    赵建文,很多人不知道他是谁:说到微信大家都耳熟能详吧?没错,他就是初始微信发明人,同时也是WeChat/Line/WhatsApp的发明者!正是他的专利<一种基于或囊括手机电话本的即时通讯方法和 ...

  7. cf.295.C.DNA Alignment(数学推导)

    DNA Alignment time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...

  8. LR监控Windows资源

    1.监控准备: 监控方: 1)安装tcp/ip协议下的netbios 2)用administrator登录 被监控方: 1)被监控的Windows开启两个服务: Remote ProcedureCal ...

  9. Linux LVS Nginx HAProxy 优缺点

    说明:以下内容参考了抚琴煮酒的<构建高可用Linux服务器>第六章内容. 搭建负载均衡高可用环境相对简单,主要是要理解其中原理.此文描述了三种负载均衡器的优缺点,以便在实际的生产应用中,按 ...

  10. linux shell expr 使用

    linux shell expr 使用 收藏人:春秋百味 -- | 阅: 转: | | 分享 非原创, 摘自:<LINUX与UNIX Shell编程指南> 17.5 expr用法 expr ...