1. Tại sao Middleware ra đời?
Ngày nay khi sử dụng các ứng dụng trong môi trường đa phương tiện phân tán, người dùng chỉ cần cắm và sử dụng mà không cần quan tâm đến phía sau đó là gì (mô tả trên Hình 1 dưới đây). Để đạt được sự thuận tiện ấy, một loạt vấn đề trong môi trường đa phương tiện phân tán đã được giải quyết, đó là:
(1) Môi trường đa phương tiện có quy mô khổng lồ do kết hợp nhiều dạng tài nguyên trên mạng toàn cầu nên rất phức tạp, thật khó xác định một hình thù cụ thể tại một thời điểm.
(2) Tài nguyên trong môi trường này rất đa dạng, không đồng nhất và gồm nhiều loại khác nhau như: Kiến trúc phần cứng: CPU, thiết bị lưu trữ và truyền thông,… ; Phần mềm: hệ điều hành, các thư viện, công cụ; Ngôn ngữ.
(3) Bất cứ hệ thống nào nằm trong môi trường này phải thích nghi, đáp ứng linh hoạt, tự mở rộng: do phát triển trong môi trường không đồng nhất vì thế bắt buộc phải xử lý ngoại lệ, giao tiêp được với một số hệ thống khác, chịu lỗi,. . . để cung cấp dịch vụ đa dạng nhưng đảm bảo an toàn- an ninh thông tin. Ngoài ra hệ thống lưới phải tự mở rộng, dù tăng hay giảm các phần tử cũng không ảnh hưởng đến hoạt động của nó, tức là hệ thống không phải tự khởi động lại do lỗi tích lũy trong quá trình hoạt động hoặc do thêm bớt một phần tử nào đó.
Middleware là một nhóm chương trình có chức năng, nhiệm vụ làm trung gian để tương tác giữa các ứng dụng đa phương tiện từ phía người dùng và môi trường bên dưới là giải pháp giải quyết được các yêu cầu nói trên hay còn được gọi là Middleware thích nghi. Middleware quản lý an ninh - an toàn, truy cập và trao đổi thông tin:
(1) Cung cấp khả năng kết nối số lượng lớn user;
(2) Che dấu các tài nguyên chia sẽ rời rạc như máy tính, trung tâm dữ liệu,các thiết bị khác…
(3) Cung cấp các công cụ để quản lý,khởi tạo các liên kết trao đổi thông tin.
Các công ty cung cấp giải pháp phần mềm hàng đầu thế giới như: IBM và Oracle đưa ra Middleware như: IBM có: “IBM Active Middleware technology”, còn Oracle đưa ra “Oracle® Fusion Middleware”, chúng là họ sản phẩm phần mềm lớp giữa phổ biến giúp đơn giản hóa việc phát triển, triển khai, tích hợp và quản trị các ứng dụng.
Hình 1. Người dùng không biết phía sau ứng dụng là gì
Trong môi trường đa phương tiện, các hệ thống được thiết lập dựa trên các giao tiếp, giao thức với rất nhiều mục đích khác nhau. Chúng đưa ra được những kết quả cơ bản về: xác nhận, xác thực, khám phá tài nguyên, truy xuất tài nguyên,.. Vì thế muốn phát triển đa dạng ứng dụng phải có các các giao tiếp, giao thức chuẩn. Trong trường hợp không có thì chỉ xây dựng được những ứng dụng đặc thù mà thôi.
Middleware định nghĩa nội dung và chuỗi các sự kiện trao đổi thông điệp sử dụng các thao tác yêu cầu từ xa. Điều này rất quan trọng đảm bảo hai thực thể khác nhau có thể làm việc được với nhau (interoperability) được thực hiện bởi các giao thức thông thường mà hệ thống đa phương tiện lệ thuộc.
Cung cấp các API (Application Programming Interface) chuẩn: đó là các giao diện lập trình ứng dụng chuẩn, định nghĩa các giao tiếp chuẩn để viết mã thư viện, và cấu trúc các thành phần của Grid bằng cách cho phép các thành phần mã được sử dụng lại.
Với Middleware, các nhà phát triển ứng dụng không cần lập trình các mức thấp, tránh error-prone flatform như việc lập trình mạng mức socket; Giảm thời gian phát triển phần mềm bằng cách tái sử dụng framework chứ không cần xây dựng lại từ đầu; Cung cấp các trừu tượng hướng mạng ở mức cao gần với yêu cầu ứng dụng cho việc phát triển hệ thống rời rạc; Cung cấp nhiều dịch vụ: đăng nhập và bảo mật giúp hoạt động hiệu quả trong môi trường đa phương tiện.
2. Cấu trúc chức năng middleware thích nghi
Middleware là phần mềm kết nối bao gồm một tập các dịch vụ nằm trên lớp hệ điều hành mạng và nằm dưới lớp ứng dụng/người dùng (application/user). Middleware cung cấp các dịch vụ truyền thông, kết hợp các thành phần xử lý ứng dụng nằm phân tán trên mạng và một số đầu cuối mạng. Middleware cung cấp cho người phát triển ứng dụng các khái niệm lập trình ở mức cao, ví dụ sử dụng khái niệm “đối tượng ở xa” thay cho lập trình socket (Trong lập trình, Socket là một giao diện lập trình ứng dụng Application Programming Interface – API cung cấp các phương thức để giao tiếp thông qua mạng).
Cũng theo cách này, middleware có thể tự thực hiện chức năng truyền thông trong quá trình xử lý, thích nghi sự hỗn tạp của các lớp hệ thống bên dưới (như các thiết bị phần cứng, hệ điều hành hay các giao thức mạng) và tạo thuận tiện cho việc sử dụng nhiều ngôn ngữ lập trình ở mức ứng dụng. Middleware cũng có thể được coi là phần kết nối cho phép kết hợp các ứng dụng truyền thống, thực hiện một cách hiệu quả các chức năng của các lớp trình diễn và lớp phiên trong mô hình tham chiếu chức năng OSI.
Middleware thích nghi là một dạng middleware cho phép thay đổi bộ xử lý của ứng dụng phân tán theo yêu cầu chức năng xử lý và các điều kiện hoạt động của môi trường. Các hệ điều hành thích nghi cũng cho phép thích nghi chức năng trong giai đoạn chạy ứng dụng. Tuy nhiên các hệ điều hành thích nghi chỉ cung cấp các dịch vụ thích nghi ở các lớp bên dưới. Hơn nữa các middleware thích nghi cho phép sử dụng các cơ chế thích nghi động để điều khiển ứng dụng tự thích nghi với điều kiện tài nguyên của hệ thống, nhờ đó mà đảm bảo chất lượng dịch vụ ở một mức chấp nhận được.
Hình 2. Cấu trúc chức năng của Middleware
Middleware có nhiều ưu điểm cho phép đáp ứng yêu cầu QoS của ứng dụng các kiến trúc Middleware thích nghi có thể phân chia theo chức năng thành bốn lớp: Hạ tầng, Phân tán, Dịch vụ chung và Dịch vụ theo ứng dụng (mô tả trên Hình 2). Chức năng của mỗi lớp có thể nêu tóm tắt như sau:
Lớp hạ tầng. Lớp này nằm ngay trên lớp hệ điều hành (Kernel), cung cấp giao diện lập trình ứng dụng mức cao hơn mức của hệ điều hành, cho phép các ứng dụng thích nghi với sự hỗn tạp của phần cứng, hệ điều hành, các giao thức mạng và cung cấp dịch vụ chung cho các lớp trên của middleware.
Lớp phân tán. Lớp phân tán nằm trên lớp hạ tầng và cung cấp giao diện lập trình ở mức cao cho người phát triển ứng dụng. Khi sử dụng lớp phân tán, người phát triển ứng dụng có thể tạo các ứng dụng phân tán tương tự các ứng dụng độc lập. Lớp này cho phép thích nghi sự hỗn tạp của các giao thức mạng, hệ điều hành và ngôn ngữ lập trình.
Lớp dịch vụ chung. Lớp này nằm trên lớp phân tán, có chức năng điều khiển thích nghi tài nguyên nói chung như cân bằng tải, phân luồng theo thời gian, điều khiển lỗi ... Lớp này cho phép sử dụng các cơ chế điều khiển tài nguyên để đáp ứng yêu cầu tham số chất lượng dịch vụ trong một giới hạn nhất định.
Lớp dịch vụ theo ứng dụng. Lớp này nằm trên cùng và cung cấp khả năng thích nghi cho một lớp ứng dụng cụ thể nào đó, nó cho phép điều khiển tái cấu hình ứng dụng để phù hợp với điều kiện tài nguyên của hệ thống, mạng và cho phép sử dụng chung cho một nhóm ứng dụng đặc biệt.
Middleware thích nghi tập trung vào hai lớp chức năng thấp nhất: lớp hạ tầng và lớp phân tán. So với kiến trúc QoS tổng thể, kiến trúc Middleware thích nghi có khả năng đảm bảo chất lượng dịch vụ, chúng cần đáp ứng được các yêu cầu QoS cụ thể như sau:
- Trong suốt: Middleware phải trong suốt hoàn toàn đối với ứng dụng, tức là đảm bảo chất lượng dịch vụ cho ứng dụng mà ứng dụng không nhất thiết phải đáp ứng được các yêu cầu cụ thể của các lớp mạng phía dưới. Như vậy chúng có thể sử dụng ở mọi nơi trên mạng, cho phép kết nối, tương tác với các ứng dụng và dịch vụ khác nhau.
- Tích hợp: Middleware có thể cấu hình cho ứng dụng, dự báo sự thay đổi QoS để đảm báo chất lượng dịch vụ từ đầu cuối đến đầu cuối.
- Phân tách: các thành phần của Middleware chạy trên hệ thống đầu cuối và ít phụ thuộc vào hạ tầng mạng cũng như các dịch vụ mạng.
Những đặc điểm trên của middleware đáp ứng được những yêu cầu cơ bản của khung kiến trúc QoS. kiến trúc Middleware thích nghi đảm bảo chất lượng dịch vụ cho các ứng dụng đa phương tiện phân tán với các ưu điểm:
- Middleware là lớp phần mềm trung gian nằm ngay dưới lớp ứng dụng vì thế nó hoàn toàn có thể hỗ trợ đảm bảo chất lượng dịch vụ ở mức người dùng/ứng dụng.
- Middleware dễ dàng tích hợp các cơ chế thích nghi động khác nhau để đảm bảo chất lượng dịch vụ cho các ứng dụng.
Bên cạnh đó các ứng dụng đa phương tiện phân tán nằm ở lớp trên cùng của môi trường đa phương tiện phải linh hoạt và tự thích nghi với những biến đổi về chất lượng dịch vụ của môi trường từ đầu cuối đến đầu cuối. Các ứng dụng này phải đáp ứng được một số đặc tính quan trọng như:
Chúng cần phải chấp nhận và chịu được sự thiếu tài nguyên vật lý ở một giới hạn nhất định, sau đó phải có khả năng cải thiện đặc tính của nó nếu cần chia sẻ tài nguyên ở mức giới hạn lớn hơn.
Khi xuất hiện sự thay đổi mức chất lượng dịch vụ nhất định, ứng dụng có thể phải chịu sự giảm cấp chất lượng dịch vụ và cân bằng chất lượng của các tham số ít nhạy cảm hơn cho chất lượng của các tham số nhạy cảm.
Ứng dụng phải tự thích nghi với những thay đổi về điều kiện tài nguyên và môi trường mạng thông qua các cơ chế hỗ trợ dịch vụ thích nghi với những thay đổi đó.
3. Các yêu cầu đối với Middleware thích nghi
Middleware thích nghi giải quyết ba yêu cầu chính đối với thích nghi QoS theo ứng dụng:
- Điều khiển thích nghi đối với các ứng dụng hay còn gọi là bộ điều khiển phân tán chung cho các ứng dụng, tức là điều khiển thích nghi đồng thời cho tất cả các ứng dụng hiện thời trong hệ thống đầu cuối cùng chia sẻ một nguồn tài nguyên chung. Nghĩa là nhìn toàn cục hệ thống và mạng, các ứng dụng không bị điều khiển kiểu đụng độ nhau hoặc mất cân bằng.
- Kiến trúc middleware nói trên quyết định thích nghi một cách có hiệu quả nhất tức là: thời điểm nào? phương pháp nào? ứng dụng nào được điều khiển trong quá trình thích nghi.
- Đánh giá và lưu giữ thông tin. Đối với các ứng dụng, middleware đánh giá mức độ biến đổi độ sẵn sàng của tài nguyên hệ thống và mạng trong môi trường đa phương tiện, đánh giá các tham số QoS mức ứng dụng trong quá trình chạy ứng dụng, ghi kết quả đánh giá vào trong các profiler ứng dụng để việc chuyển đổi các tham số bên trong có thể thực hiện.
Mục đích chính của middleware là điều khiển quá trình thích nghi trong ứng dụng, để trong điều kiện tài nguyên biến động bất thường, ứng dụng được điều khiển thích nghi để đạt được mức độ thỏa mãn đối đa đối với một số đặc tính quan trọng được đánh giá bằng một số tham số QoS.
4. Kiến trúc middleware thích nghi
Mô hình điều khiển thích nghi động theo truyền thống mô tả trên Hình 3, nó cho phép điều khiển theo sự thay đổi tài nguyên của ứng dụng. Người ta đã cải tiến nó và áp dụng trong lớp dịch vụ chung của kiến trúc middleware tương thích QoS theo ứng dụng (theo Hình 4).
Hình 3. Mô hình điều khiển thích nghi động
Kiến trúc này phải gồm các thành phần điều khiển khi hệ thống có những thay đổi ảnh hưởng đến tất cả các ứng dụng và các thành phần điều khiển đối với mỗi ứng dụng cụ thể theo yêu cầu User.
Hình 4. Middleware tương thích theo ứng dụng
Lớp dịch vụ chung (ứng dụng chung) gồm: Bộ điều khiển thích nghi và đánh giá tài nguyên để điều khiển tài nguyên chung cho các ứng dụng khi tài nguyên hệ thống biến động.
Lớp dịch vụ theo ứng dụng (ứng dụng cụ thể) gồm 1 thành phần điều khiển và lưu giữ thông tin (Profiler) với cơ chế điều khiển theo ứng dụng và giao diện với User và họ được thực hiện chức năng điều khiển thích nghi theo mức độ ưu tiên đối với tài nguyên của ứng dụng.
Với kiến trúc hai lớp nói trên, điều khiển thích nghi QoS đối với tất cả các ứng dụng chia sẻ cùng một nguồn tài nguyên ở hệ thống đầu cuối và điều khiển thích nghi QoS đối với từng dịch vụ cụ thể được thục hiện đồng thời.
TÀI LIỆU THAM KHẢO
- S.BRANDT, G.NUTT, T.BERK and J.MANKOVICH, “A Dynamic Quality of Service Middleware Agent for Mediating Application Resource Usage”, Proceedings of 19th IEEE Real-Time Systems Symposium, December 1998, pp.307-317.
- V.H.Hiếu và D.T.Anh, “Đảm bảo chất lượng dịch vụ cho các ứng dụng bằng phương pháp tương thích động”, Tạp chí Bưu chính, Viễn thông và Công nghệ thông tin, số 311 (512), kỳ 1, Tháng 9/2007, trang 34-37.
- S.SADJADI, “A Survey of Adaptive Middleware”, Technical Report, Computer Science and Engineering, Michigan State University, September 2004.
- Parvin Asadzadeh and Srikumar Venugopal, 2004, Global Grids and Software Toolkits: A Study of Four Grid Middleware Technologies, Grid Computing and Distributed Systems Laboratory, University of Melbourne, GRIDS-TR-2004-4, , 19 pages
Phan Thành Trung (Cnth theo Thnh)