一软件开发的互联网思维
1. 网络就是计算机
进入互联网时代, 软件开发必然放眼全局, 充分利用互联网的资源和特性比如, 为了提高响应性能, 就选择使用 CDN 作为前端缓存而且可能还需要采用 CDN 提供的 API 进行编程, 以便更加优化地调度缓存资源类似这样可利用的网络资源很多, 开发者需要统一考虑到, 也就是建立起软件开发的互联网思维这样开发出来的软件, 才具有互联网基因, 能够适应互联网的时代
2. 云计算助力软件开发
云计算通过虚拟化技术把很多资源整合起来, 软件开发理念不断向更高维度抽象从虚拟机到集群, 再到容器, 再抽象成函数计算, 软件开发越来越聚焦在业务核心上这样的演进, 必然带来效率的提升基于云计算环境的软件, 不可避免地需要通过各种 API 来进行资源管理
3. web API 的作用
1) 开放有价值的数据
一些数据具有较强的使用价值, 比如天气预报利用 WEB API 作为开放接口, 可以让数据价值作用充分发挥出来每个人都会有打车的经历, 大多服务商都在打车软件上接入天气预报 API, 做到提前通知司机师傅天气变化情况, 司机可做好出行应急准备, 以及准备好雨具等贴心服务并可通过此情况, 设定相应的价格波动控制, 调动司机师傅的积极性, 并给乘客提供更优质的预知服务, 达到三方共赢
2) 复杂计算接口
WEB API 的另一个主要作用就是可以作为复杂计算的开放接口例如, 针对文档的 WEB 展现, 特别是在移动端 WEB 展现, 缺少成熟通用的技术方案一些应用不得不采取变通的办法, 比如阿里钉钉把文档页转成了图片; 某邮箱丢失了字体轮廓特征; 某信则要下载后通过第三方 APP 打开反而一些中小开发团队, 通过调用九云图的文档转换 WEB API, 以最少的成本, 实现了更好的效果九云图 WEB API 可以把各类文档转换成包含 SVG 的 html5 格式, 在移动端缺少字库的情况下, 也能保持字体和版式完全不变, 还可平滑缩放像这样的复杂计算功能, 采用 WEB API 进行接口开放, 再合适不过了
3) 云计算资源管理
前面提到, 基于云计算环境的软件, 不可避免地需要通过各种 API 来进行资源管理做为云计算基础设施的一部分, WEB API 是必不可少的开发者通过调用 WEB API, 可以使软件类产品高效方便地融合到云计算体系里
二 WEB API 的统一性需求
1. 体系结构的统一
一套完善的 API, 需要有一个统一的体系结构
在 API 发展的各个阶段, 这样的体系结构也在不断演进初期, 针对科学计算需要, 主流开发语言提供了一些计算函数, 那时候 API 体系虽然不复杂, 但作为编程语言的一部分, 整体的统一性非常明确, 开发者很清楚有哪些函数是可以利用的
随着 IT 技术的发展, 出现了控件类库框架等越来越强大的开发接口, 各种方案自成体系, 尽管第三方资源不断加入, 但整体的体系结构, 还是依赖于核心功能的支撑比如 Java JDK 提供了大量的原生类库, 第三方产品虽然丰富多彩, 但由于 Java 的平台属性, 以及核心 API 功能的完善, JDK 体系结构的统一性始终非常明确维持 API 体系结构的统一性, 还需要有理论的支持, 比如各种 GUI 模型, 都是遵循基础理论进行设计的这保证了开发者在各种开发工具之间的思维统一, 比如有了 Windows GUI 的开发经验后, 再从事 Java Swing 开发时, 也会得心应手
当前, WEB API 在体系结构的统一方面, 还十分不足既缺乏理论基础, 又缺少基本框架显得非常散乱, 即使同一个云厂商的各种资源接口, 也缺少合理的分类体系结构开发者面对这些 WEB API, 很难做到了然于胸如果能够规划出一个合理的体系结构, 以云计算资源为主干, 分门别类, 第三方 API 都能在这个分类体系中找到相应的位置开发者在使用 WEB API 时, 就能得心应手了
2. 接口规范的统一
和传统的 API 一样, 一套具备完善体系结构的 WEB API, 也需要有统一的接口规范让开发者有明确的标准, 可以提高沟通和使用的效率
3. 交互方式的统一
最开始提到网络就是计算机, 互联网云计算的各种资源, 需要协同工作 WEB API 应该提供订阅监听事件等机制, 统一各资源之间的交互方式使整个 API 体系互相关联, 成为一个协同运作的统一体, 不再是众多分散存在的零部件
4. 安全保障的统一
和传统 API 的最大不同, 就是 WEB API 面临着非常高的安全需求互联网的开放, 使网络资源和服务都面临着巨大的风险这是 WEB API 必须要解决的问题各个云计算厂商和第三方 WEB API 开发者, 建立了一些加密鉴权等机制, 但是很多都是分散实施的, 有些也提供了统一的访问控制, 比如阿里云的 RAM 但是在针对 WEB API 的安全保障方面, 统一的程度力度透明度, 以及抽象的层级似乎还远远不够依靠中心化保障安全机制固然有必要, 但是否应该引入区块链这样的技术作为安全机制的补充, 也是一个需要考虑的问题
三软件产业大规模协作的前提
目前, 软件开发领域技术协作性不强, 从阿里云 API 市场的交易量也可以看出这是由于软件产业起步较晚, 成熟度不够导致的而一些成熟度较高的产业, 比如汽车制造业, 技术协作十分广泛, 大量的零部件都是协作生产的软件产业要实现大规模协作, 至少需要具备如下两个条件:
1. 繁荣的生态
一个繁荣的生态需要健全的基础设施, WEB API 领域的基础设施包括数据网络资源和体系结构随着云计算的发展普及, 数据和网络资源基本具备, 当务之急是要建立统一的体系结构这样的体系结构, 需要完善有力的主干支撑, 必须有足够规模和实力的企业投入资源, 发挥主干作用, 才有可能让 WEB API 生态繁荣起来
2. 系统准入和监管
软件产业的技术协作如果要打开局面, 还有两件事情必须要做一是制订一些技术标准, 二是发放资质证书传统产业这两件事做得很好, 基本都是政府在主导这样可以保障技术协作的可靠性, 因为政府在制订标准和发放牌照的过程中, 间接承担了担保人的角色而软件产业的技术协作, 政府却没有条件做上面的两件事这就需要有实力的企业来承担这个角色, 一方面对 WEB API 产品制定一些技术标准, 比如文档格式转换类的, 应提供什么样的接口, 参数的类型命名响应的时间等; 另一方面, 对符合标准的 WEB API 发放资质证明, 并对获得资质的产品进行日常核查, 确保其运行状态稳定, 为使用者提供充分可靠的服务
九云图做为阿里云 API 应用创新大赛两届的参赛团队, 在文档处理云端存储 WEB 展现的研发上具有多年的经验与技术积累他们开发的九云图文档格式转换 API 已在阿里云 API 市场上开放调用做为 WEB API 领域的早期开拓者, 九云图为 WEB API 的发展迈出了第一步
他们本届的参赛作品旅游产品海报自动生成系统, 是根据旅行社用户上传的行程文档, 进行文本解析后, 自动生成带 H5 二维码的宣传海报该作品用到了九云图文档转 H5 APl 阿里云自然语言处理 APl 阿里云 OCR APl 阿里云人脸识别 APl 百度图片 APl, 还有阿里云函数计算 OSS APl 等
WEB API 已渗入我们生活出行工作的各环节, 成为了每个重要信息技术趋势的核心内容移动设备云计算物联网大数据及社交网络等应用都依赖于一个基于 WEB 的界面与它们的分布式组件进行连接, 为全球范围内的各个商业领域提供具有创新性和颠覆性的解决方法而 WEB API 的使用既是催化剂, 也是促成这些成果的主要力量
来源: https://yq.aliyun.com/articles/495606