Tải bản đầy đủ (.pdf) (50 trang)

Dịch vụ web web service xây dựng ứng dụng phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 50 trang )

LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này được hoàn thành dựa trên kết quả nghiên cứu của tôi
với sự hướng dẫn, hỗ trợ của Thầy hướng dẫn là tiến sĩ Ngô Bá Hùng. Các công
việc nghiên cứu và nội dung thực hiện trong luận văn chưa từng được nộp để lấy
bằng cấp từ bất cứ trường nào, ngoại trừ phần lý thuyết và các kết quả từ các công
trình nghiên cứu khác được ghi rõ trong luận văn.
Cần Thơ, ngày 10 tháng 11 năm 2012
Người cam đoan

Trần Cao Nhân

Trang i


LỜI CẢM ƠN
Lời đầu tiên, em xin chân thành gửi lời cảm ơn tới Thầy, Tiến sĩ Ngô Bá
Hùng. Những hướng dẫn tận tình, rõ ràng vã những phương pháp nghiên cứu của
Thầy đã giúp em gặp rất nhiều thuận lợi trong quá trình thực hiện luận văn. Nhờ sự
chỉ dẫn, định hướng của Thầy mà em hoàn thành tốt luận văn này. Em xin chân
thành cảm ơn Thầy!
Lời tiếp theo em xin gởi đến các Thầy Cô đã giảng dạy em trong suốt khóa
học. Cảm ơn Thầy Cô đã truyền đạt cho em những kiến thức nền tảng rất quý giá,
giúp em có thể thực hiện tốt luận văn cũng như áp dụng vào công việc sau này của
mình.
Em cũng xin gởi lời cảm ơn đến Ban chủ nhiệm Khoa Công nghệ Thông tin
và Truyền thông, Ban giám hiệu Trường đại học Cần Thơ đã tạo điều kiện thuận lợi
cho em trong suốt khóa học.
Chúc các Thầy Cô luôn khỏe mạnh, hạnh phúc và thành đạt!
Xin chân thành cảm ơn!
Trần Cao Nhân


Trang ii


MỤC LỤC
LỜI CAM ĐOAN .............................................................................................................. i
LỜI CẢM ƠN ................................................................................................................... ii
MỤC LỤC ....................................................................................................................... iii
DANH MỤC HÌNH ẢNH ................................................................................................. v
TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ ........................................................................... vi
TÓM TẮT ...................................................................................................................... viii
ABSTRACT..................................................................................................................... ix
CHƯƠNG 1: GIỚI THIỆU................................................................................................ 1
1.1.
Giới thiệu vấn đề ............................................................................................. 1
1.2.
Lịch sử giải quyết vấn đề................................................................................. 2
1.3.
Mục tiêu, đối tượng và phạm vi của đề tài ....................................................... 3
1.4.
Kết cấu luận văn .............................................................................................. 3
CHƯƠNG 2: ỨNG DỤNG PHÂN TÁN ........................................................................... 5
2.1.
Giới thiệu ........................................................................................................ 5
2.2.
Các loại mô hình kiến trúc ứng dụng phân tán ................................................. 5
2.2.1. Mô hình truyền thông điệp .......................................................................... 5
2.2.2. Mô hình khách hàng - phục vụ (client-server) ............................................. 6
2.2.3. Mô hình lời gọi thủ tục từ xa - Remote Procedure Call................................ 7
2.2.4. Mô hình đối tượng phân tán ........................................................................ 8
2.2.5. Mô hình dịch vụ mạng ................................................................................ 8

2.2.6. Mô hình bộ môi giới yêu cầu đối tượng - Object Request Broker ................ 9
2.2.7. Mô hình không gian đối tượng - Object Space .......................................... 10
2.3.
Công nghệ dựa trên thành phần ..................................................................... 10
CHƯƠNG 3: DỊCH VỤ WEB ......................................................................................... 11
3.1.
Giới thiệu ...................................................................................................... 11
3.2.
Các nền tảng của dịch vụ web ....................................................................... 12
3.2.1. Service-Oriented Architecture (SOA)........................................................ 12
3.2.2. Simple Object Access Protocol (SOAP) .................................................... 13
3.2.3. Extensible Markup Language (XML) ....................................................... 13
3.2.4. Hypertext Transport Protocol (HTTP) ....................................................... 14
3.2.5. Web Services Description Language (WSDL) ........................................... 14
3.2.6. Universal Description, Discovery, and Integration (UDDI) ....................... 15
CHƯƠNG 4: NỘI DUNG NGHIÊN CỨU ...................................................................... 17
4.1.
Mô hình nhân bản thành phần của ứng dụng phân tán.................................... 17
4.2.
Mô hình CBM4HTC (Cloud-based Model for High Throught Computing) .... 19
4.2.1. Nhân bản động thành phần........................................................................ 19
4.2.2. Trong suốt quá trình triển khai .................................................................. 21
4.2.3. Giải quyết cạnh tranh ................................................................................ 21
4.2.4. Các thành phần chức năng của mô hình CBM4HTC ................................. 22
4.3.
Cài đặt mô hình CBM4HTC .......................................................................... 26
4.3.1. Nhóm dịch vụ thực hiện chức năng của ứng dụng ..................................... 26
4.3.2. Nhóm dịch vụ quản lý ............................................................................... 29
4.4.
Mô tả hoạt động của hệ thống........................................................................ 33

CHƯƠNG 5: KIỂM THỬ VÀ ĐÁNH GIÁ MÔ HÌNH ................................................... 35
5.1.
Triển khai hệ thống ....................................................................................... 35
5.2.
Đánh giá các tính năng của mô hình .............................................................. 36

Trang iii


CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .................................................. 39
6.1.
Kết luận ........................................................................................................ 39
6.2.
Hướng phát triển ........................................................................................... 40
TÀI LIỆU THAM KHẢO ............................................................................................... 41

Trang iv


DANH MỤC HÌNH ẢNH
Hình .1:Các mô hình kiến trúc ứng dụng phân tán ............................................................. 4
Hình .2: Giao tiếp giữa các tiến trình qua thông điệp ......................................................... 5
Hình .3: Mô hình khái niệm của mô hình Client - Server ................................................... 5
Hình .4: Minh họa việc gọi thủ tục từ xa - RPC của 2 tiến trình ......................................... 6
Hình .5: Mô hình lời gọi thủ tục từ xa RMI........................................................................ 7
Hình .6: Mô hình của dịch vụ mạng - Network Service ...................................................... 8
Hình .7: ORB đóng vai trò môi giới trung gian .................................................................. 8
Hình .8: Minh hoạt mô hình Không gian đối tượng - Object space..................................... 9
Hình .9: Mô hình tương tác giữa người dùng và dịch vụ web thông qua máy chủ web
Apache Tomcat hoạt MS IIS ............................................................................................ 10

Hình .10: Mô hình xây dựng ứng dụng bằng cách sử dụng các dịch vụ web có sẵn .......... 11
Hình .11: Mô hình Request - Response cơ bản của SOAP................................................ 12
Hình .12: Kịch bản đăng ký, tìm kiếm và sử dụng dịch vụ web thông một UDDI công cộng15
Hình .13: So sánh ứng dụng phân tán và ứng dụng truyền thống ...................................... 16
Hình .14: Minh họa việc quá tải thành phần dẫn đến qusa tải của UDPT.......................... 17
Hình .15: Tăng cường khả năng phục vụ cho UDPT bằng cách nhân bản thành phần bị quá
tải .................................................................................................................................... 17
Hình .16: Quá trình nhân bản thành phân dựa trên sự kiện quá tải - Overload của các máy
chủ thực thi thành phần ................................................................................................... 19
Hình .17: Cơ chế tạo ra bản sao cho các máy phục vụ ...................................................... 20
Hình .18: Bộ phân phối - Dispatcher đóng vai trò trung gian giữa người dùng và thành
phần cung cấp dịch vụ ..................................................................................................... 21
Hình .19: Các thành phần chức năng của một ứng dụng phân tán theo mô hình CBM4HTC22
Hình .20: Cài đặt mô hình CBM4HTC bằng Web service ................................................ 26
Hình .21: Lưu đồ xử lý của tác vụ AlarmLoadChanged ................................................... 30
Hình .22: Mô hình vật lý triển khai thu gọn của ứng dụng ĐKMH theo mô hình
CBM4HTC...................................................................................................................... 33
Hình .23: Mô hình vật lý triển khai ứng dụng ĐKMH chuẩn theo mô hình CBM4HTC ... 34

Trang v


TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ
Thuật ngữ Tiếng Anh
viết tắt

Tiếng Việt

HTC


Hight Throughput Computing

Tính toán thông lượng cao

CBM4HTC

Cloud-Base Model For Hight Mô hình ứng dụng nền tảng điện
Thoughput Computing
toán đám mây cho Bài toán tính
toán thông lượng cao

API

Application
Interface

UI

User Interface

UDDI

Universal
Description, Tích hợp, khám phá và mô tả đa
Discovery, an Integration
năng

WSDL

Web

Service
Language

SOAP

Simple Object Access Protocol

Giao thức truy cập đối tượng đơn
giản

VM

Virtual Machine

Máy ảo

DHCP

Dynamic Host Configuration Giao thức cấu hình động máy
Protocol
chủ

DA

Distributed Application

DAA

Distributed
Architecture


SC

Service Controller

Bộ điều khiển dịch vụ

LTS

Long Term Support

Hỗ trợ lâu dài

RPC

Remote Procedure Call

Lời gọi thủ tục từ xa

Programing Giao diện lập trình ứng dụng

Giao diện người dùng

Description Ngôn ngữ mô tả dịch vụ Web

Ứng dụng phân tán

Application Kiến trúc ứng dụng phân tán

Trang vi



RMI

Remote Method Invocation

Lời gọi phương thức từ xa

ORB

Object Request Broker

Bộ môi giới yêu cầu đối tượng

SOA

Service Oriented Architecture

Kiến trúc hướng dịch vụ

Trang vii


TÓM TẮT
Hoạt động ổn định là yêu cầu bắt buộc đối với hầu hết các hệ thống thông
tin. Có nhiều yếu tố ảnh hưởng đến sự ổn định của hệ thống, một trong số đó là khả
năng đáp ứng của hệ thống khi lượng người sử dụng hệ thống biến đổi (tăng lên hay
giảm xuống đáng kể trong một thời gian nhất định). Tuy nhiên, mô hình tính toán
tập trung với một máy chủ trung tâm cực mạnh để đáp ứng tất cả yêu cầu xử lý đối
với một hệ thống bộc lộ một số nhược điểm như: dễ xảy ra tắc ngẽn khi số lượng

truy cập tăng đột biến, khả năng chịu lỗi thấp, chi phí đầu tư cao, khó mở rộng…Vì
vậy mô hình tính toán phân tán (Distributed Computing), sử dụng kết hợp các hệ
thống nhỏ để giải quyết một vấn đề lớn, đã được nghiên cứu phát triển và thể hiện
nhiều ưu điểm vượt trội. Các ứng dụng phần mềm lớn cũng được phân tích và chia
tách ra thành các thành phần nhỏ có thể hoạt động trên các máy tính độc lập gọi là
các thành phần và có khả năng giao tiếp với nhau thông qua hệ thống kết nối để
cùng giải quyết một vấn đề chung là hình ảnh của các ứng dụng phân tán
(Distributed Application). Tuy nhiên, các hệ thống phân tán vẫn có những rủi ro về
khả năng sẵn sàng bởi tính không dự đoán được của lượng yêu cầu mà hệ thống
phải xử lý trong một thời điểm đối với mỗi thành phần.
Trong phạm vi đề tài này, chúng tôi đưa ra mô hình nhân bản động các ứng
dụng thành phần của một ứng dụng phân tán được triển khai trên hệ thống điện toán
đám mây. Các quyết định về việc tăng thêm hay giảm bớt số bản sao của các ứng
dụng thành phần được đưa ra dựa trên các thông số về tình trạng tải của thành phần
đó một cách tự động mà không cần sự can thiệp của người quản trị hệ thống.
Từ khóa: Ứng dụng phân tán, Nhân bản, Dynamic replication, Thành phần

Trang viii


ABSTRACT
Stable operation is the compulsory requirement for almost all information
systems. The system adaptability to changes (remarkable increase or decrease
within a certain moment) of visitors is of many factors that influence the stability of
a system. However, a concentrative calculation model with an extremely powerful
concentrative host computer to meet all processing requirements of a system reveals
some weaknesses such as easily being stuck when the number of visitors suddenly
increases, low adaptability to errors, high investment cost, difficulty in expansion,
and so on. Therefore, distributed computing model that uses the combination of
small systems to solve a big problem has been researched for development, and this

model presents a lot of outstanding strengths. Big software applications are
analyzed and divided into smaller components so that they can run in independent
computers that are called components and can communicate with each other
through a connection system to jointly solve a common problem dealing with
images of distributed applications. Even so, distributed systems still have certain
risks related to the readiness because of the unexpected characteristics of the
number of visitors that the system has to process within a certain moment for each
component.
In this thesis, we are going to provide a dynamic replication model for
component applications of a distributed application developed in a cloud computing
system. Decisions whether to increase or decrease the number of copies of the
component applications are presented according to indicators regarding the
components’ loading situation automatically, that is, without the administrator’s
intervention.
Key words: Distributed application, Replication, Dynamic replication,
Component

Trang ix


CHƯƠNG 1: GIỚI THIỆU
1.1. Giới thiệu vấn đề
Khi triển khai xây dựng các hệ thống thông tin phục vụ cho nhiều người sử
dụng đồng thời cùng lúc, các nhà quản lý thường tính toán khả năng đáp ứng của hệ
thống cho một số lượng người sử dụng nhất định. Con số đó có thể được đưa ra
thông qua tính toán lượng người dùng tối đa có thể truy cập vào hệ thống tại một
thời điểm. Từ đó mà người quản lý sẽ đưa ra các yêu cầu đối với hệ thống phần
cứng (máy chủ, hệ thống mạng..) và phần mềm (Apache, Tomcat, MySQL...) để
phục vụ người sử dụng.
Tuy nhiên, việc đầu tư hệ thống dựa trên số ước lượng người dùng tối đa như

trên có một số hạn chế nhất định như: nếu ước lượng con số quá thấp thì chi phí đầu
tư cho hệ thống sẽ thấp, dễ triển khai...nhưng hệ thống sẽ thường xuyên rơi vào tình
trạng quá tải, không thể phục vụ nếu lượng người sử dụng tăng lên vượt quá số
lượng dự trù trước đó (đặc biệt là các ứng dụng trực tuyến). Nhưng nếu ước lượng
số lượng người dùng tối đa quá lớn thì chi phí đầu tư ban đầu sẽ rất cao và hệ thống
sẽ thường xuyên ở trong trạng thái nhàn rỗi, không sử dụng hế công suất được đầu
tư gây lãng phí tài nguyên.
Trong thực thế có những ứng dụng mà số lượng người sử dụng có thể tăng lên
đột biến trong một khoảng thời gian nào đó mà người cung cấp dịch vụ không
lường trước được hoặc không thể đầu tư mở rộng cơ sở hạ tầng để đáp ứng yêu cầu
thực tế. Một số ví dụ về các ứng dụng loại này như: ứng dụng đăng ký mua vé tàu,
xe qua mạng, ứng dụng đăng ký môn học trực tuyến của các trường đại học, ứng
dụng kê khai thuế qua mạng, ứng dụng bán hàng của các nhà bán lẻ trực tuyến...
Chúng tôi gọi chung các ứng dụng này là các Ứng dụng đăng ký trực tuyến thuộc
lớp bài toán tính toán thông lượng cao (HTC- High Througput Computing). Đặc
điểm của các Ứng dụng đăng ký trực tuyến là một số lượng khổng lồ người dùng
đột ngột truy cập đồng thời đến ứng dụng trong một khoảng thời gian nào đó (lễ,
tết, đầu học kỳ năm học, cuối năm tài chánh, có đợt khuyến mãi…) làm quá tải cả
các máy chủ triển khai ứng dụng và làm tê liệt ứng dụng. Giải pháp để khắc phục
tình trạng này là nhà cung cấp dịch vụ phải đầu tư thật nhiều máy chủ, để tăng khả
năng tiếp nhận người dùng của hệ thống. Tuy nhiên điều này trở nên cực kỳ lãng
phí vì phần lớn thời gian còn lại có ít người truy cập vào hệ thống vì thế các nhà
cung cấp dịch vụ không sẵn lòng để thực hiện việc đầu tư này. Giải pháp khác là sử
dụng công nghệ điện toán đám mây, để tận dụng năng lực của các server đang nhàn

Trang 1


rỗi trong trung tâm dữ liệu của nhà cung cấp hoặc thực hiện việc thuê mướn máy
chủ ảo của các nhà cung cấp dịch vụ điện toán đám mây công cộng (public cloud).

Ngoài giải pháp đầu tư vào một hệ thống thật mạnh để phục vụ người dùng thì
còn có một giải pháp khác cũng được các nhà phát triển ứng dụng lựa chọn là sử
dụng kiến trúc tính toán phân tán (Distributed Computing). Ứng dụng phần mềm
tổng thể giờ đây sẽ được chia ra thành các ứng dụng con gọi là các “thành phần”
(Component), mỗi thành phần sẽ cung cấp một số chức năng nhất định và giao tiếp
với các thành phần khác thông qua hệ thống kết nối để cùng phục vụ người dùng.
Mỗi thành phần này sẽ được triển khai trên một máy chủ riêng biệt, được kết nối
thông qua hệ thống mạng, nhằm hạn chế tình trạng tập trung truy cập của người
dùng vào một địa chỉ nào đó gây tắc ngẽn và quá tải cho hệ thống. Tuy nhiên, ứng
dụng tổng thể vẫn có khả năng bị tắc ngẽn nếu một trong các ứng dụng thành phần
nhận được quá nhiều truy cập từ người dùng và bị quá tải phục vụ. Vấn đề sẽ được
giải quyết nếu ứng dụng thành phần đó được tăng cường khả năng phục vụ thông
qua một trong hai giải pháp:
 Di chuyển ứng dụng thành phần đó tới một máy chủ tốt hơn (cấu hình
mạnh hơn) để mở rộng năng lực đáp ứng. Giải pháp này chỉ khả thi khi nhà cung
cấp dịch vụ có sẽ các máy chủ dự phòng và phải mất thời gian cho việc di
chuyển bao gồm cài đặt và cấu hình phần mềm, đồng bộ dữ liệu, kết nối hệ
thống...
 Một giải pháp khác đó là tạo ra một bản sao của ứng dụng thành phần đó,
bằng cách triển khai nó trên một máy chủ mới. Yêu cầu của người dùng sẽ được
điều phối giữa các địa chỉ này. Việc tính toán để biết khi nào cần tạo ra các bản
sao, quản lý, cấu hình để yêu cầu của người dùng đi đến đúng nơi cung cấp dịch
vụ có thể thực hiện thủ công và yêu cầu rất nhiều công sức từ người quản trị hệ
thống nhưng dễ phát sinh lỗi nếu có sai sót phát sinh trong các thao tác thực hiện
và mất thời gian.
Để có giải pháp cho vấn đề nhân bản, triển khai và quản lý các bản sao của
các ứng dụng thành phần một cách tự động tùy theo tình trạng của hệ thống chúng
tôi đề nghị đề tài “MÔ HÌNH NHÂN BẢN ĐỘNG CÁC THÀNH PHẦN CỦA
ỨNG DỤNG PHÂN TÁN TRÊN NỀN ĐIỆN TOÁN ĐÁM MÂY”.
1.2. Lịch sử giải quyết vấn đề

Đã có một số giả trong và ngoài nước nghiên cứu về vấn đề tăng cường khả năng
phục vụ cho các hệ thống thông tin bằng giải pháp nhân bản các thành phần của ứng dụng.
Trang 2


Nghiên cứu của nhóm tác giả Quan Z. Sheng, Zakaria Maamar, Jian Yu và Anne
H.H Ngu với bài báo “Robust Web Services Provisioning Through On-Demand
Replication”. Các tác giả này đã xây dựng mô hình triển khai ứng dụng động theo trạng
thái phục vụ của các máy chủ. Tuy nhiên, mô hình này bị giới hạn bởi số lượng máy chủ cố
định, phải tốn chi phí thời gian cho việc triển khai ứng dụng cho máy chủ mới thêm vào,
các vấn đề về dữ liệu cho các thành phần hoạt động và đồng bộ cũng chưa được các tác giả
giải quyết. Một vấn đề nữa của mô hình này là không thể mở rộng khả năng phục vụ của
ứng dụng vượt quá lượng tài nguyên có sẵn của nhà cung cấp dịch vụ, các tài nguyên phải
luôn sẵn sằng.
Nghiên cứu của nhóm tác giả Achmad I. Kistijantoro, Graham Morgan, Santosh K.
Shrivastava với bài báo “Component Replication in Distributed Systems: a Case study
using Enterprise Java Beans”, cũng xây dựng mô hình nhân bản và cân bằng tải cho các
thành phần của ứng dụng phân tán. Tuy nhiên, mô hình cần phải có sự can thiệp của người
quản trị hệ thống khi bổ sung thêm tài nguyên tính toán để cài đặt và cấu hình cho ứng
dụng hoạt động. Mô hình cũng không cho phép mở rộng khả năng phục vụ thông qua giải
pháp bổ sung tài nguyên tính toàn từ nhà cung cấp bên ngoài (thuê máy chủ ảo từ các dịch
vụ Cloud computing).

1.3. Mục tiêu, đối tượng và phạm vi của đề tài
Mục tiêu chính của đề tài là tập trung nghiên cứu mô hình của ứng dụng
phân tán để đưa ra giải pháp nhân bản các thành phần của nó một cách tự động khi
nhận được thông báo về tình trạng quá tải phục vụ ở một thành phần nào đó. Đề tài
cũng giải quyết vấn đề điều phối truy cập của người dùng đến địa chỉ cung cấp dịch
vụ mà người dùng cần khi có nhiều hơn một địa chỉ cung cấp dịch vụ dựa trên
thông tin về tình trạng của các máy phục vụ nhận được từ hệ thống cảnh báo. Vấn

đề cuối cùng mà chúng tôi cần giải quyết là việc cập nhật trạng thái của các thành
phần phục vụ và thu hồi tài nguyên khi yêu cầu truy cập vào ứng dụng giảm xuống
mà không cần sự can thiệp của người quản trị hệ thống.
1.4. Kết cấu luận văn
Phần tiếp theo của luận văn được tổ chức như sau:
Chương 2: Hệ thống phân tán
Tóm tắt các nghiên cứu về hệ thống phân tán, các mô hình kiến trúc được áp
dụng để xây dựng ứng dụng phân tán.
Chương 3: Dịch vụ Web
Giới thiệu về công nghệ Dịch vụ Web, các nền tảng công nghệ cơ bản được
sử dụng trong xây dựng và triển khai các dịch vụ web.

Trang 3


Chương 4: Nhân bản động ứng dụng thành phần
Giới thiệu về mô hình nhân bản động, giải pháp quản lý các bản sao và vấn
đề cạnh tranh khi có nhiều hơn một địa chỉ cung cấp cùng một dịch vụ.
Chương 5: Kiểm thử và đánh giá mô hình
Mô hình triển khai hệ thống với các thành phần được triển khai trên nền
Cloud và kết quả thực nghiệm.
Chương 6: Kết luận và hướng phát triển
Tổng kết và hướng phát triển của đề tài.

Trang 4


CHƯƠNG 2: ỨNG DỤNG PHÂN TÁN
2.1. Giới thiệu
Ứng dụng phân tán (Distributed Application - DA) được biết đến như một ứng

dụng gồm nhiều thành phần (components) mà các thành phần của nó có thể được
phân bố và thực thi trên các máy tính khác nhau của một hệ thống mạng. Những
đặc trưng làm cho ứng dụng phân tán khác biệt và vượt trội hơn so với các ứng
dụng thông thường là:
 Giao tiếp liên quá trình: một ứng dụng phân tán yêu cầu sự tham gia của

hai hoặc nhiều thành phần (tiến trình) độc lập. Để làm được điều này thì các
thành phần phải có khả năng trao đổi thông tin với nhau.
 Đồng bộ sự kiện: trong một ứng dụng phân tán, việc gởi và nhận dữ liệu

giữa các thành phần của ứng dụng phải được đồng bộ.

Hình 2.1:Các mô hình kiến trúc ứng dụng phân tán

2.2. Các loại mô hình kiến trúc ứng dụng phân tán
2.2.1. Mô hình truyền thông điệp
Truyền tải thông điệp là mô hình cơ bản nhất cho các ứng dụng phân tán.
Một tiến trình gởi một thông điệp để thể hiện một yêu cầu. Thông điệp đó được gởi
tới bên nhận, xử lý yêu cầu và gởi trả về một thông điệp phản hồi. Quy trình tương
tự có thể được lặp lại cho đến khi giải quyết xong vấn đề cần thiết.

Trang 5


Hình 2.2: Giao tiếp giữa các tiến trình qua thông điệp

Các phương thức cơ bản cần thiết để hỗ trợ mô hình truyền thông điệp đơn
giản là gởi (send) và nhận (receive). Các tiến trình kết nối với nhau thực hiện việc
gởi nhận thông điệp tương tự như mô hình xuất/nhập tập tin. Các phương thức này
bao gói các chi tiết về giao tiếp mạng ở cấp độ hệ điều hành.

2.2.2. Mô hình khách hàng - phục vụ (client-server)
Mô hình khách hàng - phục vụ là mô hình được sử dụng phổ biến trong các
ứng dụng mạng. Trong mô hình này có hai thành phần tham gia với vai trò bất đối
xứng: thành phần phục vụ-server đóng vai trò là nhà cung cấp dịch vụ, luôn luôn
chờ đợi để lắng nghe các yêu cầu từ phía khác hàng. Thành phần còn lại là khách
hàng-client, đưa ra các yêu cầu, gởi tới server và chờ đợi kết quả trả về.

Hình 2.3: Mô hình khái niệm của mô hình Client - Server

Trang 6


Mô hình client-server cung cấp một sự trừu tượng hóa hiệu quả cho việc
phân phối các dịch vụ. Các phương thức cần thiết bao gồm tất cả những gì mà phía
server cần thiết để lắng nghe và chấp nhận yêu cầu, còn phía client thì có thể đưa ra
yêu cầu và tiếp nhận kết quả. Nhiều dịch vụ internet là các ứng dụng client-server.
Các dịch vụ này thường được biết đến bởi giao thức mà các ứng dụng thực thi như:
HTTP, FTP, DNS, finger, gopher...
2.2.3. Mô hình lời gọi thủ tục từ xa - Remote Procedure Call
Quá trình phát triển các ứng dụng phân tán lớn tương đối phức tạp, vì vậy
cần phải có một mô hình cho phép các ứng dụng phân tán được lập trình theo cách
tương tự như các ứng dụng truyền thống, những phần mềm chỉ thực thi trên một
máy tính duy nhất. Mô hình Remote Procedure Call (RPC) cung cấp một giải pháp
cho vấn đề này. Trong mô hình RPC, các giao tiếp giữa các thành phần được thực
hiện như các thủ tục (Procedure), hàm (Function), hoặc các lời gọi (Calls), những
khái niệm quen thuộc trong lập trình ứng dụng truyền thống.
Một lời gọi thủ tục từ xa bao gồm hai phần độc lập có thể được triển khai
trên các máy tính riêng biệt. Hình 2.4 minh hoạt quá trình thực hiện các RPC của
hai tiến trình A, B. Tiến trình A muốn thực hiện một yêu cầu tới tiến trình B, đầu
tiên A phát ra một lời gọi thủ tục tới B và truyền vào đó các tham số cần thiết.

Tương tự như trường hợp gọi thủ tục cục bộ, một RPC khởi động một hành động
được xác định từ trước trong thủ tục được cung cấp bởi tiến trình B. Khi hoàn thành
thủ tục, tiến trình B trả về một giá trị cho tiến trình A.

Hình 2.4: Minh họa việc gọi thủ tục từ xa - RPC của 2 tiến trình

RPC cho phép các lập trình viên xây dựng các ứng dụng mạng sử dụng cấu
trúc lập trình tương tự như lời gọi thủ tục cục bộ.

Trang 7


2.2.4. Mô hình đối tượng phân tán
Việc áp dụng hướng đối tượng cho ứng dụng phân tán là một sự mở rộng tự
nhiên của lập trình hướng đối tượng. Các ứng dụng sẽ có khả năng truy cập các đối
tượng được phân tán trên mạng. Các đối tượng cung cấp các phương thức, thông
qua việc gọi của một ứng dụng có quyền truy cập vào dịch vụ. Mô hình hướng đối
tượng bao gồm:
 Lời gọi phương thức từ xa - Remote Method Invocation (RMI)
 Dịch vụ mạng
 Bộ môi giới yêu cầu đối tượng
 Không gian đối tượng

Remote Method Invocation (RMI) là RPC trong mô hình đối tượng phân tán.
Trong mô hình này, một tiến trình gọi tới các phương thức trong một đối tượng, các
đối tượng này được triển khai trên các máy chủ (host) từ xa. Các lời gọi này cũng
nhận vào các tham số như RPC.

Hình 2.5: Mô hình lời gọi thủ tục từ xa RMI


2.2.5. Mô hình dịch vụ mạng
Trong mô hình này, các nhà cung cấp dịch vụ tự đăng ký các dịch vụ của
mình với các máy chủ thư mục (directory servers) trong một mạng. Một tiến trình
cần một dịch vụ nào đó liên hệ với máy chủ thư mục tại thời điểm thực thi, nếu dịch
vụ đó có sẵn, sẽ được cung cấp một liên kết tới dịch vụ. Sử dụng liên kết này, tiến
trình sẽ tương tác với dịch vụ.
Mô hình này về cơ bản là sự mở rộng của mô hình RMI. Sự khác biệt ở đây
đó là các đối tượng dịch vụ được đăng ký với một dịch vụ thư mục chung, cho phép
Trang 8


chúng được tìm kiếm và truy cập bởi các khách hàng yêu cầu dịch vụ trong một
mạng dùng chung.

Hình 2.6: Mô hình của dịch vụ mạng - Network Service

2.2.6. Mô hình bộ môi giới yêu cầu đối tượng - Object Request Broker
Trong mô hình Object Request Broker (ORB), một ứng dụng phát ra yêu cầu
tới một ORB, ORB sẽ chuyển yêu cầu tới một đối tượng phù hợp, để cung cấp các
dịch vụ được mô tả. Mô hình này gần giống với mô hình RMI trong việc hỗ trợ truy
cập đối tượng từ xa. Sự khác biệt là có các ORB trong mô hình này làm việc như
một phần mềm trung gian cho phép một ứng dụng, như một khách hàng yêu cầu
(requestor) đối tượng, có thể truy cập nhiều đối tượng từ xa (hoặc cục bộ).
Bộ môi giới yêu cầu (Request Broker) cũng có thể hoạt động như một bộ hòa
giải các đối tượng không đồng nhất, cho phép sự tương tác giữa các đối tượng được
xây dựng từ các API khác nhau và (hoặc) được triển khai trên những nền tảng khác
nhau.

Hình 2.7: ORB đóng vai trò môi giới trung gian


Trang 9


2.2.7. Mô hình không gian đối tượng - Object Space
Trừu tượng nhất trong mô hình hướng đối tượng, mô hình không gian đối
tượng giả sử rằng sự tồn tại của các thực thể logic được biết đến như không gian đối
tượng (object spaces). Các thành phần của ứng dụng hội tụ trong một không gian
đối tượng chung. Nhà cung cấp dịch vụ đặt các đối tượng như là các thực thể vào
một không gian đối tượng, những khách hàng yêu cầu sẽ tham gia vào không gian
để truy cập đối tượng.

Hình 2.8: Minh hoạt mô hình Không gian đối tượng - Object space

2.3. Công nghệ dựa trên thành phần
Các công nghệ dựa trên thành phần (Component-based technologies) như
Microsoft's COM, Microsoft DCOM, Java Bean, và Enterprise Java về cơ bản dựa
trên mô hình đối tượng phân tán, các thành phần (component) chuyên biệt, các đối
tượng được đóng gói được thiết kế để tương tác với những cái khác thông qua các
giao diện chuẩn hóa.

Trang 10


CHƯƠNG 3: DỊCH VỤ WEB
3.1. Giới thiệu
Dịch vụ web là một ứng dụng phần mềm mà nó có thể được truy cập từ xa
bằng cách sử dụng các ngôn ngữ dựa trên XML. Thông thường, một dịch vụ web
được định danh bởi một URL. Người sử dụng dịch vụ web sẽ gởi một tài liệu XML
được định dạng theo chuẩn của SOAP.


Hình 3.9: Mô hình tương tác giữa người dùng và dịch vụ web thông qua máy chủ web
Apache Tomcat hoạt MS IIS

Các ưu điểm của kiến trúc dịch vụ web so với kiến trúc phần mềm truyền
thống:
 Không cần quan tâm đến loại máy cũng như hệ điều hành mà hệ thống
đang thực thi để gởi thông điệp SOAP
 Không cần quan tâm đến thông điệp SOAP được gởi từ đâu
Trang 11


 Không cần quan tâm đến ngôn ngữ lập trình sử dụng để xây dựng hệ

thống
Với kiến trúc của dịch vụ web, tất cả các ứng dụng phần mềm trên thế giới có
thể giao tiếp với nhau thông qua hệ thống mạng internet hoặc intranet, vượt qua tất
cả sự giới hạn về địa lý, nền tảng, ngôn ngữ lập trình hay giao thức kết nối...

Hình 3.10: Mô hình xây dựng ứng dụng bằng cách sử dụng các dịch vụ web có sẵn

3.2. Các nền tảng của dịch vụ web
3.2.1. Service-Oriented Architecture (SOA)
Là một mô hình kiến trúc phần mềm, nó đưa ra việc sử dụng các dịch vụ để
hỗ trợ các yêu cầu của người dùng phần mềm. Trong môi trường SOA, các điểm
(node) trên một mạng làm cho các tài nguyên sẵn sàng cho những người dùng khác
như các dịch vụ độc lập theo một chuẩn chung.
Trang 12


Không giống với kiến trúc điểm-điểm truyền thống, SOAs bao gồm các ràng

buộc ít chặt chẽ hơn, khả năng tương tác dịch vụ ứng dụng cao hơn. Các dịch vụ
dựa trên một ngôn ngữ độc lập không phụ thuộc vào nền tảng và ngôn ngữ lập trình
(ví dụ như WSDL). SOA độc lập với công nghệ phát triển, vì vậy mà các thành
phần phần mềm có khả năng sử dụng lại cao hơn nhiều so với các kiến trúc khác.
3.2.2. Simple Object Access Protocol (SOAP)
Là một giao thức đơn giản dựa trên XML, nó cho phép các ứng dụng như các
dịch vụ web trao đổi thông tin dựa trên HTTP. SOAP là một định dạng cho việc gởi
và nhận các thông điệp. Không giống với việc giao tiếp giữa các ứng dụng bằng
cách sử dụng lời gọi thủ tục từ xa (Remote Procedures Call – RPC), mà các kiến
trúc CORBA, RMI sử dụng, bị hạn chế bởi vấn đề tương thích và bảo mật. SOAP
sử dụng giao thức HTTP để gởi và nhận thông điệp nên nó độc lập với nền tảng và
ngôn ngữ lập trình, nó cũng không bị hạn chế bởi tường lửa hay các máy chủ proxy.

Hình 3.11: Mô hình Request - Response cơ bản của SOAP

3.2.3. Extensible Markup Language (XML)
Là một ngôn ngữ đánh dấu (tương tự như HTML), dùng để mô tả các loại dữ
liệu khác nhau, nhằm mục đích đơn giản hóa việc chia sẽ dữ liệu giữa các hệ thống
khác nhau. XML sử dụng các thẻ (tag) để mô tả dữ liệu theo cách mà cả người và
máy tính đều có thể hiểu được ý nghĩa của dữ liệu đó là gì. Các thành phần của
Trang 13


XML:
 Tài liệu XML - Môt tập tin tuân theo các quy định của XML. Trong đó có
thể chứa dữ liệu như một cơ sở dữ liệu nhỏ.
 Bộ phân tích XML - Xử lý dữ liệu trong tài liệu XML thành dạng mà máy
tính có thể đọc một cách hiệu quả.
 Document Type Definition (DTD) - Mô tả các thẻ (tag) được sử dụng
trong tài liệu XML và mối quan hệ giữa chúng. DTD được tạo theo đặc tả lược

đồ XML 2001.
 XML schema - được cải tiến từ DTD. XML schema thực hiện kiểm tra
cấu trúc của tài liệu XML trước khi nó được sử dụng bởi các chương trình.
 Namespaces - được sử dụng để tránh sự xung đột về việc sử dụng tên thẻ

(tags) trong tài liệu XML.
3.2.4. Hypertext Transport Protocol (HTTP)
Được dùng để chuyển yêu cầu (request) và kết quả phản hồi (response) giữa
máy khách (client) và máy phục vụ (server). Các thông điệp SOAP cũng được vận
chuyển bằng giao thức này.
3.2.5. Web Services Description Language (WSDL)
Là tiêu chuẩn được sử dụng để mô tả các dịch vụ web. Một tài liệu WSDL là
một tập tin XML bao gồm tất cả thông tin cần thiết để người dùng sử dụng một dịch
vụ web. WSDL của một dịch vụ web phải đáp ứng một số tiêu chí sau:
 Các phương thức được cung cấp
 Tham số cần thiết của mỗi phương thức
 Kết quả trả về khi gọi một phương thức
 Giao thức được sử dụng để truyền tải yêu cần/kết quả
 Đặc tả định dạng dữ liệu được chấp nhận
 Đường dẫn kết nối (URL) tới dịch vụ web

Trang 14


3.2.6. Universal Description, Discovery, and Integration (UDDI)
Là một chuẩn dựa trên XML, được sử dụng để mô tả, công bố và tìm kiếm các
dịch vụ web. Các nhà cung cấp dịch vụ web công bố dịch vụ web của mình ra ngoài
để các tổ chức khác sử dụng thông qua UDDI. Có các dạng UDDI:
 Public: cho phép tất cả mọi người được tìm kiểm và sử dụng các dịch vụ
đăng ký tại đây.

 Private: được sử dụng để đăng ký các dịch vụ được cung cấp trong nội bộ
một tổ chức, công ty.
 Restricted: bộ đăng ký chỉ có thể được truy cập từ những đối tượng đã
được cấp quyền truy cập.

Trang 15


Hình 3.12: Kịch bản đăng ký, tìm kiếm và sử dụng dịch vụ web thông một UDDI công cộng

Trang 16


×