Mô hình Middleware và ứng dụng vào Virtual Network Computing
MỤC LỤC
MỤC LỤC HÌNH VẼ..............................................................................................................3
MỤC LỤC TỪ VIẾT TẮT......................................................................................................5
LỜI NÓI ĐẦU..........................................................................................................................6
CHƯƠNG I: ĐẶT VẤN ĐỀ...................................................................................................9
1.1. Các vấn đề chung về thiết kế phần mềm trong môi trường phân tán.......................9
1.1.1. Mô hình peer-to-peer................................................................................................9
1.1.2. Mô hình client/server..............................................................................................10
1.2. Một số vấn đề liên quan đến các ứng dụng phân tán theo mô hình client/server. 11
1.2.1 Tiến trình giao tiếp...................................................................................................11
1.2.2 Truyền thông mạng..................................................................................................12
1.3. Mô hình phần mềm trung gian middleware...............................................................13
1.4. Hệ thống tính toán mạng ảo (Virtual Network Computing)....................................14
CHƯƠNG II: MÔ HÌNH PHẦN MỀM TRUNG GIAN MIDDLEWARE...................17
2.1. Mô hình Middleware......................................................................................................17
2.1.1. Các khái niệm về Middleware................................................................................17
2.1.1.1. Khái niệm theo internet2.................................................................................17
2.1.1.2. Khái niệm theo JISC Core Middleware Programme.......................................17
2.1.1.3. Khái niệm theo Searchbites.com.....................................................................17
2.1.1.4. Khái niệm theo Wikipedia Entry.....................................................................18
2.2. Kiến trúc, dịch vụ và thành phần middleware...........................................................18
2.2.1. Giao diện middleware............................................................................................18
2.2.1.1. Giao diện lập trình ứng dụng (Application Programming Interface)..............18
2.2.1.2. Giao diện lập trình hệ thống (System programming interface).......................19
2.2.1.3. Giao diện truyền thông (Communication Interface).......................................19
2.2.1.4. Giao diện người dùng (User Interface)...........................................................19
2.2.1.5. Giao diện dữ liệu (Data Interface)...................................................................20
2.2.2. Các tính chất của một middleware.........................................................................21
2.2.2.1. Tính tiện dụng (Usability)...............................................................................22
2.2.2.2. Tính phân tán (Distributability).......................................................................22
2.2.2.3. Tính tích hợp (Integration)..............................................................................22
2.2.2.4. Tính mở rộng (Extensibility)...........................................................................23
2.2.2.5. Sự quốc tế hóa (Internationalization)..............................................................23
2.2.2.6. Tính dễ quản lý (Manageability).....................................................................23
2.2.2.7. Tính hiệu năng (Performance).........................................................................24
2.2.2.8. Tính di động (Portability)................................................................................24
2.2.2.9. Tính tin cậy (Reliability).................................................................................25
2.2.2.10. Tính co dãn (Scalability)...............................................................................25
2.2.2.11. Tính bảo mật (Security).................................................................................25
2.2.3. Các nhóm dịch vụ middleware...............................................................................25
2.2.3.1. Dịch vụ trình diễn (Presentation services)......................................................25
2.2.3.2. Dịch vụ truyền thông (Communications services)..........................................29
2.2.3.3. Dịch vụ điều khiển (Control services).............................................................34
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-1-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
2.2.3.4. Dịch vụ thông tin (Information services)........................................................36
2.2.3.5. Dịch vụ thư mục (Directory)...........................................................................39
2.2.3.6. Dịch vụ tính toán (Computation services).......................................................39
2.2.3.6. Dịch vụ quản lý (Management services).........................................................39
2.2.3.7 Dịch vụ bảo mật (Security Service).................................................................43
2.2.4. Truy cập đối tượng từ dịch vụ Middleware............................................................44
2.2.4.1. Lập trình hướng đối tượng và EOS.................................................................44
2.2.4.2. Yếu tố căn bản cho đối tượng phân tán...........................................................45
CHƯƠNG III: VIRTUAL NEWORK COMPUTING.....................................................48
3.1. Giới thiệu chung..............................................................................................................48
3.1.1. Virtual Network Computing...................................................................................48
3.1.2. Kiến trúc và chức năng của hệ thống.....................................................................49
3.2. Thin – Client....................................................................................................................50
3.2.1. Giới thiệu chung.....................................................................................................50
3.2.2. Kiến trúc của Thin-Client.......................................................................................51
3.3. Giao thức RFB (Remote Frame Buffer)......................................................................52
3.3.1. Thông điệp bắt tay-Handshaking Message............................................................52
3.3.2. Thông điệp Client gửi Server.................................................................................54
3.3.3. Thông điệp Server gửi Client.................................................................................58
3.3.4 Các mã hóa trong giao thức RFB-Encodings..........................................................60
3.3.4. Mã hóa giả (pseudo-encodings).............................................................................64
CHƯƠNG IV: MIDDLEWARE VÀ VIRTUAL NETWORK COMPUTING..............66
4.1. Hệ thống VNC.................................................................................................................66
4.1.1. VNC Server............................................................................................................68
4.1.2. VNC Viewer...........................................................................................................70
4.2. Middleware trong hệ thống tính toán mạng ảo..........................................................72
4.3. Ứng dụng trong chương trình BKEC..........................................................................73
4.3.1. Vấn đề và giải pháp của phần mềm hỗ trợ giảng dạy trên mạng LAN (BKECECLASS)..........................................................................................................................73
CHƯƠNG V: KẾT LUẬN....................................................................................................82
5.1. Kết quả đạt được.............................................................................................................82
5.2. Hướng phát triển trong tương lai.................................................................................82
TÀI LIỆU THAM KHẢO.....................................................................................................83
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-2-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
MỤC LỤC HÌNH VẼ
Hình 1.1: Mô hình Peer-to-Peer.............................................................................................9
Hình 1.2: Mô hình Client/Server.........................................................................................10
Hình 1.3: Tiến trình giao tiếp ứng dụng.............................................................................12
Hình 1.4: Mô hình tham chiếu OSI.....................................................................................13
Hình 1.5. Mô hình middleware............................................................................................14
Hình 1.6: Mô hình giao tiếp giữa VNC Server và VNC Client........................................15
Hình 2.1: Giao diện middleware..........................................................................................21
Hình 2.2: Sơ đồ chung về dịch vụ trình diễn......................................................................27
Hình 2.3: Kiến trúc dịch vụ giao tiếp..................................................................................30
Hình 2.4: Kiến trúc chung của dịch vụ hàng đợi thông điệp...........................................33
Hình 2.6: Kiến trúc dịch vụ điều khiển...............................................................................35
Hình 2.7: Kiến trúc dịch vụ thông tin.................................................................................37
Hình 2.8: Kiến trúc chung của dịch vụ quản lý.................................................................40
Hình 2.9: Kiến trúc chung về dịch vụ bảo mật..................................................................43
Hình 3.1: VNC Viewer trên các máy khác nhau...............................................................48
Hình 3.2: Kiến trúc thin client.............................................................................................52
Hình 3.3: Giao thức RFB......................................................................................................52
Hình 4.1: Mô hình chung của ứng dụng VNC...................................................................66
Hình 4.2: Biểu đồ diễn tiến của một phiên làm việc..........................................................67
Hình 4.3: Biểu đồ chức năng của VNC Server..................................................................68
Hình 4.4: Mô hình giao tiếp trong hệ VNC........................................................................69
Hình 4.5: Mô hình giao tiếp người dùng trong hệ VNC...................................................70
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-3-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Hình 4.6: Biểu đồ chức năng của VNC Viewer..................................................................70
Hình 4.7: Các giao diện sử dụng trong hệ thống...............................................................71
Hình 4.8: Giao tiếp trong hệ thống VNC khi không có middleware..............................72
Hình 4.9: Mô hình middleware trong VNC........................................................................73
Hình 4.10: Mô hình phần mềm BKEC phân cấp theo chức năng..................................75
Hình 4.11: Mô hình middleware sử dụng Direct Play 9.0................................................76
Hình 4.12: Biểu đồ lớp quan hệ lớp System Server..........................................................77
Hình 4.13: Lớp System Server.............................................................................................78
Hình 4.14: Biểu đồ quan hệ lớp SystemClient...................................................................79
Hình 4.15: Mô hình trao đổi thông tin giữa BKEC Server và BKEC Client................80
Hình 4.16: Mô hình middleware sử dụng VNC.................................................................81
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-4-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
MỤC LỤC TỪ VIẾT TẮT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
API
CI
COM
DCE
DI
EOS
GUI
MI
ORB
OSF
RFB
RPC
SPI
UI
VNC
Application Programming Interface
Communication Interface
Component Object Model
Distributed Computing Environment
Data Interface
Enterprise Object Software
Graphical User Interface
Manager Interface
Object Request Broker
Open Software Foundation
Remote Frame Buffer
Remote Procedure Call
System Programming Interface
User Interface
Virtual Network Computing
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-5-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
LỜI NÓI ĐẦU
Ngày nay công nghệ thông tin đã phát triển và lớn mạnh trở thành một trong
những ngành mũi nhọn của mọi quốc gia trên thế giới. Công nghệ thông tin được
ứng dụng vào mọi ngành kinh tế, mọi lĩnh vực của đời sống, cùng với sự phát triển
của cơ sở hạ tầng, internet và đặc biệt là sự phát triển không ngừng của khoa học kỹ
thuật đã giúp cho mọi người làm việc hiệu quả hơn, mọi hoạt động mua bán, giải trí
trở nên đơn giản và ranh giới giữa các quốc gia, khu vực dần biến mất. Hiện nay
chúng ta có thể làm việc, mua sắm và nói chuyện với tất cả mọi người trên thế giới
mà không cần thiết phải gặp mặt nhau chỉ đơn giản thông qua một cái nhấp chuột
nhờ sử dụng các phần mềm và hệ thống internet toàn cầu. Xây dựng và triển khai
các phần mềm sử dụng trên mạng là một trong những ưu tiên hàng đầu của những
nhà phát triển phần mềm hiện nay. Nhưng có một vấn đề đặt ra là sự không tương
thích giữa các hệ điều hành, giữa các thiết bị và giữa các giao thức và mạng khác
nhau. Đây thực sự là một vấn đề nan giải và cực kỳ khó khăn đối với nhóm hay
công ty nhỏ muốn xây dựng những phần mềm kiểu này cả về chi phí tiền bạc, nhân
lực cũng như thời gian. Nhưng thật may mắn, vấn đề này các nhà phát triển thường
không phải giải quyết do có các phần mềm trung gian (middleware) đảm nhiệm.
Middleware có vai trò rất quan trọng trong những phần mềm hoạt động trên mạng,
cho các hệ làm việc cộng tác (collaboration) nhằm giải quyết các vấn đề liên quan
đến nhiều lĩnh vực khác nhau cần nhiều các chuyên gia trong các ngành khác nhau
tham gia xây dựng,… Các phần mềm này thường do các tổ chức và các công ty lớn
đưa ra nhằm giúp đỡ xóa bỏ những chướng ngại gặp phải do môi trường phân tán và
sự không đồng nhất của mạng và các nền khác nhau đưa đến và thường được bán.
Nội dung chính của đồ án em xin trình bày về ba vấn đề chính:
• Middleware: đây là phần quan trọng nhất sẽ trình bày toàn bộ những
nghiên cứu về middleware, kiến trúc chung, mô hình cũng như các dịch
vụ được cung cấp bởi các middleware. Qua đó để thấy rõ tầm quan trọng
và tính ứng dụng rộng lớn của middleware bởi vì hiện nay tuy có rất
nhiều các sản phẩm của nhiều các công ty khác nhau nhưng chúng chỉ có
tầm ứng dụng hạn chế và ứng dụng trong phạm vi cụ thể. Hiểu rõ về
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-6-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
middleware chúng ta có thể đưa ra những giải pháp một cách tối ưu để
xây dựng được những ứng dụng một cách tốt nhất, hiệu quả nhất.
• VNC (Virtual Network computing): đây là phần thứ hai giới thiệu về mô
hình tính toán mạng ảo được sử dụng rất rộng rãi hiện nay để xây dựng
các ứng dụng quản lý trên mạng. Trong phần này em đưa ra những tìm
hiểu về mô hình tính toán mạng ảo, công nghệ thin-client và giao thức
remote frame buffer-những công nghệ làm nên sức mạnh của VNC-qua
đó cũng đưa ra những ứng dụng của middleware vào VNC.
• Ứng dụng của middleware vào hệ thống tính toán mạng ảo: phần này là
những nghiên cứu về những gì đã và nên áp dụng vào VNC để cải thiện
hiệu quả của hệ thống này. Trong phần ứng dụng em xin trình bày về
những ứng dụng của middleware và VNC trong chương trình hỗ trợ giảng
dạy trên mạng LAN (BKEC-Eclass) - do nhóm chúng em xây dựng những điểm đã và chưa làm được và hướng phát triển tiếp theo để có thể
sử dụng một hiệu quả hơn các middleware nhằm xây dựng phần mềm
một cách tốt nhất, hiệu quả nhất.
Đồ án được chia thành 5 chương như sau:
Chương I: Đặt vấn đề. Trong chương đầu tiên này em sẽ giới thiệu chung các mô
hình phát triển phần mềm trong môi trường phân tán, mô hình phần mềm trung gian
(Middleware) và hệ thống tính toán mạng ảo (Virtual Network Computing).
Chương II: Mô hình phần mềm trung gian middleware. Chương thứ hai này cũng là
chương chính của đồ án em giới thiệu về toàn bộ các dịch vụ, giao diện và ứng dụng
của middleware trong các ứng dụng phân tán.
Chương III: Virtual Network Computing. Trong chương ba này em tập trung giới
thiệu thế nào là hệ thống tính toán mạng ảo, ứng dụng cũng như những công nghệ
thin-client, giao thức remote frame buffer sử dụng trong hệ thống VNC.
Chương IV: Middleware và Virtual Network Computing. Chương này tập trung đi
vào phân tích chức năng của hệ VNC Server và VNC Viewer, các dịch vụ, đặc điểm
và tính chất của middleware trong hệ thống. Cuối cùng của chương là phần phân
tích ứng dụng sử dụng VNC và Direct X Play 9.0 để xây dựng hệ thống hỗ trợ giảng
dạy BKEC (Có tài liệu kỹ thuật kèm theo).
Chương V: Kết luận. Chương cuối cùng là phần tổng kết kinh nghiệm thu được sau
khi hoàn thành đồ án, có đưa ra những điểm đã làm được, những điểm còn thiếu sót
và đưa ra một số hướng phát triển của đề tài.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-7-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Đây là một đề tài không thật sự là mới nhưng là một đề tài rất bổ ích và khó
vì hạn chế về tài liệu, thời gian cũng như kinh nghiệm nên chắc chắn còn nhiều thiết
sót. Em rất mong quí thầy cô xem xét và cho những nhận xét và hướng dẫn để em
có thể tiếp tục nghiên cứu xây dựng và hoàn thiện trong thời gian tới.
Em xin chân thành cảm ơn các thầy cô trong bộ môn công nghệ phần mềm
đã giúp đỡ chúng em rất nhiều trong thời gian xây dựng và triển khai phần mềm
BKEC cũng như hoàn thành đồ án này.
Em xin bày tỏ lòng biết ơn sâu sắc đến Ths Đinh Hùng, giám đốc Trung tâm
máy tính trường Đại học Bách Khoa Hà Nội. Người đã tạo mọi điều kiện về cơ sở
vật chất và tinh thần, cung cấp các tài liệu tham khảo và cho em những lời khuyên
quý báu để có thể hoàn thành đồ án này.
Hà Nội, Ngày 20 tháng 5 năm 2005
Sinh viên: Vũ Đức Chính
Lớp: Tin Pháp K45
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-8-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
CHƯƠNG I: ĐẶT VẤN ĐỀ
1.1. Các vấn đề chung về thiết kế phần mềm trong môi trường phân tán
Để xây dựng các ứng dụng phân tán chúng ta thường hay sử dụng hai mô
hình thông dụng nhất đó là peer-to-peer và client/server. Mỗi mô hình đều có ưu và
nhược điểm riêng đối với các ứng dụng trong những môi trường cụ thể. Trong phần
đầu tiên của đồ án em xin giới thiệu sơ qua về hai mô hình này nhằm giúp cho mọi
người có thể dễ dàng tiếp cận mô hình phần mềm trung gian (middleware) và hệ
thống tính toán mạng ảo được xây dựng trong môi trường phân tán sử dụng các mô
hình này.
1.1.1. Mô hình peer-to-peer
Một ứng dụng peer-to-peer bao gồm các máy tính của người sử dụng kết nối
với nhau thông qua liên kết mạng. Dưới đây là mô hình topology của ứng dụng gồm
bốn người dùng trong mô hình peer-to-peer.
Hình 1.1: Mô hình Peer-to-Peer
Một đặc điểm quan trọng của mô hình peer-to-peer là thông tin từ một máy
gửi đi cần phải đến tất cả các máy khác nên băng thông đường truyền, cũng như
thời gian xử ở tất cả các máy là như nhau và tương đối lớn (do vai trò của các máy
là bình đẳng như nhau trong môi trường mạng). Vì vậy nếu phát triển trên mạng
Internet thì nên sử dụng mô hình Client-Server nhưng mô hình peer-to-peer lại thích
hợp trong các ứng dụng phát triển trên mạng LAN.
Trong mô hình này mọi người dùng có thể trao đổi thông tin trực tiếp với
nhau thông qua liên kết mạng. Ví dụ, khi một ứng dụng phía user (người dùng) bị
thay đổi thì ứng dụng sẽ phải gửi 3 message (thông điệp) để cập nhật lại thông tin
cho các máy khác.
Bởi vì trong mô hình này không tồn tại server do nên chúng ta cần một máy
đứng ra làm máy chủ (host). Sau đó các client sẽ truy vấn để tìm session (phiên)
trên host. Khi tìm được máy chủ, các client sẽ gia nhập session nên từ địa chỉ máy
(client và host) đều có quyền thực hiện như nhau trong môi trường mạng. Nếu máy
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
-9-
Mô hình Middleware và ứng dụng vào Virtual Network Computing
host gặp sự cố thì hệ thống sẽ chọn một máy trạm (client) làm host do đó không ảnh
hưởng đến các client còn lại.
Ưu điểm của mô hình peer-to-peer có ưu điểm khá đơn giản. Nhưng nhược
điểm của mô hình này là khi số lượng user tăng lên thì thì số lượng message cũng
tăng lên. Vì vậy số lượng client trong các ứng dụng nên hạn chế trong mức cho
phép.
1.1.2. Mô hình client/server
Thuật ngữ client/server đã được sử dụng lần đầu tiên vào những năm 1980
khi mà sự phát triển của máy tính và hệ thống mạng đang tăng lên không ngừng.
Kiến trúc các phần mềm client/server được đưa và sử dụng cuối những năm 1980 và
tỏ ra rất linh hoạt. Trên Internet, một trình duyệt Web là một chương trình client mà
những yêu cầu dịch vụ được gửi đến Web server thông qua giao thức HTTP từ một
máy tính bất kì nơi nào trên thế giới có kết nối Internet.
Kiến trúc client/server là một dạng chung trong hệ thống tính toán phân tán.
Một hệ thống phân tán là một tập hợp rất nhiều máy tính, sự phân tán này là trong
suốt hay không quan trọng đối với người sử dụng. Hệ thống chỉ xuất hiện trên các
máy trạm hay các máy cục bộ, cho nên đối với những chuyên gia, những người có
những hiểu biết nhất định thì các hệ thống máy tính của họ, việc sao lưu giữ liệu,
cân bằng tải và các chức năng của hệ thống có tầm quan trọng rất lớn.
Một ứng dụng client/server bao gồm các máy tính của người sử dụng có thể
kết nối với nhau thông qua một máy server trung tâm. Mô hình client/server có thể
được mô tả một các đơn giản dưới đây:
Client
.
Terminal
PC
Mạn
g
server
Data
.
Hình 1.2: Mô hình Client/Server
Các client (có thể là các PC, các terminal, laptop…) không được phép trao
đổi thông tin trực tiếp lẫn nhau mà phải gián tiếp qua Server. Như vậy có thể thấy
băng thông đường truyền cũng như thời gian xử lý của máy chủ là rất lớn còn các
máy khác lại nhỏ. Việc tăng số lượng máy client đòi hỏi chủ yếu phải nâng cấp phía
server. Điều này rất được khuyến khích phát triển trên mạng Internet.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 10 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Các máy tính của user có thể giao tiếp với nhau thông qua server. Server có
nhiệm vụ truyền thông tin tới các user khác. Ví dụ, khi một user thay đổi thì máy
tính của user này sẽ gửi message tới server. Server sẽ gửi message này tới toàn bộ
các user khác trong session. Server có một số nhiệm vụ sau:
• Hoạt động như một hub/switch để phân chia các message trong session. Mọi
máy tính chỉ cần gửi message cho server. Server điều khiển logic đồng bộ tất
cả các user. Việc sắp xếp như vậy có thể giảm nguy cơ ách tắc thông điệp
(message) đặc biệt trong các ứng dụng lớn gồm nhiều user tham gia.
• Đóng vai trò máy chủ trong ứng dụng. Server sẽ thực hiện các nhiệm vụ điều
khiển phiên làm việc.
• Hỗ trợ các phần trong ứng dụng, với nhiều ứng dụng đặc biệt với các ứng
dụng lớn nhiều quá trình xử lý được thực hiện trên server, còn client chỉ điều
khiển giao diện người dùng (UI).
Mô hình client/server có rất nhiều ưu điểm:
• Chúng khá hiệu quả nhất là những ứng dụng lớn nhiều user tham gia, thực tế
cho thấy chúng tốt hơn nhiều so với mô hình peer-to-peer bởi vì sự gia tăng
của các user là tuyến tính với sự gia tăng số lượng message. Mô hình
client/server là cần thiết đối với các ứng dụng đa người dùng.
• Chúng ta có thể xử lý phức tạp trên máy chủ còn các máy user thì chì cần
điều khiển UI. Do đó, các máy chủ thường rất mạnh còn các máy user chỉ
cần cấu hình bình thường.
• Chúng ta có thể điều khiển các ứng dụng một cách tập trung. Ví dụ, bạn có
thể thường xuyên cập nhật hay sửa lỗi với việc sửa đổi lại ứng dụng server.
1.2. Một số vấn đề liên quan đến các ứng dụng phân tán theo mô hình
client/server
1.2.1 Tiến trình giao tiếp
Khi một ứng dụng bao gồm hai hay nhiều tiến trình chạy trên các máy khác
nhau, những tiến trình này cần phải giao tiếp được với nhau. Hình 1.3 biểu diễn sự
phức tạp của giao tiếp giữa các thành phần, giống như trên hình 1.3 thì giao tiếp
trên thực tế bao gồm nhiều hơn một mức:
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 11 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Giao thức ứng dụng
Tiến trình gửi
Data
Tầng ứng dụng
Tầng trình diễn
Tầng phiên
Tầng truyền thông
Tầng mạng
Tầng liên kết dữ liệu
Tầng vật lý
Data
Data
Data
Data
Data
Data
Data
Tiến trình nhận
Tầng ứng dụng
Tầng trình diễn
Tầng phiên
Tầng truyền thông
Tầng mạng
Tầng liên kết dữ liệu
Tầng vật lý
Giao thức mạng
Gói tin
Hình 1.3: Tiến trình giao tiếp ứng dụng
• Phần mềm mạng và phần cứng tạo nên các giao tiếp ở mức thấp.
• Kiến trúc ứng dụng và thiết kế xác định nội dung và mục đích của giao tiếp ở
tầng cao nhất.
• Middleware xác định cách thức các thành phần trong ứng dụng phân tán sử
dụng phần mềm mạng và phần cứng để giao tiếp.
1.2.2 Truyền thông mạng
Một số chuẩn về cách truyền thông trên mạng thường dùng được biểu diễn ở
hình 1.4. Đây là mô hình OSI, chúng ta không cần phải xem xét lại một cách chi tiết
nhưng em đưa ra đây do hai lí do:
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 12 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Mô hình tham chiếu OSI
Tầng 7
Ứng dụng
Tầng 6
Trình diễn
Các giao thức phổ biến
RPC
Messaging
DCE
Peer-toSUN peer
NDA XDR
Tầng 5
Phiên
Tầng 4
Truyền thông
Tầng 3
Mạng
NetBIOS
NetBEUI
Socket
TCP/IP
Liên kết vật lý
TLI
IPX
APPC
LUC6.2
IEEE 802.2
Tầng 2
Media Access
Control
(MAC)
Tầng 1 Vật lý
Enthernet
Cáp quang
SDLC
ISDN
Cáp xoắn đơn Cáp xoắn đôi
Hình 1.4: Mô hình tham chiếu OSI
• Lí do đầu tiên là mô hình này cung cấp một sơ đồ biểu diễn quan hệ giữa các
giao thức trung gian (ví dụ như RPC) và những giao thức mạng thông dụng
nhất như TPC/IP, LU6.2, Ethernet, và ISDN.
• Lí do thứ hai nó làm nổi bật những tranh cãi về giao thức thông điệp được sử
dụng cho các giao diện ứng dụng mức cao (tầng 7 của OSI) và không thuộc
về tầng thấp hơn tầng mạng, và các giao thức truyền thông được sử dụng để
cài đặt thông điệp (từ tầng 2 đến tầng 5 của mô hình OSI).
Giao tiếp trên mạng tại những tầng thấp sử dụng các giao thức và các định
dạng khác nhau, hoặc FAP, việc cài đặt sử dụng một số kiểu thông điệp, gói dữ liệu
khác nhau và những hiểu biết về ứng dụng không thể nhìn thấy.
1.3. Mô hình phần mềm trung gian middleware
Ngày nay hệ thống thông tin đóng vai trò rất quan trọng giúp mọi người có
các điều kiện tốt nhất để giao tiếp, mua bán và kinh doanh. Hệ thống thông tin
mang đến mọi thông tin về mọi mặt cả về hình dạng, tính chất giúp giảm thiểu đáng
kể những khó khăn cũng như bất cập về khoảng cách hay bất đồng ngôn ngữ. Việc
xây dựng những ứng dụng để thỏa mãn điều này là ưu tiên hàng đầu của các xí
nghiệp, công ty lớn ở mọi quốc gia. Nhưng khi xây dựng những ứng dụng này các
nhà phát triển thường vấp phải những khó khăn về sự không tương thích về phần
cứng, phần mềm hệ điều hành do các nhà cung cấp khác nhau. Để có thể xây dựng
được các ứng dụng tương thích cần rất nhiều công sức tiền của và cũng không phải
hoàn toàn đạt được kết quả như mong muốn.
Thật may mắn để giải quyết vấn đề này đã có các phần mềm trung gian
middleware. Bằng việc cung cấp tập các chuẩn cho việc xử lý phân tán, middleware
giúp loại bỏ những khó khăn về sự không tương thích phần cứng, phần mềm cũng
như hệ điều hành giúp các nhà phát triển thực sự không cần lo lắng về những khó
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 13 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
khăn này nữa. Chúng ta cứ tạm hiểu middleware như một tầng trung gian đặt giữa
tầng mạng và tầng ứng dụng, giúp các ứng dụng giao tiếp với nhau mà không cần
chú ý đến các tầng thấp hơn. Chúng ta có thể dễ dàng nhìn thấy điều này như trên
hình 1.5.
Ứng dụng
Ứng dụng
Middleware
Middleware
Hệ điều hành
Hệ điều hành
Mạng
Hình 1.5. Mô hình middleware
Trong đồ án này em chỉ xin đưa ra một số cách nhìn nhận về middleware,
kiến trúc, dịch vụ và một số ứng dụng phổ biến của nó. Em không thật sự đi vào xây
dựng một middleware vì công việc này quá khó đòi hỏi rất nhiều công sức và tiền
của, mà thực sự là không cần thiết vì khi xây dựng các ứng dụng phân tán, chúng ta
nên tìm các sản phẩm middleware có sẵn sẽ giúp chúng ta giảm thiểu giá thành và
thời gian hoàn thành của ứng dụng. Phần tiếp theo em xin giới thiệu về Virtual
Network Computing, một hệ thống được sử dụng rất nhiều trong các ứng dụng quản
lý trên mạng hiện này. Ở phần này chúng ta sẽ tìm hiểu xem hệ thống đã sử dụng
các sản phẩm middleware chưa và nếu chưa thì chúng ta có thể sử dụng như thế nào
để hệ thống có thể đạt được những kết quả tốt hơn nữa.
1.4. Hệ thống tính toán mạng ảo (Virtual Network Computing)
Khái niệm network computer (mạng máy tính) là hướng tới người dùng để
có thể truy cập tài nguyên một cách tập trung, đơn giản từ các thiết bị rẻ tiền. Hoạt
động của các thiết bị này giống như một client kết nối đến máy server rất mạnh và
được cung cấp các ứng dụng, dữ liệu, hay lưu trữ các thông tin cá nhân. Ý tưởng
này còn vươn xa hơn nữa. Trong hệ thống VNC, máy server không chỉ hỗ trợ các
ứng dụng và dữ liệu mà nó còn hỗ trợ các thành phần trên màn hình để có thể được
truy nhập từ nhiều máy client có sử dụng phần mềm network computer. Bất cứ khi
nào màn hình của VNC được truy cập thì trạng thái và cấu hình của nó sẽ là như
nhau cho tới lần truy nhập cuối cùng.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 14 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
VNC là một hệ thống điều khiển từ xa mà cho phép bạn có thể nhìn và tương
tác với một máy tính khác (được gọi là server) sử dụng một chương trình đơn giản
(được gọi là viewer) trên một máy khác từ bất cứ nơi đâu trên mạng. Hai máy tính
không cần cùng một kiểu ví dụ bạn có thể quan sát một máy văn phòng Linux từ
một máy tính Windows PC từ nhà.
Hình 1.6: Mô hình giao tiếp giữa VNC Server và VNC Client
• VNC có tầm ứng dụng rất rộng rãi. Nó cho phép một người tại một máy tính
từ xa có thể nắm giữ quyền điều khiển của một máy khác trên mạng, như thể
là bạn đang ngồi trên máy mà bạn điều khiển vậy.
• Đối với người dùng cá nhân, một kịch bản chung là sử dụng VNC để giải
quyết vấn đề về khoảng cách. Nói theo một cách khác ngồi trên một máy ở
Hà Nội bạn có thể điều khiển một máy khác ở London và sử dụng nó như
đang sử dụng máy ở Hà Nội vậy.
• Đối với các nhà doanh nghiệp, VNC có thể được sử dụng để cung cấp giải
pháp màn hình mềm dẻo theo cách cho phép các cán bộ trong công ty truy
cập tới các màn hình ở văn phòng và máy chủ từ bất kỳ máy nào trong công
ty hoặc một điểm từ xa, không quan tâm đến kiểu máy được sử dụng. VNC
cũng có thể được sử dụng để quản trị hệ thống từ xa bao gồm điều khiển, sửa
lỗi…
• VNC cũng được sử dụng trong môi trường giáo dục, ví dụ cho phép một
nhóm các học viên phân tán có thể đồng thời quan sát một màn hình đang
hướng dẫn và thao tác, hoặc cho phép giáo viên có thể điều khiển máy học
viên để cung cấp các trợ giúp cần thiết.
Hệ thống VNC là một hệ thin-client. Cũng giống như các hệ thống khác nó
giảm thiểu tối đa trạng thái duy trì hoạt động ở thiết bị đầu cuối của người dùng,
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 15 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
không đòi hỏi hay có yêu cầu cao về tài nguyên sử dụng đặc biệt là phần cứng.
Tuy nhiên hệ thống VNC không chỉ là một hệ thin-client mà nó là sự tổng
hợp khác nhau từ các hệ thống khác nhau như giao thức Citrix ICA, SCO’s
Tarantella, Graphon’s RapidX, và của Microsoft’s Win-dows-based Terminal Server.
Một vấn đề đối với tất cả ngoại trừ Microsoft đó là không như hệ thống X
Windows, các hệ thống đó sử dụng các giao thức riêng. Giao thức Citrix’s ICA là
một cơ chế phổ biến cho tất cả các tương tác từ xa giữa các PC, tuy giao thức này
khá gần với GUI (Graphic User Interface) của Microsoft Windows GUI, nhưng
không phải là một ý tưởng mang tính phổ biến dành cho giao thức hiển thị.
Microsoft đã phát triển giao thức T.Share của họ dựa trên giao thức ITU
T.120. Giao thức này đã được sử dụng trong một phần mềm khá nổi tiếng về hội
thảo trực tuyến đó là NetMeeting của Microsoft (đi kèm trong windows).
Công nghệ ẩn trong VNC là một giao thức hiển thị đơn giản. Giao thức này
làm cho VNC hoạt động rất mạnh mẽ và có nhiều ứng dụng trong các ứng dụng dạy
học trực tuyến, quản lý màn hình... Không như các hệ thống và các giao thức hiển
thị khác như X Window System và Citrix’s ICA, Giao thức của VNC độc lập hoàn
toàn với hệ điều hành và các ứng dụng.
Trong đồ án này em sẽ trình bày về hệ thống VNC thông qua công nghệ sử
dụng chính của nó là thin-client, giao thức RFB và phần cuối là ứng dụng
middleware vào hệ thống này.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 16 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
CHƯƠNG II: MÔ HÌNH PHẦN MỀM TRUNG GIAN
MIDDLEWARE
2.1. Mô hình Middleware
Trong phần này em sẽ đưa ra khái niệm, kiến trúc và các dịch vụ của các
phần mềm trung gian (middleware). Nó không đi vào một phần mềm cụ thể mà đưa
những giao diện chính, dịch vụ mà middleware cung cấp để phát triển ứng dụng.
Đầu tiên là một số khái niệm chung về middleware của một số tổ chức xây dựng và
tìm hiểu về middleware.
2.1.1. Các khái niệm về Middleware
Rất khó để đưa ra một định nghĩa tổng quát về Middleware vì đây là một
trong những hướng nghiên cứu được rất nhiều tổ chức và cá nhân tham gia và đưa
ra các sản phẩm phục vụ cho mục đích riêng của họ. Ở đây em chỉ xin đưa ra một số
khái niệm thông dụng và hay được sử dụng nhất hiện nay.
2.1.1.1. Khái niệm theo internet2
Middleware hoặc “glue” là một lớp của phần mềm nằm giữa tầng mạng và
tầng ứng dụng. Phần mềm này cung cấp những dịch vụ giống như là định danh, xác
thực, quyền hạn, thư mục và bảo mật. Trong tình hình Internet hiện nay, ứng dụng
thường cung cấp các dịch vụ cho chính mình, nó điều khiển tính cạnh tranh và
không tương thích chuẩn. Cùng với sự chuẩn hóa và tương thích ngày một tăng,
middle sẽ tạo nên những ứng dụng mạng dễ sử dụng.
2.1.1.2. Khái niệm theo JISC Core Middleware Programme
Theo JISC (tổ chức về các chương trình dựa trên middleware) thì
middleware được miêu tả giống như tiến trình của tập các trợ giúp nhằm kết nối con
người với tài nguyên cần thiết. Middleware có thể cài đặt ở tất cả các mức và không
chỉ ở là một phần của phần mềm hoặc chỉ là một dịch vụ nằm tại desktop (màn
hình) của người sử dụng. Về kỹ thuật, nó có thể được xem như là một lớp phần
mềm hoặc “glue” nằm giữa tầng mạng và tầng ứng dụng. Middleware có thể được
dùng chung bởi nhiều ứng dụng, phục vụ nhiều mục đích trong các môi trường khác
nhau. Nhân của Middleware được định nghĩa giống như tập các dịch vụ quan trọng
chủ chốt, có thể đưa ra như: thẩm định, cấp phép, dịch vụ thư mục và nhận dạng.
2.1.1.3. Khái niệm theo Searchbites.com
Middleware có thể được xem xét giống như là “glue” là một lớp phần mềm
tồn tại giữa tầng mạng và tầng ứng dụng. Các dịch vụ của nó bao gồm bảo mật, thư
mục, thẩm định, xác nhận, cấp phép… Ngày này thì các ứng dụng sử dụng trên
mạng một cách đơn giản là cung cấp các dịch vụ cho từng tổ chức, đó chính là lí do
dẫn đến các vấn đề về tiêu chuẩn tương tranh và không tương thích. Tuy nhiên khi
đòi hỏi kết hợp và chuẩn hóa giữa các phần được đẩy mạnh, middleware được thiết
kế sao cho dễ dàng nâng cấp các ứng dụng mạng.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 17 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
2.1.1.4. Khái niệm theo Wikipedia Entry
Trong hệ tính toán sử dụng máy tính, tồn tại nhằm gắn kết giữa các thành
phần ứng dụng khác nhau. Nó thường được sử dụng để hỗ trợ các ứng dụng phân
tán phức tạp.
Tóm lại chúng ta có thể hiểu middleware chính là lớp phần mềm trung gian
nằm giữa tầng mạng và tầng ứng dụng nhằm cung cấp các dịch vụ, giúp các thành
phần có thể tương tác với nhau không phụ thuộc vào thành phần xây dựng theo nền
gì. Hình 1.5 biểu diễn về vị trí và vai trò của middleware trong các ứng dụng phân
tán giúp kết nối các ứng dụng khác nhau trong môi trường phân tán không đồng
nhất. Chúng ta có thể thấy rõ vị trí của nó tầng ứng dụng và tầng mạng sử dụng các
hệ điều hành khác nhau, nhờ middleware chúng có thể giao tiếp, tương tác với nhau.
2.2. Kiến trúc, dịch vụ và thành phần middleware
Có thể nói middleware là một khái niệm khá rộng để có thể đưa ra những
kiến trúc chung tổng quát nhất chính vì vậy khi nói đến kiến trúc ở đây, em chỉ xin
đưa ra cách tiếp cận thông qua các giao diện cung cấp cho các nhà phát triển và các
dịch vụ của chúng.
2.2.1. Giao diện middleware
Middleware và các hệ thống tính toán khác có thể định nghĩa theo giao diện
của chúng. Giao diện middleware được phân chia dựa vào các thành phần phụ thuộc
ứng dụng từ các phần độc lập. Ví dụ, một chương trình ứng dụng mà sử dụng một
dịch vụ middleware phụ thuộc vào đặc tả của giao diện lập trình ứng dụng, và nó
độc lập với sự thực thi của middleware như thế nào. Ở đây em xin đưa ra các kiểu
giao diện chính sau.
2.2.1.1. Giao diện lập trình ứng dụng (Application Programming Interface)
Giao diện lập trình ứng dụng (API) miêu tả chương trình ứng dụng tương tác
như thế nào các dịch vụ của middleware. Tất cả các dịch vụ middleware đều có các
API, tuy vậy trong một số trường hợp API là native (đặc trưng thuộc về nền tảng
của ứng dụng).
Mỗi một đặc tả API miêu tả một cú pháp và ngữ nghĩ trừu tượng của dịch vụ,
bao gồm các tham số định nghĩa và vai trò sử dụng. Ngôn ngữ lập trình cung cấp
các cú pháp cụ thể cho API. Trong các yếu tố đặc biệt, các đặc tả API, không mang
đầy đủ thông tin cho người phát triển ứng dụng để triệu gọi một dịch vụ. Người phát
triển ứng dụng đòi hỏi hai kiểu thông tin khác nhau, nó bao gồm các đặc tả sau:
• Đặc tả ngôn ngữ lập trình: miêu tả cú pháp và ngữ nghĩa của các thao tác
chung. Những đặc tả này làm tăng các chỉ dẫn của kiểu ứng dụng nhằm giúp
người lập trình viết mã và dễ dàng phân phối.
• Đặc tả môi trường hệ thống: bao gồm mọi thứ mà người lập trình cần để
hiểu cách sử dụng hệ thống một cách đúng đắn nhất khi xây dựng chương
trình ứng dụng. Có lẽ thông tin quan trọng nhất nằm trong đặc tả môi trường
hệ thống là một danh sách các dịch vụ cung cấp cho các người lập trình ứng
dụng.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 18 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
2.2.1.2. Giao diện lập trình hệ thống (System programming interface)
Giao diện lập trình hệ thống (SPI) miêu tả làm thế nào một lập trình viên hệ
thống có thể mở rộng hoặc thay đổi thể hiện của các dịch vụ middleware. Không
phải tất cả các dịch vụ middleware đều đưa ra SPI. Một SPI thì giống như một API,
nhưng nó là một giao diện mức thấp hơn và bởi vậy các nhà lập trình ứng dụng
không thường xuyên sử dụng giao diện này. Các nhà lập trình ứng dụng sử dụng các
dịch vụ middleware để thực hiện các logic của ứng dụng, nhưng không nhận các
thay đổi liên quan của thể hiện của dịch vụ.
Chúng ta có thể đưa ra một số các dịch vụ middleware đưa ra SPI. Ví dụ như
các dịch vụ thông điệp và xử lý phiên, SPI cho phép lập trình viên hệ thống có thể
thêm các hỗ trợ cho phần mạng được thêm vào.
2.2.1.3. Giao diện truyền thông (Communication Interface)
Giao diện truyền thông (CI) hoặc giao thức truyền thông mức ứng dụng miêu
tả cách các thành phần middleware, chạy trên các hệ thống khác nhau trong một
mạng, chuyển đổi dữ liệu và điều khiển thông tin, giữa chúng cũng như với các
thành phần khác. Hầu hết các dịch vụ middleware đều có CI. Tuy nhiên, trong một
vài trường hợp, CI là những dịch vụ riêng.
Người phát triển ứng dụng hiếm khi cần các thông tin liên quan về CI bởi vì
các dịch vụ middleware là của các mức cao và phân tán trong suốt. Tuy nhiên, CI
thường liên quan đến hệ thống tích hợp và lập trình hệ thống bởi vì họ mới cần hiểu
các giao thức của dịch vụ middleware dùng để cấp phép cho các dịch vụ và tương
tác với các middleware khác, các hệ thống phân tán không middleware và các thành
phần khác.
CI miêu tả giao thức ứng dụng của dịch vụ có thể sử dụng cho mỗi kiểu giao
thức mạng (ví dụ TCP/IP, OSI, DECnetPhase IV hoặc Phase V, PC LANs). RPC
hoàn toàn định nghĩa giao thức truyền thông cho các dịch vụ dựa trên các giao diện
mạng của dịch vụ. Việc sử dụng RPC cho phép các dịch vụ thực hiện các hoạt động
phân tán.
CI cũng bao gồm các gateway cho các middleware khác và các dịch vụ nonmiddleware mà có khả năng dùng được trong hệ thống.
2.2.1.4. Giao diện người dùng (User Interface)
Giao diện người dùng (UI) miêu tả cách người dùng tương tác với hệ thống
thông tin. Tất cả các dịch vụ đều có UI, hầu hết các dịch vụ UI đều là ở bên trái của
chương trình ứng dụng. Một giao diện người dùng có thể bao gồm đầu ra, đầu vào
hoặc cả hai. UI cần phải nắm giữ sự thay đổi của kiểu thiết bị và phạm vi rộng lớn
của vai trò người dùng, ngôn ngữ và văn hóa. Dịch vụ middleware trình diễn quản
lý UI. Dịch vụ này đơn giản là định nghĩa một cơ chế tương tác căn bản, nó thường
bao gồm một kiểu. Cũng như, có những hiểu biết chung giống như tìm kiếm và sử
dụng UI. Các nhà phát triển ứng dụng sử dụng cơ chế dịch vụ trình diễn và thêm
vào thỏa thuận của UI, đôi khi có sự giúp đỡ của các hướng dẫn kiểu.
Các thiết bị UI chung bao gồm các máy tính cá nhân (chạy hệ điều hành Windows),
các trạm làm việc sử dụng Motif và hệ thống X Window, các thiết bị đầu cuối hiển
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 19 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
thị video và máy in. Nó cũng bao gồm cả các thiết bị nhận biết tiếng nói, các máy
scan ảnh và bảng đồ họa.
2.2.1.5. Giao diện dữ liệu (Data Interface)
Giao diện dữ liệu (DI) miêu tả cú pháp và lược đồ của các định dạng dữ liệu
hỗ trợ. Một vài dịch vụ đưa ra DI, nhưng hầu hết các dịch vụ định nghĩa truy cập dữ
liệu chỉ thông qua API, nó coi DI là riêng.
Ở đây cũng có thể nêu thêm một cách định nghĩa giao diện mới được thêm vào đó
là giao diện quản lý (Manager Interface: MI). MI chính là người quản lý tương ứng
cho mỗi loại giao diện nói trên.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 20 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Hệ thống khách
Giao diện người dùng
Ứng dụng
Giao diện lập trình ứng dụng
Dịch vụ cục bộ hoặc Stub
Giao diện truyền thông
Hệ thống chủ
Tập dịch vụ
Giao diện lập trình hệ thống
Giao diện dữ liệu
Service Internal
Data
Hình 2.1: Giao diện middleware
Hình 2.1 biểu diễn về sự tương tác của năm kiểu giao diện chính, nhìn trên
sơ đồ chúng thấy rõ ràng sự giao tiếp giữa các giao diện cũng như chức năng và
công dụng của từng giao diện trong các chương trình ứng dụng. Thông qua giao
diện CI các dịch vụ sẽ được cung cấp cho người dùng qua giao diện người dùng
(UI) tương tác với ứng dụng thông qua giao diện lập trình (API).
2.2.2. Các tính chất của một middleware
Toàn bộ các middleware đều hỗ trợ các tính chất này, những tính chất này
giúp middleware ngày một trở nên quan trọng và không thể thiếu đối với những nhà
phát triển ứng dụng trong môi trường phân tán.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 21 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
2.2.2.1. Tính tiện dụng (Usability)
Tính tiện dụng là sự mở rộng cho các hệ thống hoặc thành phần giúp người
dùng thực hiện công việc ngày càng hiệu quả hơn. Tính tiện dụng có một vài ngữ
cảnh khác nhau giống như nó là người dùng của hệ thống máy tính. Tính tiện dụng
là khác nhau đối với nhà quản trị hệ thống, nhà phát triển, và người sử dụng.
Có một số khía cạnh tạo nên một hệ thống dễ sử dụng nằm trong một số tính
chất khác bởi vì tất cả chúng giúp cho việc xây dựng, sử dụng và quản lý hệ thống
thông tin một cách dễ dàng nhất có thể.
2.2.2.2. Tính phân tán (Distributability)
Tính phân tán cho phép các client và các thành phần của một dịch vụ, công
cụ hoặc ứng dụng có thể thực hiện trên các thành phần phần cứng khác nhau trong
một mạng.
Tính phân tán được thể hiện từ không (tất cả các thành phần phần mềm đều
chạy trên một máy tính duy nhất) và phân tán hoàn toàn (mọi thành phần có thể
chạy trên mọi máy cùng với việc mã hóa tự động và di chuyển dữ liệu). Mục đích
của sự phân tán của middleware hỗ trợ các khả năng sau:
• Làm trong suốt sự phân tán của dịch vụ nhằm làm cho việc sử dụng dễ dàng
nhất. Trình khách của một dịch vụ không cần thiết phải hiểu dịch vụ là phân
tán hay không. Nó có thể thiết kế, xây dựng, gỡ rối, thực hiện và quản lý ứng
dụng và các thành phần theo cách không phụ thuộc vào sự định vị của các
thành phần trong hệ thống.
o Không chỉ làm cho sự phân tán là trong suốt với chương trình ứng
dụng, môi trường phát triển ứng dụng cũng tự mình trở nên trong
suốt.
o Môi trường phát triển ứng dụng có thể trong suốt sự phân tán hơn là
có thể khai thác môi trường phân tán của cấu hình phần cứng.
• Mô hình đa phân tán, với sự mở rộng của mô hình client/server.
• Phân tán dữ liệu, xử lý và hàm biểu diễn.
2.2.2.3. Tính tích hợp (Integration)
Tính tích hợp là khả năng của ứng dụng nhằm làm việc cùng nhau theo một
cách nhất quán để thực hiện các công việc của người sử dụng. Khả năng thao tác
giữa các phần (interoperability) và khả năng đồng nhất (uniformity) là hai mặt chìa
khóa của tính tích hợp.
Interoperability là sự mở rộng của tập các thành phần triệu gọi và chuyển đổi
thông tin một cách hiệu quả, giống như nhận dữ liệu vào và ra cũng như là chuyển
đổi dữ liệu nếu cần thiết. Uniformity là sự mở rộng của tập các thành phần không
đổi phụ thuộc vào tập các thuộc tính của ứng dụng. Interoperability là một điều kiện
cần thiết (nhưng không hiệu quả) cho tính tích hợp. Ví dụ có hai hệ thống có thể
tương tác thông qua một gateway, chúng cung cấp một tập các giao diện hoàn thiện
khác nhau (UI, API, SI, CI) và do đó có sự tích hợp mức thấp. Vì lí do này sự đồng
nhất cũng là một thể hiện quan trọng của sự tích hợp.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 22 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Khả năng đồng nhất mức cao, sự đồng nhất đặc trưng về giao diện, làm giảm
tính phức tạp của hệ thống và tạo nên hệ thống dễ sử dụng, thay đổi,…Tính đồng
nhất của giao diện cũng tạo nên sự thích ứng đa dạng trong các hệ thống phân tán.
2.2.2.4. Tính mở rộng (Extensibility)
Khả năng mở rộng là sự dễ dàng thích ứng trong một hệ thống khi có những
yêu cầu mới. Tính mở rộng bao gồm khả năng thích hợp và thay đổi một hàm hoặc
một dữ liệu (kiểu dữ liệu, định dạng file, lược đồ dữ liệu, hoặc mô hình thông tin)
không có những tác động sau:
• Đòi hỏi thay đổi các hàm, dữ liệu và giao diện đã tồn tại.
• Những tác động không mong muốn (giống như là sự suy giảm về hiệu năng,
tính tin cậy, tính khả chuyển).
Có 3 hình thức mở rộng sau:
• Customization: cho phép khách hàng hoặc người sử dụng cuối có thể thay
đổi một số tính chất của hệ thống (về giao diện người dùng).
• Configuration: cấu hình cho phép cài đặt hoặc tích hợp hệ thống nhằm thay
đổi hệ thống cũng như các thành phần, ví dụ như là thay đổi các tham số hệ
thống khi gặp phải những yêu cầu của thị trường, hoặc chuẩn hóa thành phần
để đạt được cùng một giao diện nhằm giảm giá thành cũng như tạo nên
những giải pháp dễ dàng cho mọi vấn đề.
• Evolution: cho phép các nhà thiết kế và phát triển thành phần thay đổi các
tính chất bên trong của thành phần, ví dụ như thay đổi các sắp xếp dữ liệu.
2.2.2.5. Sự quốc tế hóa (Internationalization)
Sự quốc tế hóa là sự đánh giá cho các hệ thống thông tin phù hợp với người
dùng và dữ liệu từ nhiều nền văn hóa khác nhau (ví dụ như người Trung Quốc ở
Trung Quốc, người Trung Quốc ở Singapore, người Trung Quốc ở Hồng Kông và
người Trung Quốc ở Đài Loan có các nền văn hóa khác nhau cần thiết phải có
những giao tiếp và xử lý khác nhau).
Có hai khuôn khổ của sự quốc tế hóa:
• Đòi hỏi của người dùng.
• Số lượng nền văn hóa hỗ trợ.
2.2.2.6. Tính dễ quản lý (Manageability)
Tính dễ quản lý là sự mở rộng cho người quản lý hệ thống có thể cấu hình,
điều khiển, bắt lỗi và điều khiển tài nguyên của môi trường tính toán. Hệ thống
quản lý phân tán là một vòng lặp của tiến trình phản hồi thông tin. Người quản trị
hệ thống điều khiển trạng thái của tài nguyên phân tán và cung cấp các đầu vào điều
khiển cho tài nguyên, đó là nguyên nhân các hệ thống phân tán có thể hoạt động
thích hợp với các mục đích của xí nghiệp. Khả năng quản lý là một yếu tố quan
trọng trong các hệ thống hoạt động không đồng nhất, các công ty hoạt động trên
diện rộng. Mục tiêu của tính quản lý trong middleware bao gồm sự hỗ trợ khả năng
đảm bảo dịch vụ, ứng dụng và là nền tảng cho sự quản lý từ xa.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 23 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
Quản lý tất cả tài nguyên trong môi trường hoạt động bao gồm:
• Thành phần hệ thống (timesharing và xử lý gói, trạm làm việc, PC, thiết bị
ngoại vi và lưu trữ media).
• Thành phần mạng (cả vật lý và logic).
• Phần mềm (hoạt động hệ thống, phần mềm máy chủ, dịch vụ tầng, công cụ
và ứng dụng).
• Cơ sở dữ liệu.
• Quản lý toàn bộ vòng đời của các tài nguyên, bao gồm thiết kế, phát triển,
cài đặt, bảo trì…
• Hỗ trợ tất cả các hàm quản lý ứng dụng vào tài nguyên ví dụ như quản lý
lỗi, quản lý hiệu năng, tính toán và bảo mật.
2.2.2.7. Tính hiệu năng (Performance)
Hiệu năng là một phép đo các tài nguyên đòi hỏi để thực hiện một thao tác.
Hầu hết các phép đo hiệu năng chung sử dụng phương pháp đo thời gian thực hiện
thao tác. Hiệu năng có thể bao gồm các phép đo của việc sử dụng các tài nguyên
như bộ xử lý, giao tiếp, vào ra và bộ nhớ. Hiệu suất là tỉ số giữa tài nguyên sử dụng
và số lượng các thao tác thực hiện. Sự dùng được là khả năng sử dụng của tài
nguyên. Thông lượng là một phép đo của số lượng các thao tác trên một đơn vị thời
gian. Một cách điển hình, một công ty sẽ thay đổi cho phù hợp với hiệu năng của
các thành phần trong hệ thống của mình. Kết quả sẽ đưa ra được một tỉ lệ hợp lý
giữa giá thành và hiệu năng. Hiệu năng tốt phụ thuộc vào cả kiến trúc và cài đặt của
hệ thống.
2.2.2.8. Tính di động (Portability)
Portability là cách đơn giản nhất giúp nhà phát triển có thể di chuyển phần
mềm giữa các nền khác nhau. Ở một mức cao hơn của tính di động chính là sự cốt
yếu tạo nên thành công trong môi trường tính toán không đồng nhất. Nếu không có
nó, phần mềm có thể không thể hoạt động một cách chính xác trên một số nền.
Để đạt được tính di động trong các ứng dụng phù hợp với các nền, middleware cần
phải thực hiện những công việc sau:
• Hỗ trợ các ứng dụng di động dựa trên hiện trạng của phần mềm, nơi mà phần
mềm chỉ phụ thuộc vào ngôn ngữ, dịch vụ API các giao thức định nghĩa bởi
profile. Phần mềm là di động thì đều hỗ trợ profile này.
• Cung cấp giao diện di động cho các dịch vụ middleware theo các nền khác
nhau.
• Hỗ trợ di động đa chiều, bao gồm APIs, chương trình, dữ liệu, người dụng,
tài liệu và công cụ phát triển.
• Đảm bảo cho các dịch vụ middleware, giao thức, công cụ phát triển và các
thành phần khác nếu cần thiết.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 24 -
Mô hình Middleware và ứng dụng vào Virtual Network Computing
2.2.2.9. Tính tin cậy (Reliability)
Tính tin cậy là liên quan đến hệ thống, hoặc một phần hệ thống. Nó được đo
bằng khoảng thời gian trung bình lỗi khi mà lỗi được định nghĩa là khả năng không
thể cung cấp của hệ thống.
2.2.2.10. Tính co dãn (Scalability)
Scalability là sự đánh giá của các nhà phát triển có thể ứng dụng một giải
pháp cho các vấn đề có nhiều kích cỡ khác nhau. Lý tưởng, một giải pháp có thể
làm việc tốt trong phạm vi rộng và có độ phức tạp cao. Tuy nhiên trong thực tế,
thường sử dụng giải pháp đơn giản nhất cho các vấn đề có độ phức tạp thấp. Sự khó
khăn gặp phải khi vấn đề có độ phức tạp thấp lại chiếm nhiều thời gian hơn những
vấn đề có độ phức tạp cao. Trong hệ thống thông tin xí nghiệp diện rộng, một số các
phương pháp đo độ phức tạp quan trọng đó là số lượng các node trong hệ thống,
người dùng và các tài nguyên mạng khác.
2.2.2.11. Tính bảo mật (Security)
Security là sự bảo vệ thông tin từ những thay đổi không hợp pháp hoặc ngăn
chặn và bảo vệ tài nguyên khỏi người dùng không được phép. Mục đích của những
dịch vụ bảo mật bao gồm sự thi hành xác thực, điều khiển truy nhập và kiểm định
chức năng để đảm bảo cho những trường hợp sau:
• Dịch vụ có thể nhận dạng tin cậy người dùng hoặc hệ thống nhân danh ai và
thao tác nào đang được thực hiện.
• Ngữ cảnh an toàn của người dùng hoặc hệ thống là giới hạn chính xác nhằm
thực thi phần mềm.
• Thông tin tạo ra bởi ứng dụng và dịch vụ hoặc nhân danh một người dùng
hoặc hệ thống được bảo vệ thích hợp từ người dùng khác hoặc hệ thống.
• Các phần mềm thực thi bắt buộc phải sử dụng đối tượng và thao tác của
chúng cho các người dùng triệu gọi hoặc hệ thống cấp quyền.
• Ứng dụng có thể quản lý các đối tượng của chúng có khả năng tăng quyền
truy cập cho các đối tượng trong một phương thức nhất quán.
• Ứng dụng có thể ghi lại các sự kiện bảo mật có liên quan (dùng cơ chế log
file).
2.2.3. Các nhóm dịch vụ middleware
2.2.3.1. Dịch vụ trình diễn (Presentation services)
Presentation services cung cấp các giao diện người dùng khác nhau cho các
ứng dụng cần thiết, ví dụ như windows cho các trạm làm việc (workstations), form
cho dữ liệu vào, và giao diện cho các terminal, đồ họa, in ấn.
a. Tương tác với người dùng
Các ứng dụng và công cụ sử dụng trong dịch vụ trình diễn để hiển thị thông
tin tương tác với người dùng. Những dịch vụ này hỗ trợ việc tạo giao diện người
dùng và phân phát thông tin, nhưng nó không phân phối những chức năng cho
những ứng dụng cụ thể, riêng biệt.
Vũ Đức Chính - Tin Pháp K45 – Khoa CNTT
- 25 -