RSS是“Rich Site Summary”或“Really Simple Syndication”的英文首字母缩写,中文称作“简易信息聚合”。RSS是一种基于XML标准,在互联网上被广泛采用的内容包装和投递协议。
RSS技术诞生于1999年的网景公司(Netscape)。当时网景公司定义了一套描述新闻频道的语言,RSS,用于将网站内容投递到Netscape Navigator互联网浏览器中。但由于公司内部商务决策、当时互联网内容匮乏等诸多原因,网景最终只发布了一个0.9版本的规范。微软当时也推出了类似的数据规格,与RSS非常接近,试图利用新闻频道的架构把“推”(Push)技术变成一个应用主流,捆绑在IE浏览器中与Netscape Navigator抗衡。不过无奈的是,由于当时互联网访问速度慢、内容缺乏、用户不熟悉等原因,这个“推”技术自始至终没有得到市场的广泛支持。
但是随着时间的推移,RSS技术随着XML技术的发展和博客群体的快速增长,逐渐被人们广泛地接受,其应用范围也已经跳出单纯的博客圈,成为新闻传媒、电子商务、企业知识管理等众多领域的不可缺少的新技术。2001年,RSS技术标准的发展工作被戴夫·温那(Dave Winer)的公司UserLand所接手,继续开发新的版本,以适应新的网络应用需要。通过戴夫·温那的努力,RSS升级到了0.91版,然后达到了0.92版,并随后被众多的专业新闻站点所接受和支持。在广泛的应用过程中,众多的专业人士认识到需要组织起来,把RSS发展成为一个通用的规范,并进一步标准化。一个联合小组根据W3C新一代的语义网技术RDF对RSS进行了重新定义,发布了RSS 1.0版,并把RSS定义为“RDF Site Summary”。这项工作并没有与戴夫·温那进行有效的沟通,而戴夫则坚持在自己设想的方向上进一步开发RSS的后续版本2.0,同时也并不承认RSS 1.0的有效性。RSS由此开始分化形成了RSS 0.9x/2.0和RSS 1.0两个阵营。
戴夫·温那在2002年9月独自把RSS升级到了2.0版本,并交由哈佛大学法学院Berkman互联网和社会学中心进行维护。而RSS 1.0版则仍然由W3C联合小组维护。
最近,著名的互联网搜索引擎公司GOOGLE收购了美国大型的博客服务网站www.blogger.com, 使这个网站一直采用的一种近似于RSS的技术衍生版Atom一夜之间成为RSS领域标准之争的新的有力竞争对手。目前,这三个技术标准阵营(RSS 0.9x/2.0,RSS 1.0,Atom 0.3) 正在展开相互兼容的对话,相信在不久的将来会有积极的结果。
RSS 1.0和 2.0 格式所包含的核心信息相同,但其结构不一样。
RSS 1.0 的根元素是 rdf:RDF,而 RSS 2.0 的根元素是 rss。rss 还包含一个强制版本属性用以表示所用的RSS的准确格式(可能的值包括:0.91, 0.94 等)。另一个主要差别是 RSS 1.0 文档有名字空间限定,RSS 2.0 的文档就没有。不管怎样,包含在两个文档中的信息本质上是一样的。
两个版本都包含 channel 元素,而 channel 元素又包含三个必须的元素:title、description 和 link,其代码如下:
<channel>
<title><!-- channel 的标题 --></title>
<description><!-- 简要描述 --></description>
<link><!-- channel 的 URL --></link>
<!-- 可选/可扩展元素 -->
</channel>
除了这些必须的元素外,RSS 1.0 还定义了三个附加元素:image、items 和 textinput,其中,image 和 textinput 是可选的。另一方面,RSS 2.0 提供了 16 个附加元素,其中也包括 image、items 和 textinput,此外还有 language、copyright、managingEditor、pubDate 和 category。RSS 1.0 允许通过定义在单独的 XML 名字空间中的可扩展元素来创建这种类型的元数据。
这两种格式在结构上的主要区别必须要看其 item、image 和 textinput 节点的表示形式。RSS 1.0 中,channel 元素包含对 item、image 和 textinput 节点的引用,这些节点存在于 channel 节点本身之外。这样在 channel 和 所引用的节点之间建立了一种 RDF 关联。如 Figure 1 所示,channel 元素与一个 image 元素以及两个 item 元素关联。RSS 2.0 中,item 元素只是在 channel 元素中连续排放(如 Figure 2 所示)。item 元素包含实际的新闻项信息。item 的结构在两个版本中是相同的。item 元素通常包含 title、link 和 description 元素,如下代码所示:
<item>
<title><!-- 项标题 --></title>
<link><!-- 项 URL --></link>
<description><!-- 简要描述 --></description>
<!-- 可选的/可扩展的元素 -->
</item>
在 RSS 1.0 中,title 和 link 是必须的,description 是可选的。而在 RSS 2.0 中,title 或 description 必须提供其中的一个;其它均可选。这些只是定义在 RSS 1.0 中的 item 元素。RSS 2.0 提供几个其它可选元素,其中有 author、category、comments、enclosure、guid、pubDate 和 source。RSS 1.0 获取这样的元数据是通过定义在单独的 XML 名字空间中称为 RSS 模块的可扩展元素来实现的。例如,在 Figure 1 中,item 的日期是用 Dublic Core 模块的 <dc:date> 元素表示的。
有关不同格式的完整信息请参考 RSS 1.0 和 2.0 规范。
那么,何为 Atom?
Atom 乃一项目的名字,主要是开发一个新的网志摘要格式以解决目前 RSS 存在的问题(混乱的版本号,不是一个真正的开放标准,表示方法的不一致,定义贫乏等等)。Atom 希望提供一个清晰的版本以解决每个人的需要,其设计完全不依赖于供货商,任何人都可以对之进行自由扩展,完整详细说明。
当今许多 Blog 引擎已经支持当前的摘要格式。Figure 3 是一个Atom 0.3 提要例子,它与前述 Figure 1 及 Figure 2 RSS 提要等同。注意 Atom 提要用名字空间限定的,但它不使用 RDF。这使得 Atom 和 RSS 1.0 及 RSS 2.0 在某些地方有相似之处。Atom 在未来是否能被接受,人们拭目以待。
除了定义新的摘要格式之外,Atom 还希望定义一个标准的档案文件格式和一个标准的网志编辑 API(Atom API)。有关 Atom 详细规范以及其它 Atom 资源请访问 The Atom Project。
转自:http://blog.csdn.net/qsky001/article/details/4759580
1. 首先先要获取你的debug keystore位置:
打开Eclipse--->Windows--->Preferences--->Android--->Build
查看默认的debug keystore位置,我的是C:\Documents and Settings\MYNAME \.android\debug.keystore
2. 在cmd中执行:
keytool -list -keystore ~/.android/debug.keystore
或者是:
keytool -list -alias androiddebugkey -keystore "路径\debug.keystore " -storepass android -keypass android
双引号中的为你keystore位置, 注意,你的双引号一定要有,否则就会报错:keytool error: java.lang.RuntimeException: Usage error, and is not a legal command
执行结果:
androiddebugkey, May 4, 2009, PrivateKeyEntry,
Certificate fingerprint (MD5): XX:XX:XX:XX:XX:XX:XX:XX.............
这里的XX:XX:XX:XX:XX:XX:XX:XX.............就是你的认证指纹
3. 打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html
填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
感谢您注册 Android 地图 API 密钥!
您的密钥是:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4. 使用得到的apiKey:
在layout中加入MapView
<com.google.android.maps.MapView
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="XXXXXXXXXXXXXXXXXXXXXXXXXXXX" />
一:安装fastDFS
1: 安装包得下载地址为http://code.google.com/p/fastdfs/downloads/list ,我这边由于项目需求,需要安装的版本是fastDfsV1.29。
2:解压fast在 FastDFS_v1.29.tar.gz 所在文件夹下执行:
tar vxzf FastDFS_v2.02.tar.gz
3: 如果要使用 http 服务,因此编辑 /make.sh 文件,找到
#WITH_HTTPD=1
修改成
WITH_HTTPD=1
以支持 http
4:./make.sh
./make.sh install
5: 如果运行如上命令后,在命令行信息最后看到类似
#ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so
#ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so
sh ./fdfs_link_library.sh
说明安装成功。
二:fastDFS的配置
FastDFS的配置文件在%FastDFS%/conf目录下,其中包括
Client.conf 客户端上传配置文件
Storage.conf 文件存储服务器配置文件
Tracker.conf 负责均衡调度服务器配置文件
http.conf http服务器配置文件
配置文件需要根据服务器环境的不同,进行不同的配置,具体可以参考FastDFS官方的安装配置文档http://code.google.com/p /fastdfs/wiki/Setup,以及FastDFS原理介绍文档http://code.google.com/p/fastdfs/wiki /Overview
在本例中,Tracker Server,Storage Server都安装在一台服务器上,IP:10.0.2.15
1、配置及启动Tracker Server
A、修改%FastDFS%/conf/tracker.conf文件,修改如下
#可以自己指定目录位置,但目录必须存在,用于存储日志及storage server等信息,否则tracker server无法启动
#http支持
#默认4GB,如果空间不足会报no free space的异常,无法正常启动,建议暂时调小
#tracker server对storage server供服务的端口,使用默认的即可,也可以自定义
B、将http.conf文件拷贝到/etc/fdfs目录下,执行
注:为了支持http,必须将这个文件拷贝到此目录,否则无法启动,报param http.XXX not exist or is empty类似的错误
C、进入/usr/local/bin/目录,启动tracker服务器,执行
D、进入/home/soar/fastdfs_tracker/logs/trackerd.log查看tracker的启动日志,如果看到类似
恭喜你,tracker server已经启动成功!
2、配置及启动Storage Server
A、修改%FastDFS%/conf/storage.conf文件,修改如下:
#可以自定义,但必须存在此目录,用于存储storage相关的log、group内的相关信息
#必须指定
#修改成tracker server的IP和端口信息
#http支持
B、进入/usr/local/bin/目录,启动storage服务器,执行
C、进入/home/soar/fastdfs_tracker/logs/storage.log查看storage服务器启动日志,如果看到类似
恭喜你,storage server已经启动成功!
三 :测试使用
经过前面的按照、配置、启动,马上就可以看到FastDFS的效果了,我们先上传一个文件,然后再通过http下载。
一、上传文件
FastDFS安装包中,自带了客户端程序,通过程序可以进行文件上传。在使用这个客户端程序之前,首先需要配置client.conf,然后再进行文件上传及下载。
1、修改%FastDFS%/conf/client.conf文件,修改如下:
#可自定义,但此目录必须存在,用于存放文件上传log
#支持http
2、进入/usr/local/bin/目录,上传文件,执行
注:a.txt可以在/usr/local/bin/目录下自己创建一个
如果命令行反馈类似如下:
则说明上传文件成功。
二、下载文件
在浏览器中,输入上图中的url地址, tracker server会自动重定向到存储文件的storage server,文件下载成功。
至此,已经成功搭建了FastDFS,编写你自己的client来进行访问吧:)