【51CTO精选译文】众所周知,互联网的结构正在影响着企业的架构。本文尝试着总结一些互联网领域的***趋势,这些趋势似乎有着足够的能力来改变企业的结构。不用赘述,这几个趋势列举如下:
#t#1、REST:表述性状态转移结构模型可以让互联网以全局扩展的基本元素为基础。详细的解释其基本原理和优势完全超出了本文的范畴。如果你的工作需要你不断了解一些新兴的趋势,以及这些趋势是否适合你的企业架构需求的话,那么这个趋势是一定要探究的。
影响面:基于网络的结构、面向服务的结构、借由简单的HTTP URIs和最小化集成过程实现的数据和处理请求(资源)的广泛可用性和即时可用性。
2、可互用的云:具有互用性的云是指能够创造一个私有云,同时也能利用公共云的能力。这已经成为可能了:比如Ubuntu Enterprise Cloud,它允许你建立私人云或者使用公众云(比如Amazon EC2),同时由于开源的成就(比如Eucalyptus),你能够使用同一组API程序访问他们。这让你在一开始可以选择使用随便哪一种(私有云或者是公共云),如果有需要可以随时再转换到另一种云,或者能够同时使用这两种云,增加了灵活性。
影响面:大型服务器vs廉价服务器簇、虚拟化、弹性部署、灵活的硬件采购/供应、组织层次方面的基础设施管理。
3、NoSQL:虽然我不喜欢这个名字,但是这个NoSQL趋势一直就有。这涉及一系列现在可用的、不受很多RDBMS要求限制的存储数据选择(比如灵活规划、键值对,等)。当有人要求你走向最终统一性(eventual consistency)的时候,一些数据库还允许你以分布方式在很多服务器上存储数据,以此来支持频繁写操作的高可用性。当别人要求你满足一系列不同的挑战时,这些选择增加了你作为一个架构师的机动性和灵活性。
影响面:关系数据库、数据存储策略、数据分布策略、纵向vs横向扩展、交易化、一致性和可用性。
4、使用多种语言:开发成本在总成本中所占的百分比在增加,开发时间也日益成为影响上市时间的主要因素,因此现在软件快速变化和快速适应新要求的能力是成功的关键。解决方法之一是软件不同的部分使用不同的语言来写,每种语言对于相应的部分来说都是最恰当的适合简洁快速的语言,同时每种语言对于相应的软件部分能够支持快速的反映变化。因此,可以想象,在JEE平台基础上的一个软件会使用JRuby语言编写的DSL写某些商业规则,而用Clojure语言写算法。
影响面:开发文化和过程、最少的开发技术和扩展性、管理所需的风险管理vs现有的技术。
5.分布式处理:由于那些导致越来越分散的分布式处理(包括REST和NoSQL)技术的发展,应用程序需要成为一套互相协作的基于网络的组件(我们之前也通过接触分布式对象了解过)。然而尤其是考虑到这种结构不太能保证提供即时保障处理、延迟问题、分布式控制和异步处理,一种特殊的业务逻辑可能通过许多交错的组合元件来得到满意的效果。虽然它可能有助于分布式对象版本的发布和简化独立部件的开发,在数据流通方面却带来了更高的挑战。虽然那些由MQ系列支持的异步功能已在企业中使用多年,但是我却希望在企业中越来越多的使用较简单的消息构造,比如PubSubHubbub(编者注:这是Google的两名员工带来的一个相当酷的新协议)。
影响面:应用程序分组、基于网络的器件、支持全部工作流程同步的困难。
原文:Five Important Trends on the Enterprise Architect's Radar
作者:dnene