Chương 1 – TỔNG QUAN 1.1 Công nghệ Web Service 1.1 Giới thiệu Web Service Web services là một dạng ứng dụng Web mới. Các ứng dụng này có các tính chất như: độc lập, tự diễn tả, được mô đun hóa… Chúng có thể được định vị và được triệu gọi thông qua môi trường Web. Web services có thể thực hiện các chức năng từ đơn giản tới các xử lý nghiệp vụ phức tạp… Từ quan điểm của người xây dựng phần mềm, một Web Services có thể được coi là kiến trúc hướng dịch vụ, nó bao gồm tập các dịch vụ mà có thể truyền thông với nhau và với các client đầu-cuối thông qua các giao diện hoàn toàn xác định. Một trong những lợi thế của kiến trúc hướng dịch vụ là nó cho phép phát triển các ứng dụng được liên kết lỏng lẻo mà có thể được phân tán và truy cập từ bất kỳ client nào thông qua mạng.2 Kiến trúc và các thành phần Web Service 1.1 Kiến trúc hướng dịch vụ Web services đưa ra một tài nguyên thông tin có thể được truy nhập thông qua Web bởi các ứng dụng khác và quá trình giao tiếp dựa trên các giao thức chuẩn.
Điểm khác biệt giữa Web services và các ứng dụng dựa trên Web khác là: Web services hỗ trợ giao tiếp ứng dụng đến ứng dụng. Các ứng dụng Web-based hỗ trợ giao tiếp người-người (email, instant message) hoặc giao tiếp người-ứng dụng (browser). Web services được thiết kế cho phép các ứng dụng giao tiếp với nhau mà không cần sự trợ giúp hay can thiệp của con người. 14 WSA (Web services Architecture) là sự hội tụ của kiến trúc hướng dịch vụ SOA (Service-Oriented Architecture) và Web.
Web làm cho WSA độc lập hoàn toàn với nền tảng và ngôn ngữ. Web services có thể được triển khai bằng bất kỳ ngôn ngữ nào, trên bất kỳ nền nào từ thiết bị nhỏ nhất cho tới các siêu máy tính.1 biểu diễn mô hình hoạt động trong mô hình SOA.1: Mô hình kiến trúc hướng dịch vụ Ba thành phần cơ bản là service provider (cung cấp service), service consumer (sử dụng dịch vụ) và service broker (môi giới dịch vụ). Phía service provider tạo ra dịch vụ và đưa ra đặc tả giao diện của nó. Sau đó đăng ký (register) dịch vụ với một service broker.
Phía sử dụng dịch vụ (service consumer) sẽ truy vấn service broker để tìm ra service tương thích với nó. Service broker cho service consumer biết nơi có dịch vụ và đặc tả chi tiết của dịch vụ đó. Service consumer sẽ dùng đặc tả này để kết gắn client đến service.2 Kiến trúc Web Service Kiến trúc web services đưa ra tất cả các đặc trưng tốt nhất của kiến trúc hướng dịch vụ. Trong phần lớn các hệ thống trung gian, ba thành phần cơ bản (transport, description, discovery) trong kiến trúc WSA được cài đặt tương ứng bằng SOAP, WSDL, UDDI.2 minh họa nguyên lý của một hệ WSA sử dụng 3 công nghệ này.2: Kiến trúc cơ bản của SOA với SOAP, WSDL, và UDDI.
UDDI registry đóng vai trò của service broker. Các thao tác đăng ký và tìm kiếm được cài đặt bằng UDDI Inquiry và UDDI Publish APIs. Một tài liệu WSDL sẽ đặc tả chi tiết service, và được sử dụng để kết gắn client tới service. Toàn bộ các chức năng giao vận được thực hiện nhờ SOAP.3 Các thành phần của Web Service Các thành phần chính liên quan đến Web Services và đóng vai trò quyết định trong hoạt động của Web services.3 Hạn chế của Web Service Từ trước đến giờ WSDL, SOAP và UDDI vẫn được xem như là một bước định hướng đúng nhưng chúng không hỗ trợ việc tự động hoá và gặp rất nhiều khó khắn trong việc vận hành bởi vì chúng phụ thuộc vào các chuẩn ưu tiên và yêu cầu của con người.
Để hỗ trợ cho quá trình suy diễn tự động thì việc biểu diễn tri thức (như các ngôn ngữ đánh dấu) là cần thiết để xác định cả dữ liệu và các luật cho quá 16 trình suy diễn. Khả năng tự động định vị và hợp các dịch vụ web dựa trên các mô tả ngữ nghĩa về dịch vụ web. Các ontology sẽ được sử dụng để cho phép xác định nội dung ngữ nghĩa, do vậy có nhiều quan tâm về cộng đồng của web ngữ nghĩa. Thêm vào đó, các tác tử sẽ cần được sử dụng để thông dịch nội dung và yêu cầu của người sử dụng.
Do vậy với sự xuất hiện của web ngữ nghĩa thì các công nghệ trên không còn phù hợp nữa. Đòi hỏi một công nghệ khác cần xuất hiện mà hỗ trợ web ngữ nghĩa 1.2 Giới thiệu Semantic Web Thế hệ web đầu tiên bắt đầu với những trang HTML thủ công, thế hệ thứ hai đã tạo nên một bước cho máy thực hiện và thường là các trang HTML động. Các thế hệ web này mang ý nghĩa cho con người thao tác trực tiếp (đọc, duyệt, điền vào mẫu). Thế hệ web thứ ba được gọi là “Semantic Web”, mang mục đích là thông tin sẽ do máy xử lý.3: Sự tiến hóa lên Semantic Web 17 1.1 Giới thiệu Semantic Web 1.2 Semantic Web là gì Semantic Web không là Web riêng biệt nhưng là một sự mở rộng của Web hiện tại, theo cách thông tin được xác định ý nghĩa tốt hơn, nó cho phép máy tính và người cộng tác với nhau tốt hơn.
Semantic Web được hình thành từ ý tưởng của Tim Berners-Lee, người phát minh ra WWW, URI, HTTP, và HTML.4: Đề xuất đầu tiên về WWW của Tim Berners-Lee năm 1989 Semantic Web là một mạng lưới các thông tin được liên kết sao cho chúng có thể được xử lý dễ dàng bởi các máy tính ở phạm vi toàn cầu. Nó được xem là cách mô tả thông tin rất hiệu quả trên World Wide Web, và cũng được xem là một cơ sở dữ liệu có khả năng liên kết toàn cầu. Semantic Web là một phương pháp cho phép định nghĩa và liên kết dữ liệu một cách có ngữ nghĩa hơn nhằm phục vụ cho máy tính có thể “hiểu” được. 18 Semantic Web còn cung cấp một môi trường chia sẻ và xử lý dữ liệu một cách tự động bằng máy tính.
Ý tưởng liên kết các nguồn khác nhau (tài liệu, hình ảnh, con người, khái niệm) cho phép chúng ta mở rộng Web thành một môi trường mới với tập các mối quan hệ mới (như hasLocation, worksFor, isAuthorOf, hasSubjectOf, dependsOn) giữa các nguồn dữ liệu, tạo ra các mối liên hệ ngữ cảnh (contextual relationship), điều mà Web hiện tại chưa làm được.5: Liên kết ngữ nghĩa giữa các nguồn khác nhau trong Semantic Web 1.2 Semantic Web mang lại những gì - Máy có thể hiểu được thông tin trên Web - Thông tin được tìm kiếm nhanh chóng và chính xác hơn - Dữ liệu liên kết động - Hỗ trợ công cụ tự động hóa 1.2 Kiến trúc Semantic Web Semantic Web là một tập hợp/một chồng (stack) các ngôn ngữ. Tất cả các lớp của Semantic Web được sử dụng để đảm bảo độ an toàn và giá trị thông tin trở nên tốt nhất.6: Kiến trúc Semantic Web Lớp Unicode & URI: Nhằm bảo đảm việc sử dụng tập kí tự quốc tế và cung cấp phương tiện nhằm định danh các đối tượng trong Semantic Web. Lớp XML cùng với các định nghĩa về namespace (không gian tên) và schema (lược đồ): Bảo đảm rằng chúng ta có thể tích hợp các định nghĩa Semantic Web với các chuẩn dựa trên XML khác. Lớp RDF [RDF] và RDFSchema [RDFS]: Có thể tạo các phát biểu (statement) để mô tả các đối tượng với những từ vựng và định nghĩa của URI, và các đối tượng này có thể được tham chiếu đến bởi những từ vựng và định nghĩa của URI ở trên.
Đây cũng là lớp mà chúng ta có thể gán các kiểu (type) cho các tài nguyên và liên kết. Và cũng là lớp quan trọng nhất trong kiến trúc Semantic Web. Lớp Ontology: Hỗ trợ sự tiến hóa của từ vựng vì nó có thể định nghĩa mối liên hệ giữa các khái niệm khác nhau. Lớp Digital Signature: Được dùng để xác định chủ thể của tài liệu.
Các lớp Logic, Proof, Trust: đang trong giai đoạn nghiên cứu và các thể hiện của các ứng dụng giản đơn đang được xây dựng. Lớp Logic cho phép viết ra các luật (rule) trong khi lớp Proof thi hành các luật và cùng với lớp Trust đánh giá nhằm quyết định ứng dụng nên hay không nên tin tưởng/chấp nhận (trust) chứng cớ (proof).3 Khái niệm Ontology Ra đời từ nhu cầu biểu diễn tri thức, ngày nay các ontology đã trở thành trọng tâm trong các nghiên cứu trong lĩnh vực công nghệ tri thức. Với mục đích thiết lập nên các mô hình biểu diễn qua đó máy tính có thể hiểu và vận dụng khía cạnh ngữ nghĩa của thông tin, các ontology ngày càng góp mặt trong nhiều lĩnh vực chuyên ngành khách nhau của công nghệ thông tin như trí tuệ nhân tạo, Web ngữ nghĩa. Hiện tại có nhiều định nghĩa về Ontology, bao gồm cả các mô hình toán học lẫn các định nghĩa thiên về khái niệm.
Ở đây ta đưa ra định nghĩa được chấp nhận rộng rãi của Gruber: “Một Ontology là một đặc tả tường minh và hình thức về một khái niệm hóa miền thông tin được chia sẻ”. Định nghĩa này nhấn mạnh hai điểm chính: đó là các khái niệm hình thức hóa và bởi vậy cho phép suy diễn (reasoning) bởi máy tính; thứ hai nó nhấn mạnh mỗi Ontology được xây dựng cho một vài miền thông tin cần quan tâm, thể hiện sự hiểu biết chung về một miền. Từ đó các ứng dụng có thể tận dụng sự hiểu biết chung này để giao tiếp với nhau. Ontology bao gồm các khái niệm (concept), các quan hệ (relation), các thể hiện (instance) và các tiên đề (axiom).
Vì thế một Ontology thường được biểu diễn dưới dạng bộ 4 {C, R, I, A} trong đó C là tập các khái niệm, R là tập các quan hệ, I là tập các thể hiện và A là tập các tiên đề.4 Các ngôn ngữ biểu diễn ngữ nghĩa thông tin 1.1 XML XML (Extensible Markup Language) là ngôn ngữ đánh dấu mở rộng được phát triển dựa trên tính đơn giản, dễ dùng của HTML và tính phức tạp nhưng đa chức năng của SGML. XML được thiết kế để cho phép máy tính có thể trao đổi tài liệu với nhau thông qua Web mà không làm mất đi ý nghĩa của dữ liệu.2 RDF XML cung cấp cú pháp để mã hóa dữ liệu, RDF là một cơ cấu chỉ ra điều gì đó về dữ liệu. Như tên gọi, RDF là một mô hình để biểu diễn dữ liệu về “mọi thứ trên Web”. Mọi thứ ở đây chính là các tài nguyên trong RDF vocubulary (từ vựng).
Mô hình dữ liệu cơ sở của RDF thì đơn giản, bên cạnh tài nguyên (resources), RDF còn chứa thuộc tính (properties) và câu phát biểu (statements).