未雨绸缪mashup:企业应用早准备

日期: 2011-04-11 作者:Michael Ogrinz翻译:李松 来源:TechTarget中国 英文

如何才能使我的企业应用可供mashup使用而不会给我的基础设施带来风险?   首先,你应该知道你的应用可能早已经在给mashup提供数据了。很多mashup使用现有的RSS种子,或者从你的网页所包含的链接中获取XML和JSON并提取数据。还有,现在有些工具能够模拟一个客户浏览器的操作从而可以直接从网站接口上提取数据,这种技术类似于以前帮助旧的大型机实现应用现代化的“屏幕抓取术”。   既然开发人员已经能够“爬窗”得到这些信息,为什么不打开大门,让他们进来呢?对于封闭式的系统,我听到过许多不同的意见,其中之一是担心如果你提供了一个API给其它人用,这可能会造成数目不确定的外部系统会依赖于它。

这样……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

如何才能使我的企业应用可供mashup使用而不会给我的基础设施带来风险?

  首先,你应该知道你的应用可能早已经在给mashup提供数据了。很多mashup使用现有的RSS种子,或者从你的网页所包含的链接中获取XML和JSON并提取数据。还有,现在有些工具能够模拟一个客户浏览器的操作从而可以直接从网站接口上提取数据,这种技术类似于以前帮助旧的大型机实现应用现代化的“屏幕抓取术”。

  既然开发人员已经能够“爬窗”得到这些信息,为什么不打开大门,让他们进来呢?对于封闭式的系统,我听到过许多不同的意见,其中之一是担心如果你提供了一个API给其它人用,这可能会造成数目不确定的外部系统会依赖于它。这样你可能就不能随意升级你的应用,因为会担心影响到依赖于它的其它系统,即使这些系统你压根就不知道。

  相比其它想法而言,这种观点流行的更广一些。你希望其它团队都使用你的API,但这并不意味着你对他们如何使用完全失去了控制。事实上,如果你的API设计正确,你应该能够实现以下三个目标:

  •   你的应用可以用于mashup开发
  •   你的API能够防止你的基础架构负载过重
  •   你能够记录谁在使用你的API

  如果你能实现这些,你会发现你的应用超越了它原来的目标:它不仅仅是一个产品,也是一个应用服务。对于一些应用(比如Google地图和Twitter),一旦一个公用的API出现,其“服务”层面的意义几乎超过了原来产品的定位。这种能够和外部团体绑定在一起从而进行发展和保持市场份额的能力,也是大多数网站从一开始就包含API的原因。

  我一直认为,开发一个API是软件开发最具挑战性的部分之一,其中一个原因就是,你需要在确定其中包含哪些具体内容之前,能够预料出这个API是如何被其他人使用的。你在API中包含的功能需要保持一致,互相补充,并且要保持稳定。如果你的API在经常变动,这会打击其他人使用这个API的热情。

  实现API的方法中,最差的一个做法是将应用内部使用的原始接口暴露出来。这一方面会不利于你的应用升级,还可能会导致使用这个API的外部开发人员需要了解你应用实现的一些细节。让你的API函数具有适度的粒度,以及简单的功能。有的API在实现时,只包含很少的几个函数,但这几个函数却有很多的参数和配置选项,并由此来做所有的事情:这种API使用很不方便,一定要避免。最好你自己亲自试着使用这个API,这是发现其中问题的最简单的方法。

  考虑一下表述API最好的方式是一个Java JAR文件,一个SOAP接口,还是一个REST API?你将返回XML还是JSON?你可以找几个简单的示例函数,用不同的技术来实现,尝试找出那种方式最适合。

  让每个使用API的开发人员注册一个API键,在每次调用API时,都需要提供这个API键。这样你就能知道谁在使用这个API以及什么特性最受青睐。这样的话,如果你要修改这个API,你也可以提前给使用者发一个通知。

  你可以考虑对你的API增加记录功能。如果你能够将API的调用和某些特定的人关联起来,你就可以对API方法每天可以被调用的次数设定一个限值。这样就可以确保你当前的应用不会因为大量请求而负载过重。除此之外,当你跟其他部门的人讨论是否要升级基础设施时,这些数据也会让你有理有据。
 
  最后,你可以参考一下那些你早已经发现非常有用的API,你会发现还有很多其他好的想法你可以加入到你自己的设计中。正如我前面说的,设计一个API是软件开发最具挑战性的任务之一,同时,我认为这也是最有奖赏的任务之一。等到你发现你的API被用来支持很多新的解决方案的时候,我想你一定会同意我的说法的。

相关推荐

  • 数字化转型:如何更好地利用API和微服务

    API,即应用程序编程接口,它提供给应用程序、开发人员访问其它应用的能力,而又无需访问源码,无需理解内部工作机制细节;简单地说,API就是实现应用与应用连接的一种隐形的桥梁。

  • 金融行业数字转型:利用API构建新IT基础

    从制造业、物流业,银行业到零售业,各行各业的根基都因应用经济的兴起发生着深刻的变革。在互联网和智能手机普及化的推动下,这种现象变得司空见惯。到2021年 ,蓬勃发展的全球应用经济的预估总值将达到6.3万亿美元,相比2016年的1.3万亿美元,增长近5倍。

  • 如何使用Azure API管理服务?

    在云和微服务架构时代,API是数字化业务的通用语言。根据分析公司Forrester Research预测,仅在美国,API管理工具的支出将在未来5年内达到近30亿美元。

  • 私有存储云如何构建?

    如何构建自己的私有存储云呢?在这之前,我们要先退后一步,思考一下云计算到底意味着什么。