Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Ultimate mashup – Các dịch vụ Web và Web ngữ nghĩa (semantic Web), Phần 1 ppsx
MIỄN PHÍ
Số trang
71
Kích thước
492.2 KB
Định dạng
PDF
Lượt xem
1576

Ultimate mashup – Các dịch vụ Web và Web ngữ nghĩa (semantic Web), Phần 1 ppsx

Nội dung xem thử

Mô tả chi tiết

Ultimate mashup – Các dịch vụ

Web và Web ngữ nghĩa

(semantic Web), Phần 1: Sử

dụng kết hợp các dịch vụ Web

Khám phá các khái niệm về Mashup và xây dựng một Mashup đơn giản.

Nicholas Chase, Tác giả tự do, Site Dynamics Interactive Communications

Tóm tắt: Khi dịch vụ Web phát triển rộng rãi, các công ty dịch vụ Web và các

nhà phát triển ứng dụng web đã tạo ra những sáng kiến mới cùng với các dữ liệu

của chúng, bổ sung vào các ứng dụng đơn lẻ. Các nhà phát triển ứng dụng đang

tạo ra các Mashup, các ứng dụng kết hợp dữ liệu từ nhiều loại dịch vụ để tạo ra

những điều mới mẻ. Loạt bài này trình bày sự hình thành Mashup căn bản theo

trình tự thời gian, một ứng dụng mà không chỉ lưu dữ liệu từ các Mashup khác

nhau mà còn sử dụng các kỹ thuật ngữ nghĩa cho phép người dùng tạo ra Mashup

của riêng họ bằng cách thay đổi các dịch vụ hay thậm chí bằng cách chọn các dữ

liệu. Phương pháp này dùng trình Java (TM)™ kết hợp các servlet, JSP, dự án mã

nguồn mở Jena và các khả năng mới XML của DB2. Ở phần này Nicholas Chase

giới thiệu các khái niệm Mashup, cho bạn thấy các thức hoạt động của chúng và

cách xây dựng một phiên bản Mashup đơn giản.

Trước khi bạn bắt đầu

Bài viết này dành cho các nhà phát triển muốn học thêm về cách sử dụng và kết

hợp các dịch vụ Web từ góc độ XML, và cách xuất các dữ liệu đó lên Web. Tất cả

các dịch vụ được thảo luận ở trong bài viết đều là các dịch vụ REST nhưng các

khái niệm tương tự như đối với các dịch vụ SOAP. Bài viết này xem như bạn có

kiến thức cơ bản về lập trình Java™ XML, phát triển Web, và các khái niệm cơ

bản về các dịch vụ Web. Nếu bạn cần tìm hiểu lại ba chủ đề này hãy xem tài

nguyên để biết thêm chi tiết.

Về các bài viết này

Dường như bạn không thể vào Web mà không vào một trang Web hoặc là cung

cấp cho bạn quyền truy cập dữ liệu của nó thông qua hàm API dựa trên dịch vụ

web (Web-services-based API) hoặc là sử dụng dữ liệu từ trang web khác lấy từ

một API dựa trên dịch vụ web. Khi bạn xem xét lợi thế của việc sử dụng các thông

tin sẵn có trong ứng dụng của riêng bạn thì điều đó không hề gây ngạc nhiên. Đây

chỉ là vấn đề thời gian trước khi ai đó bắt đầu kết hợp dữ liệu từ các hệ thống khác

nhau để tạo ra một thứ hoàn toàn mới. Những ứng dụng này được gọi là các

Mashup, là hiện tượng thịnh hành nhất trên Web, từ các trang cộng đồng

(community-based) đến các trang tìm kiếm đặc biệt, và tới các Mashup từng xuất

hiện.

Hầu hết các Mashup rất hữu ích, nhưng chúng có một đặc điểm chung là chúng

được tạo ra cho một loạt các dịch vụ riêng biệt, và nếu một trong các dịch vụ đó

thay đổi hoặc dịch vụ riêng biệt của một loại hình cụ thể nào đó thay đổi thì bạn sẽ

có nhiều việc phải làm với nó.

Mục đích của loạt bài viết này nhằm tạo ra một ứng dụng Mashup tốt đến mức mà

người dùng có thể thêm hoặc bớt các dịch vụ nếu muốn, và hệ thống sẽ biết cách

giải quyết vấn đề này. Quá trình thực hiện sẽ diễn ra như sau:

Ở phần 1 giới thiệu khái niệm các Mashup, trình bày cách ứng dụng hoạt động và

xây dựng một phiên bản đơn giản nhất của một Mashup. Những sự cố trình bày

nghiêm trọng liên quan tới việc tạo ra hàng loạt các cuộc gọi trên Web cũng sẽ

được chỉ ra.

Ở phần 2, bạn giải quyết một số vấn đề bằng cách sử dụng tính năng mới

pureXML của DB2 để xây dựng một thẻ XML để lưu giữ các yêu cầu trước đó và

cũng để cho phép bạn truy lục các thông tin cụ thể.

Về cơ bản, bạn sẽ cần dùng các bản thể luận (ontologies), hoặc các từ vựng để

định nghĩa các khái niệm và mối quan hệ giữa chúng, vì thế ở phần 3 bạn bắt đầu

tiến trình này bằng cách tìm hiểu về RDF và RDFs, hai thành phần cơ bản nhất

trong từ ngôn ngữ Web (OWL) sẽ được đề cập đến trong phần 4. Ở phần 5 bạn lấy

các bản thể luận mà bạn tạo được ở phần 4 và sử dụng nó để cho phép người dùng

thay đổi nguồn gốc thông tin.

Phần 6 có thể nói là rất hấp dẫn đối với bạn. Ở đây, bạn có một ứng dụng đang

chạy và một khung làm việc để hệ thống có thể sử dụng lập luận ngữ nghĩa để hiểu

các dịch vụ tại điểm sử dụng của nó. Ở phần này, bạn cung cấp cho người dùng

quyền kiểm soát, cho phép người dùng lựa chọn dịch vụ trong bản thể luận và

chọn ra các dữ liệu để dùng cho một Mashup thông thường.

Về bài viết này

Thông qua bài viết này bạn sẽ học được cách tạo một ứng dụng để có thể truy lục

và hiển thị các thông tin dịch vụ Web từ một đặc điểm chung nào đó. Nói cách

khác, việc thêm các dịch vụ mới chính là một phần thực hành cấu hình còn hơn cả

lập trình.

Bài viết này hướng dẫn bạn cách:

 Yêu cầu dữ liệu từ một dịch vụ Web REST

 Dễ dàng xâu chuỗi dữ liệu XML để xuất hay hiển thị

 Tạo một khuôn mẫu XML và sau đó thay thế các phần tử và các thuộc tính

đã định trước bằng các dữ liệu động.

 Thêm các nút XML từ các loại văn bản vào một loại văn bản xuất

 Tạo một hệ thống hiện thị nhiều dịch vụ Web.

 Tạo một hệ thống mà ở đó một dịch vụ Web có thể cung cấp thông tin dựa

trên dữ liệu xuất của một dịch vụ Web thứ hai

Bài viết này sử dụng ngôn ngữ Java nhưng các khái niệm thì giống các ngôn ngữ

lập trình và hệ điều hành khác.

Các điều kiện tiên quyết

Bạn cần phải cài đặt và kiểm tra các phần mềm sau đây nhằm tuân theo các mã

trong bài viết này

 Apache Tomcat hoặc các công cụ servlet khác: Bài viết này giả định rằng

bạn sẽ xây dựng các ứng dụng Web sử dụng các servlet, vì thế bạn sẽ cần

có công cụ servlet như là Apache Tomcat. Nếu bạn chọn cách xây dựng

ứng dụng sử dụng môi trường khác thì hãy đảm bảo chắc chắn rằng bạn có

phần mềm thích hợp trong tay. Hãy tải phần mềm apache-tomcat-5.5.17.zip

và cài đặt nó vào trong một thư mực bất kỳ (Chú ý: không để dấu cách khi

viết tên thư mục).

 Java: bài viết này được xây dựng cùng Apache Tomcat 5.5, cần có Java 1.5

hoặc các phiên bản mới hơn. Tải phần mềm J2SE SDK.

 Để tiến hành công việc thuận lợi hơn bạn có thể sử dụng một IDE như

Eclipse hoặc IBM ®Rational™ Web Developer cho việc khai thác của bạn.

Bạn có thể tải Eclipse tại Eclipse.org tải phiên bản thử nghiệm của Rational

Web Developer hoặc dùng môi trường khai thác thông dụng của bạn. Bạn

sẽ không thể làm được gì thú vị trừ khi liên quan tới tài liệu thu thập và sự

triển khai của mình.

Ở các phần 2, 4, 5, và 6 của loạt bài viết bạn sẽ cần:

 IBM ®DB2® 9 (trước đây gọi là “Viper”): Các cơ sở dữ liệu liên quan bao

gồm các khả năng đáng kể của XML mà bạn sẽ cần biết khi đọc bài viết.

Bạn có thể tải về phiên bản thử nghiệm DB2 9: DB2 Enterprise 9 hoặc DB2

Express-C 9 phiên bản dữ liệu máy chủ DB2 Express 9 miễn phí.

Tổng quan

Trước khi bắt tay vào với công việc này bạn hãy tìm hiểu qua xem bạn đang cố

gắng làm điều gì.

Tại sao lại là các dịch vụ Web?

Hãy tin rằng bạn có thể định nghĩa được chúng, các dịch vụ Web đã từng là một

vấn đề rất nổi cộm cách đây hơn một thập kỷ nhưng bây giờ thậm chí bạn còn

được nghe đến nhiều hơn thế, đặc biệt là trên các trang Web. Tại sao lại thế? Vì nó

liên quan tới mức độ phát triển của Web tại thời điểm này.

Các dịch vụ Web là cách gửi thông tin qua lại giữa các máy chủ ở các mạng khác

nhau. Trong hầu hết các trường hợp, các thông tin qua lại là XML, chính XML

cung cấp một hệ điều hành và một bộ dữ liệu ngôn ngữ lập trình riêng biệt. Nói

cách khác, một máy chủ chạy một ứng dụng Perl trên Linux có thể gửi thông tin

thông qua Internet tới một máy chủ chạy ứng dụng Java trên Windows, và hiển

nhiên cả hai bên đều hiểu các thông tin này.

Lý do mà dịch vụ Web trở nên quan trọng là thế hệ mà theo một câu thần chú Ấn

độ "Thông tin cần được tự do" đã biến một sinh viên thất nghiệp chỉ trong một

đêm trở thành một một nhà phát kiến trong ngành công nghiệp thông tin. Điều này

dẫn tới một suy nghĩ là nếu ứng dụng Web của bạn không có một hàm API dựa

trên các dịch vụ web để cho phép các dịch vụ khác sử dụng các dữ liệu của bạn thì

bạn sẽ bị coi là lạc hậu, và có lẽ là một kẻ đáng nghi. Đôi khi điều tệ nhất bạn có

thể nói về một trang Web hay một ứng dụng là "Dịch vụ Web thật tuyệt vời nhưng

chúng cũng là một khu vườn được rào kín"

Và cuối cùng, một ứng dụng sẽ không được coi là tốt trừ khi nó để cho tất cả mọi

người có thể dùng nó thông qua các loại API.

SOAP với REST và XML-RPC

Bạn có một API nhưng không có nghĩa là API này giống API của những người

khác. Có khá nhiều lựa chọn tồn tại và không có chuẩn riêng biệt nào được chọn ra

mặc dù tính phổ biến của một loại API hay các thay đổi trong các quan điểm thông

thường (thường là lựa chọn của chuyên viên thiết kế). Trong nhiều trường hợp,

một ứng dụng cho phép truy cập thông qua một hoặc nhiều loại API.

Tại thời điểm này, các dạng API thông dụng nhất là:

 REST: Mặc dù không phải là dạng xuất hiện đầu tiên nhưng REST nhanh

chóng trở nên phổ biến vì sự đơn giản của nó. Tất cả những gì cần để thực

hiện được một yêu cầu chỉ là một URL. XML sẽ được gửi đáp trả tới một

yêu cầu HTTP, giống như một trang Web.

 SOAP: Giao thức là phương tiện chính ở đây, SOAP cung cấp thẳng cách

đưa ra một yêu cầu nhưng cách này hơi mạnh so với API. Và cách này cũng

khá phức tạp khi sử dụng. Có nghĩa là, có nhiều loại bộ dụng cụ để làm cho

tiến trình dễ dàng hơn và các dụng cụ như là bộ chuyển đổi ngôn ngữ mô tả

dịch vụ Web sang mã nguồn tạo cho SOAP là một lựa chọn phổ biến.

 XML-RPC: Hơi phức tạp hơn REST nhưng lại đơn giản hơn SOAP, XML￾RPC là một lựa chọn thích hợp cho các nhà lập trình thích phong cách

Remote Procedure Call (Gọi thủ tục điều khiển từ xa) của nó.

 JavaScript: Xu hướng mới nhất sử dụng API cho các ứng dụng mang lại

một thư viện miễn phí JavaScript là cách duy nhất để truy cập dữ liệu. Cách

làm này cho phép mọi người để dữ liệu trên các trang Web của họ một cách

dễ dàng nhưng lại hạn chế việc tích hợp với các dịch vụ khác. Trong vài

trường hợp, các dữ liệu từ các dịch vụ khác có thể được cung cấp cho

JavaScript API, nhưng cung cấp dữ liệu từ JavaScript API tới các dịch vụ

khác rất khó, có khi là không thể. Nghĩa là, tìm kiếm các giới hạn này được

gọi là "vườn rào kín" và để truy cập làm nhẹ đi bớt phần nào những hạn

chế.

Bây giờ, trừ một số trường hợp JavaScript APIs ngoại lệ, tất cả các APIs này đều

dựa trên khái niệm gửi XML tới một yêu cầu, nghĩa là nếu bạn xây dựng ứng dụng

của bạn trên ý tưởng XML nhận, về căn bản bạn sẽ có khả năng sử dụng tất cả mọi

thứ.

Để mọi thứ đơn giản hơn chúng ta hãy dùng REST, mặc dù các khái niệm này có

thể áp dụng cho bất kỳ ba lựa chọn đầu tiên nào.

Mashup là gì?

Mục đích cuối cùng của tất cả các thông tin đưa ra ở đây là giúp cho người dùng

có thể sử dụng các thông tin đó. Trong một số trường hợp nó có thể không diễn ra

hoàn toàn theo như ý bạn muốn. Ví dụ, Amazon Light chứa danh sách các sản

phẩm do Amazon.com bán (xem Tài nguyên), nhưng nó lại kết hợp các danh sách

đó với các dữ liệu lấy từ Google, Yahoo!, Del.icio.us, Blogger, và thậm chí cả

DropCash. ActorTracker (xem tài nguyên) kết hợp Amazon, eBay, và các dữ liệu

chuyển đổi khác. ChicagoCrime.org công khai các số liệu trên một bản đồ của

Google.

Thậm chí bạn có thể theo kịp các Mashup mới bằng việc đọc (hay đặt mua)

MashupFeed.com, ở đó có liệt kê danh sách các Mashup mới được ưa chuộng

bằng API. Ở đó cũng có một danh sách dài các API có sẵn để tương tác với các

Mashup mới trong trường hợp bạn muốn tạo Mashup của riêng mình.

Nói một cách cơ bản, một Mashup là một sự kết hợp thông in từ một hay nhiều

nguồn, trộn chúng lại theo cách bạn sẽ tạo ra một thứ mới mẻ hơn hoặc có ích hơn.

Mục đích toàn diện

Một điều mà các Mashup này chung nhau đó là chúng được tạo ra theo một mục

đích nhất định với rất nhiều sự lựa chọn - ví như loại dịch vụ nên dùng cách truy

cập dữ liệu, v.v..- đều được mã hóa trong ứng dụng. Mục đích của bạn là thay đổi

chúng. Bạn muốn tạo một ứng dụng cho phép người dùng tự đưa ra lựa chọn của

mình hay chuyển từ Google sang Yahoo!, hay từ Barnes và Noble sang

Amazon.com.

Bạn cũng muốn người dùng có khả năng tạo ra diều gì đó hoàn toàn mới mẻ mà

không phải lập trình.

Để điều đó xảy ra bạn cần làm một số việc sau:

1. Tạo một cấu trúc linh hoạt cho Mashup của bạn cho phép các dịch vụ có thể

được thay đổi dễ dàng.

2. Tạo một hệ thống lưu giữ cho phép bạn dễ dàng lưu và trộn dữ liệu.

3. Tạo một bản thể luận cho phép ứng dụng hiểu các dữ liệu mà nó đang xử

lý. Nói cách khác, ứng dụng đó hiểu một giá trị hoặc một vị trí là gì, ít nhất

là trong mối tương quan với các dữ liệu khác.

4. Tìm cách sử dụng bản thể luận đó một cách có hệ thống.

5. Cho người dùng cách tương tác với các dữ liệu khác để tạo ra các Mashup

mới.

Bạn sẽ có thể làm được tất cả những việc này trong loạt bài viết này.

Những việc cần làm đầu tiên

Trong bài viết này, để bắt đầu tiến trình đó bạn sẽ tạo một Mashup nhỏ để thực

hiện các đặc điểm này.

Đầu tiên, bạn hiển thị các thông tin cơ bản do một dịch vụ REST gửi lại. Sau đó

bạn sẽ tiếp tục tạo một khuôn mẫu XML cho phép bạn kiểm soát xem từng kết quả

REST sẽ hiện ra như thế nào.

Từ đây, bạn sẽ mở rộng hệ thống một cách đơn giản để hiển thị thông tin từ nhiều

dịch vụ khác nhau. Ví dụ, bạn sẽ thấy kết quả từ cả Yahoo! và Flickr.

Cuối cùng, bạn sẽ cho phép hệ thống trình bày nhiệm vụ phức tạp hơn của Mashup

khi hiển thị thông tin từ một API dựa trên thông tin do một API khác gửi lại. Ví

dụ, bạn sẽ cung cấp URLs do Yahoo! gửi trả lại tới dịch vụ Web Technorati để

kiểm tra xem có bao nhiêu mục trên trang thông tin cá nhân (blog) đề cập tới từng

URL.

Tải ngay đi em, còn do dự, trời tối mất!