Web service是什么
我把学习笔记和学习心得,放到网志上,欢迎指正。今天先写一个最基本的问题,Web service到底是什么?一、Web service的概念想要理解Web service,必须先理解什么是Service(服务)。传统上,我们把计算机后台程序(Daemon)提供的功能,称为“服务“(service)。比如,让一个杀毒软件在后台运行,它会自动监控系统,那么这种自动监控就是一个“服务“。通俗地说,“服务“就是计算机可以提供的某一种功能。根据来源的不同,“服务“又可以分成两种:一种是“本地服务“(使用同一台机器提供的服务,不需要网络),另一种是“网络服务“(使用另一台计算机提供的服务,必须通过网络才能完成)。举例来说,我现在有一批图片,需要把它们的大小缩小一半。那么,我们可以把“缩放图片“看成是一种服务。你可以使用“本地服务“,在自己计算机上用软件缩小图片,也可以使用“网络服务“,将图片上传到某个网站,让服务器替你缩小图片,完成后再通过网络送回给你。这就好比,一件事你可以自己做,也可以交给另一个人去做。肚子饿了,你可以自己做饭,也可以打电话去订一份比萨,让店家替你做好送上门。“网络服务“(Web Service)的本质,就是通过网络调用其他网站的资源。举例来说,去年我写过一个“四川大地震图片墙“,它能动态显示关于四川地震的最新图片。但是,所有的图片都不是储存在我的服务器上,而是来自flickr.com。我只是发出一个动态请求,要求flickr.com向我提供图片。这种情况下,flickr.com提供的就是一种Web service。如果我把图片都存放在本地服务器,不调用flickr.com,那么我就是在使用“本地服务“。所以,Web service让你的网站可以使用其他网站的资源,比如在网页上显示天气、地图、twitter上的最新动态等等。二、Web Service架构和云如果一个软件的主要部分采用了“网络服务“,即它把存储或计算环节“外包“给其他网站了,那么我们就说这个软件属于Web Service架构。Web Service架构的基本思想,就是尽量把非核心功能交给其他人去做,自己全力开发核心功能。比如,如果你要开发一个相册软件,完全可以使用Flickr的网络服务,把相片都储存到它上面,你只要全力做好相册本身就可以了。总体上看,凡是不属于你核心竞争力的功能,都应该把它“外包“出去。最近很红的“云计算“(cloud computing)或者“云服务“(cloud services),实际上就是Web Service的同义词,不过更形象一些罢了。它们不说你把事情交给其他计算机去做,而说你把事情交给“云“去做。三、本地服务的缺陷“网络服务“是未来软件开发和使用的趋势,本地服务将用得越来越少,主要因为以下三个原因:* 本地资源不足。很多数据和资料,本地得不到,只有向其他网站要。* 成本因素。本地提供服务,往往是不经济的,使用专业网站的服务更便宜。这里面涉及硬件和人员两部分,即使你买得起硬件,专门找一个人管理系统,也是很麻烦的事。* 可移植性差。如果你想把本机的服务,移植到其他机器上,往往很困难,尤其是在跨平台的情况下。四、Web Service的优势除了本地服务的缺点以外,Web Service还有以下的优越性:* 平台无关。不管你使用什么平台,都可以使用Web service。* 编程语言无关。只要遵守相关协议,就可以使用任意编程语言,向其他网站要求Web service。这大大增加了web service的适用性,降低了对程序员的要求。* 对于Web service提供者来说,部署、升级和维护Web service都非常单纯,不需要考虑客户端兼容问题,而且一次性就能完成。* 对于Web service使用者来说,可以轻易实现多种数据、多种服务的聚合(mashup),因此能够做出一些以前根本无法想像的事情。五、Web service的发展趋势根据我的观察,目前Web service有这样几种发展趋势。* 在使用方式上,RPC和soap的使用在减少,Restful架构占到了主导地位。* 在数据格式上,XML格式的使用在减少,json等轻量级格式的使用在增多。(完)
Python 几个重要的内置函数
在学习Python的过程中,有几个比较重要的内置函数:help()函数、dir()函数、input()与raw_input()函数、print()函数、type()函数。
第一、help()函数
Help()函数的参数分为两种:如果传一个字符串做参数的话,它会自动搜索以这个字符串命名的模块、方法等;如果传入的是一个对象,就会显示这个对象的类型的帮助。比如输入help(‘print’),它就会寻找以‘print’为名的模块、类等,找不到就会看到提示信息;而print在Python里是一个保留字,和pass、return同等,而非对象,所以help(print)也会报错。
第二、dir()函数
dir()函数返回任意对象的属性和方法列表,包含模块对象、函数对象、字符串对象、列表对象、字典对象等。尽管查找和导入模块相对容易,但是记住每个模块包含什么却不是这么简单,您并不希望总是必须查看源代码来找出答案。Python提供了一种方法,可以使用内置的dir()函数来检查模块的内容,当你为dir()提供一个模块名的时候,它返回模块定义的属性列表。dir()函数适用于所有对象的类型,包含字符串、整数、列表、元组、字典、函数、定制类、类实例和类方法。
第三、input与raw_input函数
都是用于读取用户输入的,不同的是input()函数期望用户输入的是一个有效的表达式,而raw_input()函数是将用户的输入包装成一个字符串。
第四、Print()函数
Print在Python3版本之间是作为Python语句使用的,在Python3里print是作为函数使用的。
第五、type()函数
Type()函数返回任意对象的数据类型。在types模块中列出了可能的数据类型,这对于处理多种数据类型的函数非常有用,它通过返回类型对象来做到这一点,可以将这个类型对象与types模块中定义类型相比较。
目前世界上最好的搜索引擎是什么
十大国际著名搜索引擎
MSN Search Microsoft 的 MSN Search, 由 LookSmart 支持,二级查询结果由 Inktomi 提供。 Overture (严格说是PPC搜索引擎) 将顶部的查询结果提供给 MSN. 为对 MSN 成功优化网站,那么必须仔细考虑 LookSmart 和 Inktomi 的排名要求。在某些情况下, Direct Hit 的查询结果也会体现在该搜索引擎上。
Yahoo 一致公认的最佳搜索引擎之一(严格说是分类目录),它的web查询结果来自Google. 收录在它分类目录中的网站,其查询结果以分类目录的查询结果显示。商业站点收录至分类目录的年费用为299美金,它将用几周到几月的时间才会给您结果,告诉您网站最终是否被收录。
Google 免费搜索引擎。顶部搜索结果将列入 LookSmart, Yahoo, 及 Open Source Directory.
Google 非常关注外部链接,如果一个网站有较多质量较好的外部链接,将获得较高的排名。它的 AdWords/AdSelect 也将作为查询结果显示。
AOL Search 从 Google 搜索数据库中获得查询结果。想在 AOL 中获得好的排名应该关注 Google 的排名规则。
Lycos 该分类目录搜索引擎查询结果来自 Fast/AllTheWeb, Overture 和 Open Source Directory.
Ask Jeeves 拥有人工编辑分类目录和来自 Teoma 的搜索引擎爬行结果。Overture 作为赞助商,查询结果也将出现在该搜索引擎的结果中。
LookSmart - Zeal 人工编辑搜索引擎分类目录,支持 MSN 及 Excite等较多的合作伙伴。
当 LookSmart 搜索无果时,由 Inktomi 提供搜索结果。
Overture 前身 GoTo.com, 严格来说是PPC搜索引擎。它的搜索结果将列入 Yahoo, MSN, Altavista 等搜索引擎。
Netscape Search 现在 NetScape 的查询结果来自于 Google.
AltaVista 最老的搜索引擎之一,至今仍然在搜索引擎中占有重要地位。它有免费网站登陆及收费网站登陆两种。
Open Directory 该开放目录是志愿编辑人员预审的搜索引擎目录, 它的查询结果和 NetScape, AOL, Google, Lycos等共享。
Inktomi Inktomi 比较特殊,是唯一一个在网站上不提供搜索的搜索引擎,它是真正意思上为搜索引擎提供信息的搜索引擎,比如向 Hotbot, MSN, Overture等。它号称为搜索引擎的搜索引擎。它提供的 Inktomi PrioritySubmit 是网站推广较为经济实惠的方案.
-b s