
SOA是与大型分布式系统相对应的概念. 要了解SOA,您必须首先了解大型分布式系统的特征.
首先,大型系统必须面对“遗留”问题. 从头开始设计所有内容时,您不太可能会引入SOA的概念. 您必须面对的是,当今使用的大多数系统在将来仍会保留这种现实. 这也意味着实施SOA并不意味着要从头开始设计新系统,而是要更改现有系统的体系结构以解决旧平台的集成和向后兼容性的问题. 实际上,实施SOA是为了更好地维护大型系统.

本质上,所有大型系统都是混合的. 这些系统通常具有不同的目的,实现时间,您会发现整个系统架构与不同的平台,编程语言,编程范例甚至中间件混合在一起. 过去,有许多集成的方法来尝试解决此可伸缩性问题. 某些方法确实已实现了某些结果,例如删除一些无法再维护的旧平台或系统是一种解决方案. 但是现实是您的系统无法完全协调. 在删除最后一个未协调部分之前,公司合并或其他更改将重新打开Pandora的框.
造成这种混乱的原因之一是大型系统及其数据通常具有较长的生命周期. 在这个生命周期中,由于业务需要,新项目将继续添加到原始系统中. 完全删除原始系统和数据的成本太高,同时它们具有很多商业价值. 因此,您只能保留原始系统并投资可维护性. 通常,这种投资来得太迟且相对昂贵,因为此时系统基本上已失控.

大型系统同时也非常复杂. 因此,很难找到修改(扩展)的切入点并判断其效果.
大型系统通常具有另一个特征: 它们具有不同的所有者. 不同的团队,部门或公司可能会维护这些系统,这也意味着不同的预算,进度,观点和收益. 因为您彼此相对独立,所以您通常没有足够的权限来控制整个系统的设计和行为. 尽管进行了磋商与合作,但由于各自利益的差异最终会出现问题.

另一个大型系统的一个明显特征是不完美. 完美几乎是不可能的. 他们可能能够成功完成99%的操作分布式系统理解,但是在其他1%的工作中却遇到了问题. 结果是: 更多的人力投入,问题管理解决方案的引入或客户的不满意. 值得一提的是,此处的不完美比率可能因系统而异. (重要的系统通常具有更好的可靠性,但是即使这些系统也需要投入大量的人力和物力来消除其潜在的危险之一)
类似地,大型系统也具有一定程度的冗余. 尽管可能会偶然发生一些冗余,但是“故意”和“有意识”引入的冗余很大一部分,因为在实践中分布式系统理解,基本上没有标准化所有数据的方法,因此只能将其存储在一个位置. 消除冗余实际上非常困难,并且会带来一些严重的运行时问题. 为了实现相对简单的系统的冗余,只要业务核心是明确的(将所有冗余数据与其分离). 对于复杂的系统,将有许多业务核心,而这些业务核心尚不清楚. 定义. 因此,实际上,保持一致性非常复杂.

最后,对于大型系统,不应有瓶颈,因为这意味着自我败北. 但这并不意味着它们将不存在,而是总的来说,避免瓶颈并保持扩展是一个重要目标. 值得一提的是,这里的瓶颈不仅仅是技术上的瓶颈. 在大型系统中,流程和组织结构的瓶颈也阻碍了可伸缩性.
java复制文件夹中的所有文件
一楼vicky_lxw2015-09-16
很好,很容易理解
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-211737-1.html
期待