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 什么是数据库 数据库一种存储结构数据的文件.绝大多数数据库类似字典——映射键和值的关系.最大的区别是数据库是保存在硬盘或其它永久性的存储上,所以在程序结束后它仍然存在.而保存在内存中的字典容 ...
随机推荐
- iOS音频解码表格
- JDBC的批处理操作三种方式 pstmt.addBatch()
package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import java.sql.Connection; import java ...
- 全部leetcode题目解答(不含带锁)
(记忆线:当时一刷完是1-205. 二刷88道.下次更新记得标记不能bug-free的原因.) 88-------------Perfect Squares(完美平方数.给一个整数,求出用平方数来 ...
- Centos7 wifi
centos7如果在安装系统选择安装软件的选项是gnome套件(要注意退出选择界面回到安装界面时软件选项显示的是gnome,仅仅选择了gnome的软件也不行),安装完成后就会有wifi的图标,下面的方 ...
- vuex 使用笔记
1. 在store.js中 储存数据状态 02. 在action.js中分发行为 03. 在页面中获取并使用状态
- sharepoint关键位置
GAC:C:\Windows\assembly,也就是部署的位置: ISAPI位置,SharePoint API:C:\Program Files\Common Files\microsoft sha ...
- 自定义 URL Scheme 完全指南
本文由 Migrant 翻译自 The Complete Tutorial on iOS/iPhone Custom URL Schemes,转载请注明出处. 注意: 自从自定义 URL 的引入,本文 ...
- RakNet发送与接收数据
http://www.jenkinssoftware.com/raknet/manual/creatingpackets.html Creating Packets with Bitstreams W ...
- 使用Spring Task轻松完成定时任务
一.背景 最近项目中需要使用到定时任务进行库存占用释放的需求,就总结了如何使用Spring Task进行简单配置完成该需求,本文介绍Spring3.0以后自定义开发的定时任务工具, spring ta ...
- 模拟搭建Web项目的真实运行环境(七)
下面这个是mongo驱动的小案例,里面也有涉及到一点redis的操作 https://github.com/SuperRocky/MyMongoDriver 接下来通过几张图片主要介绍一下每个文件的具 ...