Python for Infomatics 第13章 网页服务三(译)
注:文章原文为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章 网页服务三(译)的更多相关文章
- Python for Infomatics 第13章 网页服务四(译)
这几天因为其他事务,打断了自己的学习计划,今天继续我的翻译,避免又中途而废. 注:文章原文为Dr. Charles Severance 的 <Python for Informatics> ...
- Python for Infomatics 第13章 网页服务二(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 13.4 JavaScript ...
- Python for Infomatics 第13章 网页服务一(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 一旦利用程序通过HTTP协议获得 ...
- Python for Infomatics 第12章 网络编程三(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.5 HTML分析和网页抓取 ...
- #Python学习笔记:1-3章 (基于《python编程,从入门到实践)
第1-3章 这个文档是记录我学习python时一些学习笔记以及一些想法也可以称作复习笔记 第一章:起步这一章主要是从第一个"hello world"程序到python环境的搭建与配 ...
- Python for Infomatics 第12章 网络编程六(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.9 词汇表 Beautif ...
- Python for Infomatics 第12章 网络编程四(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 12.7 用BeautifulS ...
- Python for Infomatics 第12章 网络编程一(译)
注:文章原文为Dr. Charles Severance 的 <Python for Informatics>.文中代码用3.4版改写,并在本机测试通过. 本书中的许多例子关注的是读取文件 ...
- Python for Infomatics 第14章 数据库和SQL应用一(译)
14.1 什么是数据库 数据库一种存储结构数据的文件.绝大多数数据库类似字典——映射键和值的关系.最大的区别是数据库是保存在硬盘或其它永久性的存储上,所以在程序结束后它仍然存在.而保存在内存中的字典容 ...
随机推荐
- Linux下的压缩和解压缩命令——tar
tar命令 选项: -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只 ...
- 【EasyUI】 日期格式化
本文经过了测试,解决getFullyear() is not a function等问题 效果如下: 首先: Oracle中字段设置为DATE,MySQL中设置为DATETIME,MyBatis中会自 ...
- thinkpad W500S 如何换键盘?
tHINKPAD的笔记本拆装有,123456789... 至少5种以上了,一般键盘去下都是边上撬就去下 来了.今天拆换W550S键盘就遇到劲敌了.拼了 老劲也去不下,冬天背上都冒汗(屋子热的吧). 终 ...
- Python使用TuShare将股票数据保存到Oracle数据
TuShare是个获取股票数据的模块包,我们进行分析,需要将股票数据保存到本地,避免每次都从网上获取,由于本机装有ORCALE,以ORACLE为例介绍如何保存股票数据到本地. 一.大致思路:我们先获取 ...
- Linux kilin 安装和按键服务器步骤
U盘启动,傻瓜式安装 设置root 密码 sudo passwd root vsftpd和ssh服务 使用apt-get可以直接安装vsftpd和ssh,首先要sudo apt-get update ...
- IE不能上网,但是其他浏览器可以
打开IE_工具_internet选项_连接_局域网设置_(勾选)自动检测配置其它的勾去掉,确定.
- linux通过挂载系统光盘搭建本地yum仓库的方法
1.挂载光盘 [root@localhost ~]# mount /dev/cdrom /media/cdrom/ mount: /dev/sr0 写保护,将以只读方式挂载 /media下的cdrom ...
- WPF 变量绑定实现
最近初学WPF,遇到如控件的内容是动态生成的.这时候就需要变量绑定. 简单写下变量绑定的步骤. 如下面的 例子,TextBlock 的内容是动态的,绑定变量StuName. <TextBlock ...
- HAProxy的安装与使用
在互联网时代中,后台系统架构,经常可以听到高可用集群.负载均衡集群之类的系统架构解决方案,其中,负载均衡有基于硬件的F5.Big-IP等,也有基于软件的LVS(基于Linux操作系统实现,性能可以和基 ...
- PHP反射API
近期忙着写项目,没有学习什么特别新的东西,所以好长时间没有更新博客.我们的项目用的是lumen,是基于laravel的一个轻量级框架,我看到里面用到了一些反射API机制来帮助动态加载需要的类.判断方法 ...