乱谈SOA——IT世界观及方法论

SOA(面向服务架构)是一种软件设计和开发的方法论,它将应用程序划分为一组松散耦合的服务,这些服务可以通过网络进行通信 SOA(Service-Oriented Architecture,面向服务的架构)和微服务是两种常见的软件架构风格,它们都旨在实现松耦合、可扩展和可维护的系统。当一个微服务的数据发生变化时,它将消息发送到消息队列,其他相关的微服务可以异步地消费这些消息并相应地更新自己的数据。事件驱动架构:使用事件作为数据的传递机制,当一个微服务的数据发生变化时,它会发布一个事件,其他相关的微服务可以订阅这个事件并相应地更新自己的数据。高可用性与容错性:由于每个服务都是独立的,一个服务的故障不会影响整个系统的运行。 阅读详情
 
乱谈SOA——IT世界观及方法论
 
最近刚刚为博文视点完成了“SOA in Practice”(《SOA实践》)一书的翻译工作。2个多月的时间以来,基本上每天的业余时间加上周末,全都在翻译这本书。以前对SOA所知不深,经过2个多月的浸泡,感觉自己对SOA的理解深了一些。而且,越是到后来,越是有一种感觉:SOA更多的是一种世界观和方法论,某种程度上来说,SOA和ERP之类的东西有点相似——首先要建立某种IT世界观(如何看待IT系统?什么东西是最重要的?)、方法论(处理问题的基本原则),然后再讨论技术细节。没有理论指导的技术细节,往往会使人抓芝麻,丢西瓜;当然,没有技术细节的理论,也会使人神游太虚,不知所云。
 
我们如何看待自己生存于其间的世界?这个问题关系重大。还能想起上中学的时候有一门好像叫“思想品德”的课,讲人生观、世界观、价值观,内容枯燥,搞得自己对这些东西颇为腻烦。然而,若干年过去后,回过头一看,正是这些基本的观点和认识在左右自己的行为和意识。
世界观回答的问题是:你用什么观点来看待世界?
在IT这个行当里,所谓的世界观体现在类似于这样的问题上:
+         你认为系统是静止的?均衡的?趋向完美的?还是动态的?非线性的?未来有无数多的可能性的?
+        你认为系统应该是“同质”的还是“异质”的?
+        你认为系统的“扩展性”、“伸缩性”、“重用性”哪个最重要?
如此等等。
这都是些基本信念问题。
对第一个问题,假设我们抱前一种观点,我们就会希望系统景观按我们“良好”的意愿来发展——可控,完美。如果情况不是这样,我们就会感觉到沮丧、挫折。如果我们抱后一种观点,我们就会从内心深处意识到所有的变化、偶然、意外都是自然规律所致使,是我们必须接受的一部分,它们非但不是我们的敌人,相反,它们是给我们机会、给我们未来创造无限多可能性的朋友。我们就会热爱变化,拥抱变化。
IT世界观对我们设计IT系统影响深刻。在过去,我们有很强的“同质”倾向。大型主机、ERP系统等,都是我们期望同质的表现。而且,很多技术都试图把我们往同质的方向上引导。个人以为.NET之所以力图覆盖从浏览器、桌面,到服务器的领域,就是这种努力的体现。厂商推销给我们的东西时往往有一个不摆在明面上但昭然若揭的目的:把你绑在他的平台上。SOA首先认为异质是不可避免的,接受这个现实而不是试图和异质抗争。
另外,你是更看重“重用”还是更看重“伸缩”,也有很大的影响。面向对象的编程显然更加注重“重用”性——代码级别的重用;面向组件的编程带给了我们二进制级别的重用。用对象这样的概念建立起来的分布式系统,比如OMG的CORBA,其伸缩性当然先天性地就有问题。而INTERNET,其建立的首先考虑就是伸缩性,所以,互联网才可以发展到现在这样一个规模。SOA非常看重伸缩性。从我的理解来看,事实上这也是为什么要提出SOA概念的重要原因之一。一种僵化的结构无法满足伸缩的需求;而无结构的灵活会导致不可控的伸缩,最终会造成整个系统的崩溃。SOA就是力图要建立既足够灵活,又有一定之规的系统架构。
 
再来说说方法论。SOA方法论是复杂性理论可以发挥作用的地方。
有关复杂性理论,大约在3年前看过一本名为《复杂》的书,当时就深深地为复杂性理论所打动。所谓复杂,简单说来,就是“1+1不等于2”。为什么?因为这两个1之间不是简单的线性叠加的关系,而是互相影响,互相制约,互动。所以,1+1不但可以大于2,还可以演化出许许多多我们开始时都意想不到的东西来。要想形成这种系统,关键的是,该系统要处于“混沌的边缘”,也就是说,该系统非但不能在均衡的周围,相反,必须远离均衡。在远离均衡,但是又并非混乱的区域,自由地进行元素的相互反馈,最终就会产生出秩序、组织和新的元素等等。如果仅仅在均衡区域附近,那么,毫无疑问的是,系统会死水一潭,如果在动荡非常厉害的区域,则又会产生过多的混乱,无法形成组织,正是在这个又有足够的灵活性产生相互的交互和新的元素,同时又不至于过于混乱的区域,组织就会浮现出来。从某种意义上我们可以感觉到,人类的出现,社会组织形态的出现等等,都遵循着这个法则。而且,正是因为所有的组织出现,新的更强大的组织的出现,都有赖于系统的互动、反馈以及变迁,所以,我们从根本上要热爱变化,正是变化产生了我们这个世界,以及生命本身。
要想复杂系统顺利地演化,需要遵循一些基本的原则:
1, 在变化中演进;
2, 鼓励自下而上提出规则、建立规则
3, 睁大眼睛,注意观察
回到谈SOA上来。SOA要处理的系统场景中,各个系统交互影响。如果已经有N个系统,增加一个系统到场景中,产生的影响绝对不是N+1。这就典型地体现了复杂系统的情况。而SOA方法论中最重要的一些组成部分就是这些原则的具体体现。
首先,《SOA实践》作者在书中反复强调,建立SOA是一个演进的过程,“你买不来SOA”。为什么?买来的一揽子软件包限制太多,而且基本上软件商的目的是绑定你,所以,一旦上了某个软件商的战船,恐怕就很难再进行自由的演进。越是号称一揽子的东西越是如此。而复杂系统需要不断变化,需要快速采取不同方案,不断调整,不断地进行高自由度的演进。买来的SOA很难给你提供这样的对变化的适应性。
所谓自下而上地建立规则,指的是这样一种情况。在研究复杂科学的过程中,人们发现了一条有趣的规律:有些看似复杂的群体行为,其实只要一些简单的,自下而上的规则就可以得到实现。这里最关键的是“自下而上”这几个字。对于这一点,最有说服力的解释是电脑模拟群鸟飞行的程序。我们通常会看到鸟群和鱼群的行为非常复杂,但似乎总能得到精确的控制。在电脑模拟中,通过几条简单的规则,让每支鸟都根据旁边鸟的行为来做出反应,结果鸟群的行为得到了很好的模拟。试想一下,如果我们不是建立“从下而上”,而是建立“从上而下”的规则,先规定群体行为,再分解到每支鸟的行为,那么整个规则体系会非常复杂,而且无法模拟出所有情况。更严重的是,一旦出现任何意外情况,系统就无法处理了。让这些自下而上的规则发生作用,而且进行演化,就可以浮现出群体的组织,突现出结构来。
当然,这绝非说建立SOA的规则会非常简单,而是这种自下而上的方法论非常重要。事实上,在《SOA实践》这本书中就提到了建立SOA的两个基本方向——自下而上和自上而下,并且建议说最好采取自下而上的方式,从一个SOA先驱项目开始整个SOA的建立过程。
至于说“睁大眼睛,注意观察”,则体现在SOA的监管上。为什么对复杂系统要注意观察?因为复杂系统的建立和演化是个不断变化的过程,需要不断地根据环境的反馈作出调整。SOA正是如此。SOA的建立是个动态变化的过程,所以要随时留心SOA景观的变化和发展情况,不断作出调整。
 
嗯,此处的泛泛之谈也有神游太虚之嫌。不过要提供技术细节,不是几千字可以办到的事情,Nicolai M. Josuttis在《SOA实践》中花了小20万字说这些细节(该人曾写《C++标准库》和《C++模板》,技术功底雄厚)。喜欢技术细节的,等《SOA实践》出来后去看吧。
 
SOA(Service-Oriented Architecture,面向服务的架构)是一种软件设计和开发的方法论 SOA(Service-Oriented Architecture,面向服务的架构)是一种软件设计和开发的方法论,它将应用程序划分为一系列可重用的服务,这些服务通过网络进行通信,并且可以独立地被组合和调用。SOA(Service-Oriented Architecture,面向服务的架构)是一种软件设计和开发的方法论,它将应用程序划分为一组可重用的服务,这些服务通过网络进行通信,并且可以在不同的平台和编程语言之间进行交互。需要定义清晰的服务接口和契约,并确保服务的可重用性和可扩展性。 阅读详情

相关推荐

企业IT建设方法论

        相信当很多人听到IT或者IT行业一词,第一反应都是高端大气上档次,同样的,IT一词也会常常伴随着几个关键词:高薪、白领、高科技、有前途,很多莘莘学子在选择专业的时候也会向着该行业发展。笔者曾经也是这么认为的,所以在毕业之后选择了IT行业,当真正进入这个行业后发现很多时候我们所了解的IT或者IT行业都是浅层表面的,IT没有我们想象的那么高大上,但也比我们想象的要复杂许多,今天与大家分...

数通畅联 3014

抵御风险——漫谈运维核心价值和方法论

前言三个月前,我换了工作,到某金融集团的应用运维团队。从初创型的互金公司到一家大型的传统金融公司,我感受了巨大的差异。外界互联网企业,大家总是谈论的的微服务、DevOps...

运维派 1056

SOA架构方法论

简介了规划、建模、工程、衡量、信息、治理等多个子方法论,涵盖了SOA规划与实施的各个方面

SOA认知和方法论 | 京东物流技术团队

架构的范畴太大太广,本文尝试从一个点切入阐述一下个人的认知。有太多相关性的问题想去阐述,比如SOA与BPM的结合、实践过程中遇到的细节问题等等,为了比较干净的剖析SOA还是删除掉了。希望各位看官有所收获。

京东科技开发者 294

解读SOA :SOA实践方法论

解读SOA Interpret SOA SOA越来越被企业接受,很多公司都准备规划SOA。但具体怎么上,没有一套很好的方法论是不行的。资料是IBM在长期的摸索中总结的一套SOMA方法论,由于是内部培训资料,所以比较难得。 内容 一个现象 -SOA正在被企业迅速接受 -选择SOA的理由 SOA的方方面面 -什么是SOA?-怎样切入到SOA? -采用什么样的开发流程? -采用什么样的开发方法? -采用什么样的架构? -采用什么样的标准? -采用什么样的编程模型? -采用什么样的关键技术? -采用什么样的管理? -采用什么样的产品? SOA,你准备好了吗?

SOA实施方法论及流程介绍.pptx

SOA实施方法论及流程介绍.pptx SOA实施方法论及流程介绍.pptx

企业IT数字化转型咨询规划方法论:咨询规划方法论构图:展示了SOA规划的五个阶段,包括现状分析、发展愿景、蓝图设计、标准体系和SOA实施。

在实施过程中,系统开发与集成工作是非常关键的,需要根据蓝图设计和标准体系,进行细致的系统开发和集成工作,确保系统的功能和性能能够满足企业的需求。同时,数据迁移与治理工作也是必不可少的,我们需要进行数据迁移、清洗、整合和治理工作,确保数据质量满足业务需求,为企业的决策提供有力的数据支持。要想画好流程图,我们首先要明确绘制的目标,也就是要描述的业务流程范围和目标,这样才能确保我们的流程图能够准确地传达给受众,满足他们的使用需求。首先,业务蓝图设计,我们需要根据企业的发展愿景和业务需求,绘制出未来的业务蓝图。

weixin_44094929的博客 882

SOA实施方法论.pdf

Oracle SOA实施方法论,内容比较全面,具有参考意义,值得拥有。

SOA鼻祖 Eric Newcomer谈SOA

原文地址:http://blog.youkuaiyun.com/dongtg/archive/2007/09/18/1789430.aspx       时下,SOA正成为国际大厂商和CIO们共同的热点话题。与此同时,各分析机构乐观预测,SOA将大行其道。但放眼全球,由于缺少更多的成功案例,SOA正逐渐招致CIO怀疑的目光。  在未来,到底SOA将扮演一个怎样的角色?企业千差万别,IT系统又是各具特色

飞马的专栏 754

基于SOA的信息系统实施方法论研究

基于SOA的信息系统实施方法论研究 :基于SOA 的信息系统已经成为目前建设信息系统的重要类型。论文分析并比较 了IBM、Oracle、微软、普元等主流厂商的SOA 实施方法论,在此基础上,提出了一个基 于SOA 的信息系统实施方法论的框架,该框架中将SOA 系统的采纳分为三个过程,即:规 划过程、实施过程和治理过程。论文的作者对某移动公司实施SOA 项目的过程进行了调研, 调研数据验证了论文提出的实施方法论框架的正确性和可行性。

SOA方法论

SOA方法论

SOA的概念、意义及标准

才子英: 各位网友大家好,非常欢迎大家来到赛迪网嘉宾聊天室,我们今天讨论的话题是近两年来非常火热的话题,SOA。我们请来的的嘉宾是BEA中国区技术总监喻思成先生。 喻思成: 大家好,我是BEA公司负责技术支持部门的喻思成,我加入BEA已经有6年。今天很高兴在赛迪网跟大家分享有关SOA的话题。 才子英: 关于SOA已经讨论了将近两年的时间了,一直都非常火热。SOA概念有一点点“尴尬”――这两

liuping822908的专栏 971

Ollama最新快速上手指南:从安装到精通本地AI模型部署

想让Ollama跑你的"私房模型"?三种主流格式全支持,总有一款适合你!GGUF格式(推荐新手首选)创建Modelfile文件:执行创建命令:运行你的专属模型:PyTorch/Safetensors格式(适合进阶玩家)先用库测试模型能否正常加载确保模型结构完整后再导入Ollama官方文档有详细转换指南专业小贴士GGUF格式最轻量,PyTorch最灵活,Safetensors最安全遇到问题?试试用llama.cpp进行格式转换7B参数模型推荐使用q4_0量化级别想让AI用马里奥。

全世界的博客 2309

全程优化方法论、标准和支撑工具 - 关于SOA创新应用

  现代企业应用需要SOA,不仅仅因为SOA是目前IT界最为流行的元素,其面向业务、以服务为中心、松耦合、重用的概念为企业分布式计算提供了互操作的基础,异构已不再成为企业瓶颈, IT资产周转率大幅提高;另一方面,SOA为现代复杂应用平台提供了广阔的想象空间,企业不再为IT整合与开发而烦恼,虚拟企业联盟的概念已不是梦想,世界范围内的机构可以在同一信任域内自由进行服务贸易…SOA带给企业无限地

guowei2008的专栏 571

全志A133的AndroidSDK

本小节来学习如何下载全志安卓SDK,SDK的目录,编译和烧录提示:以下是本篇文章正文内容,下面案例可供参考以上就是整个SDK的目录和编译烧录,目的在于让初学者快速了解整个源码的目录和编译出镜像喜欢就订阅吧。

qq_24093081的博客 4054

ABAP Channels 之 WebSocket 通信实践:用 ABAP Push Channel 打造实时应用

摘要:本文介绍了ABAP Push Channel(APC)技术,它通过WebSocket协议实现ABAP系统与外部客户端的实时双向通信。文章对比了传统HTTP轮询与WebSocket的差异,解释了APC的事件模型及其接口演进(从IF_APC_WS_EXTENSION到IF_APC_WSP_EXTENSION)。通过仓库拣货等实际案例,展示了APC在企业级应用中的价值,如实时监控、协作场景等。文中还详细阐述了ABAP引擎中WebSocket的交互模型,说明其资源优化设计原理,并提供了基础代码示例。该技术解决

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 293

IT架构的SOA整合

金蝶ApusicReadySOA解决方案分为五个实施层,从门户集成和身份管理、业务流程集成、数据集成与数据管理、应用集成、云计算平台五个层面全面整合企业的IT架构。 怎样通过SOA实现企业IT架构的整合框架呢?互联互通是整合的基本内涵,其主要目的就是打破企业内部、企业之间的层层壁垒,消除信息孤岛,实现纵向和横向的关键信息资源的全面融合,实现以业务驱动的无边界信息流。毋庸置疑,任何系统

工作点滴 4806

YOLO11改进-注意力-引入级联组注意力机制(Cascaded Group Attention, CGA)

输入特征拆分:输入特征进入 CGA 模块后,被均匀拆分为个部分,每个部分作为一个注意力头的输入,这样每个头关注输入特征的不同部分,实现特征的并行处理,同时为提高注意力多样性奠定基础。注意力头计算单元:每个注意力头包含三个线性投影层、、用于将输入特征映射到不同子空间,以及计算自注意力的单元。在计算过程中,通过注意力头之间的级联操作,前一个头的输出会累加到下一个头的输入上,实现特征的逐步细化。

qq_64693987的博客 2489

谈SOA和平台

在谈这个之前,还得再说下SOA和平台。SOA做两件事情,一个是解耦并识别可重用的服务,一个是对服务进行灵活组装和编排满足业务需求,SOA核心是业务和技术的解耦,服务和能力的复用。而在IT领域的平台平台的概念目前基本上有三种,一种是基于快速开发目的技术平台,第二种是基于业务逻辑复用

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1276

选择的 Python 解释器无效,请尝试更改解释器以启用 IntelliSense、Lint 分析和调试等功能。请查看输出,详细了解解释器无效的原因。

摘要:在VS Code中配置Anaconda Python解释器时若出现"解释器无效"错误,可通过修改用户设置解决。具体步骤:1) 按Ctrl+Shift+P打开命令面板;2) 搜索并打开用户设置JSON文件;3) 添加conda路径配置项,示例格式为"python.condaPath": "D:\\Anaconda\\setup\\Scripts\\conda.exe";4) 同时启用环境激活选项"python.terminal.act

猿小白的博客 844

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

Transformer时间序列预测-多变量输入-单变量输出+多变量输出,完整代码数据,可直接运行

9793

IBM的SOA方法论之一——五个切入点和八个场景

一、什么是SOA:        面向服务的体系结构(Service-Oriented Architecture,SOA)是一种 IT 体系结构风格,支持将您的业务转换为一组相互链接的服务或可重复业务任务,可在需要时通过网络访问这些服务和任务。当在战略业务目标的引导下进行 SOA 实现工作时,可确保对业务进行积极转换,并能够实现 SOA 的好处:IT 与业务的一致性和IT 资产的最大化重用。

qinhl99的专栏-林鸿的技术博客 5379

【文献阅读】使用深度语音后验改进独立于说话者的构音障碍可懂度分类

原文名称:本文探讨了利用DeepSpeech后验概率改进说话人无关的构音障碍可理解性分类方法。作者提出了一个基于DeepSpeech(一种端到端的语音转文本引擎)输出的新特征集,用于评估构音障碍患者的语音可理解性。这些新特征在说话人无关的情况下表现良好,能够更好地处理不同说话人的变异性。背景介绍:数据集:特征提取:实验设置:结果:本文提出的新特征集在说话人无关的构音障碍可理解性分类任务中表现出色,特别是在低可理解性和高可理解性类别上。未来的工作将集中在减少低可理解性和中可理解性类别之间的混淆,以进一步提高系

帅小柏的博客 452
上一篇: .NET垃圾收集器的过去、现在和未来(二)
下一篇: Scott Guthrie谈Silverlight(一)
hellothere
博客等级 码龄21年 176粉丝 9原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值