VỤ, XÂY DỰNG ỨNG DỤNG
Chương 4 SOA VÀ VẤN ĐỀ TÍCH HỢP
4.2. Phân tích một số kỹ thuật tích hợp sử dụng lớp giữa
4.2.1. Khái niệm lớp giữa (middleware) Lớp giữa (middleware) được sử dụng trong rất nhiều ngữ cảnh, và trong mỗi ngữ cảnh như thế lại có một ý nghĩa khác nhau. Trong ngữ cảnh của chúng ta ở đây, thì lớp giữa là một phần mềm hỗ trợ trong việc tạo ra môi trường trao đổi dữ liệu giữa các hệ thống. Lớp giữa che dấu đi sự phức tạp trong giao tiếp của các hệ thống hay dịch vụ, làm đơn giản hóa sự phát triển những hệ thống, dịch vụ này.
Hình 4-1 thể hiện rõ vai trò cơ bản của middleware trong kiến trúc của một hệ thống tích hợp.
Hình 4-1 – Vai trò cơ bản của middleware.
4.2.2. Các sản phẩm lớp giữa (Middleware) sử dụng trong tích hợp hệ thống
4.2.2.1. Bộ chuyển đổi (Adapter)
Mỗi nguồn dữ liệu trong một hệ thống (có thể là một cơ sỏ dữ liệu hay một ứng dụng) được truy cập thông qua một thành phần gọi là bộ chuyển đổi. Một vài hệ thống không được xây dựng sẵn cho mình những thành phần bộ chuyển đổi như thế. Vì vậy, khi những hệ thống được tích hợp vào một hệ thống khác thì đòi hỏi phải thiết kế một bộ chuyển đổi cho nó.
Hầu hết các hệ thống hay hệ quản trị cơ sở dữ liệu đóng gói ngày nay đều đi kèm với những bộ bộ chuyển đổi cho nó. Những bộ bộ chuyển đổi này có thể được viết bởi chính hãng cung cấp gói sản phẩm đó, và cũng có thể là từ một hãng khác.
4.2.2.2. Message Oriented Middleware (MOM)
MOM là phần mềm hỗ trợ trao đổi dữ liệu giữa hệ thống dưới hình thức những gói tin rời rạc gọi là thông điệp. Cơ chế thông điệp đã xây dựng và sử dụng từ những năm 1970, và là một trong những cơ chế đầu tiên được dùng trong trong quá trình giao tiếp giữa các hệ thống phân tán. Nhưng khi đó, các cơ chế này được thiết kế “cứng” để thỏa mãn một yêu cầu nào đó. Còn các cơ chế thông điệp bây giờ được xây dựng dựa trên các chuẩn chung.
Hầu hết các sản phẩm MOM đều cung cấp rất nhiều tính năng, bao gồm:
truyền nhận thông điệp thông qua hàng đợi, đảm bảo an toàn cho dữ liệu truyền, hỗ trợ xử lý đồng bộ và bất đồng bộ và cho phép gửi một lúc đến nhiều nơi thông qua cơ chế xuất bản/đăng ký (publish/subscribe).
Cơ chế hàng đợi thông điệp:
Các sản phẩm “hàng đợi thông điệp” cho phép gửi một thông điệp từ ứng dụng này đến ứng dụng khác thông qua hàng đợi. Một thành phần được gọi là “quản lý hàng đợi” sẽ quản lý chuyện nhận thông điệp vào và gửi thong tin xác nhận cho đối tượng đã gửi. Hầu hết các thành phần quản lý hàng đợi đều cung cấp một dịch vụ “chuyển dữ liệu an toàn” để đảm bảo dữ liệu đã được nhận đầy đủ trước khi gửi xác nhận cho đối tượng gửi.
Hình 4-2 – Cơ chế hàng đợi [9]
Cơ chế xuất bản/đăng ký (Publish/subscribe):
Cơ chế giao tiếp xuất bản/đăng ký tách rời mối liên kết giữa phía gửi và phía nhận. Đối tượng gửi thay vì gửi trực tiếp thông tin đến đối tượng nhận sẽ gửi thông điệp đến một thành phần gọi là pub/sub. Thành phần này sẽ nhận dạng tiêu đề của thông điệp và chuyển đến cho những đối tượng nào đã đăng ký nhận loại thông điệp này.
Hình 4-3 – Cơ chế Publish/Subscribe [9]
4.2.2.3. Gọi thủ tục từ xa (Remote Procedure Call - RPC)
RPC được xây dựng nhằm hỗ trợ gọi thực thi các dịch vụ từ xa một cách đơn giản giống như gọi một thủ tục cục bộ bằng cách dấu đi cơ chế phức tạp của mạng.
RPC về cơ bản sẽ hoạt động theo cơ chế đồng bộ, nghĩa là đối tượng gọi sẽ bị tình trạng blocked cho tới khi kết quả được trả về. Nhưng cũng có thể hỗ trợ cơ chế xử lý bất đồng bộ cho RPC thông qua kỹ thuật đa luồng.
Hình 4-4 – Gọi thủ tục từ xa (Remote Procedure Call) [9]
Một đặc trưng quan trọng của RPC đó là cách thiết kế thành phần giao tiếp độc lập với phần thực thi.
4.2.2.4. Distributed Object Technology (DOT)
Đây là phiên bản hướng đối tượng của RPC. Một ứng dụng có thể sử dụng DOT để định nghĩa một tập các đối tượng có thể gọi thực thi thông qua môi trường mạng.
Hình 4-5 – Distributed Object Model [9]
Object Broker sẽ cung cấp môi trường để quản lý, giám sát quá trình giao tiếp cũng như là chu kỳ sống của tất cả các đối tượng. DOT dùng một tập tin giao tiếp gọi là IDL file (Interface Description Language). IDL là một ngôn ngữ cấp cao dùng để mô tả thông tin về thuộc tính và phương thức của những đối tượng.
Common Object Request Broker Architecture (CORBA)
Enterprise JavaBeans (EJB)
Microsoft Distributed Component Object Model (DCOM)