SOA目前炙手可热,其实它是非常简单的设想:将那些被很多应用程序广泛使用的一般性功能,标准化成可从网络上获得的能重复使用的部件(服务),只将更特定的逻辑需求设计到应用程序中。在企业的IT架构建设中,早在XML和Web Services出现之前就已成功地编制和部署了类似SOA概念的应用程序。不过使用模块化、可重复用部件、面向对象编程或应用编程接口等术语来谈论这个过程。虽然它们中没有一个是与SOA完全相同的,但它们都包含了SOA的一些方面。实施SOA和虚拟化的成本可以分散一部分让IT厂商和客户来承担。SOA和虚拟化结合,并不是像很多人所想的那样,触及到多么庞大和繁杂的技术。虚拟化和SOA之间是一种间接的、相辅相成的关系。也许在IT及业务转型中,两者的结合使用会发挥最大的优势。虚拟化有助于更快地显示部署基础设施的投资回报率(ROI),而且基础设施能够有效的支持许多服务和SOA资产,这应该能促使企业更多的使用SOA。这就是说,虚拟化可以提高服务部署环境的使用率,降低服务部署的总成本,继而通过关联效应,降低SOA的总成本。
云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。就象以前人们在自己的网站上放一点ajax就宣称自己是Web2.0一样,云计算是一个新的流行词。积极的一面是,Web2.0最终抓住了主流眼球,同样,云计算概念最终也会改变人们的思想,最终爆发出各种各样的概念,托管服务,ASP,网格计算,软件作为服务,平台作为服务,任何东西作为服务。从消费者的角度看,SaaS是云计算的一种,然而行业内的人必须明白这到底是什么意思。简单说,云计算就是SaaS的升华。当我们谈及“云”时,我们并不是在说那个大手笔。毕竟,当我们使用“云”这样的字眼时,云同样也带来了许多不成熟的抽取。当我们说云时,我们想到的是云计算,一种抽取特定IT基础设施资源的方法。换句话说,在目前的状况下,云计算更多的是关于计算而不是云本身。
安全对于许多的IT部门来说都是一个重要的问题之一,但是SOA安全问题完全是在另一个新的纬度上了。对于SOA为一个机构所带来的许多的好处,例如具有在许多不同的提供者和供应商的情况下混合和匹配服务,或者以一种独立于平台的形式来授权访问数据,有许多的实现细节在处理服务类型架构的时候就将被很早的注意到。安全就是这样的一个领域,如果没有在它上面付出应有的努力,那么它就会成为使得任何SOA的举动失败。如果你有一个运行在SOA环境下的应用程序,固定在网络层的安全也许是最为直接和非入侵的方式来提高安全的,尽管它不需要修改底层的应用程序。为了完成能够使SOA安全目的,我们找到了和安全相关的WS-*标准。他们是严格的设计来用于SOA有效载荷载在服务之间的传送的。通过这些我们总结了确保你的SOA安全方式。你也许看到了,一些技术需要更加冗长的实现过程,而其他的一些也许更加直接,但是不管你决定采用什么方式,你的SOA都不能忽略这个问题。
SOA管理是经常谈论的一个话题,不管你的组织开始SOA多长时间,SOA管理都是需要多加注意的。首先我们需要弄清SOA管理与SOA治理的区别。SOA管理是SOA治理的一部分。SOA治理是由流程、标准以及政策来治理SOA实施的。一个完整的SOA治理解决方案设计注册表、存储、管理变革、服务控制、服务质量、安全等等。
组织通常认为他们不需要SOA管理的原因在于没有足够的业务动力。或者说:“在我们的SOA架构还没建立起来的时候就需要SOA管理呢?”这种想法正确吗? 那么,什么时候才是考虑SOA管理的适当时机呢?这个时间应该早于还是晚于你的SOA部署期呢? 因此,SOA管理应该是你的SOA基础架构整体中不可分割的一部分,而不是随后加入。从实际出发,你需要在SOA项目早期考虑安全和控制。
面向服务结构的主要目的,就是要将业务与信息技术有效的结合,并使二者更加的有效。SOA将为创建二者共存互惠的局面搭建桥梁,这二者也是以往最为强大和有价值的,而且,SOA也是业务和IT更好的结合之后的业务需求。从技术角度而言,SOA带来了“松散耦合”的应用程序组件,在此类组件中,代码不一定绑定到某个特定的数据库(甚至不一定绑定到特定的基础设施)。正是得益于这个松散耦合特性,才使得能够将服务组合为各种应用程序。这样还大幅度提高了代码重用率,可以在增加功能的同时减少工作量。从业务的角度来说,面向服务的体系结构的重点在于开发能帮助您完成业务任务的技术,而不是通过技术约束来规定您的行动。
通常来说,治理意味着建立和执行工作组为了一起工作而一致同意的工作指南。治理不同于管理。治理规划需要制定什么决策,而管理是制定和实施决策的过程。治理重在建立决策,而管理重在贯彻执行决策。治理在SOA中比在普通IT中更为重要。在SOA中,服务使用者和服务提供者运行于不同的进程中,由不同的部门开发和管理,为了成功地一起工作,需要进行大量的协调工作。为了SOA能成功,多个应用程序需要能共享相同的服务,这意味着它们需要进行协调,以便共享和重用这些服务。这些就是治理问题,比采用独立应用程序时(甚至包括使用可重用代码和组件时)要复杂得多。
SaaS是Software-as-a-service(软件即服务)的简称,是随着互联网技术的发展和应用软件的成熟,在21世纪开始兴起的一种完全创新的软件应用模式。面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。从业务的角度来说,面向服务的体系结构的重点在于开发能帮助人们完成业务任务的技术,而不是通过技术约束来规定行动。从网络架构演变的角度看,SOA则从根本上突破了客户机/服务器模式。S+S(软件+服务)是微软对SOA(面向服务的架构)的理解。他基本概念就是,微软的每一个软件产品,除了采用传统的许可证方式销售给用户之外,他还会有以互联网服务方式提供给用户,用户无需本地安装,只要通过互联网就能访问该服务。
面向服务的架构(SOA)是一种基于可以重用的服务的,新的开发应用的架构体系. 近年来, 企业界对于SOA的需求越来越急切. 为了满足这样的需求, 一系列的SOA基础架构产品被推出. 主要的厂商如Oracle, BEA System, IBM都提供了SOA平台产品. 在一个包含各类应用的复杂的IT系统中, 要使用适配器并且在一个符合业务需求的流程中将各类应用串连在一起是一个非常困难的事情, 但是现在的SOA平台将困难转变成了容易。
使用SOA开发应用程序可提供更多的应用程序部署选项,但也使得开发工作变得越发困难。这是因为SOA将应用程序开发拆分为两个截然不同的部分:SOA服务提供程序(SOA Service Provider,SOA-SP) ——该层的代码实现服务。它具有服务API,以对服务进行声明和为客户机提供调用服务的方法。
SOA服务协调程序(SOA Service Coordinator,SOA-SC)——该层的代码通过一个或多个SOA-SP中的服务提供用户功能。它可能具有UI或GUI,以便同传统应用程序一样与SOA-SC进行交互。
Web 2.0是2003年之后互联网的热门概念之一,不过对什么是Web2.0并没有很严格的定义。一般来说Web 2.0是相对Web1.0的新的一类互联网应用的统称。
表面看来,SOA是企业的服务解决方案,而Web 2.0属于纯Web商务。但是,这两种模型都可以帮助对方成为未来的服务模型,因为它们在很多方面相互补充。真正值得感兴趣的是SOA的发展前景,这其中包含了部分Web 2.0中的特性。
SOA所具有的创造、管理、编配服务的能力使得SOA如此有价值。同时,我相信那些想要制定可行的管理策略的企业应当将Web 2.0的本质特性加入到他们未来SOA环境中去。作为未来服务交付基础的SOA/Web 2.0将会有广阔的想象空间。
Ruby on Rails, 也称RoR或简称Rails, 是一个使用Ruby语言写的开源网络应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。Rails是一个用Ruby编写的全栈的(full-stack)、开源的Web框架,可以使用它来轻松编写实际的应用程序,所需的代码也要比大多数框架花在处理XML上的代码少。
Ruby语言作为一个开源代码的程序语言,是在1993年2月24日开始宣布发布的。Ruby语言的主要作者是Yukihiro”Matz”Matzumoto像Perl或者Python一样,Ruby语言是一种被解释的动态的类型的面向对象的程序编程语言。Ruby语言开始迅速上升并且受欢迎是在2004年7月David Heinemeier Hansson发布了Ruby on Rails的第一版。