下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

教大家在云API中,让应用程序“动”起来!

作者:课课家教育     来源: http://www.kokojia.com点击数:689发布时间: 2017-06-15 10:00:52

标签: API云计算程序管理

  你做过API?不管你是否做过API,都不妨看看课课家推出的这篇关于云API中,让应用程序“动”起来的文章。在这篇文章中,我们总结了云API中,让应用程序“动”起来的知识。课课家教育平台提醒大家:本篇文章纯干货。但文中有许多的小细节,所以请大家仔细阅读本篇文章哦~

教大家在云API中,让应用程序“动”起来!_API_云计算_程序管理_课课家教育

  随着云应用的增长,越来越多的企业尝试同时使用多个供应商。弥补服务中断的需求,使用不同服务的需求,以及基于费用选择服务的能力,都强调了对数据和应用程序可移植性的需求。应用程序编程接口是和云服务交互的关键,但是跨供应商的API区别巨大——这让移植非常困难。

  分享:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API与系统调用的区别:系统调用代码都处于内核态,API是操作系统提供的一组函数,通常以库的形式存在,供用户调用,所以,API代码可能是完全是用户空间代码,也有的API调用了系统调用。

  Windows API:

  API函数包含在Windows系统目录下的动态连接库文件中。Windows API是一套用来控制Windows的各个部件的外观和行为的预先定义的Windows函数。

  用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。这在某种程度上很像Windows的天然代码。而其他的语言只是提供一种能自动而且更容易的访问API的方法。当你点击窗体上的一个按钮时,Windows会发送一个消息给窗体,VB获取这个调用并经过分析后生成一个特定事件。

  更易理解来说:Windows系统除了协调应用程序的执行、内存的分配、系统资源的管理外,同时他也是一个很大的服务中心。

  调用这个服务中心的各种服务(每一种服务就是一个函数)可以帮助应用程序达到开启视窗、描绘图形和使用周边设备等目的,由于这些函数服务的对象是应用程序,所以称之为Application Programming Interface,简称API 函数。WIN32 API也就是MicrosoftWindows 32位平台的应用程序编程接口。

  凡是在 Windows工作环境底下执行的应用程序,都可以调用Windows API。

  linux API:

  在linux中,用户编程接口API遵循了UNIX中最流行的应用编程界面标准---POSIX标准。POSIX标准是由IEEE和ISO/IEC共同开发的标准系统。该标准基于当时现有的UNIX实践和经验,描述了操作系统的系统调用编程接口API,用于保证应用程序可以在源程序一级上在多种操作系统上移植运行。

  这些系统调用编程接口主要是通过C库(LIBC)来实现的。

  本文研究了云的可移植性可能遇到的挑战,并且探讨API在其中所起的作用。

  云上应用可移植性的最大问题是什么?

  在所有情况下,API都是用来访问数据和服务的。没有具体的规则来定义云计算API应该如何工作或者它们应该提供什么功能。但是,当多个供应商提供相互竞争的或者类似的服务,并且使用完全不同的API去访问这些服务时,问题就出现了。

  对于软件开发人员来说,这就是个噩梦。他们可能不得不重写软件以便使用某个特定服务的API,这通常导致出现软件的多个版本。在一些情况下,开发人员能够设计软件,让其检测特定的服务并且使用相应的API,但是这会让应用程序的整体大小急速膨胀,并且导致测试很复杂。不管使用上述哪种方式,为不同的云计算API创建应用程序的代价都很高,且需要花很多时间。

  市场上哪些公有云计算API呢?

  在公有云领域有三种常见类型的API:基础架构、服务和应用程序。

  基础架构或基础架构即服务(IaaS)API意图控制低级别的资源,比如虚拟机(VM)镜像、可扩展组群和负载均衡。开发人员和IT团队使用基础架构API来预配,管理并移除公有云资源。比如,开发人员可以使用Amazon Web Services (AWS) Elastic Compute Cloud API在EC2实例里创建、移除以及使用镜像。

在公有云领域有三种常见类型的API:基础架构、服务和应用程序。

  服务或者平台即服务API支持访问定义良好的服务或者功能,比如数据库、管理和汇报工具、消息系统、门户以及存储实例。服务API通常和基础架构即服务API协同使用,来构造出复杂的工作环境。比如,开发人员可能会使用基础架构API来预配VM,然后使用服务API将存储实例附加到VM上。

  跨云API:

  还有跨云的API,比如Apache jclouds,允许云开发人员创建出软件,访问来自主要云供应商以及所需的其他云供应商的资源。但是,这还在开发中,因为没有清晰的规定云供应商应该提供哪些通用服务。

  应用程序或者软件即服务API通常是最高层级API,提供完整的应用程序作为本地IT环境的替代品或者扩展。比如,企业可能选择使用客户关系管理软件作为托管服务而不是在本地安装。和该软件交互的工具会使用设计的API来安全地交换数据以及查询。如,想要集成Microsoft Office 365功能进自己软件的企业就可以使用Microsoft Graph API。

  现在有哪些可用的云计算API?

  现在有大量供开发人员可用的云计算API,来创建面向用户的软件。比如,AWS提供API来操作自己的EC2和Simple Storage Service (S3,简单存储服务)服务,以及API门户服务,允许用户创建自定义API来编排一些AWS服务。其他主流公有云供应商,如Google和Microsoft Azure,也提供API将云服务链接到外部软件。

  还有一些其他API可以使用来做云项目。如,私有云可能会使用类似Apache CloudStack 4.9.0.1这样的平台来支持IaaS类型的云,还能够原生支持Amazon EC2和S3 API。

  API标准化:

  要帮助用户在任意云平台上部署应用程序——无需变更软件,越来越多的人开始对公有云供应商API的标准化感兴趣。不幸的是,我们离这样的标准化还相当遥远,特别是在主流公有云供应商之间的竞争日益白热化的情况下。

  其他云计算API承诺提供更加通用、跨平台的能力。比如,Simple Cloud API是由供应商联盟推进的,它允许开发人员创建可以和多个云供应商交互的代码。

  API创建有哪些通用准则?

  不管你是开发自己的云计算API,还是评估待选供应商的API,以下一些通用考量可能会有所帮助。

不管你是开发自己的云计算API,还是评估待选供应商的API,以下一些通用考量可能会有所帮助。

  考虑API的效率。API的实现必须简单高效。不要尝试重新创造轮子,比如SOAP、REST、JSON等这些底层技术——使用那些已经实现了的庞大的标准库。另外,不要尝试在一个API里完成所有事情。开发人员倾向于使用有限数量的语言,因此为了迎合每种主流语言都创建一个API版本,这里的主流语言包括C++、javaPythonphp、Ruby、Perl、Haskell、C#、JavaScript、Node.js、OCaml 和 Delphi。

  确保良好的API文档。粗糙的文档会成为采用某个供应商API的阻碍,也会阻止别人使用你的API。文档必须最新、精准并且包含一些使用示例或者教程。通过同行评审或者API用户的精准反馈来验证文档。

  API必须灵活。开发人员可能会尝试以各种方式使用云计算API,因此这些API必须灵活,特别是如何处理输入和输出上。比如,灵活的API可能支持多种格式,比如JSON、YAML以及可扩展标记语言,并且不区分大小写。

  注意API发布的稳定性。API变更的速度和一致性会影响到使用。开发人员使用那些不经常变化的API会更加轻松。发布周期必须计划良好,测试全面并且有完整的文档,同时让开发人员有足够的时间体验beta版本。

  注意API安全性。可靠的身份验证和安全对于现代服务以及访问这些服务的云计算API来说至关重要。在大多数情况下,这包括通过API向服务传递SHA-1或者其他加密令牌。在其他情况下,通过OAuth2和SSL保证安全性。API所有者必须实现几种类型的安全。

     小结:API 接口属于一种操作系统或程序接口,GUI接口属于一种图形操作系统。两者都属于直接用户接口。相信最后大家阅读完毕本篇文章后,学到了不少知识吧?收获不小吧?其实大家私下还得多多自学,当然如果大家还想要了解更多相关方面的详细内容的话呢,请登录课课家教育平台咨询哟~

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程