9 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 I
Trang 1Web 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
Trang 2
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
Trang 31
L ỜI CẢM ƠN
Để có thể hoà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 Hoà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ể hoà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
Trang 42
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à hoàn toàn trung thực Nếu sai tôi xin chịu hoàn toà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
Trang 53
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 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
2 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
3 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
4 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
Trang 64
2 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
3 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
4 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 Đặt vấn đề 45
1.1 Thực trạng 45
1.2 Bài toán đặt ra 46
2 Giải pháp đặt ra cho bài toá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
3 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 quát 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
4 Kết luận 76
K ẾT LUẬN CHUNG 77
1 Kết quả đã đạt được 77
Trang 75
2 Định hướng phát triển trong tương lai 77
TÀI LI ỆU THAM KHẢO 79
Trang 86
DANH M ỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Integration
Trang 97
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 quát 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
Trang 108
Hình 3 9 Luông 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
Trang 119
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ó yê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
Trang 12biệ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 toá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
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à quá 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 hoàn chỉnh [3]
Vậy Tích hợp hệ thống là quá 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
Trang 1311
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 toá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 toá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
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
Trang 1412
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 nguyên 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
Trang 1513
- Tính tự trị: các dịch vụ có quyền kiểm soá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
Trang 1614
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 quá 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
Trang 1715
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
Trang 18sử 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]
Trang 1917
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 toà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
Trang 2018
- 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 yêu
cầu dịch vụ, được trình diễn trên ngôn ngữ XML
3.2.2 RESTful
Trang 2119
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 đề quá tải server
Trang 2220
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
Trang 23RPC 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:
Trang 2422
- 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
Trang 2523
Ư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 soá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
Trang 26thể giao tiếp được với các thành phần còn lại, bây giờ được thay thế bằng giải pháp bus, mỗi thành phần chỉ yêu cầu có 1 giao diện để giao tiếp với bus và thông qua bus để giao tiếp với các thành phần còn lại Một hệ thống ESB cung cấp việc giao
tiếp phân tán, chuyển hướng, xử lý nghiệp vụ, ổn định và bảo mật Nó cũng cung
cấp các dịch vụ có khả năng plug-and-play bởi vì nó dựa trên chuẩn nên những
dịch vụ plug-and-play này có thể được cung cấp bởi các công ty khác và hoạt động trên bus
Trang 27Middleware là phần mềm máy tính với nhiệm vụ kết nối các thành phần phần
mềm hoặc các ứng dụng với nhau Phần mềm loại này bao gồm một tập các dịch vụ cho phép sự tương tác giữa các tiến trình chạy trên một hoặc nhiều máy khác nhau Công nghệ middleware đã được phát triển để cung cấp khả năng hoạt động tương hỗ,
phục vụ cho các kiến trúc phân tán thường được để hỗ trợ và đơn giản hóa các ứng
Sự khác biệt giữa chức năng của hệ điều hành và của middleware, ở mức độ nào đó, khá là tùy ý Trong khi chức năng lõi nhân hệ điều hành chỉ có thể do hệ điều hành cung cấp, một số chức năng từng được các middleware độc lập cung cấp nay đã được tích hợp vào hệ điều hành Một ví dụ điển hình là chồng giao thức TCP/IP dành cho truyền thông nay đã có ở hầu hết các hệ điều hành
1.2 Khái niệm ESB
ESB là tên viết tắt của Enterprise Service Bus, thuật ngự này được biết đến lần đầu tiên bởi Roy W Schulte đến từ tập đoàn Gartner vào năm 2002 và cuốn sách The Enterprise Service Bus của David Chappell
ESB là một hệ thống giao tiếp giữa các ứng dụng để các ứng dụng giao tiếp với nhau (middleware), ESB dựa trên kiến trúc hướng dịch vụ (SOA) và phương thức truyền thông điệp, nó cung cấp một cơ sở hạ tầng tích hợp phục vụ cho các dịch vụ định tuyến, gửi và nhận phản hồi yêu cầu để tạo điều kiện thuận lợi cho việc tương tác giữa các ứng dụng một cách an toàn, tin cậy và hiệu quả cao
Trang 28nhắn đã được định nghĩa trước đó và gửi tin nhắn đến đúng đích của dịch vụ tiêu dung
và thực hiện dịch ngược lại
1.4 Các Mô hình ESB
Mô hình ESB mở rộng các khả năng của kiến trúc hướng dịch vụ (SOA) Các thành
phần tích hợp có thể được hợp thành từ các đơn vị chức năng tiêu chuẩn và được triển khai để tạo điều kiện thuận lợi cho các tương tác giữa những bên yêu cầu dịch vụ (customer) và bên cung cấp dịch vụ (provider) không ăn khớp với nhau ESB cũng cung cấp một mô hình chung để triển khai, quản lý và quản trị các dịch vụ Các khái
niệm ESB cho phép tách biệt các mối quan tâm theo vai trò của người sử dụng, làm
giảm bớt gánh nặng thiết kế khái niệm đối với bất kỳ người sử dụng nào, cải thiện khả năng sử dụng kiến trúc Các công cụ đã thành phần hóa, mô hình lập trình toàn diện
của ESB và sự hỗ trợ cơ sở hạ tầng thúc đẩy đáng kể việc thực hiện các nguyên tắc
của SOA Các mô hình triển khai ESB cơ bản gồm:
Trang 2927
- Global ESB: Tất cả các dịch vụ chia sẻ chung một vùng tên và mỗi bên cung cấp
dịch vụ đều được mọi bên yêu cầu dịch vụ nhìn thấy, xuyên qua một môi trường phân phối không thuần nhất, được quản lý tập trung, phân tán về địa lý Được sử
dụng bởi các bộ phận hoặc các doanh nghiệp nhỏ, nơi tất cả các dịch vụ đều có thể
được áp dụng trên toàn bộ tổ chức
Hình 2 2 Global ESB
- Directly connected ESB: Một sổ đăng ký dịch vụ chung làm cho tất cả các dịch
vụ có trong một số bản cài đặt ESB độc lập nhau đều có thể được nhìn thấy Được
sử dụng ở nơi dịch vụ được cung cấp và được quản lý bởi một dòng nghiệp vụ
nhưng đã tạo ra cho nhiều loại doanh nghiệp có sẵn
Hình 2 3 Directly connected ESB
- Brokered ESB: Các dịch vụ cầu nối, đưa ra giới thiệu một cách có chọn lọc các bên yêu cầu hoặc các bên cung cấp dịch vụ cho bên đối tác trong các miền khác, điều phối việc chia sẻ giữa nhiều bản triển khai thực hiện ESB mà mỗi bản quản
lý một vùng tên riêng của mình Các tương tác dịch vụ giữa các ESB được hậu thuẫn thông qua một trình môi giới chung, mà trình này triển khai thực hiện các
dịch vụ cầu nối Được sử dụng bởi các bộ phận để phát triển và quản lý các dịch
vụ riêng của mình, nhưng có chia sẻ một vài dịch vụ trong số đó hoặc có truy cập các dịch vụ chọn lọc, được cung cấp trong toàn doanh nghiệp
Trang 3028
Hình 2 4 Brokered ESB
- Federated ESB: Một ESB chính mà một vài ESB phụ thuộc khác liên hiệp với nó
Những người sử dụng dịch vụ và các nhà cung cấp dịch vụ kết nối tới ESB chính hay tới một ESB phụ thuộc để truy cập vào các dịch vụ trên toàn mạng Được sử
dụng bởi các tổ chức muốn liên kết một tập hợp các bộ phận tự trị ở mức vừa phải
dưới các ô của một bộ phận giám sát
Hình 2 5 Federated ESB
1.5 Phân loại ESB
- ESB dựa trên thông điệp: Hỗ trỡ trao đổi thông điệp đồng bộ và không đồng bộ
Có khả năng hỗ trợ tích hợp mở rộng hệ thống, triển khai trên mô hình rộng, đồng
thời hỗ trợ đa nền tảng lập trình (Java, C/C++…) Tuy nhiên nó lại tốn chi phí triển
khai cài đặt, và cần cấu hình phức tạp
- ESB dựa trên máy chủ ứng dụng: Nó dựa trên công nghệ tích hợp máy chủ ứng
dụng Phù hợp với hệ thống có định dạng ngôn ngữ XML hoặc Java Ưu điểm của
Trang 31và tích hợp các hệ thống thống lại với nhau mà vẫn sử dụng lại các hệ thống đã hiện
có Chính vì điều đó, các thành phần kiến trúc của ESB phải được cấu hình để đi theo
Trang 3230
interface điều chuyển, các API và các cấu trúc dữ liệu được cung cấp bởi các ứng dụng nghiệp vụ, điều này giúp tái sử dụng tài nguyên nghiệp vụ và dữ liệu Hầu hết các adapter hoạt động theo cách là giảm thiểu những kỹ năng cần thiết để có thể tái sử dụng
lại những tài nguyên của hệ thống đã kết nối Sử dụng các adapter có sẵn giúp giảm các công việc cần thiết và giảm đáng kể thời gian phát triển trong quá trình tích hợp các ứng dụng vào kiến trúc hướng dịch vụ SOA
2.2 Hòa giải (Mediation)
Nhiệm vụ chính của Mediation là đề cập đến tất cả các sự chuyển đổi hoặc biên dịch
giữa các nguồn tài nguyên khác nhau, trong đó bao gồm cả các giao thức vận chuyển (transport protocol), định dạng và nội dung của thông điệp (messaging) Những chuyển đổi này rất quan trọng cho việc tích hợp bởi vì các ứng dụng thường sẽ sử dụng các
kiểu dữ liệu khác nhau
- Chuyển đổi giao thức: chuyển đổi này có khả năng chấp nhận một loại giao thức từ đầu vào như XML/HTTP và truyền tải tới các dịch vụ đầu ra thông qua các loại giao thức khác nhau
Ví dụ: XML/HTTPS IIOP, SOAP/JMS SOAP/HTTP, XML/HTTP CICS/MQ, …
- Chyển đổi bản tin: có khả năng chuyển đổi cấu trúc và định dạng bản tin của dịch
vụ đầu vào thành kiểu cấu trúc và định dạng bản tin phù hợp với dịch vụ đầu ra
Để sử dụng tính năng định tuyến và một số tính năng giao tiếp khác thì các điểm đầu
cuối của thông điệp cần phải được định danh các thuộc tính tham chiếu Muốn thực
hiện được điều đó, ESB sử dụng URI (Uniform Resource Identifiers) hoặc các Addressing để mô tả và xây dựng các dịch vụ web (webservices)
WS-Việc thực hiện quyết định một thông điệp sẽ được gửi đến địa chỉ nào dựa trên một số điều kiện được xác định và điều phối bởi một số các bộ định tuyến như:
Trang 3331
- Định tuyến dựa vào bộ lọc tin nhắn: Nó sẽ chuyển tiếp tin nhắn tới địa chỉ đích khi
nội dung có chứa một tiêu chí nhất định, nếu không thì tin nhắn sẽ bị xóa
- Định tuyến dựa trên địa chỉ đã được cấu hình sẵn bằng cách sử dụng một danh sách địa chỉ nhận đã được thiết lập từ trước
- Định tuyến dựa trên nội dung của thông điệp và chuyển tiếp chúng đến các kênh khác nhau dựa vào nội dung của thông điệp Điều này cho phép người gửi có thể
gửi tin nhắn mà không cần chỉ định đến một điểm đến chính xác Đối với thông điệp
dạng XML thì có thể sử dụng XPath để phân tích các thành phần của thông điệp để
phục vụ cho việc định tuyến
Nếu một thông điệp bao gồm nhiều phần, chức năng Spliter được sử dụng để chia một
bản tin thành nhiều bản tin thành phần, còn đối với bản tin XML, ta có thể sử dụng XPath (XML Path Language) như là một spliter, sau đó thực hiện biến đổi tin nhắn dựa trên XSL (Extensible Stylesheet Language) để tạo ra các thông điệp riêng biệt
Aggregator có chức năng hoàn toan trái ngược với Spliter đó là thu thập và lưu trữ các bản tin Nếu aggregator nhận được một bộ hoàn chỉnh các bản tin thành phần liên quan tới nhau thì nó sẽ gửi một thông điệp là tổng hợp của các bản tin thành phần đó tới điểm đích đã được cấu hình sẵn
Đi kèm với Spliter và Aggregator, ta có Resequencer là một router có nhiệm vụ thu thập những bản tin thành phần có liên quan với nhau mà không theo thứ tự, sau đó nó
sẽ thực hiện chuyển các bản tin thành phần này theo đúng thứ tự
2.4 Sự kiện phức tạp (Complex Event)
Thông thường trong các hệ thống ESB có thể có bao gồm thêm các cơ chế để giải quyết
và giải thích các sự kiện tương quan cũng như các sự kiện kết hợp với nhau khi có một thông báo trên một kênh truyền tải nào đó
2.5 Điều phối (Orchestration)
Trong hệ thống ESB có thể cung cấp các chức năng để thực thi các mô hình nghiệp vụ được mô tả bằng WS-BPEL (Web Services Business Process Execution Language) Các chức năng này được điều khiển bởi mô tả của nghiệp vụ, sau đó nó sẽ phối hợp với các bus đã được kết nối với tài nguyên để thực thi yêu cầu
2.6 Quản lý (Manager)
Trang 3432
Trong các hệ thống tích hợp cần cung cấp các cơ chế kiểm tra và ghi log để phục vụ mục đích là theo dõi cơ sở hạ tầng, các kịch bản tích hợp và kiểm soát quá trình vận hành hệ thống đó là điều tất yêu, ESB cũng không ngoại lệ, cần phải có một cơ chế trung tâm để cấu hình và quản trị các bus, ngoài điều đó ra ESB cần hỗ trợ thêm các công cụ đo lường phục vụ việc kiểm tra và lưu log
2.7 An toàn (Security)
Bảo mật là một vất đề rất quan trong trong các bài toán tích hợp, các cơ sở hạ tầng, ứng dụng tích hợp của một hệ thống trong doanh nghiệp cần phải được bảo vệ Việc đó đồng nghĩa với việc ESB cần có khả năng mã hóa và giải mã ngược các nội dung của thông điệp, thực hiện xác thực thông điệp, kiểm soát truy cập các thiết bị đầu cuối và
sử dụng các cơ chế bảo vệ tiên tiến, an toàn được cập nhật liên tục
3 Một số nền tảng ESB hiện nay
Ở thời điểm hiện nay có rất nhiều những sản phẩm phần mềm hỗ trợ ESB với nhiều tính năng đa dạng và phong phú, tùy vào mục đích sử dụng mà chúng ta có thể chọn bản thương mại hay mã nguồn mở tùy thuộc vào mục đích và nhu cầu sử dụng, cần đánh giá sản phẩm nào là thích hợp để phát triển Để lựa chọn chúng ta có thể tham khảo và tuân thủ một số nguyên tắc sau đây:
- Kết nối: Các bộ chuyển đổi adapter có sẵn sàng theo nhu cầu nghiệp vụ hay không?
Có dễ dàng tạo ra bộ chuyển đổi riêng hay không?
- Giá thành: Giá thành sản phẩm và bảo trì
- Bản quyền: Việc nâng cấp, hạ cấp có khả thi, miễn phí hay không?
- Tính dễ sử dụng: Việc cài đặt có phức tạp hay không? Môi trường phát triển có trực quan không?
- Cộng đồng: Có cộng đồng người sử dụng hay không? Sản phẩm có được hỗ trợ bởi nhiều công ty hay không?
- Tính cơ động: Có khả năng thay đổi tùy vào nhu cầu người sử dụng hay không?
- Vấn đề bảo trì: Việc bảo trì diễn ra như nào? Có công cụ giám sát trực quan hay không?
- Hỗ trợ: Những tùy chọn hỗ trợ nào được cung cấp (hotline 24/7, email…), việc hỗ trợ có đảm bảo như chúng ta mong muốn hay không?
- Chức năng: các chức năng yêu cầu có được hỗ trợ hay không?
- Tính mở rộng: Ta có thể mở rộng sản phẩm được không?
Trang 3533
3.1 IBM Integration Bus
IBM Integration Bus là một trong những trục tích hợp ESB thương mại thành công của IBM
- Ki ến trúc
Hình 2 7 Ki ến trúc IBM Integration Bus
IBM Integration Bus cho phép thông tin được đóng gói dưới dạng các thông điệp truyền giữa các ứng dụng khác nhau, từ các hệ thống truyền thống lớn cho đến các thiết bị cảm biến.[7]
IBM Integration Bus xử lý các thông điệp theo hai cách đó là: định tuyến thông điệp
và chuyển đổi thông điệp
Trang 3634
o Định tuyến thông điệp: Thông điệp có thể được định tuyến từ người gửi đến
người nhận dựa trên nội dung của thông điệp đó
o Chuyển đổi thông điệp: Các thông điệp sẽ được chuyển đổi trước khi gửi đi,
có thể được chuyển đổi bằng cách sửa đổi, kết hợp, thêm hoặc xóa các trường dữ liệu Một số thông điệp sẽ có định nghĩa về cấu trúc và định dạng riêng, các thông điệp này được gọi là thông điệp tự xác định
Trang 37o Dung lượng nhẹ, dễ dàng tùy chỉnh và mở rộng
o Có hỗ trợ công cụ thao tác dễ dàng kéo thả các thành phần tạo nên flow, subflow nên cho năng xuất phát triển rất tốt
Trang 3836
Oracle Service Bus là trục tích hợp ESB được phát triển bởi hãng Oracle, nó là một thành phần con trong Oracle Fusion Middleware được biết đến như một bộ công cụ tích hợp mạnh mẽ [8]
- Kiến trúc
Hình 2 10 Ki ến trúc Oracle Service Bus
o Oracle Service Bus có khả năng truyền tải thông điệp với độ chính xác và tính đảm bảo cao, hỗ trợ XML như là một kiểu dữ liệu mặc định, đồng thời cung
cấp các giải pháp chuyển đổi thành các kiểu dữ liệu khác
o Oracle Service Bus là bộ phân trung gian thực hiện xử lý các yêu cầu dịch vụ đến, xác định logic định tuyến và sau đó biến đổi các thông điệp để tương thích với các bên nhận dịch vụ Ví dụ khi nhận thông điệp qua một giao thức truyền tải như SOAP hay HTTP sau đó xử lý và nó sẽ gửi laị các thông điệp qua giao thức truyền tải khác
o Oracle Service Bus thực hiện giám sát và kiểm soát bảo mật theo hướng tập trung cho phép thiết lập mối quan hệ giữa người sử dụng và nhà cung cấp
dịch vụ
- Công cụ
Công cụ dung để phát triển Oracle Service Bus có thể kể đến là: Oracle Workshop for WebLogic
Trang 39o Thường triển khai cho các hệ thống lớn, chuyên nghiệp
o Hỗ trợ người phát triển tốt, hầu hết các sản phẩm đều có trình biên tập đồ họa
o Vì nằm trong hệ sinh thái của Oracle Fusion Middleware nên có thể kết nối được với các thành phần khác có trong Oracle Fusion Middleware như: Enterprise Messaging Service , Coherence, BEPL Process Manager, Service Registry, SOA, Complex Event Processing, …
o …
- Nhược điểm:
o Dung lượng lớn nên dẫn đến cài đặt khó khăn, chiếm nhiều tài nguyên và cần
có cơ sở hạ tầng tốt mới triển khai được
o Là phần mềm thương mại nên giá thành cao
o …
3.3 WSO2 ESB
Trang 4038
WSO2 ESB là một bản ESB chính thức dành cho doanh nghiệp Nó được xây dựng trên nền tảng Apache Synapse và sử dụng Apache Axis2 Tất cả các thành phần được xây dựng dưới dạng gói OSGi [9]
- Kiến trúc
Hình 2 12 Ki ến trúc WSO2 ESB
o Khi một ứng dụng gửi thông điệp đến WSO2 ESB , thông điệp sẽ được chuyển tiếp đến tầng vận chuyển và việc vận chuyển dữ liệu sẽ thông qua một kênh truyền – nơi này sẽ xử lý các vấn đề chất lượng thông điệp ví dụ như về
bảo mật
o WSO2 ESB có thể hoạt động ở hai chế độ đó là: Thông điệp trung gian sử
dụng một kênh duy nhất và vận chuyển dịch vụ qua các proxy khác nhau
o Cả chuyển đổi và định tuyến tin nhắn có thể được coi là một đơn vị Như sơ
đồ trên chỉ định, không có sự tách biệt rõ ràng giữa các thành phần chuyển đổi thông báo và các thành phần định tuyến Trong WSO2 ESB, đây được
gọi là khung hòa giải
o Một số việc biến đổi xảy ra trước khi quyết định thực hiện việc định tuyến, trong khi một số khác xảy ra sau khi việc định tuyến kết thúc
o Lớp vận chuyển đảm nhiệm việc chuyển đổi giao thức vận chuyển theo yêu
cầu của ESB
- Công cụ
Công cụ dung để phát triển WSO2 ESB có thể kể đến là: Accessing Developer Studio