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 mon
Trang 1NGUYỄ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
Trang 2NGUYỄN THỊ THÚY NGA
Trang 3MỤ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
Trang 4To remove the watermark, you need to purchase the software from
http://www.anypdftools.com/buy/buy-pdf-splitter.html
Trang 5CHƯƠ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
Trang 6Tuy 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
Trang 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
Trang 8CHƯƠ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
Trang 9web 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
Trang 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
Trang 11Sử 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]
Trang 12Hì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
Service requester
Service broker
Service provider
Find
Trang 13phầ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
Trang 14Cá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ó
Trang 15thể đượ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ư:
Trang 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
Trang 17Sử 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]
Trang 18Hì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:
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
Trang 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
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ể
Trang 20hiệ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ự
Trang 21 PortType: Định nghĩa một dịch vụ web, các tác vụ mà dịch vụ cung cấp
và định dạng các thông điệp được sử dụng để khởi động các tác vụ này
Binding: Chỉ định PortType, các thao tác, SOAP (RPC/Document), giao
thức SOAP được dùng
Message: Mỗi thông điệp tương ứng với một thao tác và chứa các thông
tin cần thiết để thực thi thao tác đó Mỗi thông điệp có một tên duy nhất
Type: Thành phần type định nghĩa kiểu dữ liệu được sử dụng cho dịch vụ
web Để đảm bảo tính không phụ thuộc vào platform, WSDL sử dụng cấu trúc của lược đồ XML để định nghĩa kiểu dữ liệu
Ví dụ về một phần đơn giản trong tài liệu WSDL [4]:
Trang 22Toán tử “getTerm” có thông điệp vào gọi là “getTermRequest” và thông điệp ra gọilà “getTermResponse”
Các phần tử <message> định nghĩa các phần của mỗi thông điệp và sự kết hợp giữa các kiểu dữ liệu
Nếu so sánh với các ngôn ngữ lập trình truyền thống, “glossaryTerm” có thể được coi như là một hàm thư viện, “getTerm” là một hàm với đối số truyền vào là “getTermRequest” và trả lại lại kết quả là “getTermResponse”
2.1.4.3 UDDI
UDDI (Universal Description, Discovery, and Integration) là một chuẩn dựa trên XML dùng cho để mô tả, công bố và tìm kiếm dịch vụ web
UDDI là một mô tả về đăng ký phân tán của dịch vụ web
UDDI là một nền tảng độc lập, khung làm việc mở
UDDI giao tiếp thông qua SOAP, CORBA, Java RMI Protocol
UDDI dùng WSDL để mô tả giao diện cho các dịch vụ web
UDDI cùng với SOAP và WSDL được xem là 3 chuẩn cơ bản của dịch vụ web
UDDI là một kỹ thuật mở đầu tiên cho phép các quy trình thương mại điện tử có thể khám phá lẫn nhau và định nghĩa cách thức tương tác với nhau qua Internet
Trang 23 Trang trắng - White pages: Chứa thông tin liên hệ và các định dạng chính yếu của dịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những thông tin này cho phép các đối tượng khác xác định được dịch vụ
Trang vàng - Yellow pages: Chứa thông tin mô tả dịch vụ Web theo những loại khác nhau Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại với nó
Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của dịch vụ Web
UDDI chưa một lược đồ XML mô tả năm loại cấu trúc dữ liệu:
a Cấu trúc dữ liệu businessEntity
Cấu trúc dữ liệu businessEntity trình bày nhà cung cấp dịch vụ web Cấu trúc này chứa các thông tin về công ty, bao gồm danh sách liên lạc, thông tin, phân biệt các tổ chức thương mại, và danh sách các nhà cung cấp dịch vụ web
b Cấu trúc dữ liệu businessService
Cấu trúc dữ liệu businessService trình bày một dịch vụ web độc lập được cung cấp bởi businessEntity Nó mô tả các thông tin về cách thức liên kết với dịch vụ web, định nghĩa kiểu dịch vụ web và phân loại danh mục được liệt kê trong đó
c Cấu trúc dữ liệu bindingTemplate
bindingTemplate là kĩ thuật mô tả của dịch vụ web được trình bày bởi cấu trúc dữ liệu businessService bindingTemplate trình bày hoạt động thực tế dịch
Trang 24vụ web, mô tả công nghệ sử dụng để giao tiếp với dịch vụ web Một businessService có thể có nhiều bindingTemplate, cho nên dịch vụ phải chỉ rõ các hành động cụ thể khác nhau trong cùng một dịch vụ
d Cấu trúc dữ liệu tModel
tModel là lõi trong cùng của kiểu dữ liệu, nhưng rất khó có khả năng để
có thể nắm bắt được hết tModel là chuẩn cho mô hình kĩ thuật
tModel là phương pháp để mô tả một vài quy trình thương mại, dịch vụ và các cấu trúc mẫu lưu trữ trong UDDI registry Bất kì một khái niệm trừu tượng nào đều có thể được đăng ký trong UDDI như là một tModel Ví dụ: chúng ta có thể định nghĩa ra một kiểu cổng (port type) WSDL mới, và đồng nghĩa với đó ta
có thể định nghĩa ra một tModel mới mà trình bày kiểu cổng đó trong UDDI
e Cấu trúc dữ liệu publisherAssertion
Đây là một cấu trúc dữ liệu quan hệ mà nó đặt sự kết hợp giữa hai hoặc nhiều cấu trúc dữ liệu businessEntity theo một kiểu quan hệ cụ thể, chẳng hạn như một công ty con hoặc một phòng ban
Cấu trúc dữ liệu pubisherAssertion bao gồm ba thành phần chính: fromkey (BusinessKey đầu tiên), toKey (bussinesskey thứ hai) và keyedReference
KeyReference thiết kế ra kiểu mỗi quan hệ kết hợp trong cặp thuật ngữ keyName, keyValue trong tModel Tham chiếu duy nhất bởi tModelkey
2.1.4.4 XML
XML (eXtensible Markup Language) Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa những thành phần đó chứa cái
gì Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web và
Trang 25được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn mở
Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp XML là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thống nhất
2 2 Chất lượng dịch vụ của dịch vụ web
cổ chai Một vài bộ chuyển mạch có chức năng phân biệt được dòng thông tin,
ví dụ giao thức truyền tập tin FTP, giao thức siêu văn bản HTTP Web mà chúng
ta vẫn thường dùng và chuyển hướng chúng theo những quy tắc đã được định trước Hiệu quả sử dụng mạng được cải thiện rất tốt, tuy nhiên thực chất ở đâu?
QoS cho phép các nhà quản trị điều khiển dòng thông tin ở mức độ căn bản hơn, xác định phương thức để dòng thông tin của một ứng dụng nào đó đi qua các bộ định tuyến và chuyển mạch của mạng
Tuy nhiên, QoS còn liên quan đến nhiều yếu tố khác chứ không chỉ là việc quyết định dòng thông tin nào sẽ đi qua cổng nối trước tiên Nó là nền tảng cho chính sách vận hành mạng, một chính sách sẽ xác định cách thức sử dụng tài nguyên mạng trong những điều kiện đặc biệt với mức băng thông được phân bổ
Trang 26Nhà quản trị mạng có thể cung cấp dựa vào giá trị nghiệp vụ của dòng dữ liệu –
ví dụ cấp quyền ưu tiên cho giao dịch mua bán cổ phiếu cao hơn yêu cầu thông tin
Các chính sách cũng có thể nhận biết một vài dòng dữ liệu có thể thay đổi
về dung lượng và tầm quan trọng vào những thời điểm khác nhau Ví dụ, dòng thông tin bán hàng có thể có mức ưu tiên cao hơn của kế toán ngoại trừ những thời điểm vào cuối mỗi quý khi mà bộ phận kế toán phải tính toán và làm báo cáo
2.2.2 Tầm quan trọng của QoS đối với dịch vụ web
Với sự phát triển nhanh phóng và phổ biến của công nghệ dịch vụ web, Chất lượng các dịch vụ web sẽ trở thành một yếu tố quan trọng trong việc đánh giá sự thành công của các nhà cung cấp dịch vụ web QoS sẽ quyết định đến chức năng sử dụng và tính hữu ích của dịch vụ, cả hai yếu tố này đều ảnh hưởng đến tính phổ biến của một dịch vụ web
Trong thời đại hiện nay, với sự phát triển mạnh mẽ của thương mại điện tử, một yêu cầu đặt ra là phải làm sao có thể tích hợp liền mạch các quy trình thương mại, các ứng dụng thương mại điện tử và các dịch vụ web thông qua môi trường Internet Việc đánh giá chất lượng một dịch vụ web là một thách thức lớn, vì môi trường Internet cùng các ứng dụng Web–Base ngày càng phát triển mạnh mẽ, cũng chính vì thế nên các yêu cầu về chất lượng dịch vụ cũng luôn thay đổi và không thể dự đoán theo cách tự nhiên được Các ứng dụng với các đặc điểm và yêu cầu riêng biệt sẽ cạnh tranh nhau về tài nguyên mạng vốn đã rất hạn chế Sự thay đổi lưu lượng thông tin trên mạng, tấn công từ chối dịch vụ, ảnh hưởng của cơ sở hạ tầng công nghệ thông tin yếu kém và vấn đề an ninh cho các ứng dụng Web đã tạo ra sự cần thiết của việc đưa ra các chuẩn chất lượng cho các dịch vụ trên Internet Thông thường, khi không đáp ứng được các yêu cầu QoS là một nguyên nhân then chốt dẫn tới các giao tác có hiệu suất hoạt động thấp
Trang 27Với các chuẩn như SOAP, UDDI và WSDL đã được thống nhất sử dụng trong các lĩnh vực của dịch vụ web– bao gồm các dịch vụ tài chính, công nghệ cao, đa phương tiện và giải trí Tất cả các dịch vụ web đang cần phải được gắn kết với nhau để trở thành chuẩn, QoS sẽ là một yếu tố then chốt để đánh giá sự thành công cũng như sự khác nhau về chất lượng phục vụ của các dịch vụ Web
2.2.3 Các yêu cầu về chất lượng dịch vụ của dịch vụ web
Các yêu cầu về chất lượng dịch vụ của dịch vụ web phải đáp ứng được các yêu cầu dưới sau [7]:
Tính sẵn sàng: Tính sẵn sàng thể hiện một khía cạnh của chất lượng dịch
vụ, tính sẵn sàng mô tả dịch vụ có sẵn để dùng tại một thời điểm cụ thể hay không Tính sẵn sàng mô tả xác suất mà dịch vụ sẵn sàng phục vụ Trong tính sẵn sàng, một giá trị thời gian được dùng để mô tả liệu một dịch vụ có sẵn sàng
để phục vụ hay không Nếu giá trị lơn hơn tức là dịch vụ luôn sẵn sàng để sử dụng, ngược lại nếu giá trị nhỏ hơn tức là không thể dự đoán được liệu dịch vụ
có sẵn trong khoảng thời gian cụ thể hiện tại hay không Thông thường, người ta thường sử dụng một đại luợng thời gian để kết hợp với tính sẵn sàng của một dịch vụ, đại lượng thời gian đó được gọi là Thời gian phục hồi (TTR - Time to Repair ) TTR mô tả khoảng thời gian được dùng để phục hồi một dịch vụ web nếu có lỗi xảy ra Thời gian phục hồi lý tưởng và được mong đợi là thời gian phục hồi có giá trị nhỏ
Tính truy cập được: Tính truy cập được thể hiện khía cạnh chất lượng
dịch vụ qua mức độ, khả năng phục vụ các yêu cầu dịch vụ web Nó diễn tả khả năng ước lượng bao gồm tốc độ thành công hoặc sự thay đổi thành công của một dịch vụ cụ thể trong một thời điểm Tính truy cập được còn được thể hiện thông qua tính sẵn sàng của dịch vụ Web Một dịch vụ web có tính truy cập cao khi hệ thống triển khai dịch vụ web đó có độ mềm dẻo cao Độ mềm dẻo tham chiếu tới khả năng phục vụ các yêu cầu một cách nhất quán mặc dù có thể có nhiều yêu cầu khác nhau cùng tồn tại trong một tập hợp các yêu cầu
Trang 28Tính toàn vẹn: Tính toàn vẹn là một khía cạnh chất lượng của một dịch vụ
đảm bảo sự đúng đắn trong tương tác tác về tài nguyên Sự thực thi đúng đắn của các giao tác dịch vụ web sẽ cung cấp tính đúng đắn trong các tương tác Một giao tác sẽ tham chiếu tới trình tự làm việc của các thao tác được xử lý như một đơn vị công việc độc lập Tất cả các hoạt động được hoàn thành để tạo sự thành công cho một giao tác Khi một giao tác không được thực hiện thành công, tất cả
các thay đổi sẽ được phục hồi lại trạng thái ban đầu
Tính thực thi: Tính thực thi thể hiện một khía cạnh chất lượng dịch vụ mà
nó dùng để đo lường giới hạn của thông lượng và độ trễ Giá trị thông lượng cao hơn và độ trễ thấp thể hiện một dịch vụ web hoạt động tốt Thông lượng mô tả
số lượng yêu cầu dịch vụ web phục vụ tại một đơn vị thời gian định kì Đỗ trễ là thời gian xoay vòng giữa việc gửi yêu cầu và nhận các đáp ứng
Tính tin cậy: Tính tin cậy là một khía cạnh của chất lượng dịch vụ mô tả
khả năng đảm bảo dịch vụ và chất lượng dịch vụ Tính tin cậy được tính qua số lượng lỗi trên một tháng hay một năm Theo hướng tiếp cận khác tính tin cậy tham chiếu đến việc phân phát đúng đắn và đảm bảo các thông điệp sẽ được gửi
và nhận bởi các dịch vụ yêu cầu và các dịch vụ đáp ứng
Tính linh động: Tính linh động thể hiện chất lượng dịch vụ ở khía cạnh
dịch vụ có thể thích ứng với các luật, các quy tắc và khả năng kết hợp chuẩn và thiết lập các dịch vụ mức cao hơn Dịch vụ web sử dụng một số chuẩn như SOAP, UDDI, WSDL Sự tuân thủ ngặt nghèo các chuẩn để đảm bảo tính đúng đắn của các phiên bản (VD SOAP V1.2) bởi các nhà cung cấp dịch vụ web là một yếu tố cần thiết cho các yêu cầu đúng đắn của dịch vụ web từ người yêu cầu dịch vụ web
Tính an toàn: Tính an toàn của dịch vụ web thể hiện ở cơ chế bảo mật,
thẩm định quyền, mã hoá thông điệp và cung cấp quyền truy cập Tính an toàn rất quan trọng bởi vì dịch vụ web được gọi ra trên Internet Các nhà cung cấp dịch vụ Web có thể có các hướng tiếp cận khác nhau để đảm bảo độ an toàn cho các dịch vụ web
Trang 292.2.4 Dịch vụ Web có cho phép QoS
WSDL quy định ký hiệu cú pháp nhưng không quy định ngữ nghĩa hay khía cạnh phi chức năng nào Các dịch vụ web có cho phép QoS yêu cầu một vài ngôn ngữ QoS khác nhau để trả lời một số các câu hỏi sau [7]:
Thời gian trễ mong chờ là bao nhiêu?
Khoảng thời gian roundtrip-time chấp nhận được là bao nhiêu?
Lập trình viên cần phải có khả năng hiểu được các đặc điểm QoS của dịch
vụ web trong quá trình phát triển các ứng dụng gọi dịch vụ web
Trên lý tưởng, thì dịch vụ web có cho phép QoS hỗ trợ nhiều kiểu ứng dụng khác nhau với các yêu cầu QoS khác nhau, các quy tắc giao tiếp khác nhau
và tài nguyên máy tính khác nhau
2.2.5 Điều chỉnh và thiết lập ràng buộc QoS
Dưới đây là các bước mà các dịch vụ web phải thực hiện trong quá trình thiết lập ràng buộc sử dụng một nền tảng các dịch vụ web có cho phép QoS [7]:
Người yêu cầu dịch vụ đưa ra yêu cầu thiết lập liên kết ràng buộc bằng cách thiết lập tham chiếu tới một giao diện dịch vụ web Những yêu cầu này chỉ chứa các quy định về QoS
QoS broker tìm kiếm các nhà cung cấp dịch vụ trong UDDI
QoS broker thực thi việc thương lượng chất lượng dịch vụ như sau:
o QoS broker dịch vụ web so sánh các QoS của các nhà cung cấp dịch vụ với các yêu cầu QoS mà nó đặt ra, và sử dụng thông tin nội bộ của nó để quyết định chấp nhận QoS Quá trình này được gọi là thương lượng QoS
o Nếu quá trình thương lượng chất lượng dịch vụ thành công, người yêu cầu dịch vụ và nhà cung cấp dịch vụ sẽ được thông
Trang 30báo rằng quá trình thương lượng đã thành công và ràng buộc QoS giữa 2 phía đã được thiết lập Từ lúc này trở đi, các đối tượng này có thể tương tác với nhau thông qua liên kết đó
2.2.6 Phương pháp tiếp cận để cung cấp QoS cho dịch vụ web
Các nhà cung cấp dịch vụ trên nền web có thể có các phương pháp tiếp cận khác nhau để cung cấp QoS cho các dịch vụ web tuỳ vào nhu cầu về từng loại dịch vụ Hiện tại hai phương pháp đảm bảo chất lượng dịch vụ đang được
sử dụng rộng rãi đó là cân bằng tải và sử dụng bộ nhớ đệm Hai phương pháp này đều có khả năng thực thi tốt tại cả mức độ đó là Web Server và các ứng dụng của Web server Phương pháp cân bằng tải thể hiện qua mức độ ưu tiên của lưu lượng và đảm bảo mỗi yêu cầu đều được giải quyết một cách thích hợp tuỳ vào mức độ tài nguyên đối với yêu cầu đó[7]
Một nhà cung cấp dịch vụ web có thể thực thi mô hình năng lực để tạo ra một mô hình thông lượng yêu cầu, sử dụng khả năng hiện thời, kết quả của QoS theo hướng top-down Nhà cung cấp dịch vụ cũng có thể phân loại thông lượng dịch vụ web bằng số lượng thông lượng, thông lượng hoặc sự khác nhau giữa các loại ứng dụng dịch vụ, và thông lượng từ các nguồn tài nguyên khác nhau.Điều này sẽ giúp cho việc hiểu được khả năng yêu cầu để cung cấp một chất lượng dịch vụ tốt cho các luồng traffic đồng thời có thể xây dựng được một kế hoạch cung cấp chất lượng dịch vụ trong tương lai, ví dụ như xác định chuỗi các yêu cầu liên tiếp để phân cụm ra các server phục vụ
Mỗi một yêu cầu nghiệp vụ khác nhau cũng sẽ có các yêu cầu về QoS khác nhau cho từng loại nghiệp vụ, việc dựa trên khả năng mô hình hoá của QoS
có thể đảm bảo tiếp cận về mức độ QoS cho các ứng dụng và các khách hàng khác nhau Ví dụ: một dịch vụ web cung cấp các dịch vụ đa phương tiện thì thường yêu cầu QoS thiên về thông lượng tốt, tuy nhiên với các dịch vụ web cung cấp các dịch vụ ngân hàng thì yêu cầu QoS thường thiên về đảm bảo độ an toàn cho các giao dịch
Trang 31CHƯƠNG 3 TỔNG QUAN VỀ PHƯƠNG PHÁP B
Phương pháp hình thức là phương pháp cho phép sử dụng toán học (tập hợp lý thuyết và logic) để đặc tả, thiết kế và thực thi phần mềm Mã kết quả có thể được chứng minh thông qua các đặc tả nguyên bản Phương pháp B là một phương pháp hình thức cho phép chúng ta đưa ra các bước chứng minh để chứng minh việc cải tiến và thiết kế là đúng đắn
3.1 Giới thiệu chung
B là một phương pháp hình thức dùng để đặc đả, cải tiến và thực thi phần mềm Tư tưởng chính của B là bắt đầu với một mô hình rất trừu tượng của một
hệ thống chưa phát triển và dần dần thêm các chi tiết bằng cách xây dựng một dãy các mô hình cụ thể Một tiến trình phát triển cần một số bước chứng minh,
để đảm bảo tính chính xác Các bước chứng minh này sau đó được chứng minh
tự động hoặc được chứng minh tương tác Mục tiêu của B là thu được một mô hình đã kiểm chứng [8]
3.2 Khái niệm máy trừu tượng
Các pha phát triển phần mềm khác nhau được mô tả bằng tập các máy trừu tượng Một máy đóng gói một trạng thái và các toán tử trên trạng thái Trạng thái được biểu diễn bởi một tập các biến [9]
Một máy trừu tượng của một tên cho trước chứa thông tin về CONSTANTS mô tả cấu trúc của bài toán Nó gồm PROPERTIES mô tả các hằng số và ASSERTIONS là danh sách các quy tắc dùng để chứng minh Máy cũng chứa VARIABLES, INITIALIZATION và INVARIANT, mô tả các thuộc tính không đổi của một hay nhiều biến Mệnh đề OPERATIONS mô tả các thủ tục máy dự định thực hiện Mẫu của một máy được biểu diễn như Hình 3.1
Trang 32Hình 3.1 Một Máy trừu tượng tổng quát
Khi máy là một cải tiến của một máy trừu tượng nguyên thủy, một mệnh
đề mới được đưa ra gọi là REFINES, nó dùng để kết nối cả hai máy
3.3 Trạng thái ban đầu của thiết kế
Xét một ví dụ đơn giản: Tìm kiếm một phần tử v trong mảng nguyên t kích thước n Thuật toán đưa ra sẽ trả lại giá trị true (đúng) nếu phần tử v được tìm thấy trong mảng và là false (sai) nếu là không tìm thấy
Đầu tiên một máy trừu tượng mô tả ý tưởng được tạo ra, gọi là máy
“search” Từ thuật toán, chúng ta thấy có các hằng số cần được định nghĩa là t
và n Khí đó, t là một mảng nguyên kích thước n, n được lấy từ một tập N và mảng t có các phần tử từ t[0] đến t[n-1]
Mệnh đề OPERATIONS dùng để chỉ ra rằng chương trình tìm giá trị v và nếu v được tìm thấy trong mảng t thì b nhận giá trị là true, ngược lại là false
y op(x) =
PRE P THEN S END;
END
Trang 33Máy có dạng như sau:
Hình 3.2 Ví dụ máy trừu tượng search
3.4 Cải tiến
Máy trừu tượng đã cải tiến kế tiếp rất gần với máy nguyên thủy, tuy nhiên
nó thêm một vài chi tiết vào thiết kế Nó lấy các đặc tả thông qua một dãy các bước thiết kế hướng thực thi Nói cách khác, máy M được cải tiến thành M’ nếu
và chỉ nếu M’ là một sự thay thế cho M trong tất cả các trường hợp M được định nghĩa Điều này không có nghĩa là M’ là tương đương với M
Để tiến gần tới sự thực thi của một chương trình, một máy mới ‘searchR’ được tạo ra để cải tiến ‘search’ Máy làm việc trên cùng một tập các hằng số có cùng thuộc tính như trong máy ‘search’ Tuy nhiên, các thay đổi xuất hiện trong
mệnh đề OPERATIONS
Máy mới ‘searchR’ sử dụng một vòng lặp while với biến đểm i để duyệt mảng t và thiết lập b là true khi tìm thấy một phần tử trong mảng và không là gì khi không tìm thấy phần tử đó, và b ban đầu được gán bằng false
MACHINE search CONSTANTS t,n
END