锁定老帖子 主题:SOA没在忽悠
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-21
楼主,你头像是你的姑娘吗?很漂亮很可爱啊~~
|
|
返回顶楼 | |
发表时间:2009-02-21
fjlyxx 写道 这些不确定的因素要求SOA的平台的健壮性,网络等服务的异常是很容易抓取的 问题在于碰见这些情况的时候 你的流程的走向怎么重新定义 ,重试机制怎么定义, 这是一个策略定义的问题,本来问题不复杂如果碰上多变的业务需求问题就复杂了 这些问题都是跟业务层紧密相关的,如果把它放到业务层去思考,你就会有一个好的解决办法(就是上面我提到的指导原则)。而如果试图把它放到数据交换层来处理,就会把简单的事情复杂化。数据交换层只负责数据交换,业务的完整性则由业务层去保证。 fjlyxx 写道 还有ESB总线的热切换,监控应用的异常监控,异常信息推送到其他ESB等都是在这里考虑的问题了. 这部分放到部署、构架和管理阶段去思考,思路就会更清晰。比如服务的切换,同样可以通过 DNS 的切换来完成,而无需什么 ESB 来做,因为你也不能保证你的 ESB 不会宕掉,如果你的 ESB 本身宕掉谁来切换它呢。 监控说白了就是一个日志问题,只要在你系统设计时,有良好的错误日志记录,并有一个专门的异常日志分析器的话,根据日志就可以完成这些工作。而指望一个特定实现的 ESB 去管理不同异构系统的异常也是不现实的,同样是将简单问题复杂化。 SOA 设计思想最重要的就是解耦,而 ESB 却想把所有功能都集中于一处解决反而离解耦这个思想有点背道而驰了。 fjlyxx 写道 对于SOA网络这块,通信数据的方式无非就是 推 拉 半推半拉 ,你不可能我一个SOA的流程请求就要占用一个和ESB的长连接, 如果我这个流程请求的流程生命周期是1小时 那么是否这个连接就要占用1小时呢? SOA平台内的通信机制不应该是请求就等待连接的模式 必须要有握手协议 先请求一个令牌 再发送流程调用内容 再去获取结果(当然也可以由SOA平台推给你) 我说的不确定因素 是说SOA平台内要怎么去架构一个很好的分布式的异常处理机制和监控机制. 至于调用时间长的,你可以采用异步调用方式来解决,PHPRPC 是支持异步调用的,所以这个不是问题。另外,你说的握手啊、传令牌啊、然后再传数据这样的事情,只要分3次来调用3个相关服务就可以了。也就是说用 PHPRPC 本身来解决这个问题就可以了。 在做 SOA 时,最重要的思想就是什么部分该做什么要分清,业务层的事让业务层去做,数据转换层的事让数据转换层去做,数据传输层的事就让数据传输层去做……,只有这样才能充分解耦,这样再构建 SOA 系统时也就不会有那么多疑惑了。而如果一锅端的希望把所有问题放在一起解决(ESB 的做法),就会让人有种复杂到无法实现或者难以实现的感觉了。 |
|
返回顶楼 | |
发表时间:2009-02-21
fjlyxx 写道 这个规范化 不是服务发布方式不同引起的, 这么和你说一个很简单的例子 比如A B 两个服务 A用1表示性别中的男 0表示性别中的女 B中用0表示男 1表示女 这样的话 你可以在流程脚本中进行指明 或者由 请求方和服务方进行约定等等方式去解决这个问题 但是这样就会让SOA平台流程处理,或请求方开发受很大的影响. 这个例子只是SOA规范中比较不紧要的一个例子. 再则如果我有两个SOA平台 那么我又如果应该在这两个SOA平台间进行通信调用流程能, 不是所以的SOA平台的流程都是BPEL的规范的.SOA的规范其实已经影响了SOA的发展. 原来你说的规范是从业务层出发的啊,那这个就跟具体技术无关了。这个只能在构建这样的系统前,就要对这些有一个统一的定义,否则确实会有你说的这种问题。而如果事先做的不够充分,以至于在实施阶段才发现的话,就只能通过编写语义转换的接口来完成了。 |
|
返回顶楼 | |
发表时间:2009-02-21
bonny 写道 我们不可能去改造客户,不可能去要求客户去改造已经有的投资,或者丢弃已经有的投资。纸上谈兵很简单,可是真正作起来很难。 无差别数据交换,多好的梦想啊。sun说:write once,use anywhere,多好的梦想啊,成本不就是个小小的jvm么?你考虑过有多难么? 真正去一个经常去和客户打交道的公司,尤其是弱势的乙方,你就知道,一个美好的概念,即使是正确的,为客户省钱的,要他们接受是多么难。 能在保护既有投资,最佳是不变动的情况下的技术,是最好的。而不是高效什么的,那是程序员的想法。尤其硬件不值钱的情况下。对很多老板,宁愿花1kw买硬件提速,也不愿意在软件上作一点点改动。 你自己去考虑去吧。不要让客户适应你,你去适应客户。 明白,而且也是很实际的问题。如果现有的系统可以工作的很好,那是绝对没有必要采用什么新技术替换的。就好像现在还有很多原来使用旧的 EJB 方式编写的系统,也没有过渡到 Spring + Hibernate 这种新型的 EJB 组合上来。因为它们现在可以正常的跑,而且没有改造的必要,或者只要在上面进行小的修修补补即可,而无需大的改动。这都是很正常的。 但是如果某客户希望对自己的系统作较大改动,而在原有的基础上改动比采用新技术要花费更大(不只是硬件方面,也包括软件和人),而改造之后的维护费用也是采用新技术花费更少的话。那么你认为客户还会抱着旧技术不放吗?当然不会,对于客户来说,永远都是,在可以提供更好的服务的情况下,怎么才能做到最省钱还最赚钱。 而在构建新系统时,客户考虑的还是同样的问题。只要你能够做到在满足所有条件的基础上,最快最省的解决问题,那么客户就会选择这个。 bonny 写道 话再说回来,ESB在协议发布这个环节上,没有什么问题。他的协议发布是可插拔的,如果有一天PHPRPC协议主流了,我想ESB服务被发布成PHPrpc节点也肯定会有的。
明白,ESB 要做的就是大一统嘛,将所有问题集中于一处解决,但是这种思想跟 SOA 的解耦思想是有点背道而驰的。 bonny 写道 问题是esb内部要进行语义转换和服务整合,暂时主流都是用xml格式的数据,不知道phprpc数据结构在内部解析的时候高效么?数据整合的时候高效么?直观么?从内部数据发布为服务的时候,高效么?
PHPRPC 数据结构是否高效在之前我已经发过两篇评测的帖子了,不管在 .NET 还是 Java 下,都跟 Hessian 是一个级别的,甚至是超越 Hessian 的(但没有 10 倍数量级这种超越),而跟 XML 相比,是超越其十倍到百倍数量级的。其实 PHPRPC 最初就是为了要解决基于 XML 那些低效技术才被设计出来的,如果不高效,也就没有存在的意义了。数据格式在直观性上也超越 Hessian、AMF 等,因为是半文本结构,而不是纯二进制结构。 |
|
返回顶楼 | |
发表时间:2009-02-23
厂商的行为,只有一个目的:使it企业利润最大化.
这些厂商,或者是厂商联盟提出的概念和方案同样也是使其自身利润最大化. 一个复杂的概念,一个繁杂的方案,以及其他高深的东西,都是围绕着利润. 而andot的phprpc却不是这样. 当直面phprpc的好处的时候, 这也就是很多靠这些厂商,牛逼方案吃饭的人所芥蒂,厌恶的时候. 有种的用phprpc试试,很多人不敢,没乐厂商,联盟的金字招牌,挣钱会少. 狠明显,andot不是这样,不是这个层次的民工. |
|
返回顶楼 | |
发表时间:2009-02-23
捧哏的逗哏的都出来了,好不热闹。
我很喜欢andot的这个phprpc,非常喜欢,但也只是视为an other hessian ,但也不至于扯到soa啥事情吧? andot 和你的支持者的心态不好,"我都有银弹了,你们还啰嗦什么",这个是我仔细读了这几天je上的帖子后的发现,以至于有人要讨论esb的协议转换,你们来一个“都用phprpc不就成了?”来打发,这个也太.... |
|
返回顶楼 | |
发表时间:2009-02-23
对于大公司来说确实是:“没有复杂的协议转换,业务入侵,我们怎么能做得出又大又慢的软件啊,没有巨耗资源的软件,我们还买什么机器啊!”
我很理解这些公司的心情,我可能真的砸了他们的饭碗,对此我深表同情,但我也只能说节哀顺变。 |
|
返回顶楼 | |
发表时间:2009-02-23
eyeieye 写道 捧哏的逗哏的都出来了,好不热闹。
我很喜欢andot的这个phprpc,非常喜欢,但也只是视为an other hessian ,但也不至于扯到soa啥事情吧? andot 和你的支持者的心态不好,"我都有银弹了,你们还啰嗦什么",这个是我仔细读了这几天je上的帖子后的发现,以至于有人要讨论esb的协议转换,你们来一个“都用phprpc不就成了?”来打发,这个也太.... 长江后浪推前浪,前浪死在沙滩上, 技术上的革新是否成功,基本上都是拼了命的,以这种心态做事,才不会完全依赖洋人的技术. 首先我没说过“都用phprpc不就成了?” 其次,这也是行的通的, 再次,这不是打法,即使是你讲的"银弹",也许要耐心的看说明书.更何况,本来就没有银弹. 当提出用PHPRPC的时候,大家为啥不能用探索新鲜事物的心态去了解它呢? <海角七号>很多人说是亲日,这些人了解台湾嘛? "我都有银弹了,你们还啰嗦什么", 请不要用这种心态来揣测我们... |
|
返回顶楼 | |
发表时间:2009-02-23
最后修改:2009-02-23
引用 对于大公司来说确实是:“没有复杂的协议转换,业务入侵,我们怎么能做得出又大又慢的软件啊,没有巨耗资源的软件,我们还买什么机器啊!”
我很理解这些公司的心情,我可能真的砸了他们的饭碗,对此我深表同情,但我也只能说节哀顺变。 要说效率高。 你效率有两个系统之间自定私自协议高么? 要说服务耦合度低,你有ESB服务耦合度低么? 我给你的定位:解决了普通场合soap效率低下的缺点,对于简单系统信息传递,具有简单、高效的有点。 你去扯SOA和ESB,并且贬低别人作广告,我鄙视你。 |
|
返回顶楼 | |
发表时间:2009-02-23
最后修改:2009-02-23
andot 写道 对于大公司来说确实是:“没有复杂的协议转换,业务入侵,我们怎么能做得出又大又慢的软件啊,没有巨耗资源的软件,我们还买什么机器啊!”
我很理解这些公司的心情,我可能真的砸了他们的饭碗,对此我深表同情,但我也只能说节哀顺变。 快吐了我。 你要明白,对大企业的发展和信息整合而言。协议转换是必须的。 因为所谓的协议包括两个层面的意思, 一,是公用的标准的协议,比如TCP,http等, 二,是客户自定义的系统之间自定义编码,比如,在以前的遗留系统中,绝大多数场合,互相制定“AAA:****,BBB:****,DDD:****”这样的字符串或者制定<AAA>BBB</AAA>,或者是“1-10位表示**涵义,11-12位表示***”来,并且使用的传输方式也是各式各样。 随着客户信息系统的发展,必须讲这些数据服务整合到新系统中,如果是N对N的整合,工作量相当庞大,尤其涉及到系统1服务1+系统2服务2+....系统N服务N 的服务整合成新服务。 ESB不但可以整合协议一层次更重要的是整合协议二以上上的“协议”,并发布为协议一意义上的标准协议、标准的格式(或者任意的协议和格式),极大的简化了企业内部庞大繁多的信息系统服务整合。 既然协议转换无法避免,效率低下就无法避免(如果效率转换如你所言是效率低下的话) PHPRPC我试用了一下,还不错。但是绝对无法替代“ESB”这样“又臭又大,效率低下”的东西。根本不一个层次的东西。你最多也就解决“协议一”层次上一些东西(比如SOAP的效率低下)。距离ESB概念还远着呢。 我浪费这么多时间给你解释ESB,我怀疑你根本就不懂ESB。却处处打着ESB的招牌,靠贬低ESB来推销自己。 |
|
返回顶楼 | |