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

đồ án tìm hiểu và xây dựng ứng dụng kiến trúc hướng dịch vụ với oracle soa suite

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 (4.63 MB, 141 trang )


TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN



THẠCH BẠCH – LÊ NGUYỄN HOÀI NAM


TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG
KIẾN TRÚC HƯỚNG DỊCH VỤ VỚI
ORACLE SOA SUITE


KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT













TP.HCM, 2011



TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN



THẠCH BẠCH 0712085
LÊ NGUYỄN HOÀI NAM 0712291


TÌM HIỂU VÀ XÂY DỰNG ỨNG DỤNG
KIẾN TRÚC HƯỚNG DỊCH VỤ VỚI
ORACLE SOA SUITE




KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN TIN HỌC



GIÁO VIÊN HƯỚNG DẪN
ThS. NGÔ BÁ NAM PHƯƠNG



NIÊN KHÓA 2007–2011

i



NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
Khóa luận đáp ứng yêu cầu của Luận văn cử nhân tin học.
TpHCM, ngày …… tháng …… năm 2011
Giáo viên hướng dẫn




ii


NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………

………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
Khóa luận đáp ứng yêu cầu của Luận văn cử nhân tin học.

TpHCM, ngày …… tháng …… năm 2011
Giáo viên phản biện


iii

LỜI CÁM ƠN

Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học
Khoa Học Tự Nhiên Tp.HCM đã tạo điều kiện tốt cho chúng em thực hiện đề tài
này.
Chúng em xin chân thành cảm ơn Thầy Ngô Bá Nam Phương, là người đã định
hướng và giúp đỡ chúng em trong suốt thời gian thực hiện đề tài. Trong quá trình
thực hiện đề tài Thầy đã tận tình chỉ dẫn, trao đổi giúp chúng em giải quyết các vấn
đề để hoàn thiện đề tài.
Chúng em cũng xin gửi lời cảm ơn sâu sắc đến quý Thầy Cô trong Khoa đã tận

tình giảng dạy và trang bị cho chúng em vốn kiến thức vô cùng quí báu trong những
năm học vừa qua. Cảm ơn Thầy Nguyễn Hoàng Anh và Thầy Hoàng Vũ Tuấn vì
những tài liệu quý báu của các thầy.
Bên cạnh đó chúng em xin gửi lòng biết ơn sâu sắc đến toàn thể gia đình. Ba,
Mẹ, anh chị đã quan tâm, chăm sóc, động viên. Bạn bè đã ủng hộ, giúp đỡ chúng
em trong những lúc khó khăn cũng như trong suốt thời gian học tập và nghiên cứu.
Mặc dù chúng em đã cố gắng hoàn thành luận văn trong phạm vi và khả năng
cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự cảm
thông và chỉ bảo của quý Thầy Cô và các bạn.
Nhóm thực hiện
Thạch Bạch – Lê Nguyễn Hoài Nam

iv

ĐỀ CƯƠNG LUẬN VĂN
Tên Đề Tài:
• Tìm hiểu và xây dựng ứng dụng kiến trúc hướng dịch vụ với Oracle SOA
Suite.
Giáo viên hướng dẫn:
• Th.S Ngô Bá Nam Phương
Thời gian thực hiện:
• Từ ngày 02/03/2011 đến ngày 27/06/2011
Sinh viên thực hiện:
• Thạch Bạch 0712085
• Lê Nguyễn Hoài Nam 0712291
Loại đề tài:
• Nghiên cứu công nghệ và phát triển ứng dụng.
• Đề tài thuộc hướng công nghệ phần mềm.
Nội Dung Đề Tài:
• Tìm hiểu cơ sở nền tảng kiến trúc hướng dịch vụ.

• Tìm hiểu kiến trúc hướng dịch vụ Oracle (Oracle SOA Suite).
• Tìm hiểu các phần mềm của Oracle hỗ trợ cho từng pha trong chu trình
sống SOA.
• Tìm hiểu kiến trúc Hibernate, Spring framework để phục vụ cho việc xây
dựng ứng dụng minh họa.
• Xây dựng ứng dụng dựa trên kiến trúc hướng dịch vụ theo đúng nền tảng
kíến trúc hướng dịch vụ Oracle.
Kết Quả Đạt Được:
• Tìm hiểu được cơ sở nền tảng kiến trúc hướng dịch vụ.
• Tìm hiểu được nền tảng kiến trúc hướng dịch vụ Oracle cho việc xây dựng
các quy trình ứng dụng.

v


Xây dựng ứng dụng theo đúng nền tảng kiến trúc hướng dịch vụ Oracle.
Kế Hoạch Thực Hiện:
Bắt đầu Kết thúc Yêu cầu Phân công
2/3/2011 17/3/2011 Tìm hiểu cơ sở nền tảng kiến trúc
hướng dịch vụ.
0712085-0712291
18/3/2011 27/3/2011 Tìm hiểu nền tảng kiến trúc
hướng dịch vụ Oralce
0712085-0712291
28/3/2011 9/4/2011 Cài đặt và cấu hình các phần
mềm hỗ trợ cho từng pha trong
chu trình sống của SOA.
0712085-0712291
10/4/2011 19/4/2011 Tìm hiểu và cài đặt phần mềm
JDeveloper Studio.

0712085-0712291
20/4/2011 29/4/2011 Tìm hiểu kiến trúc Hibernate,
Spring
0712085-0712291
2/5/2011 5/5/2011 Mô hình hóa ứng dụng Vinabook. 0712085-0712291
6/5/2011 24/5/2011 Xây dựng và tổng hợp ứng dụng
Vinabook.
0712085-0712291
25/5/2011 9/6/2011 Triển khai và quản lý ứng dụng
Vinabook.
0712085-0712291
10/6/2011 17/6/2011 Hoàn chỉnh ứng dụng. 0712085-0712291
18/6/2011 26/6/2011 Hoàn chỉnh báo cáo. 0712085-0712291


Xác nhận của GVHD



ThS. Ngô Bá Nam Phương
Ngày tháng năm 2011
Nhóm SV Thực hiện


Thạch Bạch – Lê Nguyễn Hoài Nam

vi

MỤC LỤC


LỜI CÁM ƠN 3

ĐỀ CƯƠNG LUẬN VĂN 4

MỤC LỤC 6

DANH MỤC CÁC HÌNH 9

DANH MỤC CÁC BẢNG 13

Chương 1 MỞ ĐẦU 1

1.1.

Giới thiệu về đề tài 1

1.2.

Lý do thực hiện đề tài 2

1.3.

Mục tiêu đề tài 3

1.4.

Nội dung luận văn 4

Chương 2 NỀN TẢNG KIẾN TRÚC HƯỚNG DỊCH VỤ ORACLE 6


2.1.

Service Oriented Architecture (SOA) 7

2.2.

Các lợi ích của kiến trúc hướng dịch vụ 10

2.3.

Kiến trúc lớp doanh nghiệp (Layering the Enterprise Architecture) 15

2.4.

Những công nghệ được sử dụng để cài đặt theo kiến trúc hướng dịch
vụ (Standards in SOA) 20

2.5.

Kiến trúc thành phần hướng dịch vụ 25

Chương 3 CÁC CÔNG CỤ HỖ TRỢ CÀI ĐẶT, TRIỂN KHAI VÀ QUẢN LÝ
ỨNG DỤNG THEO KIẾN TRÚC HƯỚNG DỊCH VỤ 28

3.1.

Các bước thực hiện trong chu kì sống SOA 29

3.2.


Các phần mềm của Oracle hỗ trợ triển khai và quản lý trong chu kỳ
sống SOA 29


vii

3.3.

So sánh hai nền tảng IBM SOA Portfolio và Oracle SOA Suite 45

Chương 4 MÔ HÌNH HÓA ỨNG DỤNG VINABOOK 53

4.1.

Giới Thiệu 53

4.2.

Phát biểu bài toán 55

4.3.

Chi tiết các chức năng và các phân hệ 56

4.4.

Các yêu cầu chức năng cho Guest 57

4.5.


Các Yêu cầu cho Member (Thành viên) 61

4.6.

Các yêu cầu cho Admin (Quản trị viên) 61

4.7.

Lược đồ Use-Case tổng thể 66

4.8.

Các lược đồ Use-Case Chi Tiết 67

4.9.

Thiết kế dữ liệu lưu trữ 71

Chương 5 TỔNG HỢP ỨNG DỤNG VINABOOK 72

5.1.

Thành phần dịch vụ “Thêm Sản Phẩm” 72

5.2.

Thành phần dịch vụ “Lấy Sản Phẩm Theo Loại, Giá, Tên Tác Giả
Hoặc Sản Phẩm” (Tìm Kiếm Nâng Cao) 78

5.3.


Thành phần dịch vụ “So Sánh Giá” (Với Amazon.com) 83

Chương 6 TRIỂN KHAI VÀ QUẢN LÝ ỨNG DỤNG VINABOOK 91

6.1.

Triển khai ứng dụng 91

6.2.

Khách hàng 91

6.3.

Admin (Quyền quản trị) 113

6.4.

Quản lý ứng dụng với WebLogic 118

Chương 7 Kết luận 123

7.1.

Các kết quả đạt được 123


viii


7.2.

Hướng phát triển của đề tài 125

TÀI LIỆU THAM KHẢO 126


ix

DANH MỤC CÁC HÌNH
Hình 2-1: SOA, BPM, và EDA 7

Hình 2-2: Sự cộng tác trong kiến trúc hướng dịch vụ 8

Hình 2-3: Kiến trúc lớp doanh nghiệp 15

Hình 2-4: Mô tả các tầng nghiệp vụ 17

Hình 2-5: Giao diện point-to-point 17

Hình 2-6: ESB 18

Hình 2-7: Kiến trúc thành phần dịch vụ 27

Hình 3-1: Oracle JDeveloper Studio 33

Hình 3-2: BPEL Process Modeler trong JDeveloper (Nguồn: www.oracle.com)
35

Hình 3-3: Oracle BPEL Process Designer trong JDeveloper 37


Hình 3-4: Oracle BPEL Console (Nguồn: www.oracle.com) 38

Hình 3-5: Ứng dụng tổng hợp (Nguồn: www.oracle.com) 39

Hình 3-6: Oracle SQL * Plus 39

Hình 3-7: Oracle WebLogic Suite 41

Hình 3-8: Oracle Business Activity Monitoring (Nguồn www.oracle.com) 43

Hình 5-1: Thành phần tổng hợp dịch vụ “Thêm sản phẩm” 72

Hình 5-2: Quy trình nghiệp vụ “Thêm sản phẩm” 73

Hình 5-3: Thành phần tổng hợp dịch vụ “Tìm kiếm nâng cao” 78

Hình 5-4: Quy trình nghiệp vụ “Tìm kiếm nâng cao” 79

Hình 5-5: Thành phần tổng hợp dịch vụ “So sánh giá” 83

Hình 5-6: Quy trình nghiệp vụ “So sánh giá” 84


x

Hình 6-1: Đăng nhập ứng dụng 92

Hình 6-2: Giao diện đăng nhập 92


Hình 6-3: Giao diện đăng kí 93

Hình 6-4: Giao diện thông báo đăng ký thành công 94

Hình 6-5: Giao diện chỉnh sửa thông tin cá nhân 94

Hình 6-6: Giao diện thông báo chỉnh sửa thành công 95

Hình 6-7: Giao diện danh mục sản phẩm 95

Hình 6-8: Giao diện tìm kiếm sản phẩm 96

Hình 6-9: Giao diện tìm kiếm cơ bản 96

Hình 6-10: Tìm kiếm nâng cao 97

Hình 6-11: Kết quả tìm kiếm nâng cao 98

Hình 6-12: Giao diện tìm kiếm theo danh mục 99

Hình 6-13: Kết quả tìm kiếm theo danh mục 99

Hình 6-14: Đưa vào giỏ hàng 100

Hình 6-15: Giao diện giỏ hàng 101

Hình 6-16: Cập nhật giỏ hàng 101

Hình 6-17: Tiếp tục mua hàng 102


Hình 6-18: Thanh toán 103

Hình 6-19: Giao diện Sandbox PayPal 103

Hình 6-20: Màn hình tài khoản PayPal 104

Hình 6-21: Đăng nhập vào hệ thống PayPal 104

Hình 6-22: Tài khoản trước khi mua sản phẩm 105

Hình 6-23: Màn hình xác nhận thanh toán 105


xi

Hình 6-24: Màn hình thông báo thanh toán thành công 106

Hình 6-25: Lưu giỏ hàng 106

Hình 6-26: Kết quả lưu giỏ hàng 107

Hình 6-27: Xóa sản phẩm 107

Hình 6-28: Chọn sản phẩm trong giỏ hàng để xóa 108

Hình 6-29: Màn hình sau khi xóa 108

Hình 6-30: Xem chi tiết sản phẩm 109

Hình 6-31: Giao diện chính ‘Chi tiết sản phẩm’ 109


Hình 6-32: Giao diện sản phẩm bán chạy 110

Hình 6-33: Giao diện sản phẩm mới 110

Hình 6-34: So sánh giá 111

Hình 6-35: Giao diện ‘So sánh giá’ 111

Hình 6-36: Xem chi tiết so sánh giá 112

Hình 6-37: Chi tiết so sánh giá Vinabook 112

Hình 6-38: Chi tiết so sánh giá Amazon 113

Hình 6-39: Giao diện quản lý của Admin 113

Hình 6-40: Thêm tài khoản 114

Hình 6-41: Kết quả sau khi thêm tài khoản 114

Hình 6-42: Cập nhật tài khoản 115

Hình 6-43: Thông báo cập nhật tài khoản thành công 115

Hình 6-44: Xóa tài khoản 115

Hình 6-45: Thông báo xóa thành công 116

Hình 6-46: Giao diện quản lý sản phẩm 116



xii

Hình 6-47: Thêm sản phẩm 116

Hình 6-48: Thông báo thêm sản phẩm thành công 117

Hình 6-49: Xóa sản phẩm 117

Hình 6-50: Thông báo thêm sản phẩm thành công 117

Hình 6-51: Deployment – Log thông báo việc deploy đã thành công 118

Hình 6-52: WebLogic Enterprise Manager 119

Hình 6-53: Kiểm tra dịch vụ 120

Hình 6-54: Nhập thông tin để kiểm tra 120

Hình 6-55: Chọn hình thức xem 121

Hình 6-56: Test thành công 121



xiii

DANH MỤC CÁC BẢNG
Bảng 1-1: Danh sách công cụ hỗ trợ xây dựng ứng dụng Oracle SOA Suite 3


Bảng 2-1: Các xử lý cơ bản của BPEL 25

Bảng 2-2: Các xử lý có cấu trúc của BPEL 25

Bảng 3-1: Danh sách các sán phẩm hỗ trợ chu kỳ sống SOA 47

Bảng 3-2: Thời gian cài đặt của hai thành phần 49

Bảng 3-3: So sánh sự bảo mật của IBM và Oracle 50

Bảng 4-1: Bảng yêu cầu chức năng cho Khách Hàng 60

Bảng 4-2: Bảng yêu cầu chức năng cho Thành Viên 61

Bảng 4-3: Yêu cầu chức năng cho Quản Trị Viên 65

Bảng 5-1: Các hành động của dịch vụ “Thêm sản phẩm” 78

Bảng 5-2: Bảng hàng động của dịch vụ “Tìm kiếm nâng cao” 82

Bảng 5-3: Bảng hàng động của dịch vụ “So sánh giá” 89


1

Chương 1

MỞ ĐẦU


Nội dung trình bày trong chương 1 đề cập đến các phần sau đây: Giới
thiệu về đề tài, lý do thực hiện đề tài, mục tiêu đề tài và cuối cùng là
phần nội dung luận văn.
1.1. Giới thiệu về đề tài
Trong suốt lịch sử phát triển của ngành công nghệ thông tin, có rất nhiều mô
hình kiến trúc phần mềm được đưa ra phát triển, ứng dụng và đạt được nhiều thành
công hết sức to lớn. Tuy nhiên, phần mềm đang ngày càng trở nên quá phức tạp và
vượt ra khỏi sự kiểm soát của các mô hình hiện nay, đó cũng chính là vấn đề lớn
được đặt ra trong lĩnh vực phát triển phần mềm.
Rất nhiều hệ thống phần mềm được thực hiện quá phức tạp, chi phí phát triển và
bảo trì quá cao, đặc biệt với các hệ thống phần mềm cao cấp. Hàng chục năm qua,
các kiến trúc phần mềm đã cố gắng giải quyết vấn đề này. Thế nhưng độ phức tạp
vẫn tiếp tục tăng và dường như nó đã vượt quá khả năng xử lý của các mô hình kiến
trúc truyền thống. Nguyên nhân một phần là do ngày càng xuất hiện nhiều công
nghệ mới tạo nên môi trường không đồng nhất, một phần do yêu cầu trao đổi tương
tác giữa các hệ thống phần mềm với nhau. Câu hỏi được đặt ra là làm thế nào để
vừa thỏa mãn những yêu cầu truyền thống, vừa đáp ứng nhanh chóng các yêu cầu
mới, đồng thời đòi hỏi việc giảm chi phí, có khả năng sử dụng và tích hợp các thành
phần mới… Kiến trúc hướng dịch vụ - Service Oriented Architecture (gọi tắt là
SOA) - ra đời đánh dấu một bước phát triển mới của nghành công nghệ thông tin,
đáp ứng được các nhu cầu nghiệp vụ nâng cao của doanh nghiệp.
Kiến trúc hướng dịch vụ là một kiểu kiến trúc phần mềm và là sự kết hợp của
nhiều phương pháp hướng tới việc đạt được khả năng giao tác giữa các ứng dụng
đồng nhất hoặc không đồng nhất, các ứng dụng cục bộ hoặc từ xa bằng cách tổng
hợp các dịch vụ có khả năng tái sử dụng. (Nguồn : www.oracle.com)

2

Hiểu một cách cơ bản, kiến trúc hướng dịch vụ là tập hợp các dịch vụ kết nối với
nhau (nghĩa là một ứng dụng có thể liên lạc với một ứng dụng khác mà không cần

biết các chi tiết kỹ thuật bên trong), có giao tiếp (dùng để gọi hàm dịch vụ) được
định nghĩa rõ ràng và độc lập với nền tảng hệ thống và có thể tái sử dụng. Kiến trúc
hướng dịch vụ là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến quy trình
nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới.
Dịch vụ là yếu tố then chốt trong mô hình kiến trúc hướng dịch vụ. Có thể hiểu
dịch vụ như là hàm chức năng (mô-đun phần mềm) thực hiện quy trình nghiệp vụ
nào đó. Ta không những sử dụng chúng tạo ra những quy trình nghiệp vụ, mà còn
có thể sử dụng để xây dựng các ứng dụng mới.
Thiết kế mô hình kiến trúc hướng dịch vụ tách riêng phần thực hiện dịch vụ
(phần mềm) với giao tiếp gọi dịch vụ. Điều này tạo nên một giao tiếp nhất quán cho
ứng dụng khách (client) sử dụng dịch vụ bất chấp công nghệ thực hiện dịch vụ.
Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ. Nhà phát triển sẽ xây dựng các
dịch vụ tinh gọn có thể triển khai và tái sử dụng trong toàn bộ quy trình nghiệp vụ.
Việc tái sử dụng phần mềm tốt hơn, cũng như tăng cường sự linh hoạt vì nhà phát
triển có thể cải tiến dịch vụ mà không làm ảnh hưởng đến ứng dụng client sử dụng
dịch vụ.
1.2. Lý do thực hiện đề tài
Thông qua kết quả khảo sát các công cụ hỗ trợ xây dựng ứng dụng mô hình
SOA, chúng em đã tìm hiểu việc xây dựng ứng dụng dựa trên Oracle SOA Suite.
Thêm vào đó, với những ưu điểm của Oracle SOA và những ưu điểm vượt trội
của nó so với những mô hình kiến trúc truyền thống thì kiến trúc hướng dịch vụ nói
chung và kiến trúc hướng dịch vụ của Oracle nói riêng, đã mở ra một bước phát
triển mới trong lĩnh vực công nghệ thông tin.
Ta có thể nhận thấy việc lập trình truyền thống chú trọng nhiều vào việc phát
triển giao diện người dùng, các xử lý cơ sở dữ liệu, thực hiện các giao tác theo yêu

3

cầu. Trong khi đó, kiến trúc hướng dịch vụ Oracle đã hỗ trợ một cách linh hoạt các
hoạt động mở rộng như là tích hợp hướng dịch vụ và thiết kế các luồng quy trình

nghiệp vụ. Mặt khác, điểm nổi bật của Oracle SOA như tính kết nối lỏng, tính tái sử
dụng các dịch vụ đã tồn tại sẵn,
Để có cái nhìn trực quan về những ưu điểm của mô hình kiến trúc này, thì việc
xây dựng ứng dụng minh họa là rất cần thiết. Muốn xây dựng các giải pháp ứng
dụng thành công dựa trên mô hình kiến trúc hướng dịch vụ ta cần có kiến trúc tham
chiếu, có các phần mềm hỗ trợ cho các pha trong chu kỳ sống của kiến trúc hướng
dịch vụ, các kịch bản kiến trúc hướng dịch vụ, …
STT

Tên sản phẩm
1
Oracle Express Edition (XE) 10.2.0.1
2
Oracle WebLogic Server + Coherence - Package Installer
10.3.4
3
Repository Creation Utility 11.1.1.4.0
4
JDeveloper 11.1.1.4.0
5
SOA Extension for JDeveloper 11.1.1.4.0
6
SOA Suite 11.1.1.4.0
Bảng 1-1: Danh sách công cụ hỗ trợ xây dựng ứng dụng Oracle SOA Suite
(Nguồn www.oracle.com)
1.3. Mục tiêu đề tài
- Tìm hiểu cơ sở nền tảng kiến trúc hướng dịch vụ.
- Tìm hiểu nền tảng kiến trúc hướng dịch vụ Oracle.
- Tìm hiểu và so sánh sự khác nhau giữa hai nền tảng kiến trúc hướng dịch vụ
của Oracle và kiến trúc hướng dịch vụ của IBM.

- Tìm hiểu các phần mềm của Oracle nhằm hỗ trợ cho từng pha trong chu kỳ
sống của SOA.
- Xây dựng ứng dụng dựa trên kiến trúc hướng dịch vụ theo đúng nền tảng
kiến trúc hướng dịch vụ Oracle.

4

1.4. Nội dung luận văn
Nội dung luận văn bao gồm 4 phần chính: Nghiên cứu cơ sở kiến trúc hướng
dịch vụ, nghiên cứu nền tảng kiến trúc hướng dịch vụ Oracle, xây dựng ứng dụng
và tổng kết.
Nội dung chi tiết của từng phần như sau:
 Phần 1: Nghiên cứu cơ sở kiến trúc hướng dịch vụ gồm 2 chương
 Chương 1: Mở đầu.
 Nội dung: Giới thiệu đề tài, lý do thực hiện đề tài, mục tiêu của đề
tài và nội dung trình bày của luận văn.
 Chương 2: Nền tảng kiến trúc hướng dịch vụ Oracle
 Nội dung: Nêu định nghĩa các tính chất của mô hình kiến trúc
hướng dịch vụ.
 Phần 2: Nghiên cứu nền tảng kiến trúc huớng dịch vụ Oracle gồm 1
chương
• Chương 3: Các công cụ hỗ trợ cài đặt, triển khai và quản lý ứng dụng
theo kiến trúc hướng dịch vụ
 Nội dung: Trình bày định nghĩa kiến trúc thành phần dịch vụ, các
công cụ hỗ trợ chu kỳ sống SOA Oracle Suite, so sánh hai nền
tảng SOA của Oracle và IBM.
 Phần 3: Xây dựng ứng dụng gồm 3 chương
• Chương 4: Mô hình hóa ứng dụng Vinabook
 Nội dung: Mô hình hóa ứng dụng dựa trên kiến trúc hướng dịch vụ,
ứng dụng thương mại điện tử VINABOOK. Thu thập và quản lý

yêu cầu, thiết kế các lược đồ Use-Case của ứng dụng, mô hình hóa
quy trình nghiệp vụ của ứng dụng và thiết kế các dịch vụ.
• Chương 5: Tổng hợp ứng dụng Vinabook
 Nội dung: Sử dụng phần mềm Oracle JDeveloper để tổng hợp ứng
dụng ở mức tổng quát nhất có thể.

5

• Chương 6: Triển khai và quản lý ứng dụng Vinabook
 Nội dung: Triển khai ứng dụng lên WebLogic, khảo sát ứng dụng
dưới các vai trò: Khách hàng, Member (Thành viên), Quản trị
(Admin) và quản lý ứng dụng với Enterprise Manager.
 Phần 4: Tổng kết gồm 1 chương
• Chương 7: Kết luận
 Nội dung: Trình bày các kết quả đã đạt được và hướng phát triển
của đề tài.

6

Chương 2

NỀN TẢNG KIẾN TRÚC HƯỚNG DỊCH VỤ ORACLE
 Nội dung trình bày trong chương 2 đề cập đến nền tảng kiến trúc hướng dịch
vụ của Oracle. Gồm 2 phần chính:

Giới thiệu về các khái niệm, tính chất của kiến trúc hướng dịch vụ (Service
Oriented Architecture).

Trình bày khái niệm kiến trúc thành phần hướng dịch vụ.
Linh động hay thực hiện nghiệp vụ nhanh gọn là một mục tiêu quan trọng cho tổ

chức hiện đại để theo kịp thị trường, thỏa mãn nhu cầu của khách hàng. Sự toàn cầu
hóa và internet đã có ảnh hưởng đến cơ hội tương tác giữa các đối tác và đạt được
thỏa thuận với khách hàng. Nhu cầu của ngành công nghệ thông tin là tính linh
động để thay đổi nghiệp vụ hiện tại một cách nhanh chóng, tốn ít thời gian, chí phí
thấp mà vẫn đạt được chất lượng cao.
Thiết kế kiến trúc tốt sẽ giúp ích cho cả quy trình lẫn nghiệp vụ ngành công
nghệ thông tin. Trong chương này giới thiệu về kiến trúc hướng dịch vụ (SOA) của
Oracle và tính chất đặc thù của SOA. Mục tiêu của SOA là đáp ứng yêu cầu một
cách nhanh chóng, cung cấp khả năng tương thích của các chức năng thông qua
dịch vụ có sẵn. Một phần khác của SOA là kiến trúc hướng sự kiện (Event Driven
Architecture - EDA). EDA cho phép quy trình nghiệp vụ để khởi tạo thực thi dịch
vụ để đáp ứng với sự kiện mà không tạo ra sự phụ thuộc trực tiếp mà có thể tạo ra
cản trở khả năng thay đổi các thành phần. Như chúng ta thấy trong hình 2-1, SOA,
BPM (BPEL Process Manager) và EDA có quan hệ mật thiết với nhau. Quy trình
nghiệp vụ trong BPM tăng khi một số sự kiện xảy ra và gọi dịch vụ để thực thi tác
vụ tự động.

7


Hình 2-1: SOA, BPM, và EDA
Để hiểu rõ được mô hình kiến trúc hướng dịch vụ, ta sẽ đi vào phần tiếp theo để
biết được các khái niệm và tính chất của nó.
2.1. Service Oriented Architecture (SOA)
2.1.1. Định nghĩa
“SOA là một kiểu kiến trúc để xây dựng ứng dụng phần mềm bằng cách sử
dụng dịch vụ có sẵn trên mạng như web. Nó thúc đẩy tính chất kết nối lỏng giữa các
thành phần trong ứng dụng để các thành phần đó có thể được tái sử dụng. Các ứng
dụng trong SOA được xây dựng dựa trên các dịch vụ. Một dịch vụ thực hiện một
tác vụ nào đó và các dịch vụ như vậy sau đó có thể được sử dụng bởi khách

hàng trong các ứng dụng khác nhau hoặc các quy trình nghiệp vụ khác nhau”.
(Nguồn: www.oracle.com)
- SOA đưa ra phương pháp cho việc tích hợp các ứng dụng nghiệp vụ, các quy
trình nghiệp vụ bằng cách liên kết các dịch vụ.
- Kiến trúc hướng dịch vụ đưa ra một kiến trúc dựa trên các chuẩn mở để phân
phối các tài nguyên phần mềm là các dịch vụ.
- Các tài nguyên trên một mạng trong môi trường SOA có giá trị như là các
dịch vụ độc lập có thể truy suất mà không cần biết cài đặt chi tiết bên dưới.

8

- Kiến trúc hướng dịch vụ cho phép các tài nguyên phần mềm độc lập trở
thành các khối xây dựng sẵn để có thể tái sử dụng trong việc phát triển các
ứng dụng khác. Kiến trúc hướng
dịch vụ giúp tập trung vào việc
tổng hợp ứng dụng hơn là việc cài
đặt chi tiết bên dưới.
- SOA được sử dụng để tạo ra các
ứng dụng mới từ các thành phần
sẵn có bên trong hệ thống. Mặt
khác, nó còn có thể được dùng để
tích hợp với các ứng dụng bên ngoài hệ thống. Đó một hướng tiếp cận nhằm
xây dựng các ứng dụng phân tán thông qua việc tổng hợp các dịch vụ.
2.1.2. Sự cộng tác trong kiến trúc hướng dịch vụ
Sự cộng tác trong kiến trúc hướng dịch vụ là mô hình tìm kiếm, nối kết
và gọi thực hiện dịch vụ. Người dùng dịch vụ xác định vị trí dịch vụ động
bằng cách truy vấn đến nơi đăng ký dịch vụ (Service Registry) tìm kiếm một
dịch vụ khớp với yêu cầu của nó. Nếu dịch vụ tồn tại thì nơi đăng ký dịch vụ
sẽ cung cấp cho người dùng dịch vụ hợp đồng dịch vụ và địa chỉ điểm cuối
của dịch vụ cung cấp.


Hình 2-2: Sự cộng tác trong kiến trúc hướng dịch vụ

9

 Các hoạt động trong kiến trúc hướng dịch vụ
- Công bố (Publish): nhà cung cấp dịch vụ công bố bản đặc tả dịch vụ
(WebService Description Language - WSDL) của mình lên nơi đăng ký dịch
vụ, khi đó người dùng dịch vụ có thể tìm kiếm và gọi thực hiện dịch vụ
thông qua bản đặc tả này.
- Tìm kiếm (Find): người dùng dịch vụ định vị trí một dịch vụ bằng cách truy
vấn đến nơi đăng ký dịch vụ (Service Registry) yêu cầu cung cấp một dịch
vụ theo tiêu chuẩn của nó.
- Nối kết và gọi thực hiện (Bind): sau khi có được bản đặc tả dịch vụ , người
dùng dịch vụ tiến hành gọi thực hiện dịch vụ theo thông tin trong bản đặc tả
dịch vụ.
 Các vai trò trong kiến trúc hướng dịch vụ
- Người dùng dịch vụ (Service Consumer): là một ứng dụng, một module của
phần mềm hay là các dịch vụ khác có nhu cầu sử dụng dịch vụ. Người dùng
dịch vụ khởi tạo yêu cầu dịch vụ đến nơi đăng ký dịch vụ, nối kết với dịch vụ
theo một giao thức truyền tải và chạy chức năng của dịch vụ. Người dùng
dịch vụ gọi thực hiện dịch vụ bằng cách gửi yêu cầu theo đúng định dạng ghi
trong bản hợp đồng dịch vụ.
- Nhà cung cấp dịch vụ (Service Provider ): là một thực thể có địa chỉ mạng,
nó chấp nhận và thực hiện các yêu cầu từ các người dùng. Nhà cung cấp dịch
vụ công bố các dịch vụ và hợp đồng dịch vụ của nó đến nơi đăng ký dịch vụ
để người dùng dịch vụ có thể tìm kiếm và truy cập dịch vụ.
- Nơi đăng ký dịch vụ (Service Registry): là nơi được thiết lập cho việc tìm
kiếm , đăng ký và cung cấp dịch vụ, nó là một thư mục trên mạng chứa các
dịch vụ. Nơi đăng ký dịch vụ là một thực thể chấp nhận, lưu trữ các bản hợp

đồng dịch vụ từ các nhà cung cấp dịch vụ và cung cấp các bản hợp đồng này
đến người dùng dịch vụ có nhu cầu.
- Hợp đồng dịch vụ (Service Contract): là một đặc tả dịch vụ chỉ ra cách thức
mà người dùng dịch vụ tương tác với nhà cung cấp dịch vụ. Nó chỉ định định

10

dạng yêu cầu và hồi đáp từ dịch vụ. Một hợp đồng dịch vụ có thể yêu cầu
một tập các điều kiện tiên quyết và các điều kiện thực thi. Hợp đồng dịch vụ
có thể chỉ định các cấp độ chất lượng của dịch vụ (QoS- Quality of Service).
Chất lượng dịch vụ là các đặc tả phi chức năng của dịch vụ. Ví dụ: hiệu năng
dịch vụ, bảo mật, khả năng sẵn sàng đáp ứng của dịch vụ (availability),
2.2. Các lợi ích của kiến trúc hướng dịch vụ
Đối tượng trung tâm của mô hình kiến trúc hướng dịch vụ là khái niệm dịch vụ.
Các dịch vụ là các thực thể độc lập thực hiện một chức năng nghiệp vụ riêng biệt.
Các dịch vụ được đưa ra để cung cấp các cấp độ khác nhau về chức năng trong một
nghiệp vụ. Sau đây là các tính chất mà dịch vụ có bên dưới kiến trúc hướng dịch vụ.
- Tính chất kết nối lỏng (Loose Coupling)
- Khả năng tái sử dụng (Reuse)
- Khả năng trong suốt vị trí (Transparent Position)
- Khả năng giao tiếp (Communication)
- Khả năng tổng hợp (Composite)
- Khả năng tự phục hồi (Self-healing)
- Giao diện có địa chỉ mạng
- Khả năng tìm kiếm và ràng buộc động (Find and Binding)
- Khả năng tự chứa và đơn thể (Container and Module).
(Nguồn: Oracle SOA Suite 11g Handbook.pdf )
2.2.1. Tính chất kết nối lỏng (Loose Coupling)
SOA hỗ trợ tính kết nối lỏng thông qua việc sử dụng hợp đồng và liên kết
(contract and binding). Một người sử dụng dịch vụ truy vấn đến nơi lưu trữ và cung

cấp thông tin dịch vụ (Nơi đăng kí dịch vụ - Registry) để lấy thông tin về loại dịch
vụ cần sử dụng. Nơi đăng kí dịch vụ sẽ trả về tất cả những dịch vụ thoả tiêu chuẩn
tìm kiếm. Từ bây giờ người dùng chỉ việc chọn dịch vụ mà mình cần và thực thi
phương thức trên đó theo mô tả dịch vụ nhận được từ nơi đăng kí dịch vụ. Bên sử

×