专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

SOA,落地路上二三事

  业界普遍认为,没有SOA的下一代电子电气架构是没有灵魂的。在这样的价值观驱动下,汽车行业开始了轰轰烈烈的SOA运动。而伴随着车载以太网的量产,SOMEIP、DDS等通讯协议的成熟,AdaptiveAUTOSAR、ROS等操作系统中间件的不断优化,SOA在汽车行业落地的土壤也已具备,SOA也由雷声大的口号阶段进入到雨点小的落地阶段。
  SOA虽已是互联网行业中的一位成名英雄,但在汽车行业却是一个比较新的概念,目前并没有一个放诸四海而皆准的指导思想。从各家公布的资料来看,SOA被做成马的也有,被做成骡子的也有,真可谓是千娇百媚。但是正如教员所说:实践是检验真理的唯一标准,基于不同的方法、思想实践出来的结果,如涓涓细流,终将汇成大一统的SOA指导思想。
  前文《SOA,得服务者得天下?》已对SOA基础知识有过介绍,本文在此基础上,继续闲聊一下SOA在落地路上的二三事。
  SOA设计原则
  SOA在其成名领域互联网,用的是客户端服务器的架构。客户端通过网络向服务器发送请求,服务器响应请求,这是客户端服务器架构背后的主要逻辑,毫无疑问这也是互联网有史以来发布最成功的网络技术之一。
  客户端服务器架构之上的进一步抽象是面向服务的范式,这是将服务器中的信息组织成服务的模式,这个服务可以被发现、进行交互或用作已知的语义。这也就意味着该服务具有确定的行为,在给定相同的条件时,总会产生同样的结果。
  这就好比你去麦当劳点餐,麦当劳提供了从穷鬼到地主级别的不同套餐,这些套餐就是这家麦当劳门店所能提供的服务,然后你为选择的服务支付费用。麦当劳生产这个订单后,员工会按照麦当劳定义好的流程,一个负责炸薯条,另一个负责制作汉堡,有条不紊地做着自己该做的事情。无论是谁、无论何时点的套餐,顾客最终都会得到他想要的食物。麦当劳的这些服务都是具有预先确定的行为和已知的术语,并且会产生可预知的结果。
  上述例子可以让我们对SOA的实现窥探一二,也可以让我们试着总结SOA在设计时应尽可能遵循的原则。
  一、抽象化
  抽象化是SOA非常重要的一个设计原则,是指使用抽象层来隐藏网络拓扑、通信和实现的复杂性。如果不利用抽象化,而让客户端知道实现该服务的所有细节,那客户端使用该服务的方式将会严重制约服务的演化。
  对于顾客而言,他们并不需要知道麦当劳内部是什么样的流程机制,里面的员工是如何进行合作分工。他们仅仅需要关心麦当劳能提供什么服务,以及对应的服务结果是什么。换言之,我们定义服务的接口时(相当于菜单),也仅仅需要把服务接口实现方式(顾客消费方式)和接口调用的结果(食物照片)定义清楚。
  为了确保遵循该原则,服务的公开状态应该尽可能地少。此外,只应规定服务行为的外在表现。
  二、正式合约
  一个服务之所以被称为服务,是因为其给公开的功能以及如何实现提供了正规的描述,即正式合约。这其实就是我们做SOA设计时定义的服务接口,每一个接口都应该有明确的定义以及实现方式。
  三、低耦合
  在面向对象的软件中,单独的系统组件指的是被设计成无边界效应的独立对象。那些发生在组件之间的相互作用可以被明确地定义和测试。将依赖关系减小到最小程度,也就是低耦合,使修改服务的实现方式时不会带来意想不到的边界效应,从而降低风险。
  而对于SOA低耦合的设计原则,主要包括两个方面:
  (1)一是服务的实现方式和正式合约应该分离开来。服务的正式合约只要不变或者修改,那不管实现方式如何变化,这都不影响。就像去麦当劳点了一个套餐,只要套餐内容不变,不管麦当劳内部人员怎么分工,是一个人炸薯条再做汉堡,还是分不同的人分别去炸薯条和做汉堡,对于服务使用方来说结果都是一样的,他并不关心服务是怎么实现。
  (2)二是服务的实现过程不要依赖另一个服务的结果。就比如麦当劳A客户点了套餐A,B客户点了套餐B,就算套餐B不能完成,那也不会影响套餐A的制作。
  四、可复用性
  可复用性其实是SOA设计所期望的设计目标。真正的可复用性是让服务适用于多种不同应用的能力。进行一项服务的设计时,如果没有进行认真地思考,它可能仅能满足某种特定的应用。而经过思考的良好设计,服务可以与具体的实现过程相独立,这就意味着该服务可以在其它的应用中快速地复制。
  五、独立性
  每一个服务与客户端的状态应该是相互独立的,它应该有它内部既有的工作流程,而不依赖于客户端的状态。这样做的目的是剥离客户端与服务端的状态交互,这样做的目的是无论客户端来自哪里,在任何时间、任何地点请求同样的服务,服务端都以同样的方式响应,从而得到相同的结果。就像当顾客点了一个汉堡时,麦当劳门店只要按照既有流程去制作就行,期间不用关心该用户是谁、来自哪里。
  六、可组合性
  我们在进行服务的设计时,为了低耦合,我们往往把服务设计得小而精。然而在进行汽车的服务架构开发时,整车的系统往往是复杂的。经常会有不同的用户使用场景,针对不同的使用场景,利用现有的服务,鼓励可以聚合大的服务,以实现更高级别的应用。比如说汉堡、炸鸡、薯条、可乐这些都是属于小的服务,门店可以自由搭配组合形成新的不同套餐,在价格中形成一定的优惠,以供客户选择。应用到车上,氛围灯、座椅、空调、音乐等属于小的服务,车企可以根据不同的组合,形成不同的用户场景,比如休憩模式关闭所有灯光、音乐,座椅和空调调整到舒适位置。
  七、可发现性
  可发现性指的是用户可以通过某种特定的方式查询到该服务,而不是通过静态编程的方式。例如在高德地图中输入麦当劳,你就可以得到附近的门店的位置,而不用在手机中把每个门店的地址记下来。
  SOA设计举例
  上文简单介绍了SOA设计时的七个指导原则,但在真正进行某个子系统的SOA设计时,其实会面临更多的问题。每一个系统工程师对方案的理解不一样,都将导致设计出来的架构不一致。当然这个没有对错之分,毕竟通往珠峰的道路也不是只有一条。
  下面以控制空调的开和关为例,比较SOA两种设计方案。
  一、方案一
  服务端(空调模块)提供开和关的接口,客户端(娱乐主机)调用这个服务接口来请求空调的开和关,服务端根据自身的控制逻辑执行空调的开和关。
  服务接口描述:
  HVACONOFFReq:客户端可通过调用这个接口来打开或者关闭空调。
  HVACONOFFResp:服务端根据自身的逻辑,收到请求后反馈给客户端执行结果,如果正常执行就反馈执行成功。如果不执行,就反馈执行失败且会携带失败的原因,比如执行失败,整车未上高压或者发动机未启动。
  二、方案二
  服务端(娱乐主机)发布空调开和关的请求事件,客户端(空调模块)订阅这个事件接口,当该接口为空调开或者关请求时,用户根据自身的控制逻辑执行空调的开和关。
  三、方案比较
  从结果上分析,两种方案对用户的体验实际上是一样的,都能实现对空调的开和关,但是细究下来还是有不少差异的。
  方案一的优势是服务端提供统一的接口,客户端可以根据自身的需求调用。服务端可以不关注客户端是谁,只要根据自身的内部逻辑进行空调的状态跳转。
  方案二其实细看就像上一代面向信号的架构,只是把之前的信号重新包装成服务的形式在以太网上传输,相当于脱裤子放屁。基本可以用现有的软件架构,把接口名字改改就可以上车,开发的代价最小,但是没有任何扩展性可言。如果有其他的APP想控制空调,那就需要重新发布一个接口,客户端(空调模块)需要重新订阅该新的接口,从而实现另一种控制方式。
  从短期来看,方案二是实现所谓的SOA代价最小的方案。但是作为要面向下一个十年甚至二十年的架构设计来说,方案一才是主流的方案。虽说在开发过程中还会遇到其他问题,但是总体的架构思路和方向是对的。
  SOA功能分配
  上面介绍的是SOA某个服务的架构设计方案,在进行系统的详细设计时,比如说具体到SOA的功能分配,就又面临另一个问题。
  还是上文空调控制举例,比如在进行空调的控制时,需要判断车辆状态,当整车处于高压或者发动机启动时才能开启空调。
  方案一中如果把对车辆状态的判断放在客户端,那么意味着每一个客户在控制空调时,都要先获取车辆的状态,只有满足车辆处于高压或者发动机启动时,才能调用空调的控制接口。服务端收到空调的控制器指令,执行相应的动作。
  这么做的好处是服务端提供的接口内部逻辑可以做的很简单,不会随着前置条件的变化而变化,把控制的前置条件判断上移到客户端。坏处是对每个客户端提出了更严苛的调用条件,如果该服务仅仅针对内部软件的团队进行开发,那相对来说是可控的,可以通过设计文档审核以及测试进行把控,不会出现客户端在前置条件不满足时就调用服务端的空调控制接口的情况。
  然而如果这个接口开源的,那显然这样的设计方案不合理,因为对于开源的接口,不可能要求每个开发者严格按照规则去做,一旦有某位开发者开发的APP没有判断前置条件就直接调用空调的控制接口,那有极大的概率出现小电池被耗尽电的问题,除非有智能补电功能。
  方案一中如果把对车辆的状态判断放在服务端,对于客户端来说,就可以很简单,只要想控制空调,那就调用服务端的接口,至于能不能开启,服务端会根据车辆的状态反馈给客户端。
  这仅仅是针对单一车型,对于不同的车型以及应用场景,可能开启空调的前提条件不同,所以在进行服务的接口定义时,先定义和开放适用于大部分应用场景的接口,至于特殊的需求,经过评估后再确认是否需要定义新的接口。
  这里要阐述一个观点,服务并不是一成不变,且不要想着一个服务接口就可以覆盖用户所有的使用场景。
  写在最后
  SOA在互联网行业的成熟经验可参考,但也仅供参考,如果是拿来主义,那注定是不会成功。要想把这个概念用到汽车行业,且用得好,无论是使得软件复杂度减少,亦或者为将来的功能拓展带来便利性,这些都需要进行深刻的理论分析以及实践应用。
  SOA的系统设计也是这几年刚刚兴起,每一家的架构以及系统方案都不一样,但从笔者的拙见来看,SOA目前的收益其实并没有宣传的那么大,投入产出比严重不平衡。SOA的开发不能一蹴而就,在各家不断的开发实践中,不断地优化现有的架构以及系统设计方案,直至诞生汽车行业大一统的指导思想及设计原则。

腾讯新游戏合金弹头觉醒首支CG公开,预约开启IT之家11月19日消息,据腾讯游戏发布,新游合金弹头觉醒预约开启,首支CG公开。合金弹头觉醒近期出现在11月国产网络游戏版号审批通过名单中。下面是游戏介绍街机神作,重制觉醒!合金iOS16。2更加流畅了?开发者表示终于支持了120Hz高刷iOS16。2修复高刷问题苹果在前几天推送了iOS16。2最新的测试版更新,而据用户以及开发者的代码显示,iOS16。2Beta3版本似乎已经修复了iPhone的自适应刷新问题。在华为P60最新爆料双矩形相机模组药丸居中,明年第一季度上线今年9月,华为带来了华为Mate50系列,在市场上收获了大批粉丝的喜爱,正式发售的时候还秒售罄。按照华为Mate50系列的销售情况来看,供应链方面的问题应该解决了的。所以,接下来基藏一份爱在心,锁一世情为你,写给爱而不得的你昨晚做了一个梦在一个悠长的雨巷里,你素衣翩翩,撑一把油纸伞半遮容颜慢慢向我走来,我刚要伸手触摸你,你却轻轻转身离去,空留我一人站在原地,望着你渐行渐远的身影黯然神伤。因为你不在身旁禹城原创向前一步走作者吴昆回首军旅岁月,我禁不住泪湿眼眶,为什么对部队的感情如此之深呢?是因为那里有太多的青涩记忆和苦乐年华,让人一回想,就浑身上下充满力量斗志昂扬。一路走来的这二十年里,有很多艰苦人生四不尽,做到才是真有福福报人人都想要追求,老祖宗教导我们的修福惜福的方法有很多,我们都可以学习并加以实践。只要假以时日,功夫渐深,自然福报现前。在修身修福的过程中,有一点是非常关键的,这也可谓是传统文化等一城烟雨,渡一世情缘水流花谢两无情,道尽东风过楚城,蝴蝶梦中家万里,子规枝上月三更。时光缓缓,岁月凝香,暖阳碎了一地的光,不慌不忙,你总要对得起这时光。清夜无尘,月色如银,酒斟满时,须满十分,浮名浮利我们家的小吃货我们家的资深小吃货从合肥回家了,我们两个老人家都很高兴,鱼,虾,猪肉,牛肉,羊肉,一一安排起来了。先生买了回民的黄牛肉,好漂亮的一块牛肉,又红又滑!还买了三斤羊排,也很漂亮,感觉还绍兴小点心橘红糕腌腊醉酱是绍兴人玩弄食物的四大手段,试图把每一种食物都赶尽杀绝,追求味道的极致。可谁都没想到,绍兴人也有少女心泛滥的慈悲一面,在腌酱之外绞尽脑汁想出了一种纯洁可爱的小甜食。这种成品大街上高价回收老酒靠谱吗?原来藏着诸多猫腻,弄懂不吃亏酒是陈的香,这句话相信很多人都听说过。陈酒,也就是老酒,特指那些储藏了很长时间的白酒,经历了岁月的沉淀和时间考验,喝起来味道醇厚,回味悠长。而且这种酒有着独特的陈香味,是没法用其他牛奶我家从不直接喝,往锅里一倒,试试这样做,出锅孩子抢着吃国以民为本,民以食为天,各位老饕大家好!牛奶是营养丰富的饮品,它包含的人体生长发育所需的全部氨基酸,是其他食物无法相比的。今天,我们就要用牛奶做个好吃的,它奶香浓郁,却又口感Q弹,
司马南开撕联想,最后会有什么样的结局?正义必然战胜邪恶,司马南代表的是正能量,结局不言自明。联想正是当下中国经济社会的缩影。司马南先生在这个时间点炮轰联想正当其时一,做大做强了,但没有核心技术。二,收入分配差距不是太大岳云鹏18岁时贾玲18岁时沈腾18岁时跟现在一样吗?都是什么样子的?不知从何时开始,一股晒我的18岁照片持续火爆网络,不管是普通人还是明星,纷纷晒出自己18岁的照片,这些18岁照片,有的让人唏嘘,有的让人捧腹,下面就让轩主带您看看岳云鹏贾玲沈腾的1你觉得手机壁纸是给别人看的还是给自己看的?给自己看的耶我感觉是给自己看的,给别人看的几率小。手机壁纸是给自己看的我的手机,是我的工具。人家看,我不肯。某机关要看,拿法律手续来。不然,凭什么过目?壁纸,也是同样的道理。一是为为什么苹果手机在中国仍然畅销?因为井底之蛙太多,还以为国产是10年前的水平,殊不知国产三五年也不卡,拍照充电超过苹果,买苹果的观念陈旧,还认为国产太逊。不愿意尝试国产,活在自己梦里。第二个一些无脑人太多,好多道有人说王者荣耀马可波罗被动砍一半仍旧统治kpl,他到底为什么如此不可替代?哦,杰克,汤姆,为什么这样?你是否看腻了马可波罗大战公孙离?你是否希望边路射手再次登场?你是否怀念曾经的露娜李白秀五杀?别做梦了少年,我们还是来玩公马大战吧!(手动滑稽)你以为马可感觉发达国家有些人很懒散,为什么那么富裕福利那么好,钱从何而来?近年来,西方主要国家的福利开支占GDP的占比。瑞典高达38。2,丹麦37。9,挪威33。2,法国34。9,英国25。9,加拿大23。1,澳大利亚22。5,德国27。6,美国21,日特斯拉在中国市场销量不及预期,上海工厂却再扩产能?原因何在?国家战略占领新能源全球话语权!宁德时代电池,比亚迪电池,驱动世界!1国家借助特斯拉的全球销量平台建立中国完整的配套供应链,大力发展实体制造,智能装备制造。2能源战略,宁德时代电池,北方民族大学怎么样?北方民族大学是我国唯一一所建立在少数民族自治区的部属综合性民族高校,学校的实力还是不错的,而且学校的环境比较优美,学风醇厚。学校始建于1984年,2000年通过教育部本科教学工作合中国女排,如果朱婷和李盈莹组合PK朱婷和张常宁组合,结果会如何?就目前来说,婷宁组合是强于婷盈组合的,这符合排球攻守平衡的基本规律。排球不是一个仅强调进攻的项目,如果说强攻那把朱婷和王一梅两个人都绑在一起,其攻击力是远大于张常宁李盈莹的。那郎平ios系统最好的app是哪个?虽然苹果手机上的APP没有安卓的多,但也有很多逆天的存在,下面我们就来看5款iOS上的神器。1Workflow功能众多,集快捷支付扫码保存下载视频图片查询天气翻译句子等众多实用功能iPhone6s升级12。2系统怎么样?与其问iPhone6S升级12。2正式版怎么样,还不如让我告诉你要不要升级到12。2系统小编作为iPhone6s的资深用户,从ios10。0开始体验,在10。3。3停留很长一段时间
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网