CHƯƠNG 1: TỔNG QUAN VỀ DỊCH VỤ WEB, KIẾN TRÚC HƯỚNG DỊCH VỤ SOA VÀ MÔ HÌNH ĐỒ THỊ 1. Tổng quan Dịch vụ Web Kể từ khi Web service xuât hiện đã mở ra cho các nhà phát triển dịch vụ cũng như người làm trong lĩnh vực công nghệ thông tin có hướng tiếp cận và phát triển mới. Web services bản cất là các dịch vụ web. Do Web services là sự kết hợp cửa nhiều công nghệ khác nhau nên nó giúp cho các nhầ phát triển dịch n 14 vụ nói chung và lập trình viên nói riêng có thể sử dụng nhiều nền tảng, nhiều ngôn ngữ khác nhau để phát triển ứng dụng thông qua mạng Internet.
Nó không đòi hỏi các nhà phát triển và lập trình viên phải sử dụng công nghệ mới. Đó cũng là điểm khác biệt của web services so với các nền tảng, công nghệ khác, đó chính là khả năng kết hợp các công nghệ đã có như là XML, SOAP, WSDL, UDDI để tạo ra các service, điều này giúp web services có vai trò rất quan trọng trong việc phát triển các dịch vụ hiện nay. Khái niệm Dịch vụ Web Theo định nghĩa của W3C (World Wide Web Consortium), Web Service là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML. Mô hình sử dụng Dịch vụ Web Hình 1: Kiến trúc của dịch vụ web[1] Dựa trên mô hình kiến trúc, dịch vụ web gồm 3 thành phần chính: - Cung cấp dịch vụ (web service provider) - Sử dụng dịch vụ (web service consumer) - Môi giới dịch vụ (web service broker)[1] n 15 1.
Kiến trúc của web service Hình 2: Mô hình Kiến trúc phân tầng của web service [1] Tầng vận chuyển chính là HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol), FTP (File Transfer Protocol), và công nghệ mới nhất là BEEF (Blocks Extensible Exchange Protocol), thực hiện trao đổi thông tin cho các ứng dụng sử dụng mạng. Các thành phần của web service Hình 3: Mối quan hệ giữa các thành phần [1] - XML : được gọi là ngôn ngữ mô tả văn bản, các đặc trưng và cấu trúc đều do người sử dụng tự định nghĩa đưa ra mà nó không tuân theo quy ước nào, nó được thể hiện ở các tag XML và là ngôn ngữ chính sử dụng để giao tiếp trong Web service. - WSDL: là thành phần thể hiện đặc trưng của Web service, được mô tả bằng XML WSDL có hai cấu phần: Giao diện, thi hành. n 17 Hình 4: Cấu trúc WSDL [1] - UDDI : Là thành phần mô tả các tiêu chuẩn kỹ thuật dựa trên Internet.
- SOAP : Là giao thức mô tả giao tiếp có cấu trúc giống như XML và được mã hóa các thành phần chung cho các ứng dụng sử dụng. Hiện nay nó là một thành phần rất quan trọng trong xây dựng các hệ thống phân tán từ nhiều ngôn ngữ , hệ điều hành khác nhau [1]. Cấu trúc message dạng SOAP Hình 5: Cấu trúc message của SOAP [1] b. Truyền thông SOAP hỗ trợ hai kiểu truyền thông khác nhau: n 18 Remote procedure call (RPC Document c.
Mô hình dữ liệu d. Chất lượng Dịch vụ Web Mục đích của quá trình tích hợp và lựa chọn dịch vụ web là tìm được tập các dịch vụ web thỏa mãn được các yêu cầu chức năng đặt ra và đảm bảm các tiêu chí chất lượng QoS. Chất lượng dịch vụ Web là thành phần rất quan trọng cho các nhà cung cấp dịch vụ web nói chung và các nhà phát triển công nghệ thông tin nói riêng. QoS sẽ quyết định đến tính hữu ích, sử dụng của dịch vụ [3] [4], QoS gồm các thành phần 1.
Chi phí Chi phí chất lượng Cij là số tiền mà bên yêu cầu dịch vụ cần phải trả để sử dụng dịch vụ i cho việc thực hiện công việc j. Thời gian Thời gian tij là thời gian thực hiện của dịch vụ web i khi xử lý công việc j, được tính từ thời điểm yêu cầu được gửi tới thời điểm kết quả nhận được: t ij , i ∈ [1. Tính sẵn có Chất lượng sẵn có aij là xác suất mà các dịch vụ có thể được truy cập và sử dụng. Đây là tỷ số giữa số lần các dịch vụ đáp ứng yêu cầu và số lượng tổng yêu cầu thực hiện cho các dịch vụ: n 19 reqij aij = , totij ≠ 0, i ∈ [1.1) totij reqij là số lượng yêu cầu thành công để dịch vụ i sử dụng công việc j, và totij là tổng số các lần gọi.
Danh tiếng Danh tiếng Rij là thước đo của sự tin cậy của một dịnh vụ i cho công việc j. Nó phụ thuộc vào kinh nghiệm của người dùng bằng cách sử dụng dịch vụ. Người dùng cuối khác nhau có thể có ý kiến khác nhau về cùng một dịch vụ. Danh tiếng có thể được định nghĩa là việc xếp hạng trung bình cho các dịch vụ của người dùng cuối.
Danh tiếng của một dịch vụ nhất định thường được định nghĩa là: = N b 1 kb qrep N (1.2) ở đó kb là xếp hạng b th trao cho các dịch vụ và N là số lần các dịch vụ đã được xếp hạng. Kiến trúc hướng dịch vụ SOA 1. Khái niệm SOA Kiến trúc hướng dịch vụ (SOA) là việc thiết kế, xây dựng các phần mềm, chức năng, theo các thành phần, mỗi thành phần là một “dịch vụ có tính kết nối mềm dẻo”, và được truy cập qua mạng. Người sử dụng (service consumer).
SOA là giải pháp giải quyết được các hệ thống: phức tạp, không linh hoạt và không ổn định. Triển khai theo mô hình SOA dễ mở rộng, liên kết tốt. Là cơ sở cho việc lựa chọn, sử dụng lại thành phần hiện có. Nguyên tắc của SOA 1.
Phân định rạch ròi các dịch vụ Dịch vụ tương tác với nhau qua thành phần giao tiếp. Thành phần giao tiếp sẽ qui định những định dạng giao tiếp: thông điệp nào sẽ được chấp nhận và không được xử lý. Do đó đối tượng bên ngoài có thể truy cập thông tin tới hệ thống. Dịch vụ hoạt động Dịch vụ được triển khai và hoạt động độc lập không phụ thuộc vào một dịch vụ khác, có tính bền vững cao.
Các dịch vụ có thể cộng tác lẫn nhau trong trường hợp có dịch vụ khác bị hỏng và chúng có sự an toàn, bảo mật., thể hiện tính linh hoạt , mềm dẻo trong hệ thống. Dịch vụ chia sẻ n 21 Dịch vụ cung cấp thành phần giao tiếp, chia sẻ cấu trúc thông tin, ràng buộc dữ liệu (schema) ra bên ngoài. Thể hiện được hệ thống có tính liên kết và mở rộng. Tương thích với chính sách Khi dịch vụ này muốn tương tác với dịch vụ khác thì chúng phải đảm bảo chính sách, yêu cầu dịch vụ như: mã hóa, bảo mật.Do vậy, mỗi dịch vụ cần cung cấp công khai yêu cầu và chính sách.
Tính chất SOA 1. Kết nối mềm dẻo SOA có hai loại kết nối: rời (loose) và chặt (tight). Các thành phần của chúng có sự dàng buộc khác nhau. Hiện nay việc xây dựng các phần mềm đều hướng đến tính liên kết mềm dẻo giữa các thành phần với nhau trong hệ thống.
Tái sử dụng Các dịch vụ được tái sử dụng lại đó là sự kết hợp lại với nhau theo nhiều mục đích khác nhau. Tái sử dụng lại các dịch vụ loại bỏ những thành phần trùng lắp, làm đơn giản hoá việc vận hành và quản trị hệ thống. Bất đồng bộ Khi sử dụng kết hợp dịch vụ thì các yêu cầu dịch vụ được đưa vào hàng đợi và xử lý với tốc độ tối ưu. Bên gọi không phải chờ yêu cầu xử lý xong và trả về do đó hệ thống không bị ảnh hưởng việc xử lý trễ và lỗi khi thực thi các dịch vụ bất đồng bộ.
Chính sách Các dịch vụ có một luật kết hợp riêng gọi là các chính sách. Các chính sách được áp dụng cho mỗi dịch vụ khi thiết kế và trong thời gian thực thi. Dẫn đến làm tăng tính tái sử dụng của các dịch vụ. Giúp các nhà phát triển phần mềm n 22 hỗ trợ làm việc với nhau trong suốt thời gian phát triển để cài đặt và kiểm tra những chính sách.
Cộng tác Là khả năng giúp các hệ thống giao tiếp với nhau bằng nhiều nền tảng và ngôn ngữ khác nhau. Các dịch vụ được gọi thông qua các dạng kết nối. Các kết nối gồm các giao thức và định dạng dữ liệu. Dò tìm và giàng buộc Khi người dùng thực hiện truy vấn và cần đến một dịch vụ dựa trên một số tiêu chuẩn.
Người sử dụng chỉ việc hỏi về dịch vụ nào thoả yêu cầu tìm kiếm trên giao diện và hệ thống sẽ đăng ký gửi xuống dữ liệu và dò tìm thông tin thông qua giàng buộc đăng ký, sau đó hệ thống sẽ truy xuất thông tin và trả ra cho người dùng. Hồi phục Đối với các hệ thống phân tán thì hồi phục là khi hệ thống gặp lỗi, thì hệ thống có khẳ năng tự hồi phục mà không có sự tác động của con người. Chúng ta không lường trước được khả năng sảy ra hoạt động, không hoạt động của hệ thống như ứng dụng phức tạp, nhiều thành phần. Khi đó độ tin cậy của hệ thống phụ thuộc rất nhiều vào khả năng phục hồi của phần cứng sau khi bị lỗi, hạ tầng mạng, kiến trúc cũng như tải của hệ thống,…,vv.
Ưu và nhược điểm của SOA. Ưu điểm của SOA. Tái sử dụng Các công ty, doanh nghiệp tận dụng rất tốt trong việc sử dụng SOA: khi áp dụng SOA nó giúp doanh nghiệp tận dụng được những tài nguyên sẵn có; nó làm giảm chi phí cho phần kiến trúc, phát triển và giảm chi phí mua phần mềm n 23 mới. giúp các nhà phát triển tiết kiệm được thời gian viết chương trình .Lợi ích của việc sử dụng lại các thành phần dịch vụ trên hệ thống mang lại : Giảm tính dư thừa.
Tính linh hoạt, mềm dẻo. Giúp các nhà phát triển kế thừa sử dụng tài nguyên sẵn có trong việc phát triển các dịch vụ mới. Tạo tính kết nối tương tác giữa các dịch vụ được linh hoạt hơn. Giúp các nhà phát triển tăng khả năng triển khai.
Hỗ trợ nhà phát triển dịch vụ có quy trình nghiệp vụ linh hoạt đáp ứng theo yêu cầu khách hàng. Thiết bị và nền tảng. Kiến trúc hướng dịch vụ cung cấp một tầng giao tiếp đặc biệt rất linh hoạt và mềm dẻo thông qua các Service. Tương tích với tất cả các thiết bị đầu cuối như : điện thoại di động, tablet, laptop, máy tính , trình duyệt…vv,.