Ngày nay cùng với sự phát triển mạnh mẽ của môi trường Internet, các ứng dụng triển khai trên nền Web ngày càng được phát triển rộng rãi và phong phú. Đồng thời đi cùng sự phát triển mạnh mẽ của nền kinh tế thị trường là nhu cầu áp dụng công nghệ thông tin vào trong các quy trình thương mại ngày càng trở nên phổ biến và là điểm mấu chốt để các tổ chức doanh nghiệp giải quyết công việc của mình. Sự ra đời của Web Service được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B – Business to Bussiness và B2C – Bussiness to Customer. Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy cập đối với hệ thống đóng gói và kế thừa. Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên các nền tảng khác nhau có thể sử dụng Web Service để chuyển đổi dữ liệu thông qua mạng Internet.
Nội dung của khóa luận đưa ra một cái nhìn tổng quát về công nghệ Web Service, phân tích và tìm hiểu các thành phần chuẩn được sử dụng trong công nghệ Web Service, đi vào nghiên cứu kiến trúc về Web Service. Từ những kiến thức thu được về công nghệ Web Service, khóa luận đi đến một hướng tiếp cận mới đó là tìm hiểu về chất lượng các dịch vụ Web – QoS cho Web Service dựa trên mô hình tích hợp Web Service với các Web Service Composition. Từ các kiến thức về chất lượng các dịch vụ Web, khóa luận sẽ tìm hiểu về một khía cạnh chất lượng dịch vụ Web đó là kiểm chứng ràng buộc thời gian đáp ứng của các Web Service Composition và mô hình hóa các ràng buộc thời gian trên biểu đồ UML Timing Diagram.
85 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1144 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Khóa luận Xây dựng service proxy để kiểm chứng ràng buộc thời gian trong web service composition, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Đức Trung
XÂY DỰNG SERVICE PROXY ĐỂ KIỂM CHỨNG RÀNG BUỘC THỜI GIAN TRONG WEB SERVICE COMPOSITION
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công Nghệ Thông Tin
HÀ NỘI, 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Đức Trung
XÂY DỰNG SERVICE PROXY ĐỂ KIỂM CHỨNG RÀNG BUỘC THỜI GIAN TRONG WEB SERVICE COMPOSITION
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành : Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS. Trương Ninh Thuận
HÀ NỘI, 2009LỜI CẢM ƠN
Em xin gửi lời cảm ơn sâu sắc nhất đến TS. Trương Ninh Thuận, người thầy đã cho em định hướng, tận tình chỉ bảo em những ý kiến quý báu về công nghệ Web Service, các kiến thức về chất lượng dịch vụ Web. Thầy đã giúp đỡ em rất nhiều và đi cùng em trong suốt thời gian thực hiện khoá luận. Thầy chỉ cho em cách tiếp cận, nghiên cứu một công nghệ mới, cách tìm ra những giải pháp cho vấn đề mắc phải.
Em xin chân thành cảm ơn quý Thầy Cô và các bạn đã giúp đỡ em trong những năm học qua. Em xin cảm ơn Bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin, Trường Đại Học Công Nghệ, Đại Học Quốc Gia Hà Nội đã tạo điều kiện thuận lợi cho em trong suốt quá trình học tập và làm khoá luận này.
Đề tài “Xây dựng Service Proxy để kiểm chứng ràng buộc thời gian trong Web Service Composition ” là một đề tài khá mới mẻ, lại được hoàn thành trong quỹ thời gian hạn hẹp nên khó tránh khỏi những khiếm khuyết. Em mong nhận được những góp ý chân thành từ thầy cô giáo và các bạn để đề tài có thể được mở rộng và nghiên cứu kỹ hơn, đưa vào trong thực tiễn ngành công nghệ thông tin hiện nay.
Hà Nội, ngày 15 tháng 05 năm 2009
Sinh viên:
Nguyễn Đức Trung
TÓM TẮT KHOÁ LUẬN
Ngày nay cùng với sự phát triển mạnh mẽ của môi trường Internet, các ứng dụng triển khai trên nền Web ngày càng được phát triển rộng rãi và phong phú. Đồng thời đi cùng sự phát triển mạnh mẽ của nền kinh tế thị trường là nhu cầu áp dụng công nghệ thông tin vào trong các quy trình thương mại ngày càng trở nên phổ biến và là điểm mấu chốt để các tổ chức doanh nghiệp giải quyết công việc của mình. Sự ra đời của Web Service được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B – Business to Bussiness và B2C – Bussiness to Customer. Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy cập đối với hệ thống đóng gói và kế thừa. Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên các nền tảng khác nhau có thể sử dụng Web Service để chuyển đổi dữ liệu thông qua mạng Internet.
Nội dung của khóa luận đưa ra một cái nhìn tổng quát về công nghệ Web Service, phân tích và tìm hiểu các thành phần chuẩn được sử dụng trong công nghệ Web Service, đi vào nghiên cứu kiến trúc về Web Service. Từ những kiến thức thu được về công nghệ Web Service, khóa luận đi đến một hướng tiếp cận mới đó là tìm hiểu về chất lượng các dịch vụ Web – QoS cho Web Service dựa trên mô hình tích hợp Web Service với các Web Service Composition. Từ các kiến thức về chất lượng các dịch vụ Web, khóa luận sẽ tìm hiểu về một khía cạnh chất lượng dịch vụ Web đó là kiểm chứng ràng buộc thời gian đáp ứng của các Web Service Composition và mô hình hóa các ràng buộc thời gian trên biểu đồ UML Timing Diagram.
Để minh họa cho việc kiểm chứng ràng buộc thời gian đáp ứng của các Web Service Composition, chúng tôi đã tiến hành xây dựng một ứng dụng nhỏ là Web Service Travel-Agent và tiến hành đo lường thời gian đáp ứng của các Service Composition hợp thành lên Web Service Travel-Agent đó.
MỤC LỤC
DANH SÁCH CÁC THUẬT NGỮ VÀ KHÁI NIỆM
THUẬT NGỮ
KHÁI NIỆM
SOA
Service Oriented Architecture – Kiến trúc hướng dịch vụ
Service Composition
Các Serivice có sẵn có thể được dùng để tích hợp lên một Web Service lớn hơn. Hoặc là một Web Service thành phần chuyên biệt phục vụ cho một nhiệm vụ
Service Composite
Web Service được tổng hợp lên từ các Service Composition
Service Provider
Nhà cung cấp dịch vụ Web Service. Đây chính là các nguồn cung cấp đưa ra các dịch vụ cho khách hàng sử dụng
Service Consumer
Đây chính là dịch vụ ở phía người sử dụng, yêu cầu các dịch vụ đưa ra bởi Service Provider
Service Broken
Nơi chấp nhận các yêu cầu đưa ra bởi Service Consumer, liên hệ với Service Provider để lấy dịch vụ trả về cho Service Consumer
W3C
Viết tắt của Word Wide Web Consortium – là một tổ chức lập ra các chuẩn cho các công nghệ chạy trên nền Internet, đặc biệt là Word Wide Web
QoS
Quality of Service - Chất lượng dịch vụ
Message request
Thông điệp yêu cầu
Message response
Thông điệp đáp ứng
DANH SÁCH CÁC HÌNH VẼ
Hình 1: Web Service cho phép truy cập tới các code ứng dụng sử dụng chuẩn công nghệ Internet 7
Hình 2: Web Service cung cấp một tầng trừu tượng giữa ứng dụng client và ứng dụng cần gọi tới. 8
Hình 3: Mô tả cơ chế hoạt động của Web Service. 9
Hình 4: Web Service technology stack 10
Hình 5: TCP/IP network model 11
Hình 6: Mô tả cấu trúc của một thông điệp XML 14
Hình 7: Mô tả cấu trúc của một thông điệp SOAP 15
Hình 8: Mô tả thông điệp SOAP faults 16
Hình 9: Mô tả việc trao đổi thông điệp SOAP thông qua giao thức HTTP 17
Hình 10: Mô tả thành phần binding trong tài liệu WSDL 20
Hình 11: Minh họa ví dụ của một tài liệu WSDL 20
Hình 12: Minh họa cấu trúc dữ liệu businessService 22
Hình 13: Biểu đồ Timing Diagram dưới dạng “Robus Diagram” 35
Hình 14: Biểu đồ Timing Diagram dưới dạng mở rộng 36
Hình 15: Minh họa các trạng thái được thể hiện trong biểu đồ Timing Diagram 37
Hình 16: Minh họa các sự kiện và thông điệp trong biểu đồ Timing Diagram 38
Hình 17: Minh họa thể hiện thời gian trong biểu đồ Timing Diagram 39
Hình 18: Thời gian ước lượng trong biểu đồ Timing Diagram 39
Hình 19: Minh họa các đường state-line trong biểu đồ Timing Diagram 40
Hình 20: Minh họa các ràng buộc thời gian trong biểu đồ Timing Diagram 40
Hình 21: Minh hoạ mô hình Web Service với Service Proxy 42
Hình 22: Minh họa mô hình tích hợp Web Service 46
Hình 23: Minh hoạ mô hình tổng quan bài toán Travel-Agent 51
Hình 24: Minh hoạ đường Lifeline cho SearchHotel Service 52
Hình 25: Minh hoạ đường Lifeline cho SearchFlight Service 53
Hình 26: Minh họa thiết kế tổng thể của ứng dụng 56
Hình 27: Biểu đồ tuần tự của hệ thống 57
Hình 28: Minh họa giao diện Admin của apache soap trên Web Server tại cổng 2417 59
Hình 29: Minh họa giao diện Admin của apache soap trên Web Server tại cổng 8080 60
Hình 30: Minh họa trang Admin của Apache Axis trên Web Server tại cổng 8080 60
Hình 31: Code kết nối database trong file SearchHotel Service 61
Hình 32: Nội dung của tệp deploy.wsdl 62
Hình 33: Danh sách các dịch vụ liệt kê trên web site soap engine 63
Hình 34: Nội dung file deploy.wsdd 64
Hình 35: Các dịch vụ được liệt kê trên trang quản trị của Axis 65
Hình 36: Nội dung file WSDL của dịch vụ SearchFlightService 66
Hình 37: Code Service Proxy goi tới SearchFlightService 67
Hình 38: Minh họa đo lường thời gian đáp ứng 68
Hình 39: Minh họa test chương trình 70
Hình 40: Biểu đồ Timing Diagram mô tả ràng buộc thời gian của WSComposition 71
Hình 41: Minh hoạ mô hình kiểm chứng ràng buộc thời gian đáp ứng 72
ĐẶT VẤN ĐỀ
Bối cảnh
Sự phát triển của công nghệ thông tin cho phép ứng dụng hiệu quả vào các hoạt động kinh doanh, giải trị, quản lý cũng như một số lĩnh vực khoa học xã hội khác. Sự bùng nổ của Internet đã trở thành một điều kiện hết sức thuận lợi, đem lại hiệu suất cao trong công việc đồng thời giảm thiểu chi phí cho các doanh nghiệp. Tuy nhiên các yêu cầu về nghiệp vụ phức tạp trong hệ thống này dẫn đến các hệ thống phần mềm tương ứng cũng ngày càng trở nên phức tạp, cồng kềnh và khó kiểm soát. Rất nhiều yêu cầu nghiệp vụ đòi hỏi xử lý các vấn đề liên quan đến dữ liệu phân tán, xử lý các thông tin khác nhau do nhiều tổ chức nắm giữ. Đã có nhiều kiến trúc phần mềm được đưa ra nhưng chưa đủ mạnh để giải quyết được vấn đề này. Sự ra đời của kiến trúc phần mềm hướng dịch vụ đã mở ra một hướng đi mới trong việc giải quyết các loại bài toán này.
Kiến trúc SOA định nghĩa một kiểu kiến trúc cho việc xây dựng các hệ thống phân tán theo hướng dịch vụ, tức là hệ thống được phân tách thành các module chương trình, và các module này được phát triển độc lập, các module sử dụng các công nghệ khác nhau nhưng vẫn có thể giao tiếp được với nhau. Một công nghệ tiêu biểu nhất cho kiến trúc hướng dịch vụ là công nghệ Web Service. Với công nghệ Web Service, mỗi Service ở đây là một module có thể thực hiện các công việc khác nhau, ta có thể tổng hợp các Service thành phần lại để cùng thực hiện một công việc lớn, đó được gọi là công nghệ tích hợp Web Service, khi đó mỗi Service thành phần được gọi là một Service Composition. Sự ra đời của công nghệ Web Service đã đem lại rất nhiều lợi thế cho việc chia sẻ tài nguyên qua mạng, trợ giúp xây dựng các hệ thống phân tán đồng thời đáp ứng được tính mềm dẻo cần thiết, hệ thống có thể dễ dàng chấp nhận những thay đổi lớn so với thiết kế ban đầu mà vẫn đảm bảo cho vấn đề nâng cấp và bảo trì sau này. Web Service đem đến đầy đủ sự đáp ứng cần thiết cho các quy trình B2B – Bussiness to Bussiness và B2C – Bussiness to Customer, chính vì thế Web Service hiện tại đang là một thuật ngữ đang được nhắc đến rất nhiều và ngày càng được sử dụng rộng rãi.
Tuy nhiên Web Service là một công nghệ triển khai thông qua môi trường Internet cho nên vấn đề về chất lượng các dịch vụ Web cũng là một vấn đề đáng lưu tâm, chính vì thế đã xuất hiện các tiêu chuẩn chất lượng dịch vụ cho Web Service – QoS cho Web Service. Một khía cạnh về QoS cho Web Service đó là thời gian đáp ứng của các dịch vụ Web, đây là một vấn đề rất đáng quan tâm vì Web Service là một kiến trúc phần mềm phân tán, cho nên thường có một sự liên kết giữa các dịch vụ với nhau. Khi thời gian đáp ứng của một dịch vụ quá lâu có thể dẫn đến ảnh hưởng tới các dịch vụ khác. Mặt khác khi có nhiều nhà cung cấp dịch vụ Web thì khi đó sẽ có nhiều sự lựa chọn của khách hàng trong việc tìm và sử dụng dịch vụ Web tốt nhất cho mình. Trên môi trường Internet, người sử dụng trước tiên sẽ quan tâm nhất đến vấn đề thời gian, thời gian đáp ứng của một dịch vụ Web nhanh hay chậm sẽ quyết định đến sự thành công hay không của nhà cung cấp dịch vụ Web đó. Việc kiểm soát thời gian đáp ứng của các dịch vụ Web là một khía cạnh rất rộng, cho nên ở phạm vi khóa luận này chúng tôi đề cập đến việc kiểm chứng ràng buộc thời gian đáp ứng của việc tích hợp các Web Services có đáp ứng được với tiêu chuẩn QoS về thời gian hay không.
Mục tiêu khóa luận
Để thực hiện các vấn đề nêu ra như trên, khoá luận sẽ lần lượt trình bày những kiến thức cần thiết để giải quyết yêu cầu của bài toán đặt ra.
Khóa luận sẽ tập trung vào một số các vấn đề sau:
Tìm hiểu khái quát về kiến trúc hướng dịch vụ SOA, đi sâu tìm hiểu công nghệ Web Service, kiến trúc và các thành phần sử dụng cho Web Service.
Tìm hiểu Service Proxy, một dạng Web Service đặc biệt được triển khai ở phía người sử dụng dịch vụ.
Tiếp cận đến vấn đề về chất lượng các dịch vụ Web, các yếu tố ảnh hưởng đến hiệu năng hoạt động của Web Service. Đi vào tìm hiểu việc đo lường thời gian đáp ứng của các Web Service Composition sử dụng Service Proxy.
Nghiên cứu về biểu đồ UML Timing Diagram, mô hình hóa các ràng buộc thời gian đáp ứng của Web Service Composition trên biểu đồ UML Timing Diagram.
Đề xuất phương pháp kiểm chứng tự động thời gian đáp ứng của các Web Services trong một ứng dụng sử dụng sự tích hợp các Web Services với các ràng buộc mà biểu đồ UML Timing Diagram mô tả.
Cấu trúc khóa luận
Các phần còn lại của khóa luận bao gồm các phần sau:
Chương 2 đưa ra cái nhìn tổng quát về công nghệ Web Service, tìm hiểu về các thành phần chuẩn được sử dụng trong công nghệ Web Service, kiến trúc Web Service và quy trình hoạt động của một Web Service.
Chương 3 tiếp cận đến vấn đề chất lượng dịch vụ Web. Xem xét các yêu cầu về chất lượng cho Web Service, các yếu tố ảnh hưởng đến hiệu năng hoạt động của Web Service và một vài phương pháp đơn giản để cung cấp chất lượng dịch vụ Web.
Chương 4 trình bày về biểu đồ mới được thêm vào trong UML 2.0 đó là biểu đồ Timing Diagram. Tìm hiểu về mục đích biểu đồ, các thành phần sử dụng trong biểu đồ Timing Diagram và từ đó sử dụng biểu đồ Timing Diagram để đặc tả cho các ràng buộc thời gian của các Web Service Composition.
Chương 5 phân tích bài toán “Xây dựng Service Proxy để kiểm chứng ràng buộc thời gian đáp ứng trong Web Service Composition”, nghiên cứu về Service Proxy, Service Composition và công nghệ tích hợp Web Service.
Chương 6 xây dựng một ví dụ minh hoạ cho bài toán kiểm chứng, dựa vào các kết quả thu được từ ví dụ minh hoạ để thực hiện mục tiêu của khóa luận đó là kiểm chứng xem các kết quả thu được có đáp ứng được tiêu chuẩn đề ra hay không.
Chương 7 đánh giá kết quả khóa luận đã đạt được và nêu ra hướng phát triển trong tương lai cho đề tài này.
CÔNG NGHỆ WEB SERVICE
Chương 2 đề cập đến công nghệ Web Service, đưa ra khái niệm căn bản về kiến trúc hướng dịch vụ SOA, đi sâu vào tìm hiểu công nghệ Web Service, các công nghệ được sử dụng cho Web Service, kiến trúc của Web Service và các lợi ích khi sử dụng công nghệ này.
Kiến trúc hướng dịch vụ SOA
Khái niệm kiến trúc hướng dịch vụ SOA
SOA - viết tắt của thuật ngữ Service Oriented Architecture (kiến trúc hướng dịch vụ) là “Khái niệm về hệ thống trong đó mỗi ứng dụng được xem như một nguồn cung cấp dịch vụ” [9].
Dịch vụ là yếu tố then chốt trong SOA. Có thể hiểu dịch vụ như là hàm chức năng (module phần mềm) thực hiện quy trình nghiệp vụ nào đó, một cách cơ bản, SOA là tập hợp các dịch vụ kết nối mềm dẻo với nhau (nghĩa là một ứng dụng có thể nói chuyện với một ứng dụng khác mà không cần biết các chi tiết kĩ thuật bên trong), có giao tiếp (dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng. SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến quy trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp của kĩ thuật bên dưới.
Thiết kế SOA tách riêng phần thực hiện dịch vụ (phần mềm) với giao tiếp gọi dịch vụ. Điều này tạo nên một giao tiếp nhất quán cho ứng dụng khách sử dụng dịch vụ bất chấp công nghệ thực hiện dịch vụ. Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ, nhà phát triển sẽ xây dựng các dịch vụ có tính linh hoạt có thể triển khai và tái sử dụng trong toàn bộ quy trình nghiệp vụ. Điều này cho phép tái sử dụng phần mềm tốt hơn, cũng như tăng sự linh hoạt vì nhà phát triển có thể cải tiến dịch vụ mà không làm ảnh hưởng đến Client sử dụng dịch vụ.
Thực ra khái niệm SOA không hoàn toàn mới, DCOM và CORBA cũng có kiến trúc tương tự. Tuy nhiên các kiến trúc cũ ràng buộc các thành phần với nhau quá chặt, ví dụ các ứng dụng phân tán muốn làm việc với nhau phải đạt đuợc thoả thuận về chi tiết tập hàm API, một thay đổi mã lệnh trong thành phần COM sẽ yêu cầu những thay đổi tương ứng đối với mã lệnh truy cập thành phần COM này.
Ưu điểm quan trọng nhất của SOA là khả năng kết nối mềm dẻo (nhờ sự chuẩn hoá giao tiếp) và tái sử dụng. Các dịch vụ có thể được sử dụng với trình Client chạy trên nền tảng bất kì và được viết bởi ngôn ngữ bất kì.
Nguyên tắc thiết kế của SOA
SOA dựa trên hai nguyên tắc thiết kế quan trọng [17]:
Mô-đun: đó là tách các vấn đề lớn thành nhiều vấn đề nhỏ hơn
Đóng gói : Che đi dữ liệu và lô-gic trong từng mô-đun đối với các truy cập từ bên ngoài.
Hai tính chất này sẽ dẫn đến đặc điểm thiết kế của kiến trúc SOA đó là các dịch vụ tương tác với nhau qua các thành phần giao tiếp, tuy nhiên các dịch vụ đó vẫn hoạt động độc lập với nhau, chia sẻ các lược đồ dữ liệu cho nhau và tuân thủ các chính sách của kiến trúc chung nhất.
Công nghệ Web Service
Tổng quan về Web Service
Web Service là gì: Web Service là một giao diện truy cập mạng đến các ứng dụng chức năng, được xây dựng từ việc sử dụng các công nghệ chuẩn Internet [1][4]. Được minh hoạ trong hình dưới đây.
Web Service cho phép truy cập tới các code ứng dụng sử dụng chuẩn công nghệ Internet
Thuật ngữ Web Service diễn tả một cách thức tích hợp các ứng dụng trên nền web lại với nhau bằng cách sử dụng các công nghệ XML, SOAP, WSDL, và UDDI trên nền tảng các giao thức Internet với mục tiêu tích hợp ứng dụng và truyền thông điệp. XML được sử dụng để đánh dấu dữ liệu, SOAP được dùng để truyền dữ liệu, WSDL được sử dụng để mô tả các dịch vụ có sẵn và UDDI được sử dụng để liệt kê những dịch vụ nào hiện tại đang có sẵn để có thể sử dụng. Web Service cho phép các tổ chức có thể trao đổi dữ liệu với nhau mà không cần phải có kiến thức hiểu biết về hệ thống thông tin đứng sau Firewall kia [1].
Không giống như mô hình Client/Server truyền thống, chắng hạn như hệ thống Webserver/webpage, Web Service không cung cấp cho người dùng một giao diện đồ hoạ nào, Web Service đơn thuần chỉ là việc chia sẻ các dữ liệu logic và xử lý các dữ liệu đó thông qua một giao diện chương trình ứng dụng được cài đặt xuyên suốt trên mạng máy tính. Tuy nhiên nguời phát triển Web Service hoàn toàn có thể đưa Web Service vào một giao diện đồ hoạ người dùng (chẳng hạn như là một trang web hoặc một chương trình thực thi nào đó) để có thể cung cấp thêm các chức năng đặc biệt cho người dùng.
Web Service cho phép các ứng dụng khác nhau từ các nguồn khác nhau có thể giao tiếp với các ứng dụng khác mà không đòi hỏi nhiều thời gian coding, do tất cả các quá trình giao tiếp đều tuân theo định dạng XML, cho nên Web Service không bị phụ thuộc vào bất kì hệ điều hành hay ngôn ngữ lập trình nào. Ví dụ, chương trình viết bằng ngôn ngữ Java cũng có thể trao đổi dữ liệu với các chương trình viết bằng Perl, các ứng dụng chạy trên nền Windows cũng có thể trao đổi dữ liệu với các ứng dụng chạy trên nền Linux. Công nghệ Web Service không yêu cầu phải sử dụng trình duyệt và ngôn ngữ HTML, đôi khi Web Service còn được gọi là Application Services.
Xét theo một khía cạnh khác, nếu các ứng dụng có thể truy cập thông qua mạng máy tính bằng việc sử dụng các giao thức như HTTP, XML, SMTP hoặc Jabber thì đó chính là Web Service.
Như Hình 1 và Hình 2 đã minh họa , Web Service là một Application Interface được đặt giữa Application Code và người sử dụng các code đó. Nó có thể được ví như một tầng trừu tượng, phân tách giữa platform và ngôn ngữ lập trình, nó mô tả cách thức mà các application code được triệu gọi như thế nào. Điều này có nghĩa nếu bất kì một ngôn ngữ lập trình nào hỗ trợ Web Service đều có thể truy cập các ứng dụng chức năng của nhau.
Web Service cung cấp một tầng trừu tượng giữa ứng dụng client và ứng dụng cần gọi tới.
Ngày này, Web Service có thể được triển khai trên Internet dưới dạng một Website HTML, chính vì thế, các Application Service cần phải có một cơ thế cho việc công bố, quản lý, tìm kiếm và phục hồi nội dung được người sử dụng truy cập thông qua giao thức chuẩn HTTP và định dạng dữ liệu HTML. Các ứng dụng Client ( như Web Browser) cần phải hiểu các chuẩn mà Web Service hỗ trợ để có thể tương tác với các service nhằm thực thi một nhiệm vụ như việc đặt mua sách, gửi thiệp mừng hoặc là đọc bản tin v..v.
Web Service cung cấp tính trừu tượng cho các giao diện chuẩn, cho nên sẽ không nảy sinh ra bất kì vấn đề gì trong quá trình tương tác khi các service được viết trên java và trình duyệt được viết bằng C++, hoặc các service được triển khai trên Unix trong khi các trình duyệt lại được triển khai trên Windows. Web Service cho phép giao tiếp giữa các platform khác nhau có thể hoạt động cùng nhau theo nguyên tắc tạo ra một platform trung gian có liên quan.
Tính tương thích (Inteoperability) là một lợi thế vô cùng mạnh mẽ của Web Service, thông thường, các công nghệ Java và công nghệ của Microsoft rất khó có thể tích hợp được với nhau , nhưng với Web Service thì các Application và Client sử dụng 2 công nghệ trên hoàn toàn có khả năng tương tác với nhau thông qua Web Service.
Rất nhiều nhà cung cấp ứng dụng như IBM và Microsoft đều đã hỗ trợ Web Service trong các sản phẩm của họ. IBM hỗ trợ Web Service thông qua gói WebSphere, Tivoli, Lotus và DB2 và Microsoft với .NET cũng đã hỗ trợ Web Service.
Kiến trúc Web Service
Mô tả cơ chế hoạt động của Web Service
Mô tả cơ chế hoạt động của Web Service.
Cơ chế hoạt động của Web Service yêu cầu phải có 3 thao tác đó là : Find, Public, Bind[1].
Trong kiến trúc Web Service, Service Provider công bố các mô tả về các service thông qua Service Registry. Service Consumer tìm kiếm trong các Service Registry để tìm ra các service mà họ cần sử dụng. Service Consumer có thể là một người hoặc cũng có thể là một chương trình.
Kĩ thuật mô tả dịch vụ là một trong những thành phần chủ chốt của kiến trúc Web Service. Các thông tin mô tả đầy đủ nhất về kiến trúc Web Service được thể hiện trong hai tài liệu riêng biệt, đó là NASSL – Network Accessible Service Specification Language và WDS – Web-Defined Service. NASSL là một tài liệu dưới dạng chuẩn của XML cho các service chạy trên nền Network, nó được sử dụng để chỉ ra các thông tin hoạt động của Web Service, chẳng hạn như danh sách các service, các mô tả về service, ngày hết hạn của service và các thông tin liên quan đến các Service Provider, như tên, địa chỉ. Tài liệu WDS là một tài liệu mang tính đáp ứng đầy đủ cho tài liệu NASSL. Khi ta kết hợp hai tài liệu này với nhau ta sẽ có được sự mô tả một cách đầy đủ về các dịch vụ để cho phía yêu cầu dịch vụ có thể dễ dàng tìm kiếm và gọi các dịch vụ đó.
Kiến trúc phân tầng của Web Service
Web Service technology stack
Mô hình kiến trúc phân tầng của Web Service tương tự với mô hình TCP/IP được sử dụng để mô tả kiến trúc Internet.
TCP/IP network model
Các tầng truyền thống như Packaging, Description, và Discovery trong mô hình Web Service Stack là những tầng cung cấp khả năng tích hợp và cần thiết cho mô hình ngôn ngữ lập trình trung lập.
Tầng Discovery : Tầng Discovery cung cấp cơ chế cho người dùng khả năng lấy các thông tin mô tả về các Service Provider. Công nghệ được sử dụng tại tầng này đó chính là UDDI – Universal Description, Discovery and Integration.
Tầng Desciption : Khi Web Service được thực thi, nó cần phải đưa ra các quyết định về các giao thức trên các tầng Network, Transport, Packaging mà nó sẽ hỗ trợ trong quá trình thực thi. Các mô tả về dịch vụ sẽ đưa ra phương pháp để làm thế nào mà các Service Consumer có thể liên kết và sử dụng các service đó. Tại tầng Description, công nghệ được sử dụng ở đây chính là WSDL (Web Service Desciption Language) – Ngôn ngữ mô tả Web Service. Ngoài ra, ít phổ biến hơn, chúng ta còn có 2 ngôn ngữ khác được định nghĩa bởi tổ chức W3C đó là ngôn ngữ môt tả tài nguyên - W3C’s Resource Desciption Framework (RDF) và ngôn ngữ đánh dấu sự kiện DARPA. Cả hai ngôn ngữ này đều có khả năng cung cấp việc mô tả Web Service mạnh hơn ngôn ngữ WSDL tuy nhiên do tính phức tạp của chúng nên không được phát triển rộng rãi. Chúng tôi sẽ đề cập đến ngôn ngữ WSDL một cách cụ thể hơn trong phần “Các công nghệ của Web Service ” tại chương 2 của khóa luận này.
Tầng Packaging: Việc thực hiện vận chuyển các dữ liệu Web Service được thực hiện bởi tầng Transport, tuy nhiên trước khi được vận chuyển, các dữ liệu cần phải được đóng gói lại theo các định dạng đã định trước để các thành phần tham gia vào mô hình Web Service có thể hiểu được, việc đóng gói dữ liệu được thi bởi tầng Packaging. Việc đóng gói dữ liệu bao gồm các công việc định dạng dữ liệu, mã hóa các giá trị đi kèm dữ liệu đó và các công việc khác.
Các dữ liệu có thể được đóng gói dưới dạng các tài liệu HTML, tuy nhiên với các tài liệu HTML thường không thuận tiện cho yêu cầu này bởi vì HTML chỉ có ưu điểm trong việc thể hiện dữ liệu hơn là trình bày ý nghĩa dữ liệu đó. XML là một định dạng cơ bản nhất cho việc trình bày dữ liệu, bởi vì XML có thể được sử dụng để trình bày ý nghĩa dữ liệu được vận chuyển, và hơn thế nữa, hiện tại đa số các ứng dụng chạy trên nền Web-Base đều hỗ trợ các bộ phân tích cú pháp XML.
SOAP là công nghệ chủ yếu được sử dụng tại tầng này, nó là một giao thức đóng gói dữ liệu phổ biến dựa trên nền tảng XML. Chúng ta sẽ đề cập sâu hơn đến giao thức đóng gói dữ liệu SOAP trong phần “Các công nghệ của Web Service ” trong chương 2 của khóa luận này.
Tầng Transport : Tầng Transport có vai trò đảm nhiệm việc vận chuyển các Web Service Message, tại đây bao gồm một vài dạng công nghệ khác nhau cho phép các giao tiếp trực tiếp giữa các Application – to – Application dựa trên tầng Network. Mỗi công nghệ bao gồm các giao thức như tcp, http, smtp và jabber ..v.v.
Việc lựa chọn giao thức vận chuyển được dựa trên mỗi nhu cầu giao tiếp của các Web Service. ví dụ: với giao thức HTTP là một giao thức vận chuyển khá phổ biến được sử dụng cho các ứng dụng Web-Base, nhưng nó không cung cấp cơ chế giao tiếp bất đối xứng. Jabber, xét trên phương diện khác, nó không phải là một chuẩn nhưng có khả năng cung cấp tốt các kênh giao tiếp bất đối xứng.
Tầng Network : Tầng Network trong công nghệ Web Service chính xác giống tầng Network trong mô hình giao thức TCP/IP. Nó cung cấp khả năng giao tiếp cơ bản, định địa chỉ và định tuyến.
Các cô
Các file đính kèm theo tài liệu này:
- Nguyen Duc Trung_K50CNPM_Khoa luan tot nghiep dai hoc.doc