SOA是一个对应于大型分布式系统的概念。要理解SOA,必须首先理解大型分布式系统的特性。
首先,大型系统必须面对“遗留资产”的问题。你不太可能一切从头开始设计的时候引入SOA的理念。你不得不面对大多数现在正在使用的系统今后仍将保留这一现实。这也意味着实施SOA并不等于从头开始设计一个新系统,而是改变现有系统的架构,解决旧平台的整合和向后兼容的问题。事实上,实现SOA是为了更好的维护大型系统。
从本质上来说,所有的大型系统都是混杂的。这些系统往往有不同的目的,实施时间,你会发现整个系统架构夹杂着不同的平台,编程语言,编程范式,甚至是中间件。在过去,已经有许多整合的手段试着解决这个扩展性的问题。某些方法确实达到了一定的效果,比如撤掉一些无法再维护的旧平台或旧系统就是一种方案。但实际情况是你的系统无法被完全协调成一致。恰恰在你移掉最后一块不协调的部件前,一次公司合并,或者是其他的改变又将重新打开潘多拉的盒子。
造成这种混杂性的一个原因是大型系统和它们的数据往往有很长的生命周期。在这个生命周期中,由于业务的需求,新的项目会不断的加入到原有系统。完全移除原有系统和数据太过昂贵,同时它们本身还有不少商业价值。所以只能保留原有系统并在维护性上投资。经常的情况是这种投资来的太晚了,也比较昂贵,因为这时候系统基本已经失去控制了。
大型系统同时又是十分复杂的。所以找出修改(扩展)的切入点和判断其效果变的非常困难。
大型系统往往还有另外一个特点:有不同的所有者。不同的团队,部门,或者公司可能在维护这些系统,这也意味会有不同的预算,日程表,视角和利益。由于彼此各自相对独立,你通常没有足够的权利控制整个系统的设计和行为。虽然有协商和合作,但终究由于各自利益的不同而产生问题。
另外一个大型系统的明显特征是不完美性。要想完美几乎是不可能的。他们可能能顺利完成99%的运作,但在另外1%的工作中却出现问题,带来的结果是:更多的人力投入,问题管理方案的引入,或者客户的不满。值得一提的是这里不完美的比例可能各个系统会有所不同。(重要系统往往有一个更好的可靠性,但即使是这些系统消除其一个隐患也要投入大量的人力物力)
同样的,大型系统也具有一定程度的冗余性。尽管有些冗余可能是偶然产生的,但却有另外很大一部分是"故意","有意识"引入的冗余,因为在实践中,基本没有办法让所有的数据都标准化从而使其只存储在一个地方。消除冗余其实是十分困难的,会引入一些严重的运行时问题。对于一个相对简单系统的冗余情况,只要保证业务核心清晰即可(将所有的冗余数据从中剥离).在复杂系统的情况中,会有许多的业务核心,而且这些业务核心并没有被清晰的界定。所以在现实情况下,要保持一致性是非常复杂的。
最后,对于大型系统来说,是不该有瓶颈的,因为这意味着自取灭亡。但这并不意味着它们不会存在,但总体而言,避免瓶颈,保持扩展是一个重要目标。值得一提的是这里的瓶颈并不单单指技术上的瓶颈。在大型系统中,流程和组织架构上的瓶颈同样也会阻碍扩展性。
分享到:
相关推荐
第1章 分布式系统的特征 1.1 简介 1.2 分布式系统的例子 1.2.1 Web搜索 1.2.2 大型多人在线游戏 1.2.3 金融交易 1.3 分布式系统的趋势 1.3.1 泛在联网和现代互联网 1.3.2 移动和无处不在计算
1.1 大型分布式系统的特征 1.2 魔术总线故事 1.3 魔术总线故事给我们的启示 1.4 soa历史 1.5 五页幻灯讲完soa 第2章:soa 2.1 soa定义 2.2 soa驱动因素 2.3 soa概念 2.4 soa要素 2.5 ...
1.1 大型分布式系统的特征 1.2 魔术总线故事 1.3 魔术总线故事给我们的启示 1.4 soa历史 1.5 五页幻灯讲完soa 第2章:soa 2.1 soa定义 2.2 soa驱动因素 2.3 soa概念 2.4 soa要素 2.5 ...
#资源达人分享计划#
提出了公共数据交换系统(Public Data Exchange System,PDES),旨在为同属于一个大型机构...着重阐述公共数据交换系统的应用背景、体系结构以及大型分布式环境下的应用举例,并对公共数据交换系统的实施原则进行阐述。
1.1 大型分布式系统的特征 1.2 魔术总线故事 1.3 魔术总线故事给我们的启示 1.4 soa历史 1.5 五页幻灯讲完soa 第2章:soa 2.1 soa定义 2.2 soa驱动因素 2.3 soa概念 2.4 soa要素 2.5 ...
1.1 大型分布式系统的特征 1.2 魔术总线故事 1.3 魔术总线故事给我们的启示 1.4 soa历史 1.5 五页幻灯讲完soa 第2章:soa 2.1 soa定义 2.2 soa驱动因素 2.3 soa概念 2.4 soa要素 2.5 ...
多丽丝阿里巴巴的大型分布式云式KV存储系统。 发布日期:2013/5/21 Doris是阿里巴巴的技术产品之一多丽丝(Doris)的特征多租户像HBase一样可扩展。 支持大规模数据存储,并通过可扩展的服务器部署进行访问。 比...
且它的数据库、Web服务器、应用服务器均耦合集成,不易扩展,在大型系统的应用上有很大的局限。随着信息化的发展,政府企业都开始集约化方向发展,希望建立集中式的数据中心。Lotus Domino在大型应用系统上的发展...
一个成熟的大型网站系统架构并不是一开始就设计的非常完美,也不是一开始就具备高性能、高可用、安全性等特性,而是随着用户量的增加、业务功能的扩展逐步完善演变过来的。在这个过程中,开发模式、技术架构等都会...
大数据的发展已经引领了对能够学习包含数百万至数十亿参数的复杂模型的机器学习系统的新需求,以保证足够的能力来消化海量的数据集,提供强大的预测分析(如高维潜特征、中介表示和决策功能)。为了在这样的尺度上,在...
DDMQ作为分布式消息中间件,为内部许多重要的大型分布式系统提供低延迟、高吞吐量和高可用的消息服务。 DDMQ 提供实时消息、延时消息和事务消息来满足不同的场景。 通过简单易用的Web Console和简单的SDK Client,...
对于大量数据,我们需要大型机器或分布式系统。计算时间随数据量的增加而增加。所以如果我们能并行化计算,最好使用分布式系统。数据可以是结构化数据、非结构化数据或介于两者之间的数据。如果我们有非结构化数据
以大型表格和队列为中心,操作系统各个部分围绕着表格运行,整个系统是一个程序。模块结构相对独立,模块之间通过规定的接口相互调用。优点为缩短开发周期。缺点是模块之间调用关系复杂、相互依赖,使分析、移植和...
它运行在单,多台机器和大型分布式环境(Hadoop,火花),并支持主流的操作系统(Linux操作系统,在Windows,Mac OS),分布式环境中的通信是基于上实现这是纯Java的,MPI-像消息传递界面。特征支持大多数操作系统...
该系统具有以下特征: 高度可用且水平可扩展低延迟和高吞吐量针对大型和小型物体进行了优化具有成本效益易于使用至少需要JDK 1.8。文献资料有关详细文档,请访问研究在介绍Ambry的论文-> 如果您希望我们列出基于...
PyTorch-BigGraph(PBG)是一个分布式系统,用于学习大型图的图形嵌入,特别是具有多达数十亿个实体和数万亿条边的大型Web交互图。 更新: PBG现在支持GPU训练。 请查看下面的部分! PBG在论文中介绍,该论文在2019...
Git 是一个免费和开源的分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。 Git易于学习, 占用空间小,性能快如闪电。它优于 SCM 工具,如 Subversion、CVS、Perforce。 Git 与常用的版本控制...
♣ 新发展:个人计算机、实时系统、网络与分布式系统、移动计算…… o 什么叫中断 ♣ 中断:指CPU在收到外部中断信号后,停止原来工作,转去处理该中断事件,完毕后回到原来断点继续工作。 ♣ 通道:用于控制I/O设备...