Kiểm chứng các dịch vụ web

  • Số trang: 67 |
  • Loại file: PDF |
  • Lượt xem: 19 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ -------- NGUYỄN THỊ THÚY NGA KIỂM CHỨNG CÁC DỊCH VỤ WEB LUẬN VĂN THẠC SĨ Hà Nội, 2011 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ -------- NGUYỄN THỊ THÚY NGA KIỂM CHỨNG CÁC DỊCH VỤ WEB Ngành : Công nghệ thông tin Chuyên ngành : Công nghệ phần mềm Mã số : 60 48 10 LUẬN VĂN THẠC SĨ HƯỚNG DẪN KHOA HỌC: TS. TRƯƠNG NINH THUẬN Hà Nội, 2011 2 MỤC LỤC DANH SÁCH CÁC HÌNH MINH HỌA ................................................................... 4 CHƯƠNG 1. ĐẶT VẤN ĐỀ ...................................................................................... 5 1.1 Lý do chọn đề tài.................................................................................................... 5 1.2 Mục tiêu của luận văn ............................................................................................ 6 1.3 Cấu trúc của luận văn ............................................................................................ 7 CHƯƠNG 2. DỊCH VỤ WEB VÀ CHẤT LƯỢNG DỊCH VỤ CỦA DỊCH VỤ WEB ........................................................................................................................... 8 2.1 Dịch vụ web ........................................................................................................... 8 2.2. Chất lượng dịch vụ của dịch vụ web .................................................................... 25 CHƯƠNG 3. TỔNG QUAN VỀ PHƯƠNG PHÁP B ............................................ 31 3.1 Giới thiệu chung .................................................................................................. 31 3.2 Khái niệm máy trừu tượng ................................................................................... 31 3.3 Trạng thái ban đầu của thiết kế............................................................................ 32 3.4 Cải tiến ................................................................................................................ 33 CHƯƠNG 4. TỔNG QUAN VỀ OWL-S ................................................................ 37 4.1 Ngôn ngữ OWL-S ................................................................................................. 37 4.2 ServiceProfile và các thuộc tính ........................................................................... 38 4.3 Mô hình dịch vụ thành các tiến trình .................................................................... 43 CHƯƠNG 5. KIỂM CHỨNG SỰ PHÙ HỢP CHỨC NĂNG TRONG MÔ HÌNH WSD ......................................................................................................................... 47 5.1 Phương pháp kiểm chứng..................................................................................... 47 5.2 Ví dụ minh họa ..................................................................................................... 50 5.3 Hình thức hóa và kiểm chứng ............................................................................... 53 CHƯƠNG 6. KẾT LUẬN........................................................................................ 63 TÀI LIỆU THAM KHẢO ....................................................................................... 64 Thank you for evaluating AnyBizSoft PDF Splitter. A watermark is added at the end of each output PDF file. To remove the watermark, you need to purchase the software from http://www.anypdftools.com/buy/buy-pdf-splitter.html 5 CHƯƠNG 1. ĐẶT VẤN ĐỀ 1.1 Lý do chọn đề tài Dịch vụ web là một chương trình có thể truy cập được nếu được công bố trên mạng và được các chương trình khác sử dụng. Các ví dụ về dịch vụ web như: dịch vụ đăng ký vé máy bay, dịch vụ dự báo thời tiết,… đều được tạo ra trên Internet. Dịch vụ web thường được truy cập trực tiếp bằng các ứng dụng. Trong trường hợp này, một dịch vụ web có thể được coi như một “giao diện chương trình” cho phép các ứng dụng có thể giao tiếp với nhau. Khám phá dịch vụ web WSD (Web service discovery) là một tiến trình tìm kiếm một dịch vụ web phù hợp với một nhiệm vụ cho trước. Mục đích là để khách hàng có thể dùng một dịch vụ, nhà cung cấp thường thêm vào cuối dịch vụ web một đặc tả giao diện dùng WSDL (Web Services Description Language). Một nhà cung cấp đăng ký một dịch vụ với nơi đăng ký dịch vụ (Web service registry) như UDDI (Universal Description, Discovery, and Integration) hoặc công bố thêm các tài liệu WSIL (Web Services Inspection Language) dự tính để việc khám phá được dễ dàng. Những Người yêu cầu dịch vụ hoặc khách hàng có thể tìm kiếm dịch vụ web bằng tay hoặc tự động. Với sự phát triển của dịch vụ web như là một giải pháp thương mại để doanh nghiệp tích hợp các ứng dụng, chất lượng của các dịch vụ (Quality of Service - QoS) cung cấp bởi dịch vụ web sẽ trở thành ưu thế số một cho bên cung cấp dịch vụ. Do chất lượng của các nhà cung cấp dịch vụ và môi trường tự nhiên của web là không thể dự đoán được nên việc chọn một QoS phù hợp thực sự là một thách thức lớn của những tổ chức yêu cầu dịch vụ. QoS của dịch vụ web chính là chất lượng, cả chức năng cũng như phi chức năng, một hướng phát triển của một dịch vụ web. Điều này bao gồm, tính thực thi, độ tin cậy, tính toàn vẹn, tính truy cập được, độ sẵn sàng, và độ an toàn. Việc tích hợp các QoS trong WSD được thực hiện trong pha triển khai. 6 Tuy nhiên, các dịch vụ cung cấp và yêu cầu thường có cách nhìn và sự hiểu biết khác nhau về cùng một dịch vụ. Nó không hiện thực hóa các quảng bá và yêu cầu mong đợi tương ứng. Điều này gây ra nhiều khó khăn khi tìm kiếm các dịch vụ cung cấp phù hợp trong các ứng dụng có sử dụng dịch vụ web. Trong pha phân tích của phát triển phần mềm, sự mô phỏng và kiểm tra các mô hình phần mềm là một nguyên tắc quan trọng. Hành động này cho phép chúng ta phát hiện lỗi tại giai đoạn đầu của phát triển và xem xét tính khả thi của hệ thống trước khi triển khai. Các phương pháp hình thức được sử dụng do tính hiệu quả của nó, nghĩa là việc phân tích phần mềm có thể nhờ vào các mô hình toán học và các công cụ hỗ trợ hiệu quả cao của nó. Phương pháp hình thức B có một cơ chế đặc biệt được dùng để chuyển từng bước một một đặc tả trừu tượng sang cụ thể. Vì vậy thật là hợp lý và thích hợp là dùng khái niệm B để hình thức hóa các yêu cầu mong đợi của bên yêu cầu dịch vụ web và các chức năng của nhà cung cấp dịch vụ web. Thêm nữa, các bước chứng minh của đặc tả B được tạo ra và chứng minh một cách tự động bởi sự hỗ trợ của các công cụ như AtelierB, B-Toolkit và B4Free. Chúng cho phép chúng ta phân tích sự đối sánh giữa hai khía cạnh hình thức của hai mô hình dịch vụ web. 1.2 Mục tiêu của luận văn Luận văn này đề xuất một hướng tiếp cận hình thức và kiểm chứng các mô hình WSD dùng cải tiến B, gồm cả khía cạnh chức năng và phi chức năng. Cụ thể:  Người yêu cầu dịch vụ web đưa ra các yêu cầu mong muốn để gọi một dịch vụ web. Các yêu cầu mong muốn này được hình thức hóa thành một máy trừu tượng B. 7  Các chức năng của nhà cung cấp dịch vụ web được mô tả bởi một máy cải tiến B.  Sự phù hợp giữa các yêu cầu mong muốn của người dùng dịch vụ web và các chức năng của nhà cung cấp dịch vụ web được phân tích bởi các công cụ hỗ trợ B. 1.3 Cấu trúc của luận văn Phần còn lại của luận văn gồm các chương sau: Chương 2: Đưa ra cái nhìn tổng quát về dịch vụ web, tìm hiểu về các thành phần chuẩn được sử dụng trong dịch vụ web, kiến trúc của dịch vụ web. Đồng thời cũng tìm hiểu cơ bản về chất lượng dịch vụ của dịch vụ web. Chương 3: Đưa ra cái nhìn tổng quan về phương pháp B, tìm hiểu các khái niệm cơ bản thông qua một ví dụ cụ thể. Chương 4: Đưa ra cái nhìn tổng quát về ngôn ngữ OWL-S, các nguyên tắc để chuyển các yêu cầu của bên yêu cầu dịch vụ thành máy trừu tượng B và chuyển các chức năng của nhà cung cấp dịch vụ thành máy cải tiến B. Chương 5: Đưa ra ví dụ thực nghiệm để minh họa cho các nguyên tắc đã đưa ra trong chương 4, và đưa ra các tìm hiểu về công cụ Atelier B dùng để kiểm chứng sự phù hợp giữa các yêu cầu mong muốn của bên yêu cầu dịch vụ và các chức năng được cung cấp bởi nhà cung cấp dịch vụ. Chương 6: Đánh giá kết quả của luận văn và đưa ra các hướng phát triển của luận văn. 8 CHƯƠNG 2. DỊCH VỤ WEB VÀ CHẤT LƯỢNG DỊCH VỤ CỦA DỊCH VỤ WEB 2.1 Dịch vụ web Dịch vụ web 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]. Được minh hoạ trong hình dưới đây. Hình 2.1 Dịch vụ 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ữ dịch vụ web 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 sẵn sàng để dùng. Không giống như mô hình Client/Server truyền thống, chắng hạn như hệ thống Webserver/webpage, dịch vụ web không cung cấp cho người dùng giao diện đồ hoạ, mà đơ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 dịch vụ web hoàn toàn có thể dịch vụ web vào một giao diện đồ hoạ người dùng (chẳng hạn như là một trang 9 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. Ngày này, dịch vụ web có thể được triển khai trên Internet dưới dạng một Website HTML, chính vì thế, các dịch vụ ứng dụng 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à dịch vụ web hỗ trợ để có thể tương tác với các dịch vụ 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 ... Dịch vụ web 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 dịch vụ được viết trên Java và trình duyệt được viết bằng C++, hoặc các dịch vụ được triển khai trên Unix trong khi các trình duyệt lại được triển khai trên Windows. Dịch vụ web 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 là một lợi thế vô cùng mạnh mẽ của dịch vụ web, 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 dịch vụ web thì các ứng dụng và máy khách 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 dịch vụ web. Rất nhiều nhà cung cấp ứng dụng như IBM và Microsoft đều đã hỗ trợ dịch vụ web trong các sản phẩm của họ. IBM hỗ trợ dịch vụ web thông qua gói WebSphere, Tivoli, Lotus và DB2 và Microsoft với .NET cũng đã hỗ trợ dịch vụ web. 2.1.1 Đặc điểm của dịch vụ web Dịch vụ web là các ứng dụng độc lập, tự mô tả và modun hóa có thể được công bố, nằm hoặc gọi trên Web. Các dịch vụ web thực hiện các chức năng, từ các yêu cầu đơn giản đến việc kết hợp các tiến trình nghiệp vụ. Một dịch vụ web 10 được triển khai, các ứng dụng khác (và cả các dịch vụ web khác) có thể phát hiện ra và gọi dịch vụ đã triển khai. Dịch vụ web 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 dịch vụ web 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. Dịch vự web không yêu cầu phải sử dụng trình duyệt và ngôn ngữ HTML, đôi khi nó còn được gọi là các dịch vụ ứng dụng. Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet. Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức; ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, mua sắm trực tuyến, … Với những ưu điểm nổi trội trên, dịch vụ web đang được phát triển một cách nhanh chóng và là ưu tiên hàng đầu của các doanh nghiệp hiện nay. 2.1.2 Ưu, nhược điểm của dịch vụ web Ưu điểm: Dịch vụ Web cung cấp chức năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau. 11 Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được. Có khả năng tái sử dụng cao. Do vậy và giảm chi phí sản xuất và phát triển, tăng doanh thu cho doanh nghiệp. Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web. Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán. Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác. Nhược điểm: Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành. Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt. Do phát triển trong môi trường internet, các dịch vụ web cần được quan tâm nhiều hơn đến tính bảo mật và an toàn. 2.1.3 Kiến trúc của dịch vụ web Kiến trúc của dịch vụ web yêu cầu phải có 3 thao tác cơ bản đó là: Find (Tìm kiếm), Publish (Công bố), Bind (Kết nối)[2]. 12 Service provider Publish Service broker Bind Find Service requester Hình 2. 3 Kiến trúc của dịch vụ web. Trong kiến trúc của dịch vụ web, nhà cung cấp dịch vụ công bố các dịch vụ với nhà môi giới dịch vụ. Người yêu cầu dịch vụ tìm kiếm các dịch vụ mà họ cần sử dụng tại nhà môi giới dịch vụ. Người yêu cầu dịch vụ có thể là một người hoặc cũng có thể là một chương trình. Sau đó người yêu cầu dịch vụ sẽ kết nối với nhà cung cấp dịch vụ để sử dụng dịch vụ. 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 dịch vụ web. Các thông tin mô tả đầy đủ nhất về kiến trúc dịch vụ web đượ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 dịch vụ chạy trên nền mạng, nó được sử dụng để đưa ra các thông tin về hoạt động của dịch vụ web, chẳng hạn như danh sách các dịch vụ, các mô tả về dịch vụ, ngày hết hạn của dịch vụ và các thông tin liên quan đến các Nhà cung cấp dịch vụ, 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ụ đó. Trong mô hình hoạt động của mỗi dịch vụ web, thông thường sẽ có 3 thành phần tham gia người yêu cầu dịch vụ, nhà cung cấp dịch vụ và các thành 13 phần cơ sở hạ tầng. Người yêu cầu dịch vụ tìm một dịch vụ để hoàn thành công việc của mình, nhà cung cấp dịch vụ cung cấp một dịch vụ được tìm kiếm bởi người yêu cầu. Một đặc tả về dịch vụ mong đợi được gọi là một yêu cầu chức năng. Trong phát triển dịch vụ web, nó là một tiến trình mà các client sử dụng một đặc tả khai báo về một dịch vụ để yêu cầu cái gì đó của dịch vụ và đưa ra được câu trả lời 2.1.4 Kiến trúc phân tầng của Web Service Kiến trúc của dịch vụ web được thực hiện năm tầng như mô tả trong Hình 2.4 [1]. Hình 2.4 Kiến trúc phân tầng của dịch vụ web Mô hình kiến trúc phân tầng của dịch vụ web tương tự với mô hình TCP/IP được sử dụng để mô tả kiến trúc Internet. Hình 2.5 Mô hình mạng TCP/IP 14 Các tầng truyền thống như Packaging, Description, và Discovery trong kiến trúc phân tầng của dịch vụ web 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 Khám phá (Discovery): Tầng khám phá 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 nhà cung cấp dịch vụ. Công nghệ được sử dụng tại tầng này đó chính là UDDI (Universal Description, Discovery and Integration). Tầng Mô tả (Description): Khi dịch vụ web đượ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 Mạng, Vận chuyển và Đóng gói 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à Người yêu cầu dịch vụ có thể liên kết và sử dụng các dịch vụ đó. Tại tầng Mô tả, công nghệ được sử dụng ở đây chính là WSDL. 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ả dịch vụ web 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. Tầng Đóng gói (Packaging): Việc thực hiện vận chuyển các dữ liệu của dịch vụ web được thực hiện bởi tầng Vận chuyển, 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 dịch vụ web có thể hiểu được, việc đóng gói dữ liệu được thi bởi tầng Đóng gói. 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ó 15 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. Tầng Vận chuyển (Transport): Tầng vận chuyển có vai trò đảm nhiệm việc vận chuyển các thông điệp của dịch vụ web 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 ứng dụng dựa trên tầng Mạng. Mỗi công nghệ bao gồm các giao thức như TCP, HTTP, SMTP, JABBER, … 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 dịch vụ web. 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 Mạng (Network): Tầng Mạng giống tầng Mạng 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. 2.1.5 Các thành phần của dịch vụ web 2.1.4.1 SOAP SOAP là một giao thức giao tiếp dùng trong dịch vụ web được xây dựng dựa trên XML. SOAP được sử dụng để đặc tả và trao đổi thông tin về các cấu trúc dữ liệu cũng như các kiểu dữ liệu giữa các thành phần trong hệ thống. Sử dụng SOAP, ứng dụng có thể yêu cầu thực thi phương thức trên các máy tính ở xa mà không cần quan tâm đến chi tiết về nền tảng cũng như các phần mềm trên các máy tính đó. SOAP có nhiều ưu điểm khi sử dụng như: 16  Cung cấp chức năng mở rộng phục vụ cho nhu cầu đặc thù của ứng dụng và nhà cung cấp. Các chức năng về bảo mật, tăng độ tin cậy có thể đưa vào phần mở rộng của SOAP. Các nhà cung cấp dịch vụ khác nhau, tùy vào đặc điểm hệ thống của mình có thể định nghĩa thêm các chức năng mở rộng nhằm tăng thêm lợi thế cạnh tranh cũng như cung cấp thêm tiện ích cho người sử dụng.  Có thể hoạt động trên các giao thức mạng đã được chuẩn hóa (HTTP, SMTP, FTP, TCP, ...)  Độc lập với nền tảng, ngôn ngữ lập trình hay mô hình lập trình được sử dụng. Các thành phần chuẩn của SOAP [1] a. Thông điệp XML Thông điệp XML là các tài liệu XML được dùng để trao đổi thông tin giữa các ứng dụng. Nó cung cấp tính mềm dẻo cho các ứng dụng trong quá trình giao tiếp với nhau và là một dạng cơ bản của SOAP. Các thông điệp này có thể là bất cứ thứ gì: Hóa đơn thanh toán, yêu cầu về giá cổ phiếu, một truy vấn tới một công cụ tìm kiếm hoặc có thể là bất kì thông tin nào có quan hệ tới từng thành phần của ứng dụng. Hình 2.6 Thông điệp XML Do XML không phụ thuộc vào một ứng dụng cụ thể, hệ điều hành hay ngôn ngữ lập trình nên các thông điệp XML có thể được sử dụng trong tất cả các môi trường. Một chương trình Windows Perl có thể tạo ra một thông điệp XML, trình bày thông điệp đó và gửi đến cho một chương trình cài đặt bằng ngôn ngữ Java được triển khai trên nền Unix. b. RPC và EDI 17 Sử dụng thông điệp XML, nên SOAP có 2 ứng dụng liên quan là: RPC và EDI. Thủ tục gọi hàm từ xa RPC (Remote Procedure Call) là một dạng tính toán phân tán cơ bản, mô tả cách thức để một chương trình tạo ra một thủ tục (hàm hoặc phương thức) gọi một thủ thục (hàm hoặc phương thức) khác, truyền đối số và lấy giá trị trả về. Trao đổi tài liệu điện tử EDI (Electronic Document Interchange) là một giao dịch thương mại tự động cơ bản , nó định nghĩa các chuẩn định dạng và thông dịch của các tài liệu, thông điệp tài chính và thương mại. Nếu sử dụng SOAP cho EDI, khi đó thông điệp XML có thể là các hóa đơn thanh toán, trả tiền thuế, hoặc các tài liệu tương tự. Nếu sử dụng SOAP cho RPC khi đó thông điệp XML có thể trình bày các đối số hoặc các giá trị trả về. c. Thông điệp SOAP Thông điệp SOAP bao gồm phần tử gốc envelope bao trùm toàn bộ nôi dung thông điệp SOAP, và các phần tử header và body. Phần tử header chứa các khối thông tin có liên quan đến cách thức các thông điệp được xử lý như thế nào. Nó bao gồm việc định tuyến và các thiết lập cho việc phân phối các thông điệp. Ngoài ra phần tử Header còn có thể chứa các thông tin về việc thẩm định quyền, xác minh và các ngữ cảnh cho các transaction. Các dữ liệu thực sự được lưu trữ tại phần tử body. Bất cứ thứ gì có thể trình bày cú pháp XML đều nằm trong phần tử body của một thông điệp SOAP[3]. 18 Hình 2.7 Cấu trúc của một thông điệp SOAP Tất cả các phần tử envelope đều chứa chính xác một phần tử body. Thần tử body có thể chứa các nốt con theo yêu cầu. Nội dung của phần tử body là các thông điệp. Nếu phần tử envelope mà chứa phần tử header, nó chỉ chứa không nhiều hơn một phần tử header và phần tử header này bắt buộc phải là phần tử con đầu tiên của phần tử envelope. Mỗi một phần tử chứa header đều được gọi là header block. Mục đích của header block cung cấp giao tiếp các thông tin theo ngữ cảnh có liên quan đến quy trình xử lý các thông điệp SOAP. d. SOAP Faults SOAP faults là một dạng thông điệp SOAP đặc biệt được dùng để thông báo lỗi trong quá trình trao đổi thông tin, SOAP faults có thể xuất hiện trong quá trình xử lý các thông điệp SOAP. Thông điệp SOAP faults có thể được mô tả như sau: Client.Authentication Invalid credentials http://acme.com
Các thông tin trong SOAP faults gồm:  Fault code: Các thuật toán phát hiện lỗi sẽ tự sinh ra các giá trị dùng để phân biệt các kiểu lỗi xuất hiện. Các giá trị này phải là là các XML Qualified Name, điều đó có nghĩa là các tên của mã lỗi chỉ có ý nghĩa duy nhất trong vùng định nghĩa XML Namespace.  Fault string: Chỉ các lỗi mà người dùng có thể đọc hiểu được. 19  Fault actor: Là dấu hiệu nhận dạng duy nhất của các nốt xử lý các thông điệp nơi mà các lỗi có khả năng xuất hiện.  Fault details: Được sử dụng để trình bày các thông tin cụ thể của ứng dụng về lỗi mà nó xuất hiện. Nó phải được trình bày nếu có lỗi xuất hiện liên quan trực tiếp đến phần thân của thông điệp. Fault details không cần phải sử dụng, tuy nhiên nó dùng để mô tả thông tin về lỗi xuất hiện trong mối quan hệ tới các phần còn lại của quy trình xử lý các thông điệp SOAP. e. Các kiểu dữ liệu SOAP Kiểu dữ liệu hỗ trợ kiểu mã hóa SOAP là các kiểu dữ liệu được định nghĩa bởi các kiểu dữ liệu XML Schema. Tất cả các kiểu dữ liệu dùng trong khối SOAP phải hoặc được lấy trực tiếp từ đặc tả XML Shema hoặc dẫn ra từ các loại đó. Mã SOAP cung cấp hai cú pháp thay thế để thể hiện các trường hợp của các kiểu dữ liệu trong SOAP envelope. Ví dụ sau cho thấy hai biểu thức tương đương về một số nguyên có giá trị bằng 36. 36 36 Phương pháp thứ nhất được biết đến với cái tên là truy cập nặc danh, thường được tìm thấy trong các mảng mã hóa SOAP. Nó là “nặc danh” vì tên của người truy cập có nghĩa là kiểu của nó hơn là xác định một giá trị. Phương pháp thứ hai là một cú pháp truy cập có tên như chúng ta đã nhìn thấy. Cả hai sẽ hợp lệ khi chúng có thể liên kết trực tiếp lại với các kiểu dữ liệu XML Schema. f. Vận chuyển SOAP SOAP được đặt ở tầng Packaging trong kiến trúc phân tầng của dịch vụ web, nó đứng trên tầng Network và tầng Transport. Như một giao thức đóng gói, SOAP không quan tâm đến việc giao thức vận chuyển nào được sử dụng trong quá trình trao đổi các thông điệp, điều đó làm cho giao thức thực sự mềm dẻo tại bất kì môi trường SOAP được triển khai nào. Tính mềm dẻo của SOAP được thể 20 hiện qua việc SOAP có thể sử dụng các giao thức vận chuyển khác nhau để trao đổi các thông điệp, như HTTP, FTP, SMTP, POP3, MQUERY và Jabber. Hiện nay, HTTP được sử dụng phổ biến trên Internet, chính vì tính phổ biến của nó, cho nên HTTP hiện tại đang là giao thức vận chuyển phổ biến nhất cho việc vận chuyển các thông điệp SOAP. SOAP thông qua HTTP rất thuận tiện cho SOAP RPC trong việc gọi yêu cầu và nhận các thông điệp đáp ứng bởi vì bản chất HTTP chính là giao thức dựa trên nền tảng gọi các yêu cầu và nhận các đáp ứng. Các thông điệp yêu cầu SOAP được gửi tới HTTP server và các thông điệp đáp ứng được trả lại trên một kết nối HTTP tương tự . Hình 2.7 Mô tả việc trao đổi thông điệp SOAP thông qua giao thức HTTP 2.1.4.2 WSDL Việc đặc tả chức năng, giao diện giao tiếp của một dịch vụ web được thực hiện dựa vào WSDL (Web Service Description Language). Việc đặc tả này bao gồm giao thức được sử dụng, cấu trúc và định dạng dữ liệu dùng để giao tiếp...
- Xem thêm -