Ultimate mashup – Các dịch vụ Web và Web ngữ nghĩa, Phần 5: Thay đổi các dịch vụ Web Tóm tắt: Loạt bài viết này trình bày chi tiết việc tạo ra một ứng dụng Mashup cho phép kiểm soát các dữ liệu được hiển thị với người sử dụng. Bây giờ bạn biết làm thế nào để tạo một bản thể luận (ontology) để xác định khái niệm đại diện của một dịch vụ, bạn có thể cho phép người dùng lựa chọn dịch vụ mà họ muốn sử dụng Trước khi bắt đầu Đây là bài viết cho các...
Ultimate mashup – Các dịch vụ Web Web ngữ nghĩa, Phần 5: Thay đổi dịch vụ Web Tóm tắt: Loạt viết trình bày chi tiết việc tạo ứng dụng Mashup cho phép kiểm soát liệu hiển thị với người sử dụng Bây bạn biết làm để tạo thể luận (ontology) để xác định khái niệm đại diện dịch vụ, bạn cho phép người dùng lựa chọn dịch vụ mà họ muốn sử dụng Trước bắt đầu Đây viết cho nhà phát triển, người muốn tìm hiểu làm để sử dụng thể luận dùng API - cụ thể, trường hợp này, Jena API người muốn xem làm thể luận xử lý ngữ nghĩa khái niệm khác hữu dụng giới ứng dụng thực Nó sử dụng thể luận bạn phần và tích hợp vào Mashup bạn xây dựng phần 1, nhằm cung cấp cho người dùng lựa chọn dịch vụ sử dụng Bài viết giả định bạn quen với khái niệm XML, khung mô tả tài nguyên (Resource Description Framework - RDF), thể luận, ngôn ngữ thể luận Web (Web Ontology Language - OWL) Nó sử dụng ngơn ngữ lập trình Java, bạn tìm kiếm khái niệm tìm hiểu làm việc nào, điều khơng quan trọng Nếu bạn cần điều khái niệm (trừ Java, tất nhiên) xem phần trước Bạn tìm thấy liên kết với chúng (và nguồn cho Java) Tài nguyên Về loạt viết Ngày nay, bạn lướt Web mà không sử dụng trang Web mà trang cung cấp quyền truy cập vào liệu thơng qua dịch vụ dựa API sử dụng liệu từ trang web khác lấy thông qua dịch vụ dựa API Khi bạn xem xét lợi việc sử dụng thơng tin có ứng dụng riêng bạn, có lẽ khơng đáng ngạc nhiên Nó vấn đề thời gian trước người bắt đầu kết hợp liệu từ hệ thống riêng biệt để tạo hồn toàn Những ứng dụng, gọi mashup, khu vực Web, từ trang web dựa cộng đồng đến trang web chuyên tìm kiếm, chí ánh xạ mashup Chúng hầu hết hữu dụng, có điểm chung phát triển cho thiết lập dịch vụ cụ thể Nếu ưu tiên cho loại dịch vụ cụ thể thay đổi, bạn có nhiều việc phải làm Mục đích viết tạo ứng dụng mashup đủ thông minh để người dùng bổ sung loại bỏ tiện ích muốn, hệ thống biết phải làm với chúng Được tiến hành sau: Phần giới thiệu khái niệm mashup, trình bày cách hoạt động chúng xây dụng phiên đơn giản Phần giải phần vấn đề cách sử dụng khả pureXML™ IBM® DB2® để xây dựng vùng nhớ đệm XML, cho phép bạn lưu yêu cầu trước đồng thời cho phép truy hồi thông tin cụ thể Sau cùng, bạn cần sử dụng thể luận từ định nghĩa cho khái niệm thuộc tính liên quan, nên Phần quy trình bắt đầu việc tìm hiểu RDF RDFS, hai thành phần OWL, đề cập phần Ở phần 5, bạn dùng đến thể luận tạo phần dùng chúng phép người dùng thay đổi nguồn thông tin Phần 6, thực thú vị Ở đây, bạn cung cấp cho người sử dụng quyền kiểm soát, cho phép họ xếp dịch vụ vào thể luận lựa chọn liệu sử dụng để tùy chỉnh Mashup Về viết Các phần trước giải thích mashup, bạn làm để sử dụng chúng cho việc tổ hợp liệu từ nhiều nguồn Mục đích cung cấp hệ thống thông minh, chẳng hạn khả chuyển đổi từ dịch vụ dịch vụ khác mà khơng cần phải biết xác thơng tin thể trước Để làm điều đó, bạn cần phải định nghĩa khái niệm "hiệu sách", "DVD", "giá cả", v.v Trong phần trước, bạn xây dựng ứng dụng mashup cho phép người dùng đưa yêu cầu thông tin chủ đề cụ thể từ khóa Tại viết này, bạn biết cách cho phép người dùng lựa chọn dịch vụ để sử dụng cho liệu Trong viết này, bạn học: Tải thao tác thể luận Trích dẫn cá thể từ thể luận cách lập trình Tiếp cận đặc tính giá trị từ thể luận tài liệu RDF Chuyển đổi kết dạng bắc cầu REST sang cá thể dạng thể luận tổng quát Hiển thị thông tin thể luận dạng HTML Trong viết này, bạn mã hóa thơng tin dịch vụ cá nhân tập tin Owl Sau đó, bạn sử dụng Jena API để trích xuất thơng tin sử dụng để thực yêu cầu REST Cuối cùng, bạn chuyển đổi phản hồi REST vào hình thức chung, hiển thị trang HTML trước Các điều kiện tiên Bạn phải thực việc cài đặt phần mềm kiểm tra nhằm theo kịp với mã bài viết IBM® DB2® (Trước thường biết "Viper"): Cơ sở liệu liên quan có nhiều khả quan trọng XML, thứ bạn cần cho học Bạn tải phiên dùng thử DB2: DB2 Enterprise DB2 Express-C 9, miễn phí liệu máy chủ DB2 Express Apache Tomcat máy chủ servlet: viết giả định bạn xây dựng ứng dụng web cách sử dụng servlet, đó, bạn cần động servlet Apache Tomcat Nếu bạn chọn để xây dựng ứng dụng cách sử dụng môi trường khác, cần đảm bảo bạn phải có sẵn phần mềm thích hợp Tải apache-tomcat-5.5.17.zip cài đặt vào thư mục mà khơng có dấu cách tên thư mục Java: Apache Tomcat 5.5, với viết xây dựng, yêu cầu Java 1.5 cao Tải từ J2SE SDK The Jena API: Jena API Java API thiết kế để làm việc với liệu RDF OWL Có thể tải từ http://jena.sourceforge.net/ Để thuận tiện hơn, dùng IDE Eclipse IBM Rational™ Web Developer phát triển bạn Có thể tải Eclipse từ Eclipse.org tải thử nghiệm Rational Web Developer, dùng mơi trường phát triển bạn u thích Bạn khơng nên q mà lĩnh vực biên soạn triển khai yêu cầu Tổng quan Trước bạn bắt tay vào mã mới, bạn cần phải nhớ lại loạt viết đề cập đến Bài viết trước: Xác định dịch vụ Tại thời điểm này, bạn có mã chứa ứng dụng làm việc, có nhiều khái niệm Trong Phần 1, bạn tạo ứng dụng bao gồm Mashup Người dùng nhập vào từ khóa mẫu để gửi vào servlet Servlet cấp từ khóa cho dịch vụ định nghĩa lớp Service Đối với dịch vụ nói trên, bạn cần xử lý kết dựa vào thông tin cung cấp khai báo tự xác định dịch vụ Ví dụ lớp Service xác định dịch vụ tin tức Yahoo trông sau (xem ví dụ 1) Ví dụ Xác định dịch vụ Service thisService = new Service(); Service subService = new Service(); subService.name = "Technorati"; subService.baseURL = "http://api.technorati.com/cosmos?key=mydeveloperskey&url="; subService.template = ""; subService.elementValues[0] = "inboundlinks"; subService.elementValues[1] = "bogus"; subService.attributeValues[0] = "thumbnail_url"; subService.recordExp = "/tapi/document/result"; thisService.name = "Yahoo! Search"; thisService.baseURL = "http://api.search.yahoo.com/NewsSear"+ "chService/V1/newsSearch?appid=mashupid&type=all&query="; thisService.template = ""+ ": (Linked times)
"; thisService.elementValues[0] = "Title"; thisService.elementValues[1] = "Summary"; thisService.attributeValues[0] = "ClickUrl"; thisService.recordExp = "/ResultSet/Result"; thisService.subSvc = subService; thisService.filterExp = "ClickUrl"; Lớp dịch vụ Service định nghĩa tên URL làm sở cho yêu cầu REST Khi bạn thực yêu cầu thực tế, bạn cần thêm từ khóa vào phần cuối Dịch vụ xác định biểu thức XPath đại diện cho vị trí cá thể ghi liệu kết Trong ví dụ đây, /ResultSet/Result biểu diễn cho phần Cuối cùng, dịch vụ bao gồm thông tin cho biết làm để hiển thị kết liệu Các mẫu đại diện HTML cho đầu ra, với yếu tố giá trị thuộc tính phục vụ phần giữ chỗ (placeholder) để thay liệu tìm thấy biểu thức XPath mảng elementValues giá trị thuộc tính attributeValues Trong trường hợp này, bạn thấy phần gắn thêm dịch vụ thứ hai thể thành tố dịch vụ subservice Các viết trước: tính tiên tiến Trong Phần 2, bạn phát triển phần ứng dụng tạo yêu cầu Web cho tất các yêu cầu dịch vụ - trình kéo dài đến vài phút phần mashup tạo nhiều yêu cầu - bạn bắt đầu lưu giữ kết yêu cầu sở liệu XML có sử dụng khả pureXML DB2 Điều cho phép bạn kiểm tra sở liệu cho yêu cầu cụ thể trước chạy Mashup tạo Nhưng mục tiêu tổng quát tạo dịch vụ thông minh – với người sử dụng yêu cầu kiểu liệu cụ thể - sách, giá - mashup hiểu làm để tìm cho dù vấn đề khơng phải bạn sử dụng dịch vụ Để làm điều này, Phần 4, bạn học cách tạo thể luận phân loại khái niệm Bằng cách này, bạn định nghĩa khái niệm sách, giá cả,… để cung cấp hình thức chung xếp từ bạn xử lý kiểu dịch vụ dịch vụ Ở phần 4, bạn tạo thể luận hiệu sách có nhiều khái niệm, định nghĩa mà bạn tìm thấy hiệu sách điện tử, sách, DVD, cho nhiều khái niệm tìm kiếm từ lưu trữ điện tử sách, DVD, tác giả phần hướng dẫn bạn bắt đầu thêm vào liệu thực tế cho thể luận Bản thể luận sở Bản thể luận cở sở trông tương tự sau (xem ví dụ 2) Ví dụ Bản thể luận sở ]> "))); Node hostRoot = hostDoc.getDocumentElement(); for (int k=0; k < svcs.length; k++){ Service svc = svcs[k]; Node renderedService = renderService( svc.getRESTRequest(ont)+query, svc, hostDoc); if (renderedService != null){ Element nameElement = hostDoc.createElement("h1"); nameElement.appendChild( hostDoc.createTextNode(svc.name)); Mã số thay đổi, cuối làm ngược trở lại Đầu tiên, thông tin cần thiết cho việc chuyển đổi phần Service, bạn cần phải chuyển phần lời gọi đến hàm renderService() Có nghĩa bạn cần phải bổ sung vào chữ ký renderService() Khi đấy, bạn chuyển tới phương thức getData() nơi mà bạn thực cần Trong phương thức getData(), bạn tạo DocumentBuilder (lại namespace-aware) Từ đó, bạn sử dụng để tạo nguồn DOMSource, lần sử dụng Document tạo bạn phân tách truy vấn Từ đó, tất tiếp tục trước ngoại trừ bảng định kiểu đến từ Service Sau có kết quả, bạn lấy lại DOM Document từ sử dụng phương thức getNode() Khi bạn có nó, bạn tiếp tục trước đây, lưu liệu vào sở liệu chuyển quay lại ứng dụng thể chưa có xảy với Điều chỉnh tham số dịch vụ Nếu bạn chạy servlet, nhiên, bạn thấy khơng thu kết Tại sao? Do thời điểm servlet cố gắng nhúng vào liệu từ /ItemSearchResponse/Items/Item/ItemAttributes/Title tương tự vào mẫu, liệu khơng cịn tồn bạn chuyển hóa vào dạng thức Vì để thực hiện, bạn cần điều chỉnh biểu thức XPath (xem ví dụ 32): Ví dụ 32 Điều chỉnh biểu thức XPath http://webservices.amazon.com/onca/xml //Book by ]]> itemDescription!Author itemDetailURL Title Giờ bạn tìm kiếm liệu kiểu //Book/itemDescription tồn kiểu dạng liệu chuyển hóa, thứ trơng hồn chỉnh Kết cuối trơng giống hình 4: Hình Kết cuối Tổng kết Và từ bạn tới đâu Mục đích viết điều chỉnh ứng dụng để người dùng lựa chọn loại dịch vụ mà họ muốn khoảng thời gian định hồn thành việc Bạn tạo nên số lượng hiệu sách dựa REST cho người sử dụng cách đơn giản thêm vào thông tin chúng tệp thể luận Bạn mở rộng dịch vụ thành loại dịch vụ khác tệp Tất cần làm bổ sung chúng vào thể luận thay đổi kiểu mà bạn tìm kiếm bạn tạo nên mẫu Chúng ta chưa thảo luận dịch vụ phụ viết này, vấn đề khơng cịn đủ chỗ Các dịch vụ phụ hoạt động trước Chúng ta chưa đề cập tìm kiếm thơng tin ngơn ngữ phát triển trước Bạn lấy mã viết sử dụng chúng để tìm kiếm, sách giá thấp sở liệu, độc lập với dịch vụ chỗ liệu lấy lại, sử dụng công nghệ mà bạn học Phần Trong bài viết này, bạn tạo cho người dùng hội lựa chọn từ số lượng hạn chế dịch vụ xác định kiểu định tùy chọn, lấy lại liệu thơ trả lại liệu thể luận đánh dấu hình thức ngơn ngữ Ở Phần bạn học cách làm để tạo cho người dùng lựa chọn loại dịch vụ sử dụng loại liệu trình bày làm để trình diễn liệu trang web ... bạn thấy phần gắn thêm dịch vụ thứ hai thể thành tố dịch vụ subservice Các viết trước: tính tiên tiến Trong Phần 2, bạn phát triển phần ứng dụng tạo yêu cầu Web cho tất các yêu cầu dịch vụ - q... ứng dụng bao gồm Mashup Người dùng nhập vào từ khóa mẫu để gửi vào servlet Servlet cấp từ khóa cho dịch vụ định nghĩa lớp Service Đối với dịch vụ nói trên, bạn cần xử lý kết dựa vào thông tin cung... tổng quát tạo dịch vụ thơng minh – với người sử dụng yêu cầu kiểu liệu cụ thể - sách, giá - mashup hiểu làm để tìm cho dù vấn đề bạn sử dụng dịch vụ Để làm điều này, Phần 4, bạn học cách tạo thể