注:文章原文为Dr. Charles Severance 的 《Python for Informatics》。文中代码用3.4版改写,并在本机测试通过。

13.6 应用程序接口API

  现在我们拥有了用HTTP协议在应用程序间互换数据的能力。并且有了用XML或JSON,在应用程序间互发复杂数据的方法。

  下一步是用这些技术来定义和记录程序间的协议。程序间的协议通用名是应用程序接口APIs。当我们使用一个API时,通常一个程序先生成可供其它程序使用的服务集,并且发布它的APIs,即访问程序提供的服务必须遵循的规则。

  当我们创建的程序的功能中包含访问其它程序提供的服务时,我们就把这种方式称为面向服务结构SOA。SOA方式下我们程序的总体是使用其它程序的服务。非SOA方式下程序是单一独立的,包含所有实现应用的所有代码。

  当我们使用网页时,我们会看到很多SOA的例子。例如我们可以通过一个航班网站预订机票、酒店和汽车。实际上航班网站的计算机是联系酒店计算机上的服务,将获取的酒店数据显示给用户。当用户通过航班网页同意预订酒店后,网站将利用另一个服务中酒店系统上完成实际的预订。同样当网站通过信用卡收取所有交易费用时,它也包含了酒店系统收取费用的过程。

  SOA有很多优点:(1)我们只要维护一份数据。这对不希望重复预订的酒店预订系统来说尤其重要。(2)数据的拥有者可以设置使用数据的规则。在这些优点下,SOA必须仔细设计来很好地满足用户需求。

  当一个应用程序中网页上用它的API生成服务集时,我们称这些程序为网页服务。

 

Python for Infomatics 第13章 网页服务三(译)的更多相关文章

  1. Python for Infomatics 第13章 网页服务四(译)

    这几天因为其他事务,打断了自己的学习计划,今天继续我的翻译,避免又中途而废. 注:文章原文为Dr. Charles Severance 的 <Python for Informatics> ...

  2. Python for Infomatics 第13章 网页服务二(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 13.4 JavaScript ...

  3. Python for Infomatics 第13章 网页服务一(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 一旦利用程序通过HTTP协议获得 ...

  4. Python for Infomatics 第12章 网络编程三(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.5 HTML分析和网页抓取 ...

  5. #Python学习笔记:1-3章 (基于《python编程,从入门到实践)

    第1-3章 这个文档是记录我学习python时一些学习笔记以及一些想法也可以称作复习笔记 第一章:起步这一章主要是从第一个"hello world"程序到python环境的搭建与配 ...

  6. Python for Infomatics 第12章 网络编程六(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.9 词汇表 Beautif ...

  7. Python for Infomatics 第12章 网络编程四(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.7 用BeautifulS ...

  8. Python for Infomatics 第12章 网络编程一(译)

    注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 本书中的许多例子关注的是读取文件 ...

  9. Python for Infomatics 第14章 数据库和SQL应用一(译)

    14.1 什么是数据库 数据库一种存储结构数据的文件.绝大多数数据库类似字典——映射键和值的关系.最大的区别是数据库是保存在硬盘或其它永久性的存储上,所以在程序结束后它仍然存在.而保存在内存中的字典容 ...

随机推荐

  1. C++ 与OpenCV 学习笔记

    联合体:当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union) 1. 联合体是一种结构: 2. 他的所有成员相对于基地址的偏移量均为0: 3. 此结构空间要大到足够容纳最&qu ...

  2. [codevs1743]反转卡片

    [codevs1743]反转卡片 试题描述 [dzy493941464|yywyzdzr原创] 小A将N张卡片整齐地排成一排,其中每张卡片上写了1~N的一个整数,每张卡片上的数各不相同. 比如下图是N ...

  3. Android 学习资源收集

    1.2015最流行的Android组件.工具.框架大全 地址  http://www.open-open.com/lib/view/open1436262653692.html

  4. js 对数据转换成数据容量单位

    function bytesToSize(value) { alert(value); alert('value'); debugger; if (value === 0) return '0 B'; ...

  5. Spark基础知识汇总

    2,wordcount: val wordcount = sc.textFile()).reduceByKey(_ + _).sortByKey().collect val wordcount = s ...

  6. [转]大数据时代,python竟是最好的语言?

      随着大数据疯狂的浪潮,新生代的工具Python得到了前所未有的爆发.简洁.开源是这款工具吸引了众多粉丝的原因.目前Python最热的领域,非数据分析和挖掘莫属了.从以Pandas为代表的数据分析领 ...

  7. 页面无刷新Upload File

    页面无刷新Upload File. 利用jquery.form.js的ajaxForm提交文件. 具体参考以下代码: 前台html <%@ Page Language="C#" ...

  8. Curator Zookeeper分布式锁

    Curator Zookeeper分布式锁 pom.xml中添加如下配置 <!-- https://mvnrepository.com/artifact/org.apache.curator/c ...

  9. DIV+CSS布局

    宽度自适应两列布局 <!DOCTYPE html> <html> <head> <meta charset="gbk"> <t ...

  10. 安卓手机 虚拟键盘输入用 position:fixed解决 !!!

    下面 主要代码 方便看. 样式 <style> *{ margin:0; padding:0; } html{ height:100%;/*关键代码*/ } body{ height:10 ...