RSS and Atom in Action: Web 2.0 Building Blocks
暫譯: RSS 與 Atom 實戰:Web 2.0 建構基石

Dave Johnson

  • 出版商: Manning
  • 出版日期: 2006-08-01
  • 售價: $1,580
  • 貴賓價: 9.5$1,501
  • 語言: 英文
  • 頁數: 300
  • 裝訂: Paperback
  • ISBN: 1932394494
  • ISBN-13: 9781932394498
  • 已絕版

買這商品的人也買了...

相關主題

商品描述

Description

RSS and Atom in Action is organized into two parts. The first part introduces the blog technologies of newsfeed formats and publishing protocols—the building blocks. The second part shows how to put to those blocks together to assemble interesting and useful blog applications.

In keeping with the principle behind Manning’s “In Action” series, this book shows the reader, through numerous examples in Java and C#, how to parse Atom and RSS format newsfeeds, how to generate valid newsfeeds and serve them efficiently, and howto automate blogging via web services based on the new Atom protocol and the older MetaWeblog API. The book also shows how to develop a complete blog client library that readers can use in their own applications. The second half of the book is devoted to a dozen blog apps—small but immediately useful example applications such as a community aggregator, a file distribution newsfeed, a blog cross-poster, an email-to-blog gateway, Ant tasks for blogging software builds, and more.

 

Table of Contents

foreword xix
preface xxi
acknowledgments xxiii
about this book xxiv

Part 1 Programming the writable web   1

0 What you need to know first   3
0.1 What you need to know about Java or C# 4
0.2 What you need to know about web development 5
Web services 5
Java web development 5
C# web development 5
Running scheduled tasks 6
0.3 What you need to know about XML 6
Java XML tools 6
C# XML tools 6
0.4 Blog technology terminology 7
0.5 The components we’ll use 8
Blog application building blocks 8
0.6 Organization of the book 10
0.7 The Blogapps examples 14
0.8 Summary 15
1 New ways of collaborating   16
1.1 Research blogging 17
1.2 Status blogging 20
1.3 Build blogging 21
1.4 Blogging the business 22
1.5 Nina’s and Rangu’s grand plan 25
1.6 Summary 27
2 Development kick-start   28
2.1 Blog server setup 29
2.2 The Blog Poster example 31
Invoking Blog Poster 32
2.3 Blog Poster for Java 32
Running Blog Poster for Java 35
2.4 Blog Poster for C# 35
Running Blog Poster for C# 38
2.5 Summary 39
3 Under the hood   40
3.1 Anatomy of a blog server 41
Blog server data model 42
Anatomy of a blog entry 43
Users, privileges, and group blogs 45
Blog server architecture 46
3.2 Anatomy of a wiki server 49
Wiki server data model 49
Wiki server architecture 51
3.3 Choosing a blog or wiki server 52
Narrowing your choices 52
Comparing blog and wiki servers 53
3.4 Summary 55
4 Newsfeed formats   56
4.1 The birth of RSS 57
RSS 0.91 57
The elements of RSS 0.91 59
4.2 The RDF fork: RSS 1.0 61
The elements of RSS 1.0 62
Extending RSS 1.0 with modules 63
4.3 The simple fork: RSS 2.0 65
The elements of RSS 2.0 65
Enclosures and podcasting 67
Extending RSS 2.0 67
4.4 The nine incompatible versions of RSS 68
4.5 The new standard: Atom 70
Atom by example 70
Atom common constructs 71
The elements of Atom 73
Atom identifiers 74
The Atom content model 75
Podcasting with Atom 76
4.6 Summary 77
5 How to parse newsfeeds   79
5.1 The possibilities 80
5.2 Parsing with an XML parser 81
Parsing RSS 1.0 81
Parsing RSS 2.0 83
Parsing Atom 86
5.3 Parsing with a newsfeed library 91
The Universal Feed Parser for Python 91
The ROME newsfeed utilities 92
Jakarta Feed Parser for Java 93
The Windows RSS Platform 95
5.4 Developing a newsfeed parser 97
AnyFeedParser for Java 98
5.5 Fetching newsfeeds efficiently 104
HTTP conditional GET 104
Other techniques 106
5.6 Summary 108
6 The Windows RSS Platform   109
6.1 Windows RSS Platform overview 110
Browse, search, and subscribe with IE7 111
Components of the Windows RSS Platform 113
6.2 Managing subscriptions with the Common Feed List 117
Getting started with the Common Feed List 117
Creating subscriptions 120
Monitoring events 121
6.3 Parsing newsfeeds with the Feeds API 124
A simple newsfeed parsing example 125
Parsing extension elements and funky RSS 126
6.4 Windows RSS Platform newsfeed extensions 130
Common Feed (CF) extensions 131
Simple List Extensions (SLE) 134
Simple Sharing Extensions (SSE) 136
6.5 Summary 139
7 The ROME newsfeed utilities   140
7.1 Introducing ROME 141
How ROME works 142
ROME limitations 146
The ROME subprojects 146
7.2 Parsing newsfeeds with ROME 148
Parsing to the SyndFeed model 148
Parsing funky RSS 150
Parsing to the RSS model 152
Parsing to the Atom model 154
7.3 Fetching newsfeeds with ROME 158
How the ROME Fetcher works 158
Using the ROME Fetcher 159
7.4 Generating newsfeeds with ROME 161
7.5 Extending ROME 163
The ROME plug-in architecture 164
Adding new modules to ROME 166
Overriding ROME 171
7.6 Summary 176
8 How to serve newsfeeds   177
8.1 The possibilities 178
8.2 The basics 179
Which newsfeed formats to support? 179
How to indicate newsfeeds are available? 179
Static or dynamic? 181
Which generator? 182
Ensuring well-formed XML 182
Validating newsfeeds 183
8.3 File Depot examples 185
8.4 Generating newsfeeds with Java 186
Implementing the File Depot in Java 186
Generating the File Depot newsfeed in Java 187
Serving the File Depot newsfeed in Java 190
8.5 Generating newsfeeds with C# 192
Implementing the File Depot in C# 193
Generating the File Depot newsfeed in C# 193
Serving the File Depot newsfeed with C# 196
8.6 Serving newsfeeds efficiently 197
Server-side caching 197
Web proxy caching 198
Client-side caching 199
Compression 199
Caching and compression in a Java web application 199
Caching and compression in a C# Web application 202
8.7 Summary 205
9 Publishing with XML-RPC based APIs   206
9.1 Why XML-RPC? 207
Making a method call 207
9.2 The Blogger API 210
9.3 The MetaWeblog API 211
The same metadata as RSS 211
Six new methods that complement the Blogger API 212
9.4 Building a blog client with C# and XML-RPC 213
Why a blog client library? 213
Three blog client library interfaces 214
Implementing the blog client library in C# 217
9.5 Using the blog client library 224
9.6 Summary 225
10 Publishing with Atom   227
10.1 Why Atom? 228
Why not XML-RPC or SOAP? 228
10.2 How Atom protocol works 229
Discovery and collections 229
Atom protocol from the command line 230
Discovering Atom resources and services 231
Posting and updating blog entries 235
Posting and updating media files 238
10.3 Building a blog client with Atom protocol 240
Atom does more 240
Expanding the blog client interfaces 242
Atom blog client implementation 244
Atom blog client in action 245
10.4 Summary 246

Part 2 Blog apps   247

11 Creating a group blog via aggregation   249
11.1 Introducing Planet Tool 250
11.2 Configuring Planet Tool 251
11.3 Creating templates for Planet Tool 253
11.4 Running Planet Tool 256
11.5 Planet Tool object reference 256
11.6 Under the hood 259
11.7 Summary 260
12 Searching and monitoring the Web   261
12.1 Technorati.com: Conversation search engine 262
Subscribing to Technorati watchlists 264
Monitoring tags with Technorati 264
12.2 The Technorati API 265
Getting a Technorati API key 266
Calling the Technorati API 266
12.3 Other blog search services 271
12.4 Open Search: The future of search? 274
Open Search description format 274
Open Search result elements 275
Why Open Search? 276
12.5 Summary 276
13 Keeping your blog in sync   278
13.1 Designing Cross Poster for C# 279
Design limitations 280
13.2 Configuring Cross Poster for C# 280
13.3 The code for Cross Poster for C# 281
13.4 Running Cross Poster for C# and Java 285
13.5 Summary 285
14 Blog by sending email   286
14.1 Designing Mail Blogger for C# 287
14.2 Configuring Mail Blogger for C# 287
14.3 The code for Mail Blogger for C# 288
14.4 Running Mail Blogger for C# and Java 291
14.5 Summary 291
15 Sending a daily blog digest by email   292
15.1 Designing Blog Digest for C# 293
Design limitations 293
15.2 Configuring Blog Digest for C# 293
15.3 The code for Blog Digest for C# 294
15.4 Running Blog Digest for C# and Java 298
15.5 Summary 298
16 Blog your software build process   299
16.1 Blogging from Ant 300
Base blog task 301
Post blog entry task 304
Post blog resource task 306
16.2 Summary 308
17 Blog from a chat room   309
17.1 A wiki-blogging chatbot 310
Chat Blogger design 310
Chat Blogger guidelines 311
Chat Blogger configuration 312
Chat Blogger construction 313
Chat Blogger implementation 314
Running Chat Blogger 318
17.2 Summary 319
18 Distribute files podcast style   320
18.1 Designing FileCaster 321
The podcast server 322
18.2 Implementing FileCaster 323
18.3 FileCaster upload page 325
18.4 FileCaster newsfeed 330
18.5 Running FileCaster 332
18.6 Room for improvement 332
18.7 Summary 332
19 Automatically download podcasts   333
19.1 Designing FileCatcher 334
19.2 Implementing FileCatcher 335
19.3 Running FileCatcher for C# 338
19.4 Summary 339
20 Automatically validate newsfeeds   340
20.1 Getting started 341
Setting up Python 341
Setting up Feed Validator 341
20.2 Implementing auto-validator 342
20.3 Running auto-validator 344
Using Windows Scheduled Tasks 345
Using UNIX cron 346
20.4 Summary 346
21 The best of the rest   347
21.1 Monitor anything 348
Monitor the weather 348
Shop with your newsfeed reader 349
Use newsfeeds to monitor eBay auctions 350
Monitor upcoming events via calendar newsfeeds 350
Turn mailing lists into newsfeeds 351
21.2 Syndicate everything 351
Syndicate operating system and network events 352
Syndicate vehicle status 352
Syndicate your logs 352
21.3 Tag the Web 353
Create a tagged link blog with del.icio.us 353
Create a tagged photo blog with Flickr.com 353
Tag your blog entries with Technorati Tags 354
Geotag the Web 354
21.4 Aggregate yourself 355
Create an aggregated blog with Planet Tool 355
Mix your own newsfeeds with Feedburner.com 356
21.5 Get the word out 356
Bring your bloggers together with aggregation 356
Bring bloggers together with tagging 356
Track news and blogs to find the conversations 357
21.6 Open up your web site 357
Open up your site with newsfeeds, protocols, and tagging 357
Syndicate your search results with A9 Open Search 357
21.7 Build your own intranet blogosphere 358
Unite internal communities with aggregation 358
Build a folksonomy of your intranet 358
21.8 Blog your software project 358
Use newsfeeds to syndicate source code changes 359
Pull software documentation from a wiki 359
21.9 Summary 360
 
index 361 1

商品描述(中文翻譯)

**描述**

《RSS 和 Atom 實戰》分為兩個部分。第一部分介紹了新聞提要格式和發布協議的部落格技術——這些是基本構件。第二部分展示了如何將這些構件組合在一起,以組裝有趣且實用的部落格應用程式。

遵循 Manning 的「實戰」系列背後的原則,本書通過大量的 Java 和 C# 範例,向讀者展示如何解析 Atom 和 RSS 格式的新聞提要,如何生成有效的新聞提要並高效地提供它們,以及如何通過基於新 Atom 協議和舊 MetaWeblog API 的網路服務自動化部落格。書中還展示了如何開發一個完整的部落格客戶端庫,讀者可以在自己的應用程式中使用。書的後半部分專注於十幾個部落格應用程式——這些小型但立即有用的範例應用程式包括社群聚合器、檔案分發新聞提要、部落格交叉發佈器、電子郵件到部落格的網關、用於部落格軟體構建的 Ant 任務等。

**目錄**

前言 xix
序言 xxi
致謝 xxiii
關於本書 xxiv

**第一部分 可寫網路的程式設計 1**
0 你需要先知道的 3
0.1 你需要知道的 Java 或 C# 4
0.2 你需要知道的網路開發 5
- 網路服務 5
- Java 網路開發 5
- C# 網路開發 5
- 執行排程任務 6
0.3 你需要知道的 XML 6
- Java XML 工具 6
- C# XML 工具 6
0.4 部落格技術術語 7
0.5 我們將使用的組件 8
- 部落格應用程式的基本構件 8
0.6 本書的組織 10
0.7 Blogapps 範例 14
0.8 總結 15
1 新的協作方式 16
1.1 研究部落格 17
1.2 狀態部落格 20
1.3 建構部落格 21
1.4 商業部落格 22
1.5 Nina 和 Rangu 的宏偉計畫 25
1.6 總結 27
2 開發啟動 28
2.1 部落格伺服器設置 29
2.2 Blog Poster 範例 31
- 調用 Blog Poster 32
2.3 Java 的 Blog Poster 32
- 執行 Java 的 Blog Poster 35
2.4 C# 的 Blog Poster 35
- 執行 C# 的 Blog Poster 38
2.5 總結 39
3 內部運作 40
3.1 部落格伺服器的解剖 41
- 部落格伺服器數據模型 42
- 部落格條目的解剖 43
- 使用者、權限和群組部落格 45
- 部落格伺服器架構 46
3.2 維基伺服器的解剖 49
- 維基伺服器數據模型 49
- 維基伺服器架構 51
3.3 選擇部落格或維基伺服器 52
- 縮小選擇範圍 52
- 比較部落格和維基伺服器 53
3.4 總結 55
4 新聞提要格式 56
4.1 RSS 的誕生 57
- RSS 0.91 57
- RSS 0.91 的元素 59
4.2 RDF 分支:RSS 1.0 61
- RSS 1.0 的元素 62
- 使用模組擴展 RSS 1.0 63
4.3 簡單分支:RSS 2.0 65
- RSS 2.0 的元素 65
- 附件和播客 67
- 擴展 RSS 2.0 67
4.4 九個不相容的 RSS 版本 68
4.5 新標準:Atom 70
- 透過範例了解 Atom 70
- Atom 的常見結構 71
- Atom 的元素 73
- Atom 標識符 74
- Atom 內容模型 75
- 使用 Atom 進行播客 76
4.6 總結 77
5 如何解析新聞提要 79
5.1 可能性 80
5.2 使用 XML 解析器解析 81
- 解析 RSS 1.0 81
- 解析 RSS 2.0 83
- 解析 Atom 86
5.3 使用新聞提要庫解析 91
- Python 的 Universal Feed Parser 91
- ROME 新聞提要工具 92
- Java 的 Jakarta Feed Parser 93
- Windows RSS 平台 95
5.4 開發新聞提要解析器 97
- Java 的 AnyFeedParser 98
5.5 高效獲取新聞提要 104
- HTTP 條件 GET 104
- 其他技術 106
5.6 總結 108
6 Windows RSS 平台 109
6.1 Windows RSS 平台概述 110
- 使用 IE7 瀏覽、搜尋和訂閱 111
- Windows RSS 平台的組件 113
6.2 使用 Common Feed List 管理訂閱 117
- 開始使用 Common Feed List 117
- 創建訂閱 120
- 監控事件 121
6.3 使用 Feeds API 解析新聞提要 124
- 一個簡單的新聞提要解析範例 125
- 解析擴展元素和奇特的 RSS 126
6.4 Windows RSS 平台新聞提要擴展 130
- Common Feed (CF) 擴展 131
- 簡單列表擴展 (SLE) 134
- 簡單共享擴展 (SSE) 136
6.5 總結 139
7 ROME 新聞提要工具 140
7.1 介紹 ROME 141
- ROME 的工作原理 142
- ROME 的限制 146
- ROME 的子專案 146
7.2 使用 ROME 解析新聞提要 148
- 解析到 SyndFeed 模型 148
- 解析奇特的 RSS 150
- 解析到 RSS 模型 152
- 解析到 Atom 模型 154
7.3 使用 ROME 獲取新聞提要 158
- ROME 獲取器的工作原理 158
- 使用 ROME 獲取器 159
7.4 使用 ROME 生成新聞提要 161
7.5 擴展 ROME 163
- ROME 插件架構 164
- 向 ROME 添加新模組 166
- 覆蓋 ROME 171
7.6 總結 176
8 如何提供新聞提要 177
8.1 可能性 178
8.2 基本知識 179
- 支持哪些新聞提要格式? 179
- 如何指示新聞提要可用? 179
- 靜態還是動態? 181
- 使用哪個生成器? 182
- 確保 XML 格式正確 182
- 驗證新聞提要 183
8.3 File Depot 範例 185
8.4 使用 Java 生成新聞提要 186
- 在 Java 中實現 File Depot 186
- 在 Java 中生成 File Depot 新聞提要 187