云应用的一个突出特色是,它可以采用多种方法实现集成。每一种集成方法都具有局限性,你必需了解和认识它们,这样才能保证集成操作的顺利展开。
云计算市场充斥着太多杂音。厂商们不断宣称其产品是基于云的,但实际上到底什么是云应用还众说不一。当大多数的云应用都把自己展现为Web服务时,它们会倾向于采用SOA架构,即便它们并没有遵从所有的SOA协议。有了正确的工具集和开发态度,你就可以用多种技巧来集成云应用。当然,你必须了解每种集成方法的局限性,这样才能让事情无误地迅速开展下去。现在就让我们来了解云应用集成的四个层次。
第1层:屏幕集成
这种集成方法在其他地方也叫聚合(Mashup)。这种方法虽然很快,但是也很不地道。这里的编码其实就是构建屏幕布局所用的iFrames,还有大量带参数的URL,可用于抓取其他云中的东西。这是一种起步的方法,可以从类似谷歌和雅虎这样的公开服务中抓取图像、地图、新闻条目,以及数据馈送等。
这种方法将会变得越来越强大,因为图形包和其他文档服务会变成越来越普通的云服务。AJAX则可以给网页加上一个时尚、直观和反应良好的用户界面。不过,遗憾的是,聚合本质上无法提供更好的安全性,所以对于敏感数据,你还必须寻找比较巧妙的编程实践,以获得服务器端的合法性。你或许需要单点登录或者其他的认证基础设施,从而对用户访问进行控制。因此,在这一层的折衷方式是,简单编码和只读编码,或者用很复杂的编码来保障安全。
第2层:展示层集成
这种方法和你的云应用生成Web页面的方式有关系,你可能需要在服务器端建立一个编程层,为云应用集成提供一块肥沃的土壤。与之相对照的是,聚合方法几乎完全是在浏览器中进行的。虽然聚合方法对于把整个页面的所有段落粘连在一起很在行(例如增加一张地图或者图片),但是展示层上进行集成,其突出的特点是能够在一页中的某个段落中增加个别的域。例如,通过该方法可以在CRM账单页面的总和字段里增加一段文字说明:“客户过期未付款,需缴纳补偿金。”但是,这样一个域只在财务系统中才是可用的。
当然,这种方法的长处同时也是它的短处,即付款延误指示器不能在CRM系统中随意存放,因此它不能被用来支持报表、警示,或者其他功能。这种方法通常仅用于只读数据,因为展示层可能没有系统其他地方所采用的安全基础设施。它完全取决于你所使用的语言,以及可用的Web安全库,不过在展示层要利用复杂的安全机制通常是行不通的。
第3层:业务逻辑集成
这一层是可以进行大量集成的地方,因为这里保留了应用的环境,还有***的安全与Web服务基础设施。真正让云应用集成与众不同的是,这一层提供的API十分丰富和易用,它们支持调出和调入、WSDL/SOAP、RESTful API,或者只是简单地与XML、JSON会话。对于生产率而言,准确的文档和代码样本是不可替代的。因此,用户需要在这个基础上评估云厂商。
大多数云应用的集成架构都是相当松耦合的,而且是基于一种请求/响应模式。经常的轮询并非好办法,而建立紧致集成环路也很困难。在云必须推送消息的情形中,开发人员应该在应用中创建逻辑关系,触发消息的发送。开发人员还需要开发一种策略(或许需要专门的集成服务器)去处理网络故障、应用宕机,从而确保消息的发送。另外,在这一层,集成编码将访问所有的系统对象和功能,因此安全至关重要。
第4层:数据集成
这一层将直接处理云应用的数据库。由于写操作不够安全,许多云系统无法真正实现直接访问的水平。虽然直接读取集成数据库也可能会产生问题,因为表中没有应用状态或者交易协调的指示。但对于大量数据的读取而言,没有什么比直接访问数据库的速度更快了。
在这一层,安全的确是一个问题。因为应用的安全模型超越了表的访问控制可见性。在大多数情况下,数据集成工作将拥有超级用户的权限,因此其产生的结果数据不应该直接接触到标准用户。