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

Web service và các công nghệ tích hợp ứng dụng

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.91 MB, 81 trang )

...
...
.

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------NGÔ SỸ KIÊN

NGÔ SỸ KIÊN

CÔNG NGHỆ THÔNG TIN

Web Service & Các cơng nghệ tích hợp ứng dụng

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN

2017A
Hà Nội 09/2019


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Ngơ Sỹ Kiên

Web Service & Các cơng nghệ tích hợp ứng dụng

Chuyên ngành : Công Nghệ Thông Tin

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN



NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS.PHẠM HUY HOÀNG

Hà Nội 09/2019


LỜI CẢM ƠN
Để có thể hồn thiện được luận văn thạc sỹ của mình, trước tiên, tơi xin bày tỏ lòng
biết ơn sâu nhất tới thầy – TS. Phạm Huy Hồng (bộ mơn Truyền thơng và mạng máy tính
– Viện công nghệ thông tin và truyền thông – trường Đại học Bách Khoa Hà Nội). Sự gần
gũi, khích lệ và nhiệt tình hướng dẫn của thầy là nguồn động lực rất lớn đối với tôi trong
suốt thời gian thực hiện luận văn.
Tôi cũng xin được gửi lời cảm ơn chân thành nhất tới tất cả các thầy, cô trong bộ
môn Truyền thơng và mạng máy tính, cũng như các thầy, cô trong viện Công nghệ thông
tin – trường Đại học Bách Khoa Hà Nội đã nhiệt tình giảng dạy, cung cấp cho chúng tôi
những kiến thức, kinh nghiệm không chỉ trong học tập mà còn trong cuộc sống hàng ngày.
Đồng thời tôi cũng xin được gửi lời cảm ơn đến cha mẹ, người thân trong gia đình,
các bạn học viên, đồng nghiệp đã giúp đỡ, động viên, tạo điều kiện tốt nhất cho tơi trong
suốt khóa học tại Trường Đại học Bách Khoa Hà Nội để tơi có thể hồn thiện tốt luận văn
thạc sỹ của mình.
Hà Nội, tháng 09 năm 2019
Học viên

Ngô Sỹ Kiên

1


LỜI CAM ĐOAN

Tôi xin cam đoan luận văn tốt nghiệp với đề tài “Web Service & Các cơng nghệ tích
hợp ứng dụng” là cơng trình tìm hiểu thực sự của bản thân, được thực hiện trên cơ sở tìm
hiểu lý thuyết, kiến thức chuyên ngành, nghiên cứu khảo sát tình hình thực tiễn và dưới sự
hướng dẫn kỹ thuật của TS. Phạm Huy Hoàng. Các kết quả được viết chung với các tác giả
khác đều được sự đồng ý của tác giả trước khi đưa vào luận văn. Những phần tham chiếu,
trích dẫn trong luận văn đều được nêu rõ trong phần tài liệu tham khảo. Các số liệu, kết quả
trình bày trong luận văn là hồn tồn trung thực. Nếu sai tơi xin chịu hồn tồn trách nhiệm
và chịu mọi kỷ luật của khoa và nhà trường đề ra.
Hà Nội, tháng 09 năm 2019
Học viên

Ngô Sỹ Kiên

2


MỤC LỤC
LỜI CẢM ƠN ...............................................................................................................................................1
LỜI CAM ĐOAN .........................................................................................................................................2
MỤC LỤC .....................................................................................................................................................3
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .............................................................................6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .....................................................................................................7
MỞ ĐẦU .......................................................................................................................................................9
CHƯƠNG 1. TỔNG QUAN VỀ TÍCH HỢP ỨNG DỤNG ....................................................................10
1.

2.

3.


4.

Giới thiệu..........................................................................................................................................10
1.1.

Khái niệm tích hợp ứng dụng ...................................................................................................10

1.2.

Khái niệm tích hợp hệ thống ....................................................................................................10

1.3.

Mục tiêu và thách thức .............................................................................................................10

1.4.

Các mức tích hợp ứng dụng .....................................................................................................11

Các kiến trúc tích hợp ứng dụng ......................................................................................................13
2.1.

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

2.2.

Kiến trúc Hub-and-Spoke.........................................................................................................14

2.3.


Kiến trúc điểm đến điểm (Point-to-Point) ................................................................................15

2.4.

Kiến trúc Pipeline .....................................................................................................................16

Các cơng nghệ tích hợp ứng dụng ....................................................................................................17
3.1.

Máy chủ ứng dụng (Application Server) ..................................................................................17

3.2.

Dịch vụ web (Web service) ......................................................................................................18

3.3.

Message-oriented middleware..................................................................................................19

3.4.

Gọi thủ tục từ xa (Remote Procedure Calls) ............................................................................21

3.5.

Chia sẻ cơ sở dữ liệu ................................................................................................................23

3.6.

Trục tích hợp dịch vụ tổng thể (Enterprise Service Bus) .........................................................23


Kết luận ............................................................................................................................................24

CHƯƠNG 2. TÍCH HỢP ỨNG DỤNG DỰA TRÊN CƠNG NGHỆ ESB MIDDLEWARE ..............25
1.

Tổng quan về trục tích hợp ESB Middleware ..................................................................................25
1.1.

Khái niệm Middleware .............................................................................................................25

1.2.

Khái niệm ESB .........................................................................................................................25

1.3.

Kiến trúc cơ bản ESB ...............................................................................................................26

1.4.

Các Mơ hình ESB.....................................................................................................................26

1.5.

Phân loại ESB...........................................................................................................................28
3


2.


3.

4.

Kiến trúc chính trong ESB ...............................................................................................................29
2.1.

Điều hợp (Adapter) ..................................................................................................................29

2.2.

Hịa giải (Mediation) ................................................................................................................30

2.3.

Định tuyến (Routing) ...............................................................................................................30

2.4.

Sự kiện phức tạp (Complex Event) ..........................................................................................31

2.5.

Điều phối (Orchestration).........................................................................................................31

2.6.

Quản lý (Manager) ...................................................................................................................31


2.7.

An toàn (Security) ....................................................................................................................32

Một số nền tảng ESB hiện nay .........................................................................................................32
3.1.

IBM Integration Bus.................................................................................................................33

3.2.

Oracle Service Bus ...................................................................................................................35

3.3.

WSO2 ESB...............................................................................................................................37

3.4.

Mule ESB .................................................................................................................................39

3.5.

JBoss ESB ................................................................................................................................42

Kết luận ............................................................................................................................................43

CHƯƠNG 3. ỨNG DỤNG ESB MIDDLEWARE ĐỂ TÍCH HỢP CÁC ỨNG DỤNG TẠI NGÂN
HÀNG HIỆN ĐẠI NGÀY NAY ................................................................................................................45
1.


2.

3.

4.

Đặt vấn đề ........................................................................................................................................45
1.1.

Thực trạng ................................................................................................................................45

1.2.

Bài toán đặt ra ..........................................................................................................................46

Giải pháp đặt ra cho bài tốn tích hợp..............................................................................................46
2.1.

Kiến trúc tích hợp hệ thống ......................................................................................................46

2.2.

Mơ tả giải pháp.........................................................................................................................47

Xây dựng hệ thống thử nghiệm ........................................................................................................48
3.1.

Môi trường cài đặt ....................................................................................................................48


3.2.

Mơ hình tổng qt dịch vụ topup .............................................................................................48

3.3.

Xây dựng luồng dữ liệu vào ra .................................................................................................49

3.4.

Xây dựng sở đồ hoạt động........................................................................................................60

3.5.

Xây dựng luồng xử lý ...............................................................................................................63

3.6.

Mơ hình hóa dữ liệu .................................................................................................................70

3.7.

Kết quả thử nghiệm ..................................................................................................................70

3.8.

Đánh giá kết quả.......................................................................................................................75

Kết luận ............................................................................................................................................76


KẾT LUẬN CHUNG .................................................................................................................................77
1.

Kết quả đã đạt được..........................................................................................................................77
4


2.

Định hướng phát triển trong tương lai..............................................................................................77

TÀI LIỆU THAM KHẢO .........................................................................................................................79

5


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
SOI
ESB
EAI
SOAP
WSDL
UDDI

Service Oriented Infrastructure
Enterprise Service Bus
Enterprise Application Integration
Simple Object Access Protocol
Web Service Description Language
Universal Description, Discovery, and

Integration
eXtensible Markup Language
XML Path Language
Extensible Stylesheet Language
Representational State Transfer
Message – Oriented Middleware
Remote Procedure Call
Service Oriented Architecture
Uniform Resource Identifiers
Dịch vụ thanh tốn hịa đơn
Dịch vụ nạp tiền
Mã xác thực

XML
XPath
XSL
REST
MOM
RPC
SOA
URI
Billing
Topup
OTP

6


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ


Hình 1.1. Các thành phần cơ bản của SOA ................................................... Error! Bookmark not defined.2
Hình 1.2. Kiến trúc hướng dịch vụ SOA ....................................................... Error! Bookmark not defined.4
Hình 1.3. Kiến trúc Hub-and-Spoke.............................................................. Error! Bookmark not defined.5
Hình 1.4. Kiến trúc Point-to-Point ................................................................ Error! Bookmark not defined.6
Hình 1.5. Kiến trúc Pipeline .......................................................................... Error! Bookmark not defined.6
Hình 1.6. Kiến trúc thơng điệp ...................................................................... Error! Bookmark not defined.9
Hình 1.7. Hàng đợi Point-to-point................................................................................................................20
Hình 1.8. Hàng đợi Push and Subscribe .......................................................................................................20
Hình 1.9. Gọi thủ tục từ xa (RPC) ................................................................................................................21
Hình 1.10. Cơ chế đồng bộ của RPC ...........................................................................................................21
Hình 1.11. Local function call......................................................................................................................22
Hình 1.12. Restricted RPC ............................................................................ Error! Bookmark not defined.2
Hình 1.13. Kiến trúc loại 3 của RPC ............................................................. Error! Bookmark not defined.2
Hình 2. 1. Kiến trúc ESB............................................................................................................................266
Hình 2. 2. Global ESB................................................................................... Error! Bookmark not defined.7
Hình 2. 3. Directly connected ESB ............................................................................................................407
Hình 2. 4. Brokered ESB............................................................................................................................418
Hình 2. 5. Federated ESB .............................................................................................................................28
Hình 2. 6. Kiến trúc chính ESB....................................................................................................................29
Hình 2. 7. Kiến trúc IBM Integration Bus....................................................................................................33
Hình 2. 8. IBM Integration Development ....................................................................................................34
Hình 2. 9. IBM Message Quene ...................................................................................................................35
Hình 2. 10. Kiến trúc Oracle Service Bus ....................................................................................................36
Hình 2. 11. Oracle Workshop for WebLogic .............................................................................................407
Hình 2. 12. Kiến trúc WSO2 ESB..............................................................................................................418
Hình 2. 13. Accessing Developer Studio .....................................................................................................39
Hình 2. 14. Kiến trúc Mule ESB ..................................................................................................................40
Hình 2. 15. Giao diện Anypoint Studio ........................................................................................................41
Hình 2. 16. Kiến trúc của JBoss ESB...........................................................................................................43
Hình 3. 1. Thực trạng hệ thống tích hợp tại ngân hàng Tiên Phong Bank ........................................455

Hình 3. 2. Kiến trúc tích hợp hệ thống .......................................................................................................477
Hình 3. 3. Mơ hình tổng qt dịch vụ topup ................................................................................................49
Hình 3. 4. Dữ liệu đầu vào bản tin verify .....................................................................................................50
Hình 3. 5. Dữ liệu đầu ra bản tin verify .......................................................................................................51
Hình 3. 6. Dữ liệu đầu vào bản tin confirm ..................................................................................................52
Hình 3. 7. Dữ liệu đầu ra bản tin confirm ..................................................... Error! Bookmark not defined.3
Hình 3. 8. Luồng xử lý chính của dịch vụ payment topup ...........................................................................53
7


Hình 3. 9. Lng xử lý chính của SubFlow TopupVerify............................. Error! Bookmark not defined.4
Hình 3. 10. Luồng SubFlow PartnerVerify ................................................... Error! Bookmark not defined.5
Hình 3. 11. Luồng SubFlow InitTransVerify ................................................ Error! Bookmark not defined.5
Hình 3. 12. Luồng SubFlow Vnpay Verify ................................................... Error! Bookmark not defined.6
Hình 3. 13. Luồng xử lý chính của SubFlow Topup Confirm ...................................................................717
Hình 3. 14. Luồng SubFlow Fund Transfer .................................................. Error! Bookmark not defined.8
Hình 3. 15. Luồng SubFlow Partner Confirm ............................................................................................728
Hình 3. 16. Luồng SubFlow Revert ...........................................................................................................739
Hình 3. 17. Mơ hình hóa dữ liệu ..................................................................................................................60
Hình 3. 18. Thông tin giao dịch trên EBank ................................................. Error! Bookmark not defined.1
Hình 3. 19. Thơng tin giao dịch sau khi gọi bản tin verify...........................................................................62
Hình 3. 20. Màn hình nhập mã OTP ............................................................. Error! Bookmark not defined.3
Hình 3. 21. Thơng tin giao dịch sau khi gọi bản tin confirm ........................ Error! Bookmark not defined.4

8


MỞ ĐẦU
Ngày nay, hoạt động trong các lĩnh vực nói chung và lĩnh vực ngân hàng nói
riêng, các hệ thống công nghệ thông tin phục vụ cho các doanh nghiệp như (Hệ thống

internet banking (IBank), Hệ thống tích hợp ứng dụng(Gateway), Định giá điều chuyển
vốn nội bộ (FTP), Hệ thống chuyển mạch quốc giá (Napas), Quản lý hệ thống thẻ, tiền
mặt, tài sản, kho quỹ v.v…) phải thường xuyên được làm mới, nâng cấp và phát triển,
góp phần tăng hiệu quả điều hành và thực thi, cũng như năng lực thanh tra, giám sát. Bên
cạnh đó, để mang tính nhất quán, tăng khả năng đáp ứng dịch vụ và đồng bộ, các hệ
thống này phải được giao tiếp chặt chẽ với nhau, đây cũng chính là vấn đề khó khăn mà
các tổ chức, doanh nghiệp đang gặp phải. Trong thực trạng hiện nay, các hệ thống được
phát triển trên nhiều nền tảng công nghệ khác nhau, ứng dụng giao tiếp với nhau chủ yếu
qua mơ hình tích hợp point-to-point (hai ứng dụng kết nối trực tiếp với nhau) và tích hợp
tĩnh (viết mã tích hợp đan xen mã ứng dụng). Theo thời gian, phương thức truyền thống
này sẽ tạo ra một kết nối chồng chéo, phụ thuộc chặt chẽ lẫn nhau dẫn tới khó khăn trong
thêm mới, chỉnh sửa nghiệp vụ khi có u cầu, hệ quả là chi phí tích hợp gia tăng lên rất
đáng kể. Trước tình trạng đó, các cơng nghệ tích hợp ứng dụng tiến tiết đã ra đời nhằm
giải quyết các khó khăn đã nêu trên, trong đó trục tích hợp ESB Middleware được đưa
ra và trở thành một trong những giải pháp hàng đầu để giải quyết những khó khăn này.
Với những khó khăn nêu trên, trong bài luận này sẽ hướng đến mục tiêu tìm hiểu,
khảo sát và đánh giá một số cơng nghệ tích hợp ứng dụng, áp dụng thực tiễn nhằm giải
quyết các khó khăn đang vướng phải dựa trên cơng nghệ ESB Middleware, sau đó áp
dụng ứng dụng trong tích hợp một số dịch vụ nghiệp vụ tại các ngân hàng hiện đại hiện
nay.
Từ những mục tiêu nêu trên, tôi đã tiến hành thực hiện các cơng việc tìm hiểu
luận văn với những nội dung được thể hiện cấu trúc như sau:
Chương 1: Tổng quan về cơ sở lý thuyết, các vấn đề liên quan đến tích hợp ứng dụng
và các kiến trúc, công nghệ được sử dụng.
Chương 2: Giới thiệu về ESB Middleware, các khái niệm về kiến trúc hệ thống, kiến
trúc dữ liệu, các thành phần, phân loại và so sánh một số công cụ ESB Middleware
Chương 3: Nêu thực trạng các hệ thống tích hợp ứng dụng tại một số ngân hàng hiện
đại hiện này, đưa ra phương pháp giải quyết vấn đề. Ứng dụng ESB Middleware để xây
dựng, kiểm thử, thử nghiệm và đánh giá hệ thống.
Kết luận chung: Những kết quả đạt được, các điểm hạn chế chưa thực hiện được và

định hướng phát triển trong tương lai.
9


CHƯƠNG 1. TỔNG QUAN VỀ TÍCH HỢP ỨNG DỤNG
1. Giới thiệu
Trong thời đại hiện nay, khi sự phát triển của con người đã vươn tới những đỉnh cao và
thanh tựu mới, nhu cầu về kiểm soát cũng như làm chủ tri thức của xã hội được đặc
biệt chú trọng và đặt lên hàng đầu. Cũng chính vì lẽ đó, các thơng tin dữ liệu số hóa
cần phải được dễ dàng truy xuất, độ tin cậy, tính chính xác cao và luôn luôn sẵn sàng
phục vụ. Trải qua các thời kỳ, sự phát triển về công nghệ và nhu cầu của con người đã
dần xuất hiện nhiều hơn những hệ thống hoạt động và trao đổi dữ liệu theo những kiến
trúc mới và cũ, câu hỏi đặt ra là các kiến trúc mới cần phải trao đổi dữ liệu và có thể
phối hợp nhịp nhàng với những kiến trúc cũ hơn. Chính từ bài tốn đó người ta đã đưa
ra các giải pháp tích hợp ứng dụng để giải quyết vấn đề này.
1.1. Khái niệm tích hợp ứng dụng
Theo trang Wikipedia, định nghĩa về tích hợp ứng dụng như sau:
Tích hợp ứng dụng là bao gồm các kế hoạch, phương pháp và phần mềm để tích hợp
các hệ thống ứng dụng độc lập và không đồng nhất, nếu cần thiết bao gồm cả các hệ
thống ứng dụng bên ngoài, theo chu trình hoạt động của doanh nghiệp. [6]
1.2. Khái niệm tích hợp hệ thống
Về mặt kỹ thuật: Tích hợp hệ thống được hiểu là quá trình đưa các thành phần của các
hệ thống con vào thành một hệ thống chung, và đảm bảo rằng các thành phần này liên
kết và hoạt động với nhau thành một thể thống nhất hoàn chỉnh. [5]
Về mặt cơng nghệ thơng tin: Tích hợp hệ thống là q trình liên kết các hệ thống máy
tính và các phần mềm với nhau để hoạt động như một hệ thống hồn chỉnh. [3]
Vậy Tích hợp hệ thống là q trình liên kết, kết nối các hệ thống thơng tin, cả về khía
cạnh chức năng lẫn hạ tầng tính toán, để hoạt động như một thể thống nhất. [3]
1.3. Mục tiêu và thách thức
• Thách thức

10


Trong thực tế, khi một hệ thống mới ra đời, vấn đề mà các tổ chức quan tâm chủ yếu
đầu tiên là tạo ra một hệ thống đơn giản, dễ sử dụng nhằm giải quyết những vấn đề
đang tồn tại hoặc theo một nhu cầu phát sinh mới của tổ chức trong một khoảng thời
gian nhất định. Vì lý do đó mà các hệ thống này thường khơng được tính tốn trước để
tích hợp, thiết kế thường theo kiến trúc độc lập, vì vậy rất khó kết hợp được những ứng
dụng này nhằm mục đích giải quyết bài tốn chung.
Bên cạnh đó, các ứng dụng được phát triển trên nền tảng Website, Mobile, Desktop…,
chạy trên các hệ điều hành như Windows, Linux… được lập trình bởi nhiều ngơn ngữ
khác nhau như là: Java, dotNet, C#, C++, C, Python, … cũng như các chuẩn service
khác nhau như: Socket, Soap, Resfull, …là điều phổ biến. Để vượt qua được những
điểm khác biệt này và tích hợp các hệ thống ứng dụng là điều khá khó khăn. Do đó các
tổ chức, các chuyên gia tích hợp cần có một kiến thức tổng thể về hệ thống cùng với
một nguồn đầu tư kinh phí lớn để có thể thực hiện tốt việc tích hợp.
• Mục tiêu của tích hợp ứng dụng
Tích hợp ứng dụng giúp chúng ta có thể kết nối nhiều hệ thống có nhiều nền tảng cơng
nghệ khác nhau, truy xuất được các dữ liệu cần thiết từ các hệ thống đã kết nối, trong
thời điểm mong muốn với chất lượng tốt, tiện lợi và chi phí thấp nhất.
1.4. Các mức tích hợp ứng dụng
1.4.1. Mức chức năng
Là mức tích hợp rất linh hoạt, cho phép các ứng dụng sử dụng lại các chức năng của
nhau nhằm tối ưu hóa việc tái sử dụng.
Các phương pháp điển hình của mức này là:
- Thông điệp (Message)
- Gọi thủ tục (Remote Procedure Call)
- Phân tán (Distributed)
1.4.2. Mức quy trình


11


Tích hợp mức quy trình là tích hợp mức cao, nhằm mục tiêu đảm bảo tạo mơ hình
chung giữa các ứng dụng với nhau liên kết qua dịch vụ. Mô hình chung phải bao
quát đầy đủ các quy trình trong ứng dụng tích hợp.
1.4.3. Mức dịch vụ
Cũng là tính hợp ở mức cao, nhằm xậy dựng các ứng dụng dựa trên các dịch vụ đã
có trên mạng chuyên biệt. Các thành phần cơ bản của SOA.

Hình 1.1. Các thành phần cơ bản của SOA

- Service Customer: xác định thông tin của service registry, sau đó liên kết với
service provider để gọi dịch vụ.
- Service Provider: tạo ra dịch vụ và cung cấp thông tin về giao diện, truy cập cho
Service Registry. Mỗi nhà cung cấp dịch vụ phải quyết định dịch vụ nào sẽ cung
cấp, đánh giá giữa vấn đề an ninh bảo mật và tính sẵn sàng, xác định làm sao để
bán dịch vụ hoặc làm sao để khai thác dịch vụ miễn phí.
- Service Registry: tao ra giao diện dịch vụ và cung cấp khả năng truy cập thơng
tin có sẵn tới Service Customer.
Các ngun lý cơ bản của mức dịch vụ là:
- Phi trạng thái: các dịch vụ hoạt động phi trạng thái.
- Khả năng cộng tác: hệ thống có thể giao tiếp với nhau trên nhiều nền tảng và ngôn
ngữ khác nhau.
12


- Tính tự trị: các dịch vụ có quyền kiểm sốt dựa vào logic bên trong của dịch vụ
đó.
- Đóng gói: độc lập giữa các nhà phát triển dịch vụ và nhà sử dụng dịch vụ.

- Có thể tìm thấy: người dùng có thể tìm kiếm dịch vụ và đăng ký sử dụng dịch vụ
đó.
- Liên kết khơng chặt: các dịch vụ có ít sự rằng buộc với nhau tuy nhiên các module
có rang buộc rõ ràng, đảm bảo tính mềm dẻo của SOA
- Sử dụng lại: tái sử dụng lại các dịch vụ giúp loại bỏ những thành phần trùng lặp,
tăng độ vững chắc trong cài đặt, đơn giản hóa việc tự trị
1.4.4. Mức dữ liệu
Khi các ứng dụng tham gia tích hợp mức dữ liệu thì sẽ chia sẻ chung dữ liệu với
nhau, đây là mức tích hợp thấp. Ở mức này chúng ta cần định danh dữ liệu, xây dựng
mơ hình siêu dữ liệu, mơ tả dữ liệu và thể loại hóa dự liệu.
Một số phương pháp điểm hình cho việc chia sẻ dữ liệu là: chia sẻ cơ sở dữ liệu, chia
sẻ dữ liệu dạng file, đồng bộ dữ liễu theo socket.
2. Các kiến trúc tích hợp ứng dụng
Để việc tích hợp hệ thống ứng dụng được hiệu quả và đưa lại hiêu năng cao, việc nắm
vững các kiến trúc hệ thống là điều vô cùng quan trọng. Hầu như kiến trúc của các hệ
thống ứng dụng hiện nay là kiến trúc đa tầng, gồm các thành phần chủ yếu sau:
- Client Layer: là tầng người dùng hoặc chương trình sử dụng các tác vụ, các thao tác
trên hệ thống.
- Presentation Layer: là tầng tạo ra các dịch vụ giúp tầng client gửi yêu cầu và nhận
lại kết quả phản hồi.
- Business Logic Layer: là tầng thực hiện các nghiệp vụ chính của hệ thống, sử dụng
các dịch vụ do tầng Data Access cung cấp, và cung cấp các dịch vụ cho tầng
Presentation
- Data Access Layer (Persistence Layer): tầng tương tác mức thấp nhất với tài nguyên
dữ liệu của hệ thống. Tầng này có thể là hệ quản trị cơ sở dữ liệu hoặc hệ thống quản
trị dữ liệu có khả năng lưu trữ và truy vấn dữ liệu.
2.1. Kiến trúc hướng dịch vụ SOA
13



Là một hướng tiếp cận với việc thiết kế và tích hợp phần mềm, chức năng, hệ thống
theo dạng module và có khả năng truy cập thơng qua mơi trường mạng. SOA giải
quyết các vấn đề còn tồn đọng của các hệ thống hiện nay như: phức tạp, không linh
hoạt và khơng ổn định. [1]

Hình 1.2. Kiến trúc hướng dịch vụ SOA

- Các dịch vụ thực hiện quá trình tương tác chủ yếu thông qua các thành phần giao
tiếp. Các thành phần giao tiếp này quy định về những định dạng thơng điệp sử dụng
trong q trình trao đổi.
- SOA mang đến khả năng tổng hợp một lớp các ứng dụng mới bằng cách kết hợp
chức năng từ những hệ thống sẵn có, cung cấp cho người dùng cuối những chức
năng liên kết.
- Phù hợp với hầu hết những hệ thống hướng dịch vụ ngày nay.
SOA có tính mềm dẻo và tùy biến rất cao. SOA mang đến khả năng tổng hợp một lớp
các ứng dụng bằng cách kết hợp chức năng từ các hệ thống có sẵn. Phía triệu gọi dịch
vụ không cần quan tâm đến địa chỉ hoặc cơng nghệ nền tảng service, do đó có tính
linh hoạt và tăng khả năng triển khai. SOA có hai mơ hình ứng dụng chính đó là Web
service và ESB.
2.2. Kiến trúc Hub-and-Spoke
Là kiến trúc thường được sử dụng trong các hệ ứng dụng tích hợp doanh nghiệp
Enterprise Application Integration (EAI), kiến trúc hub-and-spoke được tích hợp từ
bộ xử lý trung tâm của hệ thống. [1]
14


Hình 1.2. Kiến trúc Hub-and-Spoke

Tất cả hệ thống được tích hợp tại một điểm duy nhất – Hub
Sử dụng cơ sở dữ liệu chia sẻ

Để mở rộng hệ thống, hub sẽ được co cụm lại
Hub có chức năng định tuyến thông điệp (messaging routing) và chuyển đổi dữ
liệu (data transformation)
- Phù hợp với tích hợp hệ thống có số lượng ứng dụng vừa và ít
-

2.3. Kiến trúc điểm đến điểm (Point-to-Point)
- Các hệ thống ứng dụng giao tiếp và trao đổi thông tin với nhau thông qua các giao
diện (interfaces)
- Các giao tiếp có thể được thực hiện trong thời gian thực hoặc đồng bộ
- Số lượng giao tiếp và giáo diện tăng lên khi số lượng ứng dụng tăng lên.
- Thích hợp khi hệ thống có số lượng các ứng dụng cần giao tiếp và tích hợp với nhau
khơng nhiều.

15


Hình 1.4. Kiến trúc Point-to-Point

2.4. Kiến trúc Pipeline
Trong kiến trúc Pipeline, các hệ thống độc lập được tích hợp với nhau bằng một bus
thông điệp. Việc triển khai kiến trúc này tương tự với kiến trúc hub-and-spoke, việc
sử dụng các thành phần middlerware thích hợp cho phép truyền thơng giữa các hệ
thống được chuẩn hóa. Các ứng dụng giao tiếp với bus trung tâm thông qua các giao
diện (interfaces) trên đường truyền mạng. [1]

Hình 1.5. Kiến trúc Pipeline

- Kiến trúc linh hoạt, tốn ít chi phí theo dõi vận hành, các hệ thống độc lập có thể
được tích hợp hoặc loại bỏ một cách dễ dàng

- Khi khối lượng truyền nhận dữ liệu lớn sẽ có nguy cơ tắc nghẽn, do đó cần thiết lập
kênh truyền riêng biệt
Phù hợp với hệ thống tích hợp hướng sự kiện, phân phối dữ liệu 1-n (kênh phát
song), hệ thống sử dụng cơ sở dữ liệu n-1 (kho dữ liệu).
16


3. Các cơng nghệ tích hợp ứng dụng
3.1. Máy chủ ứng dụng (Application Server)
Máy chủ ứng dụng xử lý phần lớn tất cả các tương tác giữa tầng presentation và
tầng data access. Nó cung cấp một tập các dịch vụ middleware cùng với môi trường
quản lý – nơi mà triển khai các thành phần logic nghiệp vụ.
Máy chủ ứng dụng hỗ trợ các dịch vụ như Object Request Brokers (ORBs), web
services, Message-oriented middleware (MOM), quản lý giao tiếp, cân bằng tải,
bảo mật và quản lý tài nguyên. Máy chủ ứng dụng có thể cung cấp các giải pháp
tồn diện cho nhu cầu thơng tin của doanh nghiệp, và nó cũng là một nền tảng tốt
để thực hiện tích hợp. Ngày nay, các nhà phát triển thường xác định máy chủ dịch
vụ như là một thành phần của cơng cụ tích hợp và tập trung vận hành các ứng dụng
bằng cách kết nối các hệ thống back-end.
Mặc dù được sử dụng phát triển ứng dụng mới, nhưng các máy chủ ứng dụng phải
là một nền tảng phần mềm mơi trường có trước lúc phát triển. Một nền tảng phần
mềm môi trường là sự kết hợp của các công nghệ phần mềm cần thiết để vận hành
ứng dụng phát triển mới, do đó các máy chủ ứng dụng này xác định cơ sở hạ tầng
của tất cả các ứng dụng được phát triển và vận hành trên chúng.
Máy chủ ứng dụng hỗ trợ những nền tảng chuẩn, mở và được sử dụng rộng rãi như
là Java Platform—Enterprise Edition (J2EE) hay Java EE 5 application server. Các
khía cạnh quan trọng nhất của các nền tảng này là:
- Nền tảng phần mềm, kiến trúc của các ứng dụng được phát triển cho nền tảng
đó, khả năng tương tác, khả năng mở rộng, tính cơ động, tính khả dụng, độ tin
cậy, phạm vi hợp đồng với khách hàng, khả năng phát triển và thích ứng với các

giải pháp mới. Về mặt tích hợp, khả năng tương tác với những hệ thống khác.
- Tính mở rộng cho phép các nhà cung cấp máy chủ ứng dụng và các cơng ty bên
thứ ba có một vài khả năng tác động đến sự phát triển của nền tảng này.
- Khả năng tương tác giữa các nền tảng khác nhau là điều rất quan trọng đối với
việc áp dụng máy chủ ứng dụng. Đặc biệt là các nền tảng điểu chỉnh bổ sung và
sửa đổi. Việc các nền tảng kết hợp với nhau càng chặt chẽ thì cơ hội thành công
và mở rộng thị trường ngày càng lớn. Tuy nhiên, mỗi một nền tảng cần cung
cấp sự khác biệt giữa các máy chủ ứng dụng với nhau.
17


- Chi phí cho nền tảng cũng là một yếu tố quan trọng và có lẽ là điều khó đánh
giá nhất vì nó bao gồm cả chi phí cài đặt máy chủ ứng dụng và các phần mềm
phát triển khác. Chi phí phần cứng, đào tạo, và phí duy trì các ứng dụng trong
vòng đời của chúng.
- Cuối cùng là sự phát triển của nền tảng. Nền tảng càng phát triển thì nó càng
được kiểm thử và chứng minh rằng nó phù hợp với các quy mơ lớn.
3.2. Dịch vụ web (Web service)
Dịch vụ web là công nghệ phân tán mới nhất hiện nay. Nó cung cấp nền tảng cơng
nghệ để đạt được khả năng tương tác giữa các ứng dụng cho dù có khác nhau về
nền tảng sử dụng, hệ điều hành và ngơn ngữ lập trình.
Bản thân các dịch vụ này sẽ chạy trên các máy chủ ứng dụng trên nền Internet chứ
khơng phải máy tính cá nhân, do vậy có thể chuyển các yêu cầu của máy tính cá
nhân hoặc thiệt bị cầm tay lên máy chủ ứng dụng thơng qua Internet miễn là các
thiết bị đó có hỗ trợ dịch vụ web.
3.2.1. SOAP, WSDL, UDDI
Trước đây các đặt trưng cơ bản của dịch vụ web là dựa trên SOAP (Simple
Object Access Protocol), WSDL (Web Service Description Language) và
UDDI (Universal Description, Discovery, and Integration). SOAP, WSDL và
UDDI dựa trên XML giúp cho các thông điệp và giao thức dịch vụ web trở nên

dễ dàng đối với người lập trình. Các hoạt động trong dịch vụ web dựa trên việc
trao đổi các thơng điệp XML. Nó là một tập hợp dữ liệu đầu vào, đầu ra và mã
lỗi, và sự kết hợp của các tin nhắn này xác định một loạt các hoạt động (một
chiều, request/response, yêu cầu trả lời, hoặc thông báo).
- SOAP: giao thức truy cập đối tượng đơn giản là một giao thức dữ trên ngôn
ngữ XML đơn giản cho phép các ứng dụng trao đổi thông tin qua HTTP.
- UDDI: cũng là một tiêu chuẩn dữa trên XML dùng để tìm kiếm, mơ tả và
xuất bản dịch vụ web.
- WSDL: là một mô tả giao diện của dịch vụ web, được sử dụng cho bên u
cầu dịch vụ, được trình diễn trên ngơn ngữ XML.
3.2.2. RESTful
18


Restfull là dịch vụ web được xây dựng dựa trên cấu trúc REST
(Representational State Transfer). Nó giống như một kiến trúc hay nguyên tắc
cần tuân thủ để thiết kế và tạo ra dịch vụ web.
Trong cấu trúc Rest tất cả đều được coi là tài nguyên, chúng có thể là: trang
html, video, tệp văn bản, ảnh, hoặc dữ liệu động… Rest server cung cấp các tài
nguyên sử dụng và quyền truy cập, còn Rest client truy cập và thay đổi các tài
nguyên đó. Lúc đó các tài nguyên khác nhau được định danh dựa vào URI, Rest
sử dụng một vài đại diện để biểu diễn các tài nguyên như Json, Text, XML…
3.3. Message-oriented middleware
Là phương thức dựa trên cơ chế gửi thơng điệp khơng đồng bộ - asynchronous
message, có nghĩa là khi máy khách gửi yêu cầu tới máy đích và trong khoảng thời
gian máy đích chưa kịp trả lời, máy khách có thể thực hiện các tác vụ khác của
mình sau đó mới quy lại nhận trả lời khi có thơng báo từ máy đích.
Trái ngược với kiến trúc request/response, phía máy đích các thơng điệp phải được
gửi đến máy khách mong muốn, nếu vì một lý do nào đó như máy khách bận, khơng
được kết nơi hay bị offline dẫn đến thơng điệp chưa đến máy khách thì MOM sẽ

thực hiện gửi lại nhờ cơ chế lưu trữ liên tục để sao lưu hàng đợi thơng điệp. MOM
cịn có cơ chế điều phối thơng điệp do đó giảm thiểu vấn đề q tải server

Hình 1.3. Kiến trúc thơng điệp

Các thành phần của MOM gồm có
- Hàng đợi/Kênh (Queues/Chanels): sử dụng để truyền dữ liệu. Có hai loại hàng
đợi:
• Point-to-point: chỉ một điểm nhận nhận mỗi thông điệp
19


Hình 1.4. Hàng đợi Point-to-point

• Push and Subscribe: thơng điệp được gửi tới tất cả các subscriber. Mỗi
subscriber như một bản sao lưu của thông điệp và pushlisher không
quan tâm tới ai lắng nghe

Hình 1.5. Hàng đợi Push and Subscribe

- Thơng điệp (Message): đóng gói dữ liệu (function) cần trao đổi giữa client và
server. Thơng điệp bao gồm:
• Header: định nghĩa thơng điệp và các thơng tin điều khiển.
• Body: chứa thông tin sẽ được xử lý khi ứng dụng nhận thông điệp.
- Điểm kết thúc (EndPoints): điểm cho phép các ứng dụng kết nối được với MOM
và để gửi hay nhận một thông điệp.

20



3.4. Gọi thủ tục từ xa (Remote Procedure Calls)

Hình 1.6. Gọi thủ tục từ xa (RPC)

RPC là một phương thức tích hợp cho phép các ứng dụng triệu gọi thủ tục hoặc
hàm từ các ứng dụng khác mà không cần biết mã nguồn được viết như thế nào.
RPC thực hiện theo kiểu đồng bộ chức năng (synchronous functions): ứng dụng
gọi đến hàm phải chờ đến khi nhận được kết quả trả về mới tiếp tục thực hiện cơng
việc khác.

Hình 1.10. Cơ chế đồng bộ của RPC

Đồng bộ chức năng có 3 loại hàm gọi:
21


- Local function call: Hàm gọi và chức năng được gọi cùng trên một ứng dụng

Hình 1.11. Local function call

- Restricted RPC: Hàm gọi và chức năng được gọi trên các ứng dụng khác nhau
trên cùng một máy chủ.

Hình 1.12. Restricted RPC

- Loại 3: Ứng dụng client trên một máy chủ gọi hàm trên một máy chủ ứng dụng
khác, hai máy chủ này kết nối với nhau qua mạng máy tính

Hình 1.13. Kiến trúc loại 3 của RPC


RPC cho phép ẩn chi tiết truyền thông giữa các lời gọi hàm, trở thành cầu nối giữa
các môi trường và nền tảng khác nhau.
22


Ưu điểm:
- Là phương thức đầu tiên cho phép chia sẻ hàm
- Có thể triển khai với nhiều nền tảng khác nhau
Nhược điểm:
-

Cần nắm được sự đặc tả giao tiếp và các phương thức đóng gói dữ liệu.
Các ứng dụng cần sử dụng chung một ngơn ngữ lập trình
Cần duy trì kết nối chặt chẽ và liên tục do sử dụng cơ chế hàm đồng bộ
Rất phức tạp khi có nhiều lời gọi

3.5. Chia sẻ cơ sở dữ liệu
Công nghệ này cung cấp việc truy cập vào cơ sở dữ liệu thơng qua một lớp trừu
tượng, nó cho phép thay đổi DBMS mà không cần sửa lại mã nguồn của ứng dụng.
Nói cách khác, nó cung cấp các mã nguồn để truy cập vào các nguồn dữ liệu khác
nhau. Do đó, cơng nghệ này rất hữu ích để truy xuất dữ liệu từ các DBMS khác
nhau.
Các đại diện nổi tiếng cho công nghệ này là: Java Database Connectivity (JDBC)
và Java Data Objects (JDO) trên nền tảng Java; Open Database Connectivity
(ODBC) và Active Data Objects (ADO.NET) trên nền tảng Microsoft
3.6. Trục tích hợp dịch vụ tổng thể (Enterprise Service Bus)
ESB là một nên tảng phần mềm hoạt động như là một lớp trung gian để giải quyết
các yêu cầu mở rộng hệ thống, cũng như giải quyết các vấn đề về an ninh, quản lý,
kiểm sốt các dịch vụ truyền thơng. Đồng thời nó tăng tính linh hoạt trong giao tiếp
giữa các dịch vụ, làm đơn giản hóa việc tái sử dụng các dịch vụ và giảm thời gian

phát triển mới dịch vụ.
Hướng tiếp cận của ESB là theo chuẩn giải quyết các vấn đề liên quan đến việc tích
hợp mà khơng cần phải xóa bỏ những giải pháp có sẵn. Mục đích của ESB là làm
cho việc tích hợp các ứng dụng và quy trình trở nên thuận tiện hơn bằng cách cung
cấp một quy trình phân tán, điều hướng thơng minh, bảo mật và có thể tự động
chuyển đổi dữ liệu. Trong hệ thống ESB những dịch vụ trên là những dịch vụ nền
23


×