DỊCH VỤ WEB VÀ CHẤT LƯỢNG DỊCH VỤ CỦA DỊCH VỤ
Dịch vụ web
Dịch vụ web là giao diện truy cập mạng cho các ứng dụng chức năng, được phát triển dựa trên các công nghệ chuẩn của Internet.
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
Dịch vụ web là một phương thức tích hợp các ứng dụng trên nền tảng web thông qua công nghệ XML, SOAP, WSDL và UDDI, nhằm mục đích kết nối ứng dụng và truyền tải thông điệp Trong đó, XML được sử dụng để đánh dấu dữ liệu, SOAP để truyền dữ liệu, WSDL để mô tả các dịch vụ hiện có, và UDDI để liệt kê các dịch vụ sẵn có cho người dùng.
Khác với mô hình Client/Server truyền thống như hệ thống Webserver/webpage, dịch vụ web không cung cấp giao diện đồ họa cho người dùng mà chỉ chia sẻ và xử lý dữ liệu logic thông qua giao diện chương trình ứng dụng trên mạng Tuy nhiên, các nhà phát triển có thể tích hợp dịch vụ web vào giao diện đồ họa như trang web hoặc ứng dụng để cung cấp thêm chức năng đặc biệt cho người dùng.
Ngày nay, dịch vụ web được triển khai trên Internet dưới dạng website HTML, yêu cầu các ứng dụng cần có cơ chế công bố, quản lý, tìm kiếm và phục hồi nội dung thông qua giao thức HTTP và định dạng HTML Để tương tác với các dịch vụ web, các ứng dụng Client như trình duyệt web cần hiểu các chuẩn mà dịch vụ hỗ trợ, giúp thực hiện các nhiệm vụ như đặt mua sách, gửi thiệp mừng hoặc đọ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, giúp loại bỏ vấn đề tương tác giữa các dịch vụ viết bằng Java và trình duyệt C++, cũng như giữa các dịch vụ triển khai trên Unix và trình duyệt trên Windows Điều này cho phép các nền tảng khác nhau giao tiếp và hoạt động cùng nhau thông qua một nền tảng trung gian liên kết.
Tính tương thích của dịch vụ web là một lợi thế mạnh mẽ, cho phép các ứng dụng và máy khách dễ dàng tích hợp với nhau, ngay cả khi công nghệ Java và công nghệ của Microsoft thường khó kết hợp.
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
Nhiều nhà cung cấp ứng dụng lớn như IBM và Microsoft đã tích cực hỗ trợ dịch vụ web trong các sản phẩm của họ Cụ thể, IBM cung cấp dịch vụ web thông qua các gói sản phẩm như WebSphere, Tivoli, Lotus và DB2, trong khi Microsoft cũng hỗ trợ dịch vụ web thông qua nền tảng NET.
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, thực hiện các chức năng từ yêu cầu đơn giản đến kết hợp các tiến trình nghiệp vụ Khi một dịch vụ web đượ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, cho phép tương tác và tích hợp linh hoạt.
Dịch vụ web cho phép các ứng dụng từ nhiều nguồn khác nhau giao tiếp mà không cần nhiều mã hóa, nhờ vào việc sử dụng định dạng XML Điều này giúp dịch vụ web không bị ràng buộc bởi hệ điều hành hay ngôn ngữ lập trình, cho phép chương trình viết bằng Java trao đổi dữ liệu với chương trình viết bằng Perl, và ứng dụng trên Windows có thể giao tiếp với ứng dụng trên Linux Ngoài ra, dịch vụ web không yêu cầu trình duyệt hay ngôn ngữ HTML, và thường được gọi là các dịch vụ ứng dụng.
Sự kết hợp giữa phát triển theo từng thành phần và cơ sở hạ tầng Web mang lại lợi ích cho doanh nghiệp, khách hàng, nhà cung cấp và cá nhân thông qua Internet.
Ngày nay, dịch vụ Web đang phát triển mạnh mẽ và có thể áp dụng trong nhiều lĩnh vực của cuộc sống Các ứng dụng bao gồm dịch vụ chọn lọc và phân loại tin tức, dịch vụ du lịch như cung cấp giá vé và thông tin địa điểm, thông tin thương mại về giá cả và tỷ giá hối đoái, cũng như các dịch vụ giao dịch trực tuyến cho cả B2B và B2C như đặt vé máy bay và mua sắm trực tuyến.
Dịch vụ web đang phát triển nhanh chóng và trở thành ưu tiên hàng đầu của các doanh nghiệp hiện nay nhờ vào những ưu điểm nổi bật mà nó mang lại.
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
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ư vào các hệ thống phần mềm hiện có bằng cách tích hợp các quy trình và chức năng nghiệp vụ qua 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 sự tích hợp hệ thống giúp giảm bớt độ phức tạp, hạ thấp chi phí hoạt động và tăng tốc độ phát triển hệ thống Điều này cũng tạo điều kiện cho việc tương tác hiệu quả với các hệ thống của doanh nghiệp khác.
Sự ngừng hoạt động của Dịch vụ Web có thể gây ra thiệt hại lớn, bao gồm giao diện không thay đổi và khả năng gặp lỗi nếu máy khách không được nâng cấp Ngoài ra, việc thiếu các giao thức cần thiết cho quá trình vận hành cũng có thể dẫn đến những vấn đề nghiêm trọng.
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]
Hình 2 3 Kiến trúc của dịch vụ web
Chất lượng dịch vụ của dịch vụ web
2.2.1 Ch ất lượng dịch vụ l à gì?
Chất lượng dịch vụ (Quality of Service - QOS) là chỉ số quan trọng để đo lường khả năng kiểm soát và phân bổ băng thông mạng, nhằm đảm bảo mức dung lượng dữ liệu phù hợp với các chức năng dự kiến, dựa trên tầm quan trọng của quy trình nghiệp vụ.
Khi lưu lượng thông tin tăng cao, chức năng cân bằng tải giúp chuyển hướng dữ liệu sang các máy chủ khác, giảm thiểu tình trạng tắc nghẽn Một số bộ chuyển mạch có khả năng phân biệt các loại dòng thông tin, như giao thức FTP và HTTP, và chuyển hướng chúng theo các quy tắc đã được thiết lập Điều này không chỉ cải thiện hiệu quả sử dụng mạng mà còn tối ưu hóa trải nghiệm người dùng.
QoS cho phép các nhà quản trị mạng kiểm soát và quản lý dòng thông tin một cách hiệu quả, xác định cách thức mà dữ liệu của từng ứng dụng được truyền qua các bộ định tuyến và chuyển mạch trong mạng.
QoS không chỉ đơn thuần là việc quyết định dòng thông tin nào được ưu tiên qua cổng, mà còn liên quan đến nhiều yếu tố khác Nó đóng vai trò quan trọng trong việc thiết lập chính sách vận hành mạng, giúp xác định cách thức sử dụng tài nguyên mạng trong các điều kiện đặc biệt với mức băng thông được phân bổ hợp lý.
Nhà quản trị mạng có thể tối ưu hóa dòng dữ liệu dựa trên giá trị nghiệp vụ, chẳng hạn như cấp quyền ưu tiên cho giao dịch mua bán cổ phiếu so với yêu cầu thông tin thông thường.
Các chính sách có thể nhận diện rằng một số dòng dữ liệu có thể thay đổi về dung lượng và mức độ quan trọng theo từng thời điểm khác nhau Chẳng hạn, thông tin bán hàng thường được ưu tiên hơn trong bộ phận kế toán, ngoại trừ vào cuối mỗi quý khi bộ phận này cần thực hiện tính toán và lập 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 chóng của công nghệ dịch vụ web, chất lượng dịch vụ (QoS) sẽ là yếu tố quyết định sự thành công của các nhà cung cấp QoS không chỉ ảnh hưởng đến chức năng và tính hữu ích của dịch vụ, mà còn tác động trực tiếp đến mức độ phổ biến của dịch vụ web.
Trong bối cảnh thương mại điện tử phát triển mạnh mẽ, việc tích hợp các quy trình và dịch vụ web qua Internet trở nên cấp thiết Đánh giá chất lượng dịch vụ web là một thách thức lớn do sự phát triển không ngừng của các ứng dụng Web-Base và yêu cầu chất lượng dịch vụ luôn thay đổi Các ứng dụng với yêu cầu riêng biệt cạnh tranh về tài nguyên mạng hạn chế, trong khi sự biến động lưu lượng thông tin, tấn công từ chối dịch vụ và hạ tầng công nghệ thông tin yếu kém làm gia tăng nhu cầu về tiêu chuẩn chất lượng dịch vụ trên Internet Thực tế cho thấy, không đáp ứng được yêu cầu QoS thường dẫn đến hiệu suất hoạt động thấp trong các giao tác.
Các chuẩn SOAP, UDDI và WSDL đã được thống nhất trong lĩnh vực dịch vụ web, bao gồm tài chính, công nghệ cao, đa phương tiện và giải trí Để các dịch vụ web hoạt động hiệu quả, việc kết nối chúng với nhau là cần thiết Chất lượng dịch vụ (QoS) sẽ là yếu tố quan trọng để đánh giá thành công và sự khác biệt 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 là một yếu tố quan trọng trong chất lượng dịch vụ, phản ánh khả năng dịch vụ có sẵn để sử dụng tại một thời điểm cụ thể Nó thể hiện xác suất dịch vụ sẵn sàng phục vụ, với giá trị thời gian cho biết mức độ khả dụng của dịch vụ Nếu giá trị này lớn, dịch vụ luôn sẵn sàng; nếu nhỏ, khả năng có sẵn không thể dự đoán Thời gian phục hồi (TTR - Time to Repair) là đại lượng thời gian thường được sử dụng để đánh giá tính sẵn sàng, mô tả khoảng thời gian cần thiết để khôi phục dịch vụ web khi xảy ra lỗi Thời gian phục hồi lý tưởng là thời gian ngắn, cho thấy dịch vụ có thể nhanh chóng trở lại hoạt động.
Tính truy cập được là yếu tố quan trọng phản ánh chất lượng dịch vụ web, thể hiện qua khả năng đáp ứng các yêu cầu dịch vụ Nó bao gồm khả năng ước lượng tốc độ thành công của dịch vụ tại một thời điểm cụ thể Tính truy cập được còn được đo lường qua mức độ sẵn sàng của dịch vụ web; một dịch vụ có tính truy cập cao cho thấy hệ thống triển khai dịch vụ đó có độ mềm dẻo tốt Độ mềm dẻo này ám chỉ khả năng phục vụ đồng thời nhiều yêu cầu khác nhau một cách nhất quán.
Tính toàn vẹn là một yếu tố quan trọng trong chất lượng dịch vụ, đảm bảo sự chính xác trong các tương tác về tài nguyên Việc thực hiện đúng các giao tác dịch vụ web sẽ mang lại độ tin cậy cho các tương tác này Mỗi giao tác được hiểu là một chuỗi các thao tác được xử lý như một đơn vị công việc độc lập, với tất cả các hoạt động cần thiết để đảm bảo thành công Nếu một giao tác không hoàn thành, tất cả các thay đổi sẽ được khôi phục về trạng thái ban đầu.
Tính thực thi là một yếu tố quan trọng trong chất lượng dịch vụ, đo lường giới hạn của thông lượng và độ trễ Giá trị thông lượng cao và độ trễ thấp cho thấy dịch vụ web hoạt động hiệu quả Thông lượng thể hiện số lượng yêu cầu dịch vụ web được xử lý trong một khoảng thời gian nhất định, trong khi độ trễ là thời gian từ khi gửi yêu cầu đến khi nhận được phản hồi.
Tính tin cậy là yếu tố quan trọng trong chất lượng dịch vụ, phản ánh khả năng duy trì và đảm bảo dịch vụ đạt tiêu chuẩn Nó được đo lường qua số lượng lỗi xảy ra trong một khoảng thời gian nhất định, như một tháng hoặc một năm Ngoài ra, tính tin cậy còn liên quan đến việc truyền tải chính xác và bảo đảm rằng các thông điệp giữa dịch vụ yêu cầu và dịch vụ đáp ứng được gửi và nhận một cách hiệu quả.
Tính linh động của dịch vụ web phản ánh khả năng thích ứng với các quy định và tiêu chuẩn, đồng thời cho phép tích hợp các dịch vụ nâng cao Các chuẩn như SOAP, UDDI, và WSDL đóng vai trò quan trọng trong việc đảm bảo tính chính xác của các phiên bản dịch vụ (ví dụ: SOAP V1.2) Việc tuân thủ nghiêm ngặt các chuẩn này là yếu tố thiết yếu để đáp ứng các yêu cầu chính xác từ người sử dụng dịch vụ web.
TỔNG QUAN VỀ PHƯƠNG PHÁP B
Giới thiệu chung
Phương pháp B là một phương pháp hình thức được sử dụng để đặc tả, cải tiến và thực thi phần mềm, với tư tưởng chính là bắt đầu từ một mô hình trừu tượng của hệ thống chưa phát triển và dần dần thêm các chi tiết thông qua việc xây dựng một dãy các mô hình cụ thể Quá trình phát triển này đòi hỏi phải thực hiện một số bước chứng minh để đảm bảo tính chính xác, và các bước chứng minh này có thể được thực hiện tự động hoặc tương tác Mục tiêu cuối cùng của phương pháp B là thu được một mô hình đã được kiểm chứng.
Khái niệm máy trừu tượng
Các giai đoạn phát triển phần mềm được mô tả thông qua các máy trừu tượng, trong đó mỗi máy bao gồm một trạng thái và các toán tử tương ứng Trạng thái này được thể hiện qua một tập hợp các biến.
Một máy trừu tượng được xác định bởi một tên cụ thể chứa thông tin về các hằng số (CONSTANTS) mô tả cấu trúc bài toán Máy này bao gồm các thuộc tính (PROPERTIES) để mô tả các hằng số và danh sách các quy tắc (ASSERTIONS) dùng để chứng minh Ngoài ra, máy còn chứa các biến (VARIABLES), thông tin khởi tạo (INITIALIZATION) và các thuộc tính không đổi (INVARIANT) của một hoặc nhiều biến Mệnh đề các thao tác (OPERATIONS) mô tả các quy trình mà máy dự định thực hiện Mẫu của một máy được thể hiện trong Hình 3.1.
Hình 3.1 Một Máy trừu tượng tổng quát
Máy là một bước tiến từ máy trừu tượng nguyên thủy, và một khái niệm mới mang tên REFINES đã được giới thiệu để kết nối hai loại máy này.
Trạng thái ban đầu của thiết kế
Khi tìm kiếm một phần tử v trong mảng nguyên t có kích thước n, thuật toán sẽ trả về true nếu phần tử v được tìm thấy và false nếu không Để thực hiện điều này, một máy trừu tượng mô tả ý tưởng của thuật toán được tạo ra, gọi là máy.
Trong thuật toán tìm kiếm, chúng ta cần xác định các hằng số t và n, trong đó t là một mảng số nguyên có kích thước n Giá trị n được lấy từ một tập hợp N, và mảng t bao gồm các phần tử từ t[0] đến t[n-1].
Mệnh đề OPERATIONS xác định rằng chương trình sẽ tìm kiếm giá trị v trong mảng t; nếu v được tìm thấy, biến b sẽ nhận giá trị true, ngược lại, b sẽ là false.
Máy có dạng như sau:
Hình 3.2 Ví dụ máy trừu tượng search
Cải tiến
Máy trừu tượng đã được cải tiến gần với máy nguyên thủy, với một số chi tiết mới trong thiết kế Sự cải tiến này diễn ra thông qua một chuỗi bước thiết kế hướng tới thực thi Cụ thể, máy M được cải tiến thành M’ nếu M’ có thể thay thế M trong mọi trường hợp mà M được định nghĩa, nhưng điều này không có nghĩa là M’ tương đương với M Để tiến gần hơn tới việc thực thi chương trình, một máy mới mang tên ‘searchR’ đã được phát triển nhằm cải tiến máy ‘search’ Máy này hoạt động trên cùng một tập hợp các hằng số với các thuộc tính tương tự như máy ‘search’, nhưng có sự thay đổi trong mệnh đề OPERATIONS.
Máy mới 'searchR' sử dụng vòng lặp while với biến i để duyệt qua mảng t Biến b được thiết lập là true khi tìm thấy một phần tử trong mảng và giữ giá trị false khi không tìm thấy.
Để đảm bảo tính chính xác trong một vòng lặp, cần phải đặc tả lặp bất biến và biến Lặp bất biến đảm bảo rằng i