随着凝聚业内眼球的Oracle和Google就安卓系统(Android)专利纠纷庭审的进行,关于应用编程接口(API)的历史变迁引起了人们极大的关注。总部位于加利福尼亚州Redwood的甲骨文公司(Oracle)宣称其拥有Java API的专利,而加利福尼亚州Palo Alto的Google公司则持异议。
Oracle公司的观点让我们想起过去,那时候大公司API的共享只限于作为复杂-并且昂贵-的企业联盟的一部分。而Google公司的观点则反映了互联网时代API的潮流,其中WEB API全部开放,自由共享。
因此,API的环境格局正在发生变化。开放API的演进也是持续改变的SOA世界中的前沿和核心话题。眼下,SOA日益增长的驱动力来自于轻量级JSON和REST服务的更大范围的推广使用。
这一趋势也进一步反映在新近的“API管理”产品中,这些产品刚好是现有的SOA治理和管理工具集的一个很好的补充。观察人士指出,尽管REST式的策略和API似乎正在形成一场新的革命,但这些变革仍然是基于SOA的基本原理,并且,传统的基于SOA的方法在其中也还有大展拳脚的空间。
可以说,和早期所谓的“WEB服务”相比,现在的WEB API更真实地反映了WEB的本质。但是,Web服务仍然具有非常重要的价值。SOA的经验同样如此。RedMonk的工业分析师James Governor说,许多组织机构花大力气对服务进行隔离和封装,这些工作“价值巨大”.尽管他承认原先的WEB服务栈经过了相当仔细地审查才推出,他说“它的确很有用,但并不适合所有人。”
在他看来,SOA的工作还将继续保持其存在的价值,因为在新的WEB技术中,不论是开发和集成,它也总是能够应用得上。“艰苦的工作已经完成,现在我们要看WEB如何发挥了。”
“学习我们在WEB上正在使用的API管理方法将对企业有很大的影响,”他强调说。“所有人都在为API管理重装上阵;感觉就像API管理成了新型的SOA”,他说道。
Governor说,位于纽约Armonk的IBM公司最近宣布的API管理工具意味着API已经正式落地。IBM在本月早些时候的IBM Impact 2012大会上曾讨论了IBM Cast Iron Live Web API服务。而其他的SOA中坚力量,比如位于温哥华的Layer 7技术公司和位于加利福尼亚州洛杉矶的SOA Software公司,早在蓝色巨人之前就已经在大唱API管理的赞歌。
Layer 7技术公司的首席技术官兼总设计师Scott Morrison参与了SOA社区。今天,他说他的公司正在致力于API和基于SOA架构的管理和安全性。“我们已经成功的完成了整个SOA的转型,以及对于API新变革的技术内涵,”他说道。他将这种新的转变描述为“一个贴近灵活性和简单性,远离复杂性和形式化的举动。”该公司已经在其SOA治理和网关工具的产品线中增加了SecureSpan API代理和Layer 7和API Portal OAuth工具包。
另一家SOA实力派厂商也呈现出了类似的趋势。“今天业内风行的‘API’一词,已经和传统的开发API有相当大的区别,”SOA Software公司产品营销副总裁Ian Goldsmith说道,“今天所说的API,它是指应用为基于网络上的使用而给开发人员提供的一个接口,而不是一个专有接口。如今,这样的接口是基于业界标准的。”SOA Software公司已经在其包括了其主打产品SOA治理软件套件的产品线中增加了Atmosphere API管理工具。
开放,公共API
一个关键性的转变是开放文化的兴起。“WEB快速发展的原因之一就是使得任何人都可以成为一个编程人员。只要你点击‘查看源码’菜单,你就能看到源代码,然后你就可以拷贝复制这些成功的范例,”Morrison说道。
“这一转变的影响是非常深远的;浏览器的世界更加开放,它所做的是将代码发送给浏览器(让其解释执行),这直接让人们可以看到它是如何工作的,”他补充说。
Morrison说,没有这种开放性,计算机技术将会很难。“当我审视API的演进过程,它告诉我这样一个道理,如果你在前人的基础上继续开展工作,你将会创建更复杂的功能,而这在传统的SOA中是难以实现的。” Morrison说道,API世界的美妙在于它能够利用已经实现的成果,不需要你花费很多精力安装某个特殊的基础架构或者库来实现机器之间的通讯。“在很大程度上,你可以将它想象成用于机器之间通讯的WEB技术”,他说道。
然而,Morrison也承认,任何东西都不是十全十美。和REST式系统方法相比,解析更多基于SOAP和WS的文件可能会有问题,因为功能性的问题变得过于复杂了。
安全性就是一个很好的例子。Morrison说,API已经取得的一个很大的成果就是,它不再使用复杂的方法,而是将安全性嵌入到SOA中,它试图将安全性放到消息层。“它们确实很强大,但事实是,大多数人并不需要。从设计的角度来看它很优雅,但是过犹不及,”Morrison说道。
事实上,他说,有时候如果解决方案很庞大,很复杂,它就会变得很笨拙,配置也很容易出错,这样,它本身(的复杂性)就引入了安全性的问题。
“API安全模型说:‘以前很好的SSL就足够好了。’对于安全来说,越简单越好,因为会出错的地方也会更少。因此,对于API解决方案的安全性问题,你得到的益处将和从前一样多,”他补充说。
另一个薄弱点是,目前在RESTful领域中还没有一个大家公认的方法来描述一个API应该怎样去定义。一些观察家可能会反驳说,SOAP是如此紧密地连接到现有的SOA,可能定义得太详细了。