云计算系统中对开发者的API设计问题

本文讲的是云计算系统中对开发者的API设计问题,【IT168 资讯】近年来,随着互联网应用的普及与深化,网络信息与服务趋于海量,用户体验需求不断增长,数据海量、分布异构、处理复杂、使用繁琐等问题逐渐突显,旨在解决这些问题的云计算(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中各个方法的通途。这样也有利于开发者的开发。

时间: 2024-11-29 11:09:52

云计算系统中对开发者的API设计问题的相关文章

如何在云环境中建立安全的API设计?

在云计算环境中建立一个安全的API设计是一项具有挑战性的工作.在本文中,安全研究专家Dejan Lukan介绍了企业在开发安全API时需要记得的若干事项. 一个应用程序编程接口(API)是对已经正常运行应用程序的一个简单扩展,以便于帮助用户以编程的方式与之进行交互. 使用API的原因是各种各样的,其中包括从数据库中提取数据.将数据发送并保存至数据库,以及推送任务至队列中,但是它们的主要目的是为了帮助用户通过使用程序或脚本程序以自动化的方式与应用程序进行交互.当在一个没有API支持的虚拟环境中工作

复杂系统中的用户权限数据库设计解决方案_数据库其它

B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法的使用已授权功能,而对那些未经授权的"非法用户"将会将他们彻底的"拒之门外&

分层架构中的查询功能如何设计??

问题描述 分层的好处小弟还是明白的,只是做了几年程序,一直有个问题很困扰,系统中的查询功能如何设计?假如我们现在有个电子商务网站,我们对于商品有个查询功能,如果我们现在只提供按照商品名称的查询,那我们的业务层会有这个方法publicList<productInfo>getProductByName(stringproductName){//}此方法会去调用数据库访问层的相同方法publicIList<productInfo>getProductByName(stringproduc

启明星辰与网御星云携手护卫云计算系统安全

[51CTO.com综合报道]云计算,从概念到实践据统计,当前比较经典的云计算定义超过五十种.不同的专家.企业都从自己的角度对云计算的概念进行定义.其中得到比较一致认可.比较权威的是美国国家标准技术研究所(NIST)的定义.NIST对云计算的定义:云计算是一个模型,这个模型可以方便地按需访问一个可配置的计算资源( 例如:网络.服务器.存储设备.应用程序以及服务)的公共集.这些资源可以被迅速提供并发布,同时最小化管理成本或服务提供商的干涉.云模型由 五个基本特征.三个服务模型和四个发布模型组成,如

云存储可以认为是配置大容量存储空间的一个云计算系统

云存储和云计算之间的关系还是很好理解的,云存储和云计算相比较,可以认为是云存储配置了大容量存储空间的一个云计算系统. 云计算是分布式处理(Distributed Computing).并行处理(Parallel Computing)和网格计算(Grid Computing)的发展,是透过网络将庞大的计算处理程序自动分拆成无数个较小的子程序,再交由多台服务器所组成的庞大系统经计算分析之后将处理结果回传给用户.通过云计算技术,网络服务提供者可以在数秒之内,处理数以千万计甚至亿计的信息,达到和"超级计

如何在云环境中建立一个安全的API设计?

在云计算环境中建立一个安全的API设计是一项具有挑战性的工作.在本文中,安全研究专家Dejan Lukan介绍了企业在开发安全API时需要记得的若干事项.498)this.width=498;' onmousewheel = 'javascript:return big(this)' border="0" alt="如何在云环境中建立一个安全的API设计?" src="http://s2.51cto.com/wyfs02/M01/45/CC/wKioL1P

IM系统中聊天记录模块的设计与实现

看到很多开发IM系统的朋友都想实现聊天记录存储和查询这一不可或缺的功能,这里我就把自己前段时间为傲瑞通(OrayTalk)开发聊天记录模块的经验分享出来,供需要的朋友参考下. 一.总体设计 1.存储位置 从一开始我们就打算在服务端和客户端本地同时存储聊天记录,而且,在客户端查看聊天记录时,可以选择是从本地加载.还是从服务器加载.这样做的好处有两个: (1)从本地加载聊天记录速度非常快. (2)当更换了登录的机器,在任何地方任何时刻都可以从服务器加载完整的聊天记录,记录永远不会丢失. 2.存储方案

设计-考勤系统中考勤排班和结果计算

问题描述 考勤系统中考勤排班和结果计算 对于考勤系统中的班次,出现跨天的情况,在这种情况下,如何设计表结构,如何计算考勤结果 解决方案 可以把日期转换成浮点数来计算.日期浮点数是这样的数:如果两个时间差1天,那么就差1,如果差1小时,就差1/24,以此类推.不用理会跨天还是跨月.它永远和时间差对应. 解决方案二: 你用分钟数表示排班的起至时间,设置的时候就可以超过24:00 了.转换成实际时间,就用当天0点 + 开始分钟数-当天0点 + 结束分钟数,得到的时段自然就跨天了. 解决方案三: 可以设

PostgreSQL 在铁老大订单系统中的schemaless设计和性能压测

标签 PostgreSQL , UDF , schemaless , 自动建表 , 自动分区 , 订单查询 , 用户订单查询 , 席别订单查询 背景 数据的流动孕育数据生态,在很多大型系统中,业务系统之间的数据流动是很常见的事情. 例如铁大哥的订单数据的流动,可能带动很多围绕订单的业务需求.比如说订单查询: 1.按用户查询,返回用户30天内的所有订单. 2.按坐席和乘车日期查询,返回这个坐席的售出记录,看看有没有退票.有没有中途票可以加塞等. 以预售30天为例, 假设有20000趟车,20节车厢