【IT168 技术文章】
作为消费者,我们已经适应了最终用户的互联网体验。采用HTTP和XML,你不需要在自己的计算机上安装具体的应用程序就可以利用外部的数据。你可以打开一个浏览器窗口,进行搜索或者访问一个具体的网站以找到你需要的信息。
但是,在一个企业内部,共享数据和应用程序是更复杂的。企业SOA厂商已经增加了高级的工具并且启用了利用复杂的技术规范的能力,从而使一些小项目更难利用这些功能。虽然软件可能以开放的标准为基础,但是,这经常需要全面地理解集成这种数据的广泛的标准。例如,如果一个部门的经理需要访问其它业务部门的客户信息,他也许会发现这个数据在专有的中间件软件总线中。在这种情况下,这个部门的经理能够访问这个数据的唯一方法就是在自己的服务器上安装同样的中间件软件,培训员工管理这个软件并且向厂商付费维护这个软件。
上述障碍在互联网上是不存在的。你在互联网上可以访问谷歌地图等网站,创建一个Mashup,然后通过社交网络网站Facebook发送给你的联络人。如果你需要数据,你可以通过开放的应用程序编程接口直接访问这个数据源并且使用你认为合适的数据。企业也需要同样的功能。例如,Web服务开发人员必须在使用一个REST(具象状态传输)架构或者传统的Web服务架构之间做出选择。前者有安全的局限性,后者提供了大量的安全功能,但是应用起来更复杂。如果一个开发人员对于REST接口增加一个单一登录功能,复杂性就会增加。
我们需要企业做的事情和我们认为SOA的发展方向是允许某个人通过标准的协议和简单的访问管理直接操作这些数据,而不是通过一个庞大的平台操作这些数据,并且能够选择用于这项工作(Web服务)的正确的工具。在必要的时候,这里可以采用适当的和具有REST功能的方法。
轻型的好处
通过不要求各个部门为他们做的每一件事情都使用一个具体的企业堆栈,生产率能够显著提高。例如,如果在另一个国家的另一个部门的一个员工需要访问另一个部门系统中的数据,他应该能够进行“HTTP GET”操作(只要他有正确的访问控制)以获取他在一个XML文件中需要的数据。
在开发人员方面,把越来越多的应用程序和数据在整个企业范围内统一起来的要求以及同时迅速提供这些新的服务的要求已经促使企业IT部门寻找新的选择。例如,负责开发要在两个月之内进行测试和部署的五个新的Web服务的项目团队可能会发现这个机构的企业平台的复杂性使它不可能达到这个时间期限。如果他们有一个包括数据服务和身份识别管理的框架,他们就能够显著减少上市的时间,达到那个时期期限的要求。
因为加快上市时间正在成为成功的应用程序基础设施项目的重要原则,未来的SOA框架需要在较短的时间提供更多的应用程序基础设施功能,并且没有不必要的复杂性。
关注互联网
元数据发现也需要成为这种轻型框架的一个关键部分。许多SOA平台已经发展成为包含服务定义的庞大的存储库的平台,需要把服务定义与实施分开并且放在大型的注册处。我们能够从互联网上吸取的一个教训是轻型目录的好处。例如,谷歌和雅虎允许搜索所有的信息源,不需要把这些信息都整合到一个位置。我们搜索信息,然后我们可以查询那个信息的最新版本。
元数据仍然是重要的。我们需要以更轻便的方式处理它。有关一项服务提供的元数据(数据要展示的内容和数据期待的内容)必须与服务的实施放在一起。这样,数据就不会不同步。WSDL(Web服务器描述语言)或者WADL(Web应用描述语言)等轻型协议可用于把元数据与资源实施封装在一起。把所有这些地方放在一个可搜索的轻型索引中能够提供正确水平的集中化,不会减缓技术创新。然而,这个领域还需要做一些工作以推动轻型标准解决在REST资源中的元数据封装问题。
利用云计算
展望未来,越来越多的Web服务将为云计算建立并且利用云计算的优势。企业开发人员将需要一个框架,使他们能够创建可以通过互联网或者云计算访问的安全的Web服务。一个按照外部人员能够访问的方式部署的轻型服务必须根据外部的身份识别提供接入控制。这是身份识别架构需要升级到全球视角的地方。一些WS-*协议的目标就是为此提供一个解决方案。不过,要使简化的外部身份识别模式应用到REST风格的编程模式还需要做一些额外的工作。需要定义新的身份识别架构以保证编程使用的REST资源的安全,就像执行OpenID那样的计划简化基于人类的外部身份识别一样。
企业也许还要选择开发和存储一些提供内部竞争优势的应用程序,并且在外部云计算中存放其它一些不太重要的应用程序。这两种应用程序都需要互操作。例如,一家公司也许使用Salesforce.com的软件服务,但是,需要这个服务与位于内部的甲骨文或者SAP的应用程序交流。用于暴露RESTful资源的一种统一安全编程模式能够向开发人员提供一种访问资源的一致的方法,而不管这个资源来自哪里(企业内部或者外部)。一种能够用于企业内部或者外部的轻型的安全模式在这个过程中是有帮助的。
目前,每一种SaaS(软件服务)接口都有不同的控制访问资源的非标准的方法。这使简单的mashup问题更困难了。把来自不同资源的数据结合在其一起是很容易的,但是,把所有这些正确的证书合在一起用于访问所有的单独的资源是很困难的。
身份识别管理的重要性
随着开发人员创建一些Web服务向日益扩大的统一的用户提供数据访问,身份识别管理是非常重要的。当用户出示证书以访问一个Web服务的时候,大型系统中必须有一项验证功能,以便允许用户访问他们要求访问的内容,就像你出示信用卡进行采购或者在进入杂货店之前提取现金一样。如果你能够在信用卡发行部门使用的自动提款机上使用这个卡,那就是一种重型模式,一种非分布式安全模式。相反,这个卡的发行者允许你在任何地方虚拟地使用这个卡,保证你的安全证书的商店做这个交易。
同样,这种用于Web服务的分布式模式能够让开发人员通过强调这个服务而不是验证安全证书来创造更大的价值。虽然一个身份识别管理功能不必嵌入在产品中,但是,Web服务需要通过轻型的标准与身份识别管理软件联系在一起。这使开发人员能够把重点放在服务产品上。
更大的移动性
最后,随着要在台式电脑、笔记本电脑、移动设备和机顶盒等各种设备的显示屏上运行的Web服务需求的增长,Web服务开发人员需要一种简单的、足以满足上述设备需求的应用程序基础设施。这个重点是快速访问数据和更加智能地快速读取数据库表格中的数据。提供所有功能的企业级应用程序是过去的、轻型的、Web规模应用程序的重点,能够用于各种设备的显示屏(特别是移动设备)。这种企业级应用程序将继续增强其统治地位。
例如,iPhone或者黑莓可能成为下一代出版平台,或者提供上下文的智能,提供非常有针对性的基于位置的广告或者其它与企业潜在的客户有关的其它信息。但是,要创建这种服务,开发人员必须能够轻松地利用数据服务和身份识别管理能力,能够提供这两种功能的框架是理想的。
将解决更简单的框架的需求
要让企业满足日益增长的需求以便提供新的安全的Web服务并且迅速和轻松地利用整个企业的数据,需要为较小的项目设计一个更简单的SOA框架。
Web规模是机构都渴望的新的企业级。随着继续开发和推广轻型的标准,我们认为企业开发人员将很快拥有一种更简单的平台,帮助他们显著加速和简化Web服务设计和部署。