fengzhizi0 2015-04-22
近年来,随着互联网应用的普及与深化,网络信息与服务趋于海量,用户体验需求不断增长,数据海量、分布异构、处理复杂、使用繁琐等问题逐渐突显,旨在解决这些问题的云计算(Cloud Computing)相关技术得到了迅猛发展。云计算概念的提出在成为新的发展机遇的同时也在云计算技术方面受到挑战。特别是云计算系统中的API设计问题受到极大挑战。
云计算是分布式处理(Distributed Computing)、并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。它的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
云计算注定给信息时代带来一场大的技术变革,由他的引导,我们的不用像现在这样担心一旦PC坏掉而带来的数据信息的丢失,你可以把你的数据存储在“云” 端,有专门的小组为你维护数据;你也不必像现在这样为了使用一款软件而付费。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚 至包括超级计算这样的任务。这些都是云计算带来的好处。
但现在云计算系统的开发还只是处于起步阶段,云计算系统的功能和性能不是很优越。这对于应用程序的开发者来说无疑不是一大困难。而云计算系统的API(应用程序接口)的设计这直接关系到云计算系统的性能和易用性。
对于API的设计有以下几点看法:
一、API的设计要有严格的兼容性控制。其目标就是保证版本的升级时,不会导致低版本的代码无法运行。当一个版本的API发布以后,就不能对其进行任何的修改,包括声明方法的类型、数据类型等。如果出错将会影响其价值,同时也会降低公司的信誉。
二、API的设计要合理。各个方法的边界要区分明确,同时也不能出现数据盲区。不要弄得数据的边界清楚了,而出现了数据盲区。数据盲区的数据一般都是那些边界值,因此,我们要对特别考虑边界值。
三、API的设计要通常易懂。其系统的方法调用要通常易懂,做到“见名知意”,根据名称调用的一个方法,该方法所做的事就是开发者所想要的,这对于基于在 该系统上进行应用软件开发的开发者来说无疑是很愉快的,同时对于API的设计者来说也是很有意义的,这样不容易混淆各个方法。
四、API的设计尽量的小。这里所指的“小”既指源码编译后的文件比较小,同时也指其运行时所占的内存较小。这样运行调用的方法时间会更短一些,也间接得提升了系统和应用程序的运行效率和性能。
五、在进行API的设计时,没有确定的内容时不可以加入到API中去的。其原因就是可能因为这样的不确定因素而导致数据的运算结果出错,或者是在应用程序的运行过程中出现异常,这些现象是不可出现的。
六、设计API的要考虑其功能的全面性。API设计的越全面,那么应用程序的开发者在允许的范围内很好的选择来实现自己的任务。
七、API的设计还要考虑其高效性。对于信息时代的产物,俗话说得好“时间就是金钱”,人们对于应用程序的执行效率要求越来越高,提高API的执行效率,也间接得提高了应用程序的执行速度。
同时,API的设计总是需要演化和升级的,不然API的价值就会降低。我们在设计API的时候,首先要保证API正确的情况下,再来考虑API的高效性和易懂性。
我们在设计API之后就是实现API,我们在实现API的同时,也要将API文档化,同时在文档里面加上相应的范例。这样开发人员更容易的理解API中各个方法的通途。这样也有利于开发者的开发。