面向服务的体系结构(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是 ...
随机推荐
- web漏洞总结
目录: 1.sql注入获取数据库信息2.sql注入绕过管理后台登录3.反射型xss4.存储型xss5.csrf6.文件上传7.暴力破解8.目录遍历9.权限跨越10.文件包含11.未知漏洞 web漏洞演 ...
- MySql 创建只读账号
GRANT Select ON *.* TO reader@192.168.1.123 IDENTIFIED BY "123456" GRANT 可以立刻生效 在mysql 5 ...
- 高性能的分布式内存对象缓存系统Memcached
Memcached概述 什么是Memcached? 先看看下面几个概念: Memory:内存存储,不言而喻,速度快,对于内存的要求高,不指出的话所缓存的内容非持久化.对于CPU要求很低,所以常常采 ...
- Android手机 Fildder真机抓包
Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指co ...
- sed 指令
sed -e 's/:/ /g' 将待处理文本行中:替换为空格, s/A/B/g 是sed中的替换命令, 将A替换为B, 其中,A可以是正则表达式. g表示全部替换. sed 指令 瀏覽數 : 6,5 ...
- Centos上传下载小工具lrzsz
http://www.centoscn.com/image-text/install/2013/0819/1374.html
- Session超时处理
1.web.xml 添加配置: <!-- session超时 --> <filter> <filter-name>sessionFilter</filter- ...
- CSS3 transforms 3D翻开
R T L B <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- VSS - 版本管理起的学习 AND 使用
局域网中用VSS.适用于Team级还可以,企业级不好,仅支持Windows 操作系统. Visual SourceSafe 是一个源代码控制系统,可以保存文件的不同版本,可以比较文件的差别,可以控制不 ...
- Objective-C和其他C指针的转换
首先看一下典型的NSString与CFStringRef的相互转换 http://www.tuicool.com/articles/MJRr226 // CFStringRef to NSStri ...