TRƯNG ĐI HC KHOA HC T NHIÊN KHOA CÔNG NGH THÔNG TIN
THCH BCH – LÊ NGUYN HOÀI NAM
TÌM HIU VÀ XÂY DNG NG DNG KIN TRÚC HƯNG DCH V VI ORACLE SOA SUITE KHÓA LUN TT NGHIP C NHÂN CNTT
TP.HCM, 2011
TRƯNG ĐI HC KHOA HC T NHIÊN KHOA CÔNG NGH THÔNG TIN
THCH BCH
0712085
LÊ NGUYN HOÀI NAM
0712291
TÌM HIU VÀ XÂY DNG NG DNG KIN TRÚC HƯNG DCH V VI ORACLE SOA SUITE
KHÓA LUN TT NGHIP C NHÂN TIN HC
GIÁO VIÊN HƯNG DN ThS. NGÔ BÁ NAM PHƯƠNG
NIÊN KHÓA 2007–2011
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
i
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
ii
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
iii
ĐỀ 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 Lê Nguyễn Hoài Nam •
0712085
•
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. iv
•
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 0712085-0712291 hướng dịch vụ.
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
Ngày tháng năm 2011 Nhóm SV Thực hiện
ThS. Ngô Bá Nam Phương
Thạch Bạch – Lê Nguyễn Hoài Nam
v
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 vi
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 vii
7.2.
Hướng phát triển của đề tài ............................................................ 125
TÀI LIỆU THAM KHẢO .............................................................................. 126
viii
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 ix
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 x
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 xi
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
xii
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
xiii
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) 1
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 2
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. 3
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ể. 4
•
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.
5
Chương 2
NN TNG KIN TRÚC HƯNG DCH 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.
6
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.
7
- 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ụ
8
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 9
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ử
10
dụng dịch vụ không cần phụ thuộc trực tiếp vào cài đặt của dịch vụ mà chỉ dựa trên hợp đồng mà dịch vụ đó hỗ trợ. Tính kết nối lỏng giúp gỡ bỏ những ràng buộc điều khiển giữa những hệ thống đầu cuối. Mỗi hệ thống có thể tự quản lý độc lập nhằm tăng hiệu suất, khả năng mở rộng và khả năng đáp ứng cao. Những thay đổi cài đặt cũng được che giấu đi. Kết nối lỏng đem đến sự độc lập giữa bên cung cấp và bên sử dụng nhưng nó đòi hỏi các giao diện (interface) phải theo chuẩn và cần một thành phần trung gian quản lý, trung chuyển yêu cầu giữa các hệ thống đầu cuối.
2.2.2. Khả năng tái sử dụng (Reuse) Các dịch vụ được cung cấp trên môi trường mạng (Internet) và được đăng ký ở một nơi nhất định nên chúng dễ dàng được tìm thấy và tái sử dụng. Nếu một dịch vụ không có khả năng tái sử dụng, nó cũng không cần đến giao diện (interface) mô tả. Các dịch vụ có thể được tái sử dụng lại bằng cách kết hợp lại với nhau theo nhiều mục đích khác nhau. Tái sử dụng lại các dịch vụ còn giúp loại bỏ những thành phần trùng lắp và tăng độ vững chắc trong cài đặt, nó còn giúp đơn giản hoá việc quản trị. Thực ra tái sử dụng dịch vụ lại dễ dàng hơn tái sử dụng thành phần hay lớp. Những dịch vụ được dùng chung bởi tất cả các ứng dụng của một hệ thống SOA gọi là những dịch vụ chia sẻ cơ sở hạ tầng (shared infrastructure service).
2.2.3. Khả năng trong suốt vị trí (Transparent Position) Sự trong suốt vị trí là một trong những đặc tính của kiến trúc hướng dịch vụ. Người dùng dịch vụ chỉ có thể biết vị trí dịch vụ tại nơi đăng kí dịch vụ. Sự trong suốt vị trí có được là do việc sử dụng nơi đăng kí dịch vụ, bộ trung gian dịch vụ và các bộ trung gian khác nằm giữa nhà cung cấp dịch vụ và người dùng dịch vụ.
2.2.4. Khả năng giao tiếp (Communication) Các dịch vụ trong SOA có khả năng giao tiếp với nhau. Nếu nhà cung cấp và người dùng dịch vụ có nền tảng khác nhau mà kết nối với nhau thì các giao thức giao tiếp dùng để hỗ trợ cho các tương tác dịch vụ cần phải tương thích với các nền 11
tảng đó. Do có các yêu cầu giao tiếp, SOA sử dụng các công nghệ giao tiếp chuẩn mở như XML và Web Service.
2.2.5. Khả năng tổng hợp (Composite) Chức năng phần mềm có thể được đóng gói như là các dịch vụ có mức độ trừu tượng khác nhau trong một nghiệp vụ. Các dịch vụ có thể được tổng hợp để cài đặt các dịch có mức độ trừu tượng cao hơn. Ví dụ: Việc tổng hợp một quy trình nghiệp vụ từ các dịch vụ, sau đó quy trình được kết xuất như là một dịch vụ. Khả năng tổng hợp của dịch vụ liên quan tới cấu trúc đặc tả của dịch vụ. Cấu trúc đặc tả cho phép các dịch vụ có khả năng tổng hợp, lắp ráp vào các ứng dụng mà lập trình viên tích hợp không quan tâm đến dịch vụ đó được thiết kế như thế nào. Bằng việc sử dụng các dịch vụ đã được kiểm thử và xây dựng hoàn chỉnh làm gia tăng chất lượng của hệ thống phần mềm. Xây dựng các hệ thống theo kiến trúc hướng dịch vụ là đầu tư cho hiện tại và cả tương lai. Vì các dịch vụ dễ dàng dùng lại, dễ dàng tổng hợp vào các ứng dụng khác. Với khả năng tổng hợp của dịch vụ làm cho hệ thống phần mềm có thể thích ứng nhanh chóng với các thay đổi, dễ dàng cải tiến, tái cấu trúc hệ thống phần mềm và thêm mới các chức năng cho nó một cách nhanh nhất có thể có. Một dịch vụ có thể được tổng hợp theo 3 cách: ứng dụng tổng hợp, các dịch vụ liên quan, dịch vụ tổng hợp. Một ứng dụng thường là sự lắp ráp, tổng hợp từ các dịch vụ, các thành phần với nhau cho một mục đích xác định. Dịch vụ liên quan là tập các dịch vụ được quản lý trong một dịch vụ lớn hơn. Ví dụ: dịch vụ kiểm tra tài khoản, dịch vụ đăng kí tài khoản, dịch vụ quản lý thông tin khách hàng. Có thể được tổng hợp vào dịch vụ lớn là dịch vụ khách hàng. Dịch vụ tổng hợp là dịch vụ thực thi một nghiệp vụ, tương tác với nhiều dịch vụ hệ thống để tạo ra bản thân nó, thường được gọi là quy trình nghiệp vụ. Quy trình nghiệp vụ gồm một hay nhiều bước thực hiện, mỗi bước thực hiện là một tác vụ nghiệp vụ, mỗi tác vụ nghiệp vụ thực hiện gọi dịch vụ để hoàn thành tác vụ.
12
2.2.6. Khả năng tự phục hồi (Self-healing) Với kích cỡ và độ phức tạp của những ứng dụng phân tán ngày nay, khả năng phục hồi của một hệ thống sau khi bị lỗi trở thành một yếu tố quan trọng. Một hệ thống tự hồi phục (self-healing) là một hệ thống có khả năng tự hồi phục sau khi bị lỗi mà không cần sự can thiệp của con người. Độ tin cậy (reliability) là mức độ đo khả năng một hệ thống xử lý tốt như thế nào trong tình trạng hỗn loạn. Trong kiến trúc hướng dịch vụ, các dịch vụ luôn có thể hoạt động hay ngừng bất kỳ lúc nào, nhất là đối với những ứng dụng tổng hợp từ nhiều dịch vụ của nhiều tổ chức khác nhau. Độ tin cậy phụ thuộc vào khả năng phục hồi của phần cứng sau khi bị lỗi. Hạ tầng mạng phải cho phép các kết nối động từ nhiều hệ thống khác nhau kết nối đến trong khi chạy. Một khía cạnh khác ảnh hưởng đến độ tin cậy là kiến trúc mà dựa trên để xây dựng ứng dụng. Một kiến trúc hỗ trợ kết nối và thực thi động khi chạy sẽ có khả năng tự phục hồi hơn một hệ thống không hỗ trợ những tính năng trên. Thêm vào đó, bởi vì những hệ thống dựa trên dịch vụ yêu cầu sự tách biệt giữa giao diện (interface) và cài đặt nên có thể có nhiều cài đặt khác nhau cho cùng một giao diện (interface). Nếu một thể hiện dịch vụ nào đó không hoạt động thì một thể hiện khác vẫn có thể hoàn tất giao dịch cho khách hàng mà không bị ảnh hưởng gì. Khả năng này chỉ có được khi khách hàng chỉ tương tác với giao diện (interface) của dịch vụ chứ không tương tác trực tiếp cài đặt của dịch vụ. Đây là một trong những tính chất cơ bản của các hệ thống hướng dịch vụ.
2.2.7. Giao diện có địa chỉ mạng Vai trò của mạng là chính yếu trong kiến trúc hướng dịch vụ. Một dịch vụ phải có một giao diện có địa chỉ mạng. Một người dùng dịch vụ trên một mạng phải có khả năng gọi dịch vụ thông qua mạng. Mạng cho phép các dịch vụ được dùng lại bởi bất kì người dùng dịch vụ nào, bất kì thời điểm nào. Khả năng tổng hợp ứng dụng từ các dịch vụ sẵn có trên các máy khác nhau chỉ có thể nếu dịch vụ hỗ trợ một giao diện mạng. 13
Người dùng dịch vụ có thể truy cập một dịch vụ thông qua một giao diện cục bộ mà không phải thông qua mạng nếu người dùng dịch vụ và nhà cung cấp dịch vụ nằm trên cùng một máy. Mặc dù dịch vụ có thể được cấu hình cho việc truy cập từ người dùng dịch vụ trên cùng một máy nhưng dịch vụ phải đồng thời hỗ trợ cho việc truy cập dịch vụ từ bên ngoài.
2.2.8. Khả năng tìm kiếm và ràng buộc động (Find and Binding) SOA hỗ trợ khái niệm truy tìm dịch vụ (Find). Một người sử dụng cần đến một dịch vụ nào đó có thể tìm kiếm dịch vụ dựa trên một số tiêu chuẩn khi cần. Người sử dụng chỉ cần hỏi một nhà cung cấp dịch vụ (Registry) về dịch vụ nào thoả yêu cầu tìm kiếm. Ví dụ, một hệ thống chuyển khoản (Hệ thống chuyển khoảng trong trường hợp này là một người dùng dịch vụ) yêu cầu nơi cung cấp dịch vụ tìm tất cả các dịch vụ có khả năng kiểm tra thẻ tín dụng. Nơi cung cấp dịch vụ trả về một tập các entry (danh sách các dịch vụ) thoả yêu cầu. Các entry chứa thông tin về dịch vụ, bao gồm cả phí giao dịch. Bên sử dụng sẽ chọn một dịch vụ có phí giao dịch thấp nhất trong danh sách các dịch vụ trả về, kết nối đến nhà cung cấp dịch vụ đó dựa trên thông tin registry entry để sử dụng dịch vụ kiểm tra thẻ tín dụng. Trong phần mô tả dịch vụ kèm theo đã có tất cả các tham số cần thiết dùng để thực thi dịch vụ, bên sử dụng chỉ cần định dạng dữ liệu yêu cầu đúng theo mô tả cung cấp và gửi đi. Nhà cung cấp dịch vụ sẽ thực thi kiểm trả thẻ tín dụng và trả về một thông điệp có định dạng đúng như trong phần mô tả dịch vụ. Mối ràng buộc duy nhất giữa bên cung cấp và bên sử dụng là bản hợp đồng được cung cấp bởi nơi cung cấp dịch vụ trung gian. Mối ràng buộc này là ràng buộc trong thời gian chạy chứ không phải ràng buộc trong lúc biên dịch. Tất cả thông tin cần thiết về dịch vụ được lấy về và sử dụng trong khi chạy. Ví dụ trên cho thấy cách người dùng dịch vụ tìm kiếm và sử dụng “động” một dịch vụ. Đây là một thế mạnh của SOA. Với SOA, phía người dùng dịch vụ không cần biết định dạng của thông điệp yêu cầu và thông điệp trả về, cũng như địa chỉ nhà cung cấp dịch vụ. 14
2.2.9. Khả năng tự chứa và đơn thể (Container (Con tainer and Module). Mặc dù việc sử dụng các giao diện tách biệt người dùng dịch vụ ra khỏi cài đặt dịch vụ nhưng các cài đặt của mỗi dịch vụ không nên kết nối với nhau. Ví dụ, một cài đặt dịch vụ phụ thuộc vào cài đặt của dịch vụ khác bằng cách chia sẽ mã lệnh, chia sẽ truy cập dữ liệu, … Cách thiết kế này dẫn đến tình trạng khó bảo trì và kiểm lỗi dịch vụ. Nếu các dịch vụ kết nối chặt, điều đó đi ngược lại mục đích của kiến trúc hướng dịch vụ đạ đề ra: - Cực tiểu hóa độ móc nối giữa các dịch vụ. - Cài đặt dịch vụ như là người của các dịch vụ khác. - Dịch vụ thể hiện được độ kết dính giữa các phương thức.
2.3. Kiến trúc lớp doanh nghiệp (Layering the Enterprise Architecture) Khi mô tả một doanh nghiệp, kiến trúc của các lớp thường được thể hiện như trong hình 2-3. Mỗi lớp có những đặc trưng cụ thể, trách nhiệm và phụ thuộc lẫn nhau. Do đó có các yêu cầu khác nhau về tiêu chuẩn và chất lượng.
Hình 2-3: Kiến trúc lớp doanh nghiệp
2.3.1. Lớp ứng dụng dịch vụ (Application service layer) Các ứng dụng (dịch vụ) bao gồm các lớp thành phần trong việc triển khai dịch vụ. Ví dụ như, nếu chúng ta có một dịch vụ làm công việc bổ nhiệm thì thành phần ứng dụng mà tạo ra việc bổ nhiệm để phục vụ nghiệp vụ thực tế. 15
2.3.2. Lớp Dịch vụ và lớp sự kiện (Services and Events Layer) Các dịch vụ và lớp sự kiện mô tả các hợp đồng và giao diện của dịch vụ. Hợp đồng dịch vụ bổ nhiệm của chúng emcó thể biểu diễn, nó có sẵn trong giờ làm việc và có thể được sử dụng bởi người có thẩm quyền. Giao diện đã được định nghĩa sẵn.
2.3.3. Lớp quy trình nghiệp vụ (Business Process Layer) Lớp này chứa những quy trình nghiệp vụ. Một quy trình nghiệp vụ bao gồm việc gọi đến các dịch vụ cho các hoạt động tự động và tác vụ cần có sự can thiệp của con người cho thao tác thủ công với một vài dòng công việc lôgic ở giữa. Chu kỳ của quản lý quy trình nghiệp vụ bao gồm các giai đoạn sau đây: phân tích quy trình nghiệp vụ, thực thi quy trình nghiệp vụ và quản lý quy trình nghiệp vụ. Một loại quy trình mà con người làm trung tâm, nơi mà hầu hết các công việc được thực hiện bởi con người. Thách thức quan trọng nhất là việc giao khối lượng công việc đồng đều và theo dõi tiến độ công việc. Đây là quy trình làm việc của những kiểu quy trình truyền thống. Một loại quy trình khác là lấy tài liệu làm trung tâm (ví dụ : quy trình RUP). Loại quy trình thứ ba là lấy quy trình làm trung tâm. Đây là quy trình truyền thống gọi là sự phối hợp (Orchestrate). Ngoài việc có loại quy trình khác nhau, chúng ta thường xác định mức độ khác nhau của quy trình. Mary (người đã đề xuất ra quy trình nghiệp vụ trong một tổ chức) đã quyết định sử dụng các cấp độ: Cấp độ đầu tiên có chứa nhiều chuỗi quy trình nghiệp vụ. Cấp độ thứ hai có chứa các quy trình end-to-end. Mức thấp nhất là mức độ có liên quan cho các nhà phát triển và người dùng cuối. Đây là quy trình mà thực sự sẽ được thực hiện và chạy trong thực tế. Nó chứa chi tiết các hoạt động thực hiện về các loại tác vụ công việc (tự động, con người, v.v...) và mô tả chi tiết các dòng công việc với vòng lặp xác định. Dưới đây là hai mẫu thiết kế mà St.Mathew (người đã đưa ra hai mẫu thiết kế về quy trình làm việc trong một tổ chức) đã quyết định áp dụng cho các quy trình nghiệp vụ :
Quy trình không nên quá chung chung . chung .
Sử dụng sự thực thi song song thực hiện bất cứ khi nào có thể . 16
2.3.4. Lớp GUI (Graphic User Interface) Lớp này chứa các giao diện tương tác với người dùng cuối . Các thành phần trong lớp này chẳng hạn như khôi phục lại ứng dụng (backup), hoặc mash-up,…Sử dụng quy trình nghiệp vụ và các lớp dịch vụ để truy vấn dữ liệu và thực hiện các thao tác. Chẳng hạn như, St.Mathew có thể tạo ra một cổng thông tin cho tất cả bệnh nhân. Thông tin về bệnh viện có thể được hiển thị ở đó, truy vấn từ một dịch vụ hệ thống quản lý nội dung. Bệnh nhân cũng có thể được cung cấp một mẫu đăng ký để yêu cầu cuộc hẹn. Điều này một phần của ứng dụng có thể sử dụng dịch vụ hẹn.
Hình 2-4: Mô tả các tầng nghiệp vụ
Hình 2-5: Giao diện point-to-point
17
2.3.5. Lớp Enterprise Service Bus (ESB) Một trong những khó khăn khi xem xét tích hợp giữa hệ thống là quản lý tất cả các kết nối. Nếu chúng ta có giao diện point-to-point (như hình 2-4) và vài thứ thay đổi trong dịch vụ, tất cả người tiêu dùng dịch vụ cần được sửa đổi. Người tiêu dùng dịch vụ phải có kiến thức về giao thức khi gọi dịch vụ sử dụng, cũng như định dạng thông điệp và vị trí của dịch vụ. Một ESB nằm giữa người tiêu dùng và các dịch vụ mà họ gọi (xem hình 2-5). Nó thường có một số tính năng thuận lợi cho sự tương tác và giúp người tiêu dùng tách riêng từ nhà cung cấp:
Endpoint ảo hóa (Endpoint virtualization) : khi người tiêu dùng gọi một dịch vụ thông qua ESB thay vì gọi trực tiếp tới nhà cung cấp dịch vụ, định vị trong suốt đạt được trong kiến trúc. Một nhà cung cấp dịch vụ có thể thay thế bằng một nhà cung cấp dịch vụ khác, mà không cần phải thay đổi người người tiêu dùng để phản ánh địa chỉ mới. Đây được gọi là ảo hóa dịch vụ (virtualization of servive).
Định tuyến dịch vụ (Routing of service) : Căn cứ vào nội dung thông điệp yêu cầu từ người dùng dịch vụ được chọn để chuyển tiếp các yêu cầu, đây được gọi là nội dung dựa trên định tuyến.
Hình 2-6: ESB
Sự chuyển đổi(Transformation) : Nhà cung cấp và người tiêu dùng thường không nói cùng một ngôn ngữ. Họ thường xuyên không sử dụng các giao thức và thông điệp tương tự nhau. ESB có thể chuyển đổi một yêu cầu để 18
định dạng và hỗ trợ giao thức bởi dịch vụ và không đảo ngược để đáp ứng trước khi trao lại cho người tiêu dùng. Thông điệp trong ESB dựa trên mô hình dữ liệu kinh điển (Canonical Data Model - CDM); thông điệp được chuyển đến CDM khi vào ESB và có thể cần biến đổi để ứng dụng đặc biệt định dạng lại khi vượt ngoài sự hỗ trợ của ESB. Yếu tố quan trọng nữa là trong chuyển đổi có thể có thông điệp khác nhau.
Xác nhận( Validation): ESB có thể yêu cầu xác nhận trước khi chúng được gửi đến nhà cung cấp dịch vụ cũng như đáp ứng nhà cung cấp .
Kiểm soát(Auditing): Các ESB có thể đăng nhập và đáp ứng yêu cầu cho mục đích kiểm soát và gởi cảnh báo khi điều kiện đặc biệt được áp dụng.
Thông điệp(Messaging): Thay vì gọi một dịch vụ, một ứng dụng có thể gởi thông điệp và giao tiếp bất đồng bộ với ứng dụng khác. Các ESB có thể cung cấp đảm bảo giao phát và nhất quán thông điệp. Điều này được giải thích chi tiết hơn trong phần “Sự kiện và kiến trúc hướng sự kiện”.
Đồng bộ và bất đồng bộ bộ thích ứng (Synchronous/ asynchronous adaptation): Một ESB có thể vạch ra các dịch vụ với giao diện đồng bộ hoặc bất đồng bộ, bất kể bản chất của nhà cung cấp dịch vụ thực tế nó cần phải gọi. Nó có thể thích ứng từ đồng bộ đến bất đồng bộ và ngược lại. Điều này, cùng với việc hỗ trợ cho lưu trữ và chờ đợi các dịch vụ được cung cấp tạm thời. Nhà cung cấp không cần phải sẵn sàng thời gian như nhà cung cấp dịch vụ và người tiêu dùng không cần chờ đợi đáp ứng từ dịch vụ này gọi.
Thành phần (Composition): Một ESB có thể sử dụng để tổng hợp các kết quả từ một số dịch vụ. Lưu ý rằng các thành phần khác như: một cổ máy quy trình nghiệp vụ chạy trên quy trình BPMN (Business Process Model and Notation) hoặc BPEL (Business Process Execute Language) có thể cung cấp thành phần tương tự và chức năng tương tự như dịch vụ phối hợp. Một ESB cũng có thể làm trung gian giữa giao thức bảo mật khác nhau, ví dụ như cho phép người tiêu dùng gởi một yêu cầu với một chứng thực SAML (Security Assertion Markup Language, nguồn www.saml.xml.org ) trong khi các nhà 19
cung cấp dịch vụ được chứng thực thông qua xác thực giao thức HTTP (Hypertext Transfer Protocol) cơ bản . ESB rõ ràng là tốt mang hai phần lại với nhau thông qua các loại phân chia: giao thức giao tiếp, định vị, công nghệ, định dạng thông điệp, đồng bộ hay bất đồng bộ, sẵn sàng và giao thức bảo mật. Những chức năng khác của ESB có thể cung cấp bao gồm kỹ thuật và khía cạnh quản lý. Chẳng hạn như, cải tiến hiệu suất thông qua kết quả bộ nhớ đệm, có tính sẵn sàng cao thông qua độ tin cậy, phân nhóm và quản lý giao dịch, bắt buộc chứng thực, điều tiết thông điệp và giám sát SLA (Service Level Agreement).
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) Một trong những nguyên tắc quan trọng của SOA là tiêu chuẩn hóa. Khi giao tiếp với ứng dụng khác, nếu giao thức và các định dạng thông điệp mà các ứng dụng này sử dụng khác nhau. Chúng ta thấy rằng trong các cuộc thảo luận của chúng ta về các định dạng dữ liệu kinh điển và ESB. Điều này cũng đúng cho các giao thức. Hệ thống công nghệ thông tin trong một tổ chức thường sử dụng các giao thức khác nhau và các ngôn ngữ lập trình khác nhau. Điều này làm cho sự kết hợp chúng với ứng dụng mới gặp khó khăn. Để giải quyết điều này, nên sử dụng các giao thức chuẩn và định dạng thông điệp chuẩn. Tiêu chuẩn trong SOA gồm các phần sau đây:
Dịch vụ web (Web Service). SOAP và WSDL
Dịch vụ RESTful (RESTful Service).
RSS Feeds.
Chính sách (Policies). BPEL (Business Process Execution Language) 20
2.4.1. Dịch vụ web (Web Services) Dịch vụ web (Web Service) là một trong những chuẩn được áp dụng phổ biến nhất trong kiến trúc hướng dịch vụ. Theo tổ chức W3C mô tả các dịch vụ web như sau : “Dịch vụ web cung cấp một chuẩn tích hợp giữa các ứng dụng phần mềm khác nhau, chạy trên nhiều nền tảng hoặc các framework khác nhau. Dịch vụ web đặc trưng bởi khả năng tương tác và mở rộng cũng như các đặc tả sử dụng XML. Chúng có thể được kết hợp một cách lỏng lẻo để mà đạt được các thao tác phức tạp. Có hai cách để tạo ra một dịch vụ web: Sử dụng một giao thức định nghĩa hoạt động chính thức và định dạng thông điệp trước. Dịch vụ web SOAP là một ví dụ làm việc theo thông số kỹ thuật chính thức được xác định trước, trong khi dịch vụ RESTful là một cách tiếp cận thứ hai.
2.4.2. SOAP (Simple Object Access Protocol) và WSDL (Web Service Description Language) Cách tiếp cận chính thức theo hợp đồng và tiếp cận theo XML được coi là rất mạnh. Dịch vụ SOAP gọi một phương thức chính thức của việc giao tiếp giữa ứng dụng. Thông qua SOAP và WSDL một tổ chức có thể mô tả các hoạt động có sẵn trong dịch vụ và các dữ liệu có thể được trao đổi với các dịch vụ. Các đặc điểm kỹ thuật của dịch vụ này có các ưu điểm như sau :
Tương tác mạnh mẽ.
Được hỗ trợ bởi nhiều giao thức(SOAP trên HTTP, SOAP trên JMS) .
Các tính năng khác như: WS- Addressing, WS-Security.
2.4.3. Dịch vụ RESTful Một dịch vụ web khác nhẹ hơn là RESTful. REST viết tắt của Representational State Transfer. Nguồn gốc được giới thiệu bởi Roy Fielding là một nguồn tài nguyên theo định hướng chứ không phải phương pháp chính thức của chương trình tương tác qua giao thức HTTP sử dụng bốn giao thức cơ bản: PUT, POST, GET và DELETE, dịch vụ RESTful đã phát triển thành giao thức HTTP dựa trên các API. Dịch vụ RESTful chấp nhận yêu cầu giao thức HTTP đơn giản và gởi các đáp ứng 21
cho người dùng. Ban đầu nó gần như phân bổ cho thấy sự cần thiết hoặc thậm chí cho các mô tả, trong khi ở giai đoạn sau này đã thử nghiệm với các nhóm lớn như WADL(Web Application Definition Language). Kiểu dịch vụ REST có thể trả về file XML, mặc dù các định dạng khác như CSV và JSON rất phổ biến. Có rất nhiêu sự hỗ trợ cho REST về phía khách hàng (dịch vụ REST áp dụng nhiều trong các ngôn ngữ lập trình) và một số trên máy chủ cho xuất bản các dịch vụ kiểu REST. Một số ESB đã hỗ trợ cho REST mặc dù chủ yếu là XML được mô tả bởi một số hợp đồng được xác định trước. RESTful rất hữu dụng cho việc tích hợp dữ liệu giữa web client và server.
2.4.4. RSS Feeds Một cách tiếp cận nhẹ nhàng để chương trình trao đổi thông tin là thông qua RSS feeds. Một yêu cầu HTTP GET đơn giản đủ để lấy các thông tin, định dạng cấu trúc XML được xác định trước. RSS chỉ hỗ trợ mô hình tương tác rất đơn giản.
2.4.5. Chính sách (Policies)
Như chúng ta đã thảo luận trước, một dịch vụ bao gồm một giao diện có thể được mô tả trong WSDL. Một chính sách là một tập các quy tắc quy định cho:
Các dịch vụ Các giao diện dịch vụ 22
Các thành phần Quy ước Các server Các xử lý tại điểm thực thi
Các chính sách cho phép thiết lập các quy tắc tại thời điểm thực thi, giám sát sự truyền thông, cách xử lý dịch vụ
làm nổi bật và gia tăng sức mạnh cho các hợp
đồng dịch vụ. Việc tạo ra các chính sách của quy trình thiết kế làm tăng tính linh hoạt và đem lại sự quản lý dễ dàng hơn nhiều.
2.4.6. Thư mục UDDI (Universal Description Discovery and Integration), đăng ký dịch vụ (Service Registry) và nơi lưu trữ dịch vụ (Service Reposity) Bởi vì chúng ta muốn tái sử dụng các tài nguyên để xây dựng ứng dụng mới, sử dụng các thành phần tồn tại sẵn. Chúng ta cần một vài kiểu đăng ký để lưu trữ và xuất bản thông tin về dịch vụ trong tổ chức. Những dịch vụ này đã sẵn sàng và có thể được tìm thấy. Để làm được điều này có thể sử dụng các công cụ khác nhau để tìm kiếm các dịch vụ, một tiêu chuẩn được định nghĩa để tìm kiếm dịch vụ web là : UDDI (Universal Description Discovery and Integration). UDDI định nghĩa một phương pháp chuẩn cho việc xuất bản và tìm kiếm mạng lưới các thành phần phần mềm trong SOA. UDDI là một trong những chuẩn mới nhất trong dịch vụ web với WSDL và SOAP. Nhiều UDDI hoặc dịch vụ đăng ký ngày nay dường như sử dụng cho lúc chạy để tìm kiếm vị trí vật lý của dịch vụ hoặc hình thức dịch vụ ảo.
2.4.7. Business Process Execution Language (BPEL) BPEL là một ngôn ngữ XML được thiết kế nhằm cho phép kết hợp các xử lý trên một môi trường phân tán theo một luồng xử lý hay quy trình nghiệp vụ có cấu trúc định trước. Việc kết hợp một cách có hiệu quả các dịch vụ hỗ trợ rất nhiều trong việc tích hợp các hệ thống. Điều này thật sự cần thiết trong bối cảnh phát triển ứng dụng cộng đồng công nghệ thông tin ngày nay. Khi mà xuất hiện ngày càng nhiều các nền tảng và các công nghệ mới. Và vấn đề mở rộng các hệ thống hiện có, tích hợp thêm các hệ thống mới để tiếp cận các lợi ích, các thành tựu của công nghệ mới đã trở nên là vấn đề cấp bách và hiện đang giành được rất nhiều sự quan tâm. 23
Điều này thể hiện rõ ở sự ra đời của ngôn ngữ, với sự hỗ trợ phát triển của các công ty lớn như là Microsoft, IBM, Siebel Systems, BEA, SAP và Oracle. BPEL được xây dựng dựa trên ngôn ngữ WSFL (Web Service Flow Language) của IBM và ngôn ngữ XLANG của Microsoft. Vì thế nó kế thừa được những tính năng nổi trội của hai ngôn ngữ này (tính có cấu trúc của XLang và khả năng mô hình hóa của WSFL). BPEL hỗ trợ tạo ra hai loại tiến trình: - Tiến trình trừu tượng: Đưa ra những qui tắc trao đổi thông điệp giữa những dịch vụ tham gia, nhưng không chỉ rõ về cấu trúc bên trong của các thông điệp. - Tiến trình thực thi: Xác định rõ trình tự thực hiện của từng xử lý, các dịch vụ liên quan, các thông điệp trao đổi trong khi tương tác, cơ chế bắt lỗi và xử lý ngoại lệ. Đặc tả tiến trình của ngôn ngữ BPEL có dạng sơ đồ luồng. Mỗi tác vụ trong tiến trình được gọi là một xử lý. Có hai loại xử lý là xử lý cơ bản và xử lý có cấu trúc. - Các xử lý cơ bản :
Tên xử lý Invoke
Receive Reply Wait Assign
BPEL Constructs (JDeveloper)
Mô tả Gọi thực hiện một phương thức của dịch. Chờ nhận một thông điệp từ một đối tượng bên ngoài tiến trình. Gởi thông điệp đến một đối tượng bên ngoài tiến trình. Dừng tiến trình để chờ trong một khoảng thời gian. Sao chép dữ liệu giữa các kho chứa 24
dữ liệu. Thông báo lỗi trong quá trình xử
Throw
lý.
Terminate
Kết thúc tiến trình. Bảng 2-1: Các xử lý cơ bản của BPEL
- Các xử lý có cấu trúc:
Tên xử lý Sequence Flow While Switch Pick
BPEL Constructs (JDeveloper)
Mô tả Điều khiển các xử lý bên trong thực hiện một cách tuần tự. Điều khiển các xử lý bên trong thực hiện một cách song song. Lặp lại một xử lý trong khi điều kiện lặp còn được thỏa. Chọn lựa xử lý cần thực hiện dựa theo các điều kiện. Chờ nghe sự kiện và thực hiện những xử lý tương ứng.
Bảng 2-2: Các xử lý có cấu trúc của BPEL
2.5. Kiến trúc thành phần hướng dịch vụ SCA (Service Component Architecture): là một mô hình lập trình mới cho việc xây dựng kiến trúc hướng dịch vụ gọi là kiến trúc thành phần dịch vụ - SCA. Kiến trúc thành phần dịch vụ là một mô hình được thiết kế đặc biệt cho việc xây dựng và tổng hợp các giải pháp nghiệp vụ trong kiến trúc hướng dịch vụ, hướng tới việc tích hợp và tổng hợp các dịch vụ. Kiến trúc thành phần dịch vụ ra đời không có 25
ý định thay thế các mô hình lập trình trước đó. Thay vào đó, kiến trúc thành phần dịch vụ cung cấp một mô hình để xác định các giao diện, các cài đặt và các tham chiếu, cho phép liên kết các thành phần với các cài đặt theo một công nghệ cụ thể được chọn , chẳng hạn như là Java và Web service. Kiến trúc thành phần dịch vụ cung cấp một mô hình lập trình cho việc xây dựng các ứng dụng và các giải pháp dựa trên kiến trúc hướng dịch vụ. Nó dựa trên ý tưởng là chức năng nghiệp vụ được cung cấp như là một chuỗi các dịch vụ được lắp ráp với nhau nhằm tạo ra các giải pháp phục vụ cho một nhu cầu nghiệp vụ cụ thể. Các ứng dụng tổng hợp này có thể chứa cả các dịch vụ mới được tạo cho ứng dụng và cả chức năng nghiệp vụ từ các hệ thống và các ứng dụng đang tồn tại được sử dụng như là một phần của việc tổng hợp. Kiến trúc thành phần dịch vụ cung cấp một mô hình cho việc tổng hợp các dịch vụ và việc tạo ra các thành phần dịch vụ, bao gồm cả việc tái sử dụng các chức năng của ứng dụng đã có vào trong các bản tổng hợp kiến trúc thành phần dịch vụ. Kiến trúc thành phần dịch vụ là một mô hình hỗ trợ một phạm vi rộng các công nghệ dùng cho các thành phần dịch vụ và cho các phương thức truy xuất được sử dụng để kết nối đến với chúng. Đối với các thành phần, các công nghệ không chỉ bao gồm các ngôn ngữ lập trình khác nhau mà còn có các framework khác nhau, và môi trường đi kèm với các ngôn ngữ lập trình đó. Đối với các phương thức truy xuất, các bản tổng hợp trong kiến trúc thành phần dịch vụ cho phép sử dụng các công nghệ giao tiếp và công nghệ truy suất dịch vụ khác nhau như là một web service , các hệ thống truyền thông điệp (Messaging System), việc gọi thủ tục từ xa (RPC – Remote Procedure Call).
26
Hình 2-7: Kiến trúc thành phần dịch vụ
Trong chương này chúng ta đã tìm hiểu được những kiến thức cơ bản về
mô hình kiến trúc hướng dịch vụ, hiểu rõ được tính chất và cơ sở nền tảng kiến trúc hướng dịch vụ cũng như các khái niệm về kiến trúc thành phần hướng dịch vụ.
Để khởi đầu cho việc phát triển ứng dụng theo kiến trúc hướng dịch vụ,
chúng ta cần tìm hiểu thêm các phần mềm của Oracle hỗ trợ các pha trong việc xây dựng ứng dụng. Chương 3 sẽ trình bày rõ vấn đề này.
27
Chương 3
CÁC CÔNG C H TR CÀI ĐT, TRIN KHAI VÀ QUN LÝ NG DNG THEO KIN TRÚC HƯNG DCH V
Trong chương này chúng ta sẽ tìm hiểu về các công cụ hỗ trợ cài đặt, triển
khai và quản lý của Oracle nhằm hỗ trợ cho chu kỳ sống SOA. Chi tiết về khái niệm và hướng dẫn sử dụng các công cụ sẽ được trình bày trong phần phụ lục A. Danh sách các công cụ hỗ trợ từng pha như sau:
Phần mềm hỗ trợ cho pha mô hình hóa trong chu kỳ sống SOA : •
Oracle JDeveloper Studio(Thiết kế use-case)
•
Oracle SQL Developer(Thiết kế cơ sở dữ liệu)
Phần mềm hỗ trợ cho pha tổng hợp trong chu kỳ sống SOA: •
Oracle JDeveloper Studio(Tạo thành phần tổng hợp)
•
Oracle BPEL Process Manager(Tạo quy trình BPEL)
Phần mềm hỗ trợ cho pha triển khai trong chu kỳ sống SOA: •
Oracle WebLogic(Triển khai các dịch vụ)
Phần mềm hỗ trợ cho pha quản lý trong chu kỳ sống SOA: •
Danh • • • • • • •
Oracle Business Activity Monitoring(Quản lý các dịch vụ)
sách các phần mềm của Oracle được trình bày dưới đây bao gồm: Oracle SOA Suite Oracle JDeveloper Studio Oracle BPEL Process Manager Oracle SQL * Plus Oracle SQL Developer Oracle WebLogic Oracle Business Activity Monitoring
28
Ngoài ra trong chương 3 còn đề cập đến việc so sánh sự khác nhau giữa 2
nền tảng Oracle SOA và IBM SOA qua những khảo sát thực tế từ những người dùng của hai dòng sản phẩm SOA.
3.1. Các bước thực hiện trong chu kì sống SOA - Pha Mô Hình Hóa:
Thu thập yêu cầu.
Mô hình hóa ứng dụng (thiết kế use-case, cơ sở dữ liệu, …) với công cụ Oracle JDeveloper Studio và Oracle SQL Developer.
- Pha Tổng Hợp:
Thiết kế các quy trình trình nghiệp vụ.
Thiết kế các dịch vụ.
- Pha Triển Khai:
Triển khai dịch vụ bằng công cụ Oracle JDeveloper Studio.
Lưu trữ và tích hợp các dịch vụ của ứng dụng trên server bằng công cụ Oracle WebLogic.
- Pha Quản Lý:
Các quy trình nghiệp vụ được quản lý và giám sát bằng công cụ Oracle Bussiness Activity Monitoring (BAM).
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 3.2.1. Oracle SOA Suite 3.2.1.1. Giới thiệu về Oracle SOA Suite Oracle SOA Suite cung cấp một bộ đầy đủ các thành phần cơ sở hạ tầng phục vụ cho thiết kế, triển khai và quản lý với các ứng dụng tổng hợp. Oracle SOA Suite cho phép các dịch vụ được tạo ra, quản lý và sắp xếp vào các ứng dụng tổng hợp và các 29
quy trình nghiệp vụ. Ứng dụng tổng hợp cho phép bạn dễ dàng lắp ráp các thành phần công nghệ vào một ứng dụng hỗn hợp SOA. Oracle SOA Suite cài đặt cơ sở hạ tầng không đồng nhất và cho phép các doanh nghiệp từng bước áp dụng SOA. Những ưu điểm của các thành phần Oracle SOA Suite là khả năng phổ dụng, bao gồm cả việc mô hình hóa, tổng hợp, triển khai và quản lý ứng dụng dựa trên kiến trúc hướng dịch vụ. Oracle SOA Suite cung cấp các thành phần sau: •
Thông điệp (Messaging)
•
Tìm kiếm dịch vụ (Service discovery)
•
Khả năng phối hợp (Orchestration)
•
Quản lý dịch vụ web và bảo mật (Web services management and security)
•
Quy tắc nghiệp vụ (Business rules)
•
Khung sự kiện (Events framework )
•
Giam sát hoạt động doanh nghiệp (Business Activity Monitoring)
3.2.1.2. Tiêu chuẩn sử dụng Oracle SOA Suite Oracle SOA Suite có những đặc điểm nổi bật và khả năng tương tác cao với ứng dụng tổng hợp. Trong số các tiêu chuẩn đó là: •
Lắp ráp mô hình kiến trúc thành phần dịch vụ (Service Component Architecture assembly model): Cung cấp các chi tiết về dịch vụ và phụ thuộc lẫn nhau để tạo các ứng dụng tổng hợp (composite). SCA (Service Component Architecture) cho phép chúng ta nêu quy tắc nghiệp vụ như thành phần dịch vụ, tính tái sử dụng có thể dễ dàng tích hợp vào bất kỳ ứng dụng SCA (Service Component Architecture). Các kết quả của ứng dụng được biết đến như một ứng dụng SOA tổng hơp. Các đặc điểm kỹ thuật cho các tiêu chuẩn về SCA được duy trì bởi Tổ chức vì sự tiến bộ của tiêu chuẩn thông tin cấu trúc (OASIS) thông qua kiến trúc dịch vụ mở Composite (CSA
•
Đối tượng dịch vụ dữ liệu (Service Data Objects): Chỉ định một phương pháp dữ liệu chuẩn và có thể sửa đổi dữ liệu kinh doanh bất kể nó như thế nào chúng ta vẫn truy cập. Do đó, bạn có thể sử dụng cách lập trình tĩnh hoặc động và có thể truy cập kết nối và ngắt kết nối. 30
•
Business Process Execution Language (BPEL): Cung cấp cho các doanh nghiệp có một chuẩn công nghiệp cho quy trình nghiệp vụ. Sử dụng BPEL, chúng ta có thể thiết kế một quy trình nghiệp vụ tích hợp một loạt các dịch vụ rời rạc thành một dòng chảy theo quy trình end-to-end. Điều này làm giảm chi phí tích hợp các quy trình và chi phí phức tạp. Hỗ trợ BPEL phiên bản 1.1 và 2.0.
•
XSL Transformations (XSLT): Tạo ra tài liệu XML và chuyển đổi dữ liệu giữa các lược đồ XML với nhau.
•
Java Connector Architecture (JCA): Cung cấp một giải pháp công nghệ Java cho vấn đề kết nối giữa các máy chủ ứng dụng nhiều trong các hệ thống thông tin doanh nghiệp (EIS).
•
Java Messaging Service (JMS): Cung cấp một tiêu chuẩn cho phép gửi thông điệp đến các thành phần ứng dụng dựa trên nền tảng Java 2EE để truy cập nghiệp vụ logic phân phối giữa các hệ thống không đồng nhất.
•
Web Services Description Language (WSDL): Cung cấp các điểm đầu vào cho một ứng dụng SOA tổng hợp. Các tập tin WSDL cung cấp một ngôn ngữ hợp đồng chuẩn và là trung tâm cho biết khả năng làm việc của một dịch vụ.
•
Simple Object Access Protocol (SOAP): Cung cấp các giao thức mạng mặc định cho việc chuyển giao.
Oracle SOA Suite cung cấp một chức năng toàn diện và dựa trên các chuẩn. Tất cả các thành phần của nó được thiết kế với các nhà phát triển tâm đắc. Cho dù nó là dễ sử dụng hoặc mức độ tuỳ biến cao, Oracle SOA Suite giúp các nhà phát triển ứng dụng nhanh và tốn chi phí thấp. Oracle BPEL Process Manager là một công cụ tốt cho sự phối hợp giữa các dịch vụ. Tuy nhiên, nó không cung cấp sự phân tích sâu rộng về quy trình nghiệp vụ và các nhà phân tích có thể tìm thấy nó khó khăn để mô hình quy trình nghiệp vụ với Oracle BPEL Designer Oracle Web Services Manager là ý tưởng để đảm bảo toàn bộ cơ sở hạ tầng SOA bao gồm các dịch vụ và quy trình nghiệp vụ phát triển sử dụng Oracle BPEL Process Manager. Oracle cung cấp một framework như BAM (Business Activity Process) trực quan. 31
Một trong những lợi thế lớn nhất của các công cụ là tạo ra sản phẩm dịch vụ có chất lượng cao tốn chi phí thấp nhất. Cuối cùng, chúng ta đã ấn tượng với khả năng tương thích của Oracle để xây dựng các sản phẩm dịch vụ. Oracle BPEL Process Manager có thể làm việc với tất cả ứng dụng server J2EE, Oracle Web Service Manager có thể đảm bảo an toàn các dịch vụ Web chạy trên BEA hoặc IBM và Oracle BAM có thể theo dõi dữ liệu từ bất kỳ nguồn dữ liệu nào. Điều này sẽ giúp các nhà phát triển xây dựng các giải pháp mà không cần phải tách biệt các ứng dụng hiện có.
3.2.2. Oracle JDeveloper Studio 3.2.2.1. Giới thiệu Kể từ khi phát hành bản đầu tiên là 1.0 AppBuilder cho Java, JDeveloper đã theo các xu hướng công nghiệp và đã bao gồm các tính năng phù hợp hoặc vượt quá các chức năng chính thống của Java IDE. JDeveloper đã giành được nhiều sự khen ngợi từ những người nhận xét trong ngành công nghiệp Java, nó đã trở nên phổ biến nhất so với các sản phẩm được phát triển của Oracle. Oracle JDeveloper sử
dụng để
tạo
ra
các ứng
dụng phần
mềm Fusion Middleware. Các JDeveloper IDE được viết bằng ngôn ngữ Java, có nghĩa là JDeveloper có thể được chạy trong máy ảo Java (Java Virtual Machine JVM) của các hệ điều hành khác nhau. Điều này làm cho JDeveloper linh hoạt giữa các hệ điều hành.
32
Hình 3-1: Oracle JDeveloper Studio
Những đặc tính quan trọng của JDeveloper IDE
Các JDeveloper IDE cung cấp tính năng cho phép tạo ra các ứng dụng một cách linh hoạt hơn. Ngoài ra, JDeveloper hỗ trợ cho việc khai báo biến và phương thức trực quan. Bên cạnh Netbeans hay Eclipse thì JDeveloper của Oracle cung cấp một IDE hỗ trợ lập trình chuyên nghiệp với việc kéo thả, viết mã nguồn hoặc xuất dữ liệu từ cơ sở dữ liệu ra mã nguồn một cách tiện lợi, nhất là đối với việc phát triển web. Netbeans cũng gây khó khăn khi ẩn đi phần view, nhưng với JDeveloper nó hoàn toàn có thể khắc phục chuyện đó. Ngoài ra, việc tạo ra các dự án mang tầm cỡ như EJB (Enterprise Java Bean) mà không cần phải chia các gói, vì chương trình đã tự thực hiện điều này. Oracle JDeveloper Studio 11g được sử dụng để tạo các quy trình nghiệp vụ BPEL (Business Process Execution Language) của ứng dụng Vinabook được nói đến ở các chương tiếp theo.
3.2.2.2. Các thành phần cơ bản của JDeveloper hỗ trợ xây dựng ứng dụng theo kiến trúc SOA 33
- Sau đây là 5 thành phần cơ bản được sử dụng nhiều nhất khi xây dựng ứng dụng theo kiến trúc SOA (Nguồn www.oracle.com ):
Tên thành
Component Palette
phần
(Oracle JDeveloper)
Ý nghĩa Có thể sử dụng để tiếp xúc với ứng dụng tổng hợp SOA của bạn thông qua SOAP
Web Services
hoặc để sử dụng các dịch vụ SOAP bên
binding
ngoài. Ví dụ, Web Services binding là một công cụ để tích hợp dịch vụ .Net thông qua SOAP. Vai trò của Database Adapter là thành phần cơ bản để kích hoạt dịch vụ cơ sở dữ liệu mà không cần phải viết bất kì dòng nào của SQL (Lưu ý là thỉnh
Database Adapter
thoảng bạn muốn viết SQL, và bộ chuyển đổi cũng sẽ cho phép bạn làm việc đó). Số dự án SOA mà yêu cầu tích hợp cơ sở dữ liệu thì thường rất cao và Database Adapter thì thích hợp để trở thành một công cụ đắc lực trong những dự án như vậy. Có nhiệm vụ tương tác, trong một số ứng dụng tổng hợp SOA, các thành phần
Mediator
tương tác có interface khác nhau. Ngoài ra, Mediator có thể thực thi nhiệm vụ như lọc và đưa ra quyết định định tuyến.
34
Là thành phần tác vụ con người can thiệp Human Task
vào công việc nào đó. Ví dụ như chấp nhận hoặc từ chối việc đăng bán sản phẩm.
BPEL Process
Là thành phần dùng để tạo các quy trình nghiệp vụ đồng bộ hoặc không đồng bộ.
3.2.3. Oracle BPEL Process Manager Oracle BPEL Process Manager cho phép chúng ta triển khai và chạy các quy trình nghiệp vụ đã định nghĩa trong quy trình BPEL. Oracle BPEL Process Manager được phát triển bằng ngôn ngữ java và chạy trên ứng dụng server J2EE. Ngoài việc triển khai và chạy quy trình BPEL, nó còn cung cấp các chức năng nâng cao khác nữa : tích hợp cơ sở dữ liệu, môi trường thiết kế đồng nhất, xây dựng sẵn quy tắc nghiệp vụ,... Oracle cũng cung cấp giao diện độ họa BPEL Designer để thiết kế và phát triển quy trình BPEL thay vì phải viết mã nguồn BPEL.
Hình 3-2: BPEL Process Modeler trong JDeveloper (Nguồn: www.oracle.com)
35
Oracle BPEL (Business Process Execution Language) Process Manager là một công cụ để thiết kế và chạy quy trình nghiệp vụ. Oracle BPEL Process Manager là một công cụ tích hợp ứng dụng tổng hợp rất mạnh mẽ. Nó cho phép triển khai, giám sát, quản lý, có khả năng kết nối với hệ thống bên ngoài và các công nghệ khác nhau. Oracle BPEL Process Manager thường được sử dụng để tích hợp ứng dụng tổng hợp và tự động thực hiện quy trình nghiệp vụ trong hệ thống. Oracle BPEL Process Manager dựa trên chuẩn BPEL nguyên thủy, hỗ trợ các loại định dạng như : XML, WSDL, XSLT, XPATH, JMS,… Oracle BPEL Process Manager gồm các phần chính sau:
Oracle BPEL Process Designer
Oracle BPEL Process Manager Runtime
Human Workflow
Composite Application
Oracle BPEL Process Console
3.2.3.1. Oracle BPEL Process Designer - Oracle BPEL Process Designer cung cấp một giao diện đồ họa thân thiện với người dùng để xây dựng quy trình BPEL. Oracle BPEL Process Designer có thể mang chuyển, tích hợp dễ dàng mà không cần phải yêu cầu import hoặc export. Nhà phát triển (Developer) cũng có thể xem trước và cập nhật mã nguồn BPEL. Tính năng nổi bật của Oracle BPEL Process Designer như sau: o
Hỗ trợ BPEL nguyên thủy.
o
Hỗ trợ kéo thả khi thiết kế quy trình nghiệp vụ.
o
Hỗ trợ ngôn ngữ thanh tra dịch vụ web (Web Service Inspection Language - WSIL).
o
Xây dựng mô hình chuyển đổi với tính năng tự động ánh xạ.
o
Tích hợp dòng công việc con người vào hệ thống.
o
Theo dõi các hoạt động.
o
Xây dựng và triển khai nhanh.
36
Hình 3-3: Oracle BPEL Process Designer trong JDeveloper (Nguồn: www.oracle.com)
3.2.3.2. Oracle BPEL Process Manager Runtime - Yếu tố cốt lõi của BPEL là khả năng mở rộng, khả năng tương thích và đáp ứng thời gian nhanh nhất. Các tính năng nổi bật khác: o
Hỗ trợ thực hiện đồng bộ và bất đồng bộ (Synchronous and Asynchronous) quy trình nghiệp vụ.
o
Quản lý ngoại lệ tốt (Exception Management).
o
Hiệu suất đáp ứng cao (High perfomance).
o
Khả năng mở rộng (Scalable).
3.2.3.3. Oracle BPEL Process Manager Console - Oracle BPEL Process Manager Console cung cấp một giao diện web thân thiện với người dùng phục vụ cho việc quản lý và triển khai đến BPEL server.
37
Hình 3-4: Oracle BPEL Console (Nguồn: www.oracle.com )
3.2.3.4. Dòng 3.2.3.4. Dòng công việc con người (Human Workflow) - Oracle BPEL Process Manager tích hợp sẵn dòng công việc con người (Human Workflow), do đó chúng ta có thể tương tác dòng công việc con người với quy trình nghiệp vụ. Những tác vụ có thể được gởi đến người dùng và người dùng nhận thông tin qua email, SMS,...
3.2.3.5. Ứng dụng tổng hợp (Composite Application) - Oracle BPEL có thể được sử dụng độc lập để thực thi quy trình nghiệp vụ, nhưng nó chỉ phát huy sức mạnh thực sự khi kết hợp với những thành phần khác của SOA.
38
Hình 3-5: Ứng dụng tổng hợp (Nguồn: www.oracle.com)
3.2.4. SQL * Plus Commands Oracle SQL * Plus là một công cụ dòng lệnh cho phép người dùng gõ các câu lệnh SQL được thực thi trực tiếp cho một cơ sở dữ liệu Oracle. SQL * Plus có khả năng định dạng đầu ra cơ sở dữ liệu, lưu các lệnh thường được sử dụng và có thể được gọi từ các công cụ khác của Oracle hoặc từ hệ điều hành một cách nhanh chóng.
Hình 3-6: Oracle SQL * Plus
39
3.2.5. Oracle SQL Developer Oracle SQL Developer là một phiên bản nâng cấp của SQL * Plus. Oracle SQL Developer cung cấp cho các nhà phát triển một giao diện đồ họa thân thiện để thực hiện các thao tác cơ bản khi thiết kế cơ sở dữ liệu. Nó có thể duyệt, tạo, chỉnh sửa và xóa các đối tượng cơ sở dữ liệu, chạy câu lệnh SQL và các kịch bản (script).
Ngoài
ra,
nó
còn
cho
phép chỉnh sửa, tìm kiếm và loại bỏ các lỗi đoạn mã PL/SQL; thao tác và xuất dữ liệu, xem và tạo các báo cáo. Oracle SQL Developer có thể kết nối tới lược đồ của bất kỳ cơ sở dữ liệu Oracle bằng cách sử s ử dụng các chuẩn cơ sở dữ liệu l iệu của Oracle. Sau khi kết nối, nó có thể thực hiện các thao tác trên các đối tượng trong cơ sở dữ liệu. Oracle SQL Developer có thể kết nối đến lược đồ cơ sở dữ liệu cho những lựa chọn khác (không phải là Oracle). Chẳng hạn như MySQL, Microsoft SQL Server, Sybase Adaptive Server, Microsoft Access và IBM DB2. Oracle SQL Developer cho phép xem các siêu dữ liệu và dữ liệu trong các cơ sở dữ liệu. Ngoài ra, bạn có thể chuyển cơ sở dữ liệu liệu đó thành cơ sở dữ liệu Oracle.
3.2.6. Oracle WebLogic Suite Oracle WebLogic Suite là nền tảng Java EE hỗ trợ ứng dụng điện toán đám mây, là một kiến trúc cho phép các doanh nghiệp làm tốt hơn các nghiệp vụ, làm cực tiểu hóa chi phí. Các sản phẩm của Oracle Fusion Middleware chạy trên Oracle WebLogic Suite cho các môi trường làm việc với Oracle.
40
Hình 3-7: Oracle WebLogic Suite
3.2.6.1. Các thành phần Oracle WebLogic Server bao gồm các phần: WebLogic Server Standard Edition, Oracle WebLogic Server Enterprise Edition và Oracle WebLogic Suite.
3.2.6.1.1.
Oracle WebLogic Server Standard Edition
Là một máy chủ ứng dụng toàn diện cung cấp cho nhà phát triển(developers) với các công cụ và công nghệ để viết các ứng dụng doanh nghiệp và nghiệp dịch vụ một cách nhanh lẹ. - Ưu điểm của Oracle WebLogic Server Standard Edition:
Linh động, cài đặt nhanh
Có quy trình phát triển lặp FastSwap
Hỗ trợ Web 2.0 và REA (Rural Electrification Administration)
Hỗ trợ giao diện Console
Hỗ trợ Java EE 5/ Java SE 6
Hỗ trợ Oracle ToplinkORM Persitence
Hỗ trợ phát triển ứng dụng ADF (Application Development Framework)
Hỗ trợ Spring Framework 41
Hỗ trợ Jdeveloper IDE
Cho phép plugin Eclipse thông qua Oracle Enterprise Pack for Eclipse
Phiên bản dịch vụ web chuẩn
Hàng đầu trong ngành công nghiệp
3.2.6.1.2.
Oracle WebLogic Server Enterprise Edition
Đối với các ứng dụng yêu cầu tính sẵn sàng cao thì Oracle WebLogic Server Enterprise Edition cung cấp tất cả tính năng và lợi ích của Oracle WebLogic Server Standard Edition cùng với công nghệ clustering , quản lý đa miền, … - Ưu điểm của Oracle WebLogic Server Enterprise Edition:
Hiệu suất thực thi cao
Chi phí phát triển ứng dụng thấp
Hỗ trợ hiệu suất thực thi cao – Enterprise Grid Messaging
GridLink for RAC – khả năng sẵn sàng cao với cơ sở dữ liệu
3.2.6.1.3.
Oracle WebLogic Suite
Để hỗ trợ tính năng động Oracle WebLogic Suite cung cấp hiệu suất dự đoán và khả năng quản lý toàn diện cho hoạt động hiệu quả. - Ưu điểm của Oracle WebLogic Suite:
Có tính sắp xếp cho ứng dụng dữ liệu chuyên sâu (Scale out for data intensive applications)
ActiveCache – tích hợp trong bộ nhớ lưới điện
Dự đoán được hiệu suất (Predictable Performance)
Hoạt động thực bên trong ứng dụng (Real Operations Insight)
Hoạt động thực tự động hóa (Real Operation Automation)
3.2.6.2. Yêu cầu hệ thống - Hệ điều hành (32 bit hoặc 64 bit): AIX, HP-UX, Linux, Solaris, Windows. - Cơ sở dữ liệu: Oracle (và Oracle Real Application Custers), IBM DB2, Microsoft SQL Server, My SQL, Sysbase. 42
- Java Platform: Standard Edition 6, Enterprise Edtion 5. - Giao thức Internet: Phiên bản 4, phiên bản 6.
3.2.7. Oracle Business Activity Monitoring (BAM) 3.2.7.1. Giới thiệu BAM không chỉ là một công cụ dùng để báo cáo hoặc tạo ra biểu đồ điều hành. BAM cung cấp khả năng chỉnh sửa lỗi trong môi trường thực thi bằng cách sử dụng biểu đồ thời gian thực và giám sát các quy trình nghiệp vụ, dịch vụ hoặc dùng để cảnh báo.
Hình 3-8: Oracle Business Activity Monitoring (Nguồn www.oracle.com)
Một khi bạn cài đặt Oracle BAM, bạn sẽ nhận được bốn thành phần: Active Viewer, Active Studio, Architect và Administrator. Trang mặc định để khởi động BAM là http://localhost:
/oraclebm. Một khi bạn xác nhận tài khoản bằng cách sử dụng tên đăng nhập và mật khẩu mà bạn đã dùng khi cài đặt, bạn sẽ nhìn thấy giao diện chính của Oracle BAM. Trong trang bắt đầu bạn có thể thấy các liên kết đến Active Viewer, Active Studio, Architect và Administrator.
43
3.2.7.2. Công dụng Oracle BAM cung cấp một khuôn mẫu (Framework) cho việc - Tạo biểu đồ hiển thị thời gian thực của dữ liệu. - Tạo quy tắc để gửi cảnh báo dưới các điều kiện quy định.
Kiến trúc dữ liệu động (Active Data Architecture): Oracle Business Activity Monitoring cung cấp một kiến trúc dữ liệu hoạt động mà tự động cập nhật dữ liệu theo thời gian thực cho người dùng cuối thông qua từng bước của quy trình. Giải pháp này chủ động thu thập dữ liệu, áp dụng quy tắc thiết kế để theo dõi những thay đổi và cung cấp các thông tin trong các báo cáo cho người dùng.
Báo cáo thời gian thực (Real-time Reports): Real-time reports chứa dữ liệu được cung cấp ngay sau khi việc thay đổi dữ liệu xảy ra. Điều này có thể đuợc thực hiện, bởi vì các dữ liệu trong Oracle BAM Active Data Cache và sự kết nối với nguồn cấp dữ liệu thì giao dịch theo thời gian thực.
Trình bày báo cáo động (Active Presentations in Reports): Báo cáo hiển thị hoạt động dữ liệu là nơi dữ liệu liên tục cập nhật, định dạng,và được hiển thị. Khi dữ liệu thay đổi, thì những thay đổi đó được hiển thị theo thời gian thực.
Cảnh báo lỗi (Instant Alerts): Cảnh báo, dựa trên các quy tắc và các sự kiện xảy ra trong thời gian thực, được phân phối thông qua e-mail.
Xuất
bản động dựa trên các quy tác (Rules-Based Active Delivery): Trong một giải pháp hướng sự kiện, thông tin được cung cấp cho những người sử dụng xác định thay vì yêu cầu người dùng truy vấn thông tin theo ý của họ. Các báo cáo ban đầu được thiết kế để cung cấp cho người dùng cuối dựa trên dữ liệu thay đổi hoặc các sự kiện gây ra.
Hiệu xuất cao, tính chất có thể mở rộng kiến trúc (High Performance, Scalable Architecture): Oracle Business Activity Monitoring có khả năng mở rộng để xử lý một lượng lớn dữ liệu doanh nghiệp phức tạp trong thời gian thực. Oracle BAM sử dụng Oracle Data Integrator để lựa chọn các dữ liệu thô một 44
cách chính xác, sau đó biến đổi và thực hiện tính toán theo yêu cầu của thiết kế dữ liệu. Các dữ liệu chuyển đổi được gửi đến Oracle BAM Data Active Cache trong trạng thái sẵn sàng sử dụng, để truy cập nhanh.
3.3. So sánh hai nền tảng IBM SOA Portfolio và Oracle SOA Suite Bài so sánh dưới đây được trích từ Crimson Consulting. Crimson Consulting là một công ty tư vấn tập trung vào tiếp thị, chuyên tiếp thị các giải pháp công nghệ. Khách hàng của họ gồm có Adobe, eBay, Hitachi, … bao gồm cả IBM và Oracle. (Nguồn www.crimson-consulting.com)
3.3.1. Một Framework đo lường độ phức tạp SOA Crimson Consulting đã phát triển một framework để thực hiện việc đo lường độ phức tạp liên quan đến các giải pháp SOA, kể cả những cách định lượng dữ liệu, bằng cách xem xét các hoạt động SOA và xem xét các yếu tố phức tạp của chúng như thời gian, số bước,...
3.3.1.1. Những tiêu chí so sánh cơ bản giữa 2 nền tảng IBM SOA Portfolio và Oracle SOA Suite Một số các hoạt động được xem xét trong framework này là : •
Set-up: cài đặt, cấu hình.
•
Quản lý: thực hiện các việc quản lý cho môi trường (ví dụ chạy và ngưng các thành phần, kiểm tra trạng thái thành phần,…).
•
Bảo mật: hiệu chỉnh bảo mật cho dịch vụ và cấu hình bảo mật thông qua cổng gián tiếp (reverse proxy).
•
Làm việc với Enterprise Service Bus (ESB) như: cài đặt, giám sát, quản lý trong ESB, thay đổi các Endpoint trong thời gian thực và khởi tạo Cache trong bộ nhớ để cải thiện hiệu năng. 45
•
Làm việc với kết nối B2B: cài đặt và cấu hình server B2B.
•
Kết nối với các chương trình phía sau: cấu hình và giám sát các adapter phía sau.
•
Quy trình và quy tắc phát triển: tạo ra quy trình nghiệp vụ và các quy tắc bao gồm mô hình hoá, phát triển, cài đặt và các tác vụ của con người.
•
Business Activity Monitoring (BAM): giám sát từng quy trình đơn lẻ và quản lý ứng dụng.
3.3.1.2. Những tiêu chí mở rộng Crimson Consulting xem xét mức độ phức tạp của từng công việc trong các giải pháp sử dụng 4 tiêu chí sau: •
Số ứng dụng liên quan và mức độ tích hợp.
•
Số bước liên quan để việc thực hiện tác vụ.
•
Thời gian liên quan khi thực hiện công việc.
•
Mức đánh giá độ phức tạp của công việc và các kĩ năng cần thiết (chỉ số 15, trong đó 5 là phức tạp nhất). Thông số cuối cùng nói lên thời gian huấn luyện cho giải pháp đưa ra, và độ có sẳn cũng như chi phí huấn luyện.
3.3.1.3. Các sản phẩm được so sánh Thông qua bản báo cáo này chúng em đã thực hiện với nhiều sản phẩm trong Oracle SOA Suite và IBM SOA portfolio. Danh sách những nhà cung cấp sản phẩm SOA theo chức năng.
Danh sách sản phẩm
Oracle SOA Suite
IBM SOA Portfolio
(Process-based integration)
BPEL PM
Process Server
Oracle Service Bus
WebSphere ESB MessageBroker DataPower Transformation Extender
Enterprise Service Bus (ESB)
46
Cast Iron Sterling
Services Creation/Development
JDeveloper
WebSphere Integration Developer (WID) Rational Application Developer
Business Activity Monitoring (BAM)
Oracle BAM
WebSphere Business Monitor
Services Management
OWSM
IT CAM for SOA Tivoli Security Policy Manager DataPower
Application Server Runtime
WebLogic Server
WAS ND
Oracle B2B
WebSphere Partner Gateway DataPower XB60 Transformation Extender
Rules
Oracle Rules
WebSphere Business Rules (In WID and Process Server) ILOG
Adapters/Back End Integration
Oracle Adapters/AIA
WebSphere Adapters
Single SKU suite
SOA Suite
WebSphere Business Services Fabric
Complex Event Processing (CEP)
Oracle CEP
WebSphere Business Events
B2B
Bảng 3-1: Danh sách các sán phẩm hỗ trợ chu kỳ sống SOA (Nguồn www.crimson-consulting.com)
3.3.2. So sánh Oracle SOA Suite và IBM SOA Portfolio Trong phần này chúng ta sẽ xem xét từng hoạt động và so sánh Oracle SOA Suite và IBM SOA Portfolio dựa trên 4 thông số đã bàn ở trên.
47
3.3.2.1. Tổng quan Cả hai nhà cung cấp Oracle và IBM đã bỏ rất nhiều công sức để phát triển sản phẩm của họ và theo kết quả khảo sát, họ đã đầu tư nhiều năm vào việc phát triển công việc chuyên môn của mình trong sản phẩm SOA. Qua những khảo sát các giải pháp SOA thì Oracle SOA Suite có độ phức tạp ít hơn IBM SOA Portfolio.
3.3.2.1.1.
Số sản phẩm
Kết quả khảo sát cho thấy các nhà phát triển ưa chuộng giải pháp của Oracle hơn là của IBM, vì sự phức tạp khi cài đặt và sử dụng giải pháp của IBM. Các giải pháp Oracle SOA tốn ít thời gian để cài đặt hơn, còn các sản phẩm của IBM thì tốn nhiều thời gian hơn.
3.3.2.1.2.
Số bước
Số bước liên quan đến những công việc cơ bản của Oracle thường cao hơn với IBM. Tuy một số trường hợp là ít bước hơn IBM, nhưng trong những trường hợp này là không nhiều.
3.3.2.1.3.
Thời gian
Khi bạn sử dụng giải pháp của IBM bạn phải cài đặt riêng lẻ các phần mềm dẫn đến tốn nhiều thời gian. Trong khi đó các phần mềm của Oracle cài rất nhanh và tốn ít thời gian.
3.3.2.1.4.
Tính năng cần thiết và độ phức tạp công việc
Theo kết quả khảo sát về độ phức tạp công việc và tính năng cần thiết thường thì các nhà phát triển ưa chuộng Oracle SOA Suite hơn. Ngoài ra, chi phí huấn luyện cho các giải pháp IBM thì cao hơn Oracle SOA Suite.
3.3.2.2. Thiết lập các giải pháp SOA Nhìn một cách tổng thể, kết quả khảo sát chỉ ra rằng cách thiết lập và cấu hình cho một giải pháp IBM SOA tốn gấp hai lần so với cách thiết lập và cấu hình cho Oracle SOA Suite. Các chuyên gia tin học ước tính rằng thời gian để cài đặt Oracle là từ 4 đến 6 giờ, trong khi IBM cần đến 3 hoặc 4 ngày.
48
Hình 3-10 là bảng so sánh về thời gian cài đặt của hai thành phần dựa trên kết quả khảo sát về Oracle SOA Suite và IBM.
Thành phần
Management
Chuyên gia kiến trúc phần
Chuyên gia tư vấn tin học (IT
mềm (Chief Architect)
Consultant )
Oracle
IBM
Oracle
IBM
1 tuần
1 tháng
1 ngày
3 ngày
2 ngày
2 phút
1 ngày
0,5 ngày
2 đến 3 giờ
2 đến 3 giờ
ESB Process/Rules
1 ngày
1 giờ
Modeling Không biết
B2B
Không biết Nhỏ hơn 2 giờ
6 giờ
Bảng 3-2: Thời gian cài đặt của hai thành phần 3.3.2.2.1.
Quản lý
Theo kết quả khảo sát thì SOA cung cấp nhiều tiện ích và sự quản lý được đơn giản hóa hơn so với IBM. Nhà phát triển ứng dụng với Oracle rất thích Oracle Enterprise Manager. Theo các chuyên gia cho rằng : “Oracle Enterprise Manager là một sản phẩm chiến lược của SOA Suite. Nó tích nhiều hợp nhiều thứ trong một cách nhìn và làm cho việc tìm lỗi một project phức tạp trở nên dễ dàng hơn” “Oracle Enterprise Manager đưa ra một sự quản lý đơn giản và đồng bộ không chỉ cho các thành phần của SOA mà con cho các phần khác của cơ sơ hạ tầng như ERP và cơ sở dữ liệu”.
3.3.2.2.2.
Bảo mật
Tính an toàn bảo mật của IBM cũng phức tạp hơn so với Oracle. Chỉ có vài ý kiến nói điều ngược lại. Những khó khăn này đều do sự tích hợp không tốt của các sản phẩm IBM. Mỗi sản phẩm của IBM đều có an tòan bảo mật riêng của nó. Điều 49
này dẫn đến việc cần nhiều công sức hơn cho việc học và sử dụng các công cụ khác hẳn nhau và làm cho chúng họat động tốt với nhau.
Thao tác Set up general security
Các bước Oracle
IBM
10 đến 12 20 đến 40 bước
bước
Thời gian Oracle
IBM
2 đến 4
2 đến 3
tuần
tháng
Độ phức tạp Oracle
IBM
3
5
3
4,5
Set-up services security through Nhỏ hơn 12 bước a mediated
20 đến 25 Nhỏ hơn bước
1 tuần
1 tháng
gateway set up Bảng 3-3: So sánh sự bảo mật của IBM và Oracle Một vài ý kiến cho rằng “ cài đặt an tòan bảo mật của các dịch vụ trong IBM là một quá trình không đổi và với một project họ phải đề xuất các giải pháp khác nhau cho vấn đề bảo mật bảo mật. Ngược lại, có ý kiến cho rằng về an tòan bảo mật của Oracle lại tỏ ra khá lạc quan và thích sự đơn giản của nó. Đó là do sự tích hợp nhiều thành phần vào Oracle SOA Suite. Khi nói đến an tòan bảo mật SOA thì tất cả mọi thứ đều có thể được xử lý thông qua Oracle Enterprise Manager bạn không cần phải làm việc với nhiều các sản phẩm khác nhau.
3.3.2.2.3.
Làm việc với Enterprise Service Bus
Enterprise Service Bus là lõi của việc thực thi SOA, là phương tiện mà các dịch vụ kết hợp để cung cấp các chức năng cho ứng dụng. Sự đơn giản của ESB và sự quản lý là những điểm chủ yếu của sự thành công của SOA. Theo kết quả khảo sát thì quá trình cài đặt ESB của Oracle và quản lý rất đơn giản. Hầu như là không cần cài đặt quá nhiều để điều khiển ESB. Vì tất cả được xử lý thông qua Oracle Enterprise Manager. Việc quản lý các endpoint trong thời gian thực cũng trở nên dễ dàng hơn. 50
3.3.2.2.4.
Làm việc với kết nối B2B
Theo kết quả khảo sát về IBM thì không biết có bao nhiêu sản phẩm IBM có hỗ trợ chức năng kết nối B2B. Hai sản phẩm được nói đến nhiều nhất là DataPower và WebSphere Parter Gateway. Sự phức tạp bắt nguồn từ việc thiếu sự tích hợp trong các sản phẩm của IBM.
3.3.2.2.5.
Kết nối với ứng dụng Back-End
Ý kiến về sử dụng giải pháp để tích hợp và kết nối vào ứng dụng Back-End rất khó để rút ra kết luận. Nói chung, những người có kinh nghiệm về giải pháp của một bên (Oracle hoặc là IBM) thì nói về sự đơn giản của một giải pháp đó. Trong khi những ý kiến khác có kinh nghiệm nhiều về cả hai bên Oracle và IBM thì không phân biệt được chúng rõ ràng. Có ý kiến cho rằng làm việc với ứng dụng Back-End thì Oracle lại phức tạp hơn so với IBM. Có ý kiến cho rằng với các project tích hợp nhiều ứng dụng Back-End thì làm việc với Oracle SOA Suite vẫn dễ dàng hơn vì quá trình cài đặt và cấu hình đơn giản hơn.
3.3.2.2.6.
Bussiness Process , Rules Development và Management
Có ý kiến cho rằng với IBM thì sự phức tạp về quy trình nghiệp vụ, các quy tắc phát trỉển và quản lý trong nhiều sản phẩm cho nghiệp vụ đó. Theo kỹ thuật viên bảo trì cơ sở hạ tầng nói rằng “ IBM có ba sản phẩm riêng biệt để xây dựng các quy tắc : IBM Business Rules, ILOG và WebSphere Rules”. Ngược lại, Oracle SOA Suite chỉ có một sản phẩm để thiết kế các quy tắc nghiệp vụ đó là Oracle JDeveloper.
3.3.2.2.7.
Business Activity Monitoring
BAM (Business Activity Monitoring)cung cấp thông tin thời gian thực thông qua dashboard . Nó không chỉ cho phép người dùng hiểu các họat động ngiệp vụ của ứng dụng mà còn cho phép chuyên viên công nghệ thông tin có khả năng phát triển được. Theo khảo sát cho thấy rằng hầu hết các phần mềm Oracle có nhiều lợi ích hơn IBM như sự đơn giản hóa và thực thi dễ hơn.
51
BAM của Oracle rất dễ tiến hóa và được tích hợp tốt với Business Intellidence(BI). Trong khi IBM phải tốn nhiều công sức hơn để phát triển nghiệp vụ. Nghĩa là, BAM của Oracle tương ứng với WebSphere Business Monitor của IBM. Theo kết quả khảo sát cho rằng WebSphere Business Monitor là một sản phẩm khó sử dụng hơn BAM của Oracle và vì WebSphere Business Monitor yêu cầu cấu hình phức tạp hơn BAM của Oracle nên rất ít công ty có thể sử dụng hết các tiện ích của nó. Một cách tổng quát, nghiên cứu trên đã đưa ra những tiện ích của Oracle SOA Suite so với IBM SOA đặc biệt là ở phương diện: - Giảm thiểu sự phức tạp, trong khi vẫn có được nhiều chức năng thực hiện tốt. - Oracle SOA Suite yêu cầu ít bước thực hiện hơn và tốn ít thời gian hơn. - Oracle sẽ cho người dùng sự linh họat về nghiệp vụ tốt hơn, nhanh hơn và hiệu quả hơn. Kết quả này chỉ ra các lợi ích từ việc tích hợp tốt của Oracle SOA Suite được đưa ra từ cả người dùng của Oracle và IBM. Oracle SOA Suite là một giải pháp được tích hợp tốt, hỗ trợ người dùng với thời gian nhanh hơn.
Trong chương này chúng ta đã hiểu được các phần mềm hỗ trợ phát triển
và quản lý trong chu trình sống của Oracle SOA suite. Ngoài ra, chúng ta còn hiểu thêm về sự khác biệt giữa hai nền tảng Oracle SOA Suite và IBM SOA
Portfolio.
Chúng ta sẽ khởi đầu cho việc phát triển ứng dụng Vinabook theo kiến trúc
hướng dịch vụ. Chương 4 sẽ trình bày rõ về pha mô hình hóa ứng dụng.
52
Chương 4
MÔ HÌNH HÓA NG DNG VINABOOK Nội
dung trình bày trong chương 4 tập trung vào việc 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
Thiết kế các dịch vụ chính
Thiết kế các lược đồ Use-Case dựa trên Oracle JDeveloper Studio. Trong phần thiết kế lược đồ Use-Case chúng emchỉ trình bày ở mức tổng quát. Về thiết kế các dịch vụ cũng chỉ trình bày một số dịch vụ chính. Mô hình hóa các quy trình nghiệp vụ được thực hiện dưới sự hỗ trợ của phần mềm JDeveloper. Trong phần này chúng em cũng chỉ trình bày một số dịch vụ điển hình. Chi tiết pha mô hình hóa ứng dụng VINABOOK được trình bày chi tiết trong phần phụ lục C.
4.1. Giới Thiệu VinaBook ra đời với mục đích mở thêm một kênh dịch vụ bán hàng mới thông qua mạng internet để phục vụ tất cả các bạn đọc trong và ngoài nước đặt hàng trực tuyến nhanh chóng và tiện lợi nhất. VinaBook có tính năng tìm kiếm sản phẩm rất thuận tiện. Bên cạnh đó còn hỗ trợ so sánh giá của sản phẩm với trang amazon.com nhằm đảm bảo lợi ích cho khách hàng. VinaBook mong muốn được đem đến cho khách hàng những dịch vụ tốt nhất đáp lại nhu cầu nâng cao đời sống văn hóa tinh thần, đem kho tàng tri thức nhân loại vào trong nhà bạn.
53
VinaBook phục vụ khách hàng 24/24 mỗi ngày, VinaBook liên tục cải tiến, tái cấu trúc, mở mới các dịch vụ phục vụ khách hàng , với mong muốn là nhà sách bán hàng trực tuyến hàng đầu Việt Nam. VinaBook được xây dựng dựa trên kiến trúc hướng dịch vụ. Vì VinaBook muốn đầu tư cho hiện tại cũng như đầu tư cho tương lai, tất cả vì sự phát triển bền vững và thịnh vượng. Ngày nay, khi xu thế phát triển của thế giới ngày một mãnh mẽ đòi hỏi sự phát triển song song của các ngành nghề, nông nghiệp, công nghiệp và dịch vụ. Bên cạnh sự phát triển không ngừng của các nền kinh tế, nhu cầu vui chơi, giải trí của nhân dân ngày một tăng. Các địa điểm du lịch ngày càng trở nên đông đúc với du khách trong và ngoài nước. Các trung tâm vui chơi và giải trí không ngừng mở ra để đáp ứng cho nhu cầu vui chơi của người dân. Chính vì thế, các doanh nghiệp tư nhân không ngừng đầu tư xây dựng cơ sở hạ tầng sao cho ngày càng hiện đại, dịch vụ chu đáo tận tình thì mới có sức cạnh tranh và phát triển bền vững được. Theo thống kê của Tổng cục Thông tin Việt Nam thì doanh thu của ngành thương mại nói chung và thương mại điện tử nói riêng trong 3 tháng đầu năm tăng khoảng 18,7% so với cùng kỳ, tuy nhiên lượng người tham gia thương mại điện tử nội địa tăng khoảng 10%, ước đạt 10,72 triệu lượt người. Thu nhập xã hội từ thương mại điện tử ở hầu hết các vùng trọng điểm đều có sự tăng trưởng. Thu nhập xã hội từ thương mại điện tử trên cả nước 3 tháng đầu năm 2011 ước đạt 20.000 tỷ đồng, tăng 8,7%. Với con số thống kê như thế, chúng ta có thể thấy nhu cầu mua bán trực tuyến của khách trong và ngoài nước ngày càng tăng. Trong khi các công ty thương mại điện tử chưa quản lý tốt và chưa đáp ứng nhu cầu của Khách hàng. Quản lý còn rời rạc chưa thống nhất với nhau. Yêu cầu hiện tại là phải có một hệ thống chuẩn chung để quản lý tốt việc mua bán của khách và doanh nghiệp. Một doanh nghiệp có thể làm chủ của nhiều công ty thương mại điện tử trên khắp mọi miền của đất nước. Vì thế đòi hỏi phải có sự đồng bộ, làm việc có chuyên môn, phong cách chuyên nghiệp. Và quan trọng nhất là sự quản lý trên toàn bộ công 54
ty một cách nhanh nhất và chính xác. Người đứng đầu công ty ngồi tại một nơi , muốn theo dõi hoạt động, doanh thu của tất cả của công ty mà không phải mất chi phí vận chuyển, đi lại. Điều này đỏi hỏi phải có một hệ thống trung gian làm nhiệm vụ đứng ở giữa, quản lý hoạt động của tất cả các công ty thương mại điện tử. Hiện trạng tại các công ty hiện nay vẫn chưa ứng dụng lĩnh vực công nghệ thông tin nhiều. Chưa kể tới hệ thống phần mềm chạy tại công ty. Các phần mềm chạy tại mỗi công ty lại phụ thuộc nhiều vào nghiệp vụ của riêng từng công ty, không đồng bộ, không thống nhất. Các giao dịch, nghiệp vụ vẫn còn làm bằng tay, ghi sổ là chính. Dẫn tới việc sau này khó quản lý, mất mát dữ liệu về sau. Nghiệp vụ nhiều khi không rõ ràng, dẫn đến mâu thuẫn. Khi thế giới đang ngày càng phát triển, internet ngày càng phủ mạng lưới rộng khắp, yêu cầu toàn cầu hóa, kết nối ngày càng cấp thiết hơn bao giờ hết. Chính vì thế, một hệ thống công ty cần có một chuẩn chung nhất cho toàn bộ các công ty. Như thế sẽ tiện cho việc quản lý và giao dịch hơn. Và cũng vì lý do đó, hệ thống quản lý công ty thương mại điện tử ra đời để đáp ứng yêu cầu của nhà doanh nghiệp cũng như phục vụ việc mua bán của khách trong và ngoài nước.
4.2. Phát biểu bài toán Tập đoàn SaiGonPurchasing có một hệ thống công ty với hơn 50 công ty lớn nhỏ nằm khắp mọi miền đất nước, chủ yếu tại tại TP HCM, Đà Nẵng, Huế, Hải Phòng và thủ đô Hà Nội. Để tiện cho việc quản lý các công ty này thành một hệ thống nhất quán. Vì thế giám đốc điều hành của SaiGonPurchasing Cooperation là Nguyễn Hoàng Long đã đến gặp và đặt hàng với nhóm kĩ sư của công ty TH2007Software Developer phát triển hệ thống quản lý các công ty này với những yêu cầu hệ thống sau: - Hệ thống được cài đặt dựa theo kiến trúc MVC.
55
- Toàn bộ Database Back up của hệ thống sẽ nằm trên Server IBM core i3 đặt tại TPHCM. Database của mỗi công ty sẽ được lưu trong máy local của công ty. - Server Database này sẽ được kết nối với 2 cụm Server làm nhiệm vụ trung chuyển dữ liệu (Business Server) , 1 cụm server IBM core i3 đặt tại Hà Nội và 1 cụm server DELL core i5 đặt tại TPHCM. -
Hai cụm Server trung chuyển này sẽ truy xuất dữ liệu tại server Database bằng các phương thức Web Service cung cấp bởi Server IBM core i5 chứa Database.
- Các ứng dụng đặt tại công ty sẽ cũng truy xuất vào 2 cụm server trung chuyển này bằng các phương thức Web Service được cung cấp bởi 2 cụm Server trung chuyển này. - Hệ thống ứng dụng đặt tại mỗi công ty sẽ được thiết kế mô hình 3 lớp 1 tier. Một số chức năng sẽ hoạt động local. Một số chức năng sẽ phải nhờ đến các phương thức web services của Server thông qua 2 cụm server trung chuyển này.
4.3. Chi tiết các chức năng và các phân hệ 4.3.1. Phân hệ Guest Khi khách hàng có nhu cầu xem thông tin về công ty thì khách có thể truy cập vào trang web công ty xem. •
Trong lúc truy cập vào trang web của công ty, khách có thể tìm kiếm nhanh về thông tin sản phẩm cần mua,…Xem thông tin chi tiết của một Sản phẩm (như tên sản phẩm, loại sản phẩm, giá bán, giá khuyến mãi, tác giả,…).
•
Cho phép người dùng thực hiện tìm kiếm trên nhiều tiêu chí như: tên sản phẩm, giá bán , tác giả, ... (tùy thuộc vào độ phức tạp của thông tin mà sinh viên có thể thực hiện tìm kiếm trên nhiều tiêu chí khác).
•
Nếu khách hàng chưa có tài khoản thì có thể đăng ký tài khoản để thực hiện mua bán và thanh toán trực tuyến. 56
•
Hệ thống cho phép khách xem thông tin hàng.
•
Hệ thống cho phép khách thêm sản phẩm vào giỏ hàng
•
Xem giỏ hàng hiện tại.
•
Thêm phản hồi hay nhận xét đánh giá của khách về chất lượng phục vụ.
4.3.2. Phân hệ Member Phân hệ Member có tất cả các chức năng của Guest. Ngoài ra, phân hệ Guest còn có các chức năng sau đây : •
Thanh toán.
•
Xem tình trạng đơn đặt hàng.
•
Đăng xuất.
4.3.3. Phân hệ Admin - Người quản trị được phép quản trị tài khoản có trong hệ thống (thêm, xóa, sửa Khách hàng). - Phân quyền các member có trong hệ thống. - Quản lý thông tin của công ty - Quản lý thông tin Sản phẩm - Quản lý thông tin tin tức khuyến mãi các đợt trong năm
4.4. Các yêu cầu chức năng cho Guest STT 1
Tên chức năng Đăng ký mới tài khoản
Thông tin
Điều kiện
Ghi chú
-
Chưa có tài khoản đăng nhập
Trong đó mật khẩu được mã hóa bằng MD5 để bảo mật thông tin.
-
Thông tin tài khoản : •
Tên tài khoản
•
Mật khẩu.
Thông tin cá nhân: •
Họ và tên
57
•
Địa chỉ
•
Giới tính
•
-
Thông tin thanh toán: •
•
2
Xem chi tiết sản phẩm
-
-
-
Mã sản phẩm cần xem Mã sản phẩm, Tên sản phẩm, hình ảnh, số lượng, giá bán, tác giả, nhà xuất bản, tác giả, miêu tả ngắn gọn, số trang, trọng lượng, kích thước, số lần xem.
Mỗi sản phẩm thuộc về một danh mục. Thông tin danh mục bao gồm: •
-
Ngày hết hạn thẻ.
Thông tin chi sản phẩm bao gồm : •
-
Tên chủ thẻ tín dụng
Thông tin cần cung cấp: •
-
Ngày đăng ký.
Mã danh mục, tên danh mục, loại danh mục.
Mỗi sản phẩm có một tình trạng, hiện tại công ty có một số tình trạng như sau: •
Sản phẩm mới
•
Sản phẩm giảm giá
•
Sản phẩm báo chí giới thiệu
•
Sản phẩm bán chạy
•
Sản phẩm khuyến mãi.
Trong sản phẩm có sách, mỗi sách hình thức bìa. Hiện tại công ty có một số hình thức bìa như sau: •
Bìa cứng
•
Bìa mềm
•
….
Các nhận xét cho sản phẩm, thông tin nhận xét bao gồm: nội dung, mức đánh giá, tổng
58
kết, ngày nhận xét,…
3
4
5
6
7
Xem giỏ hàng
-
Thông tin giỏ hàng bao gồm:
Tìm kiếm sản phẩm
-
Tìm kiếm sản phẩm theo danh mục.
-
Tìm kiếm sản phẩm theo tên sách.
Cơ bản
-
Tìm kiếm sản phẩm theo tác giả.
-
Tìm kiếm sách theo từ khóa hỗ trợ các phép toán: AND, OR, NOT và gom nhóm.
•
Danh sách các sản phẩm đã chọn mua.
Tìm kiếm theo Danh mục Sản Phẩm -
Tìm kiếm sản phẩm theo Sách.
-
Tìm kiếm sản phẩm Thẻ card.
-
Tìm kiếm Sách theo từ khóa hỗ trợ các phép toán: AND, OR, NOT và gom nhóm.
-
Kết quả tìm kiếm là danh sách các sách tìm được thỏa mãn tiêu chí tím kiếm.
Tìm kiếm sản phẩm
-
Tìm kiếm sản phẩm theo tên sách.
-
Tìm kiếm sản phẩm theo tác giả.
Nâng cao
-
Tìm kiếm sản phẩm theo giá từ khoảng này đến các khoảng khác.
-
Tìm kiếm sản phẩm theo loại danh mục.
-
Tìm kiếm sách theo từ khóa hỗ trợ các phép toán: AND, OR, NOT và gom nhóm.
-
Kết quả tìm kiếm là danh sách các sách tìm được thỏa mãn tiêu chí tím kiếm.
-
Chọn sản phẩm cần mua vào giỏ hàng, nếu sản phẩm đã có trong giỏ hàng thì số lượng mua tăng lên 1.
Thêm sản phẩm vào giỏ hàng
Tìm kiếm sản phẩm theo Đĩa nhạc. Tìm kiếm sản phẩm theo Đĩa phim.
Đăng nhập Giỏ hàng hay chưa đang chọn đăng nhập mua hàng Đăng nhập hay chưa đăng nhập
Đăng nhập hay chưa đăng nhập
Tìm kiếm sản phẩm Phần mềm.
- Ngược lại thêm sản phẩm vào giỏ hàng với số lượng là 1.
59
Đăng nhập hay chưa đăng nhập
Đăng nhập hay chưa đăng nhập
8
Cập nhật giỏ hàng
-
Cập nhật số lượng trong giỏ hàng, nếu số lượng mua là 0 thì hủy sản phẩm đó ra khỏi giỏ hàng.
Đăng nhập hay chưa đăng nhập
9
Xóa sản phẩm ra khỏi giỏi hàng
-
Cho phép xóa từng sản phẩm và xóa tất cả sản phẩm có trong giỏ hàng đã mua.
Đăng nhập hay chưa đăng nhập
10
Lưu giỏ hàng
-
Cho phép khách hàng lưu sản phẩm vào giỏ hàng và tiếp tục lưu xuống cơ sở dữ liệu để tiện cho việc giao hàng về sau cho khách hàng. Khi khách hàng đã cung cấp đầy đủ thông tin và lưu sản phẩm mà khách hàng đã đặt mua.
Đã đăng nhập
11
Đăng nhập
-
Cung cấp thông tin sau:
Chưa đăng nhập
•
Tên tài khoản
•
Mật khẩu
12
Đưa sản phẩm vào giỏ hàng
-
Cho phép khách hàng đưa sản phẩm cần mua vào giỏ hàng.
Đăng nhập hay chưa đăng nhập
13
Cập nhật tài khoản
-
Cập nhật thông tin tài khoản.
-
Cập nhật thông tin cá nhân.
Đã đăng nhập
14
Xem sản phẩm mới
-
Cho phép khách hàng xem các Sản phẩm mới có trong hệ thống.
15
Sản phẩm bán chạy
-
Cho phép khách hàng xem các Sản phẩm bán Đăng nhập chạy có trong hệ thống. hay chưa đăng nhập
16
So sánh giá với trang book store
So sánh giá sách dựa vào mã sách, tên sách Danh sách các sách của tất cả các book store hỗ trợ tìm kiếm sách
Đăng nhập hay chưa đăng nhập
Đăng nhập hay chưa đăng nhập
Bảng 4-1: Bảng yêu cầu chức năng cho Khách Hàng
60
4.5. Các Yêu cầu cho Member (Thành viên) STT 1
Tên chức năng Thanh toán
Thông tin
Điều kiện
-
Chọn giỏ hàng cần thanh toán. Và thanh toán qua hệ thống PayPal
Đăng nhập Phải có tài khoản trong hệ thống PayPal
-
Chọn thông tin sản phẩm đã đặt để xem
Đăng nhập
Member hết phiên làm việc
Đăng nhập
2
Xem tình trạng đơn đặt hàng
3
Đăng xuất -
Ghi chú
Bảng 4-2: Bảng yêu cầu chức năng cho Thành Viên
4.6. Các yêu cầu cho Admin (Quản trị viên) STT Tên chức năng 1 Thêm Sản phẩm mới
Thông tin
Điều kiện Ghi chú
-
Đăng nhập
Thông tin sản phẩm mới: •
-
Mỗi sản phẩm thuộc về một danh mục. Thông tin danh mục: •
-
Mã sản phẩm, tên sản phẩm, hình ảnh, tác giả, số lượng, giá bán, tác giả, nhà xuất bản, ngày sản xuất, miêu tả ngắn gọn, số trang, trọng lượng, kích cỡ, số lần xem.
Mã danh mục, tên danh mục, loại danh mục.
Mỗi sản phẩm có sách riêng, sách có một tình trạng. Hiện tại công ty có một số tình trạng sau: •
Sách mới
•
Sách giảm giá
•
Sách báo chí giới thiệu
•
Sách nổi tiếng
61
Với quyền Admin
•
-
-
Mỗi sản phẩm có sách riêng, sách có một hình thức bìa. Hiện tại công ty có một số hình thức bìa như sau: •
Bìa mềm
•
Bìa cứng
•
…..
Các nhận xét cho sản phẩm, thông tin nhận xét bao gồm: •
2
Cập nhật Sản phẩm mới
-
-
Mã sản phẩm, tên sản phẩm, hình ảnh, tác giả, số lượng, giá bán, tác giả, nhà xuất bản, ngày sản xuất, miêu tả ngắn gọn, số trang, trọng lượng, kích cỡ, số lần xem.
Mỗi sản phẩm thuộc về một danh mục. Thông tin danh mục: •
-
Nội dung, mức đánh giá, tổng kết, ngày nhận xét,…
Thông tin sản phẩm mới: •
-
Sách bán chạy
Mã danh mục, tên danh mục, loại danh mục.
Mỗi sản phẩm có sách riêng, sách có một tình trạng. Hiện tại công ty có một số tình trạng sau: •
Sách mới
•
Sách giảm giá
•
Sách báo chí giới thiệu
•
Sách nổi tiếng
•
Sách bán chạy
Mỗi sản phẩm có sách riêng, sách có một hình thức bìa. Hiện tại công ty có một số hình thức bìa như sau: •
Bìa mềm
62
Đăng nhập Với quyền Admin
-
•
Bìa cứng
•
…..
Các nhận xét cho sản phẩm, thông tin nhận xét bao gồm: •
3
Xóa sản phẩm
-
Thông tin sản phẩm mới: •
-
-
-
Mã sản phẩm, tên sản phẩm, hình ảnh, tác giả, số lượng, giá bán, tác giả, nhà xuất bản, ngày sản xuất, miêu tả ngắn gọn, số trang, trọng lượng, kích cỡ, số lần xem.
Mỗi sản phẩm thuộc về một danh mục. Thông tin danh mục: •
-
Nội dung, mức đánh giá, tổng kết, ngày nhận xét,…
Mã danh mục, tên danh mục, loại danh mục.
Mỗi sản phẩm có sách riêng, sách có một tình trạng. Hiện tại công ty có một số tình trạng sau: •
Sách mới
•
Sách giảm giá
•
Sách báo chí giới thiệu
•
Sách nổi tiếng
•
Sách bán chạy
Mỗi sản phẩm có sách riêng, sách có một hình thức bìa. Hiện tại công ty có một số hình thức bìa như sau: •
Bìa mềm
•
Bìa cứng
•
…..
Các nhận xét cho sản phẩm, thông tin nhận xét bao gồm:
63
Đăng nhập Với quyền Admin
•
4
Thêm tài khoản
-
Thông tin tài khoản gồm: •
-
Câp nhật tài khoản
-
6
Xóa tài khoản
-
7
8
Thêm tin tức
Cập nhật tin tức
-
Tên tài khoản, mật khẩu, Họ tên, ngày sinh, giới tính, điện thoại, địa chỉ , email, quốc gia, tỉnh thành, quận huyện.
Mỗi tài khoản thuộc về một quyền nhất định. Thông tin quyền hạn: •
Mã tin tức, chủ đề , tóm tắt, nội dung, ngày đăng tin.
-
Mỗi tin tức thuộc về một người nào đó đăng tin lên.
-
Thông tin tức bao gồm: •
-
Đăng nhập Với quyền Admin
Đăng nhập Với quyền Admin
Mã phân quyền, tên phân quyền.
Thông tin tức bao gồm: •
Với quyền Admin
Mã phân quyền, tên phân quyền.
Thông tin tài khoản gồm: •
-
Tên tài khoản, mật khẩu, Họ tên, ngày sinh, giới tính, điện thoại, địa chỉ , email, quốc gia, tỉnh thành, quận huyện.
Mỗi tài khoản thuộc về một quyền nhất định. Thông tin quyền hạn: •
Đăng nhập
Mã phân quyền, tên phân quyền.
Thông tin tài khoản gồm: •
-
Tên tài khoản, mật khẩu, Họ tên, ngày sinh, giới tính, điện thoại, địa chỉ , email, quốc gia, tỉnh thành, quận huyện.
Mỗi tài khoản thuộc về một quyền nhất định. Thông tin quyền hạn: •
5
Nội dung, mức đánh giá, tổng kết, ngày nhận xét,…
Mã tin tức, chủ đề , tóm tắt, nội dung, ngày đăng tin.
Mỗi tin tức thuộc về một người nào đó đăng tin lên.
64
Đăng nhập Với quyền Admin Đăng nhập Với quyền Admin
9
Xóa tin tức
-
Thông tin tức bao gồm: •
10
11
Đăng nhập
Đăng xuất
Mã tin tức, chủ đề , tóm tắt, nội dung, ngày đăng tin.
-
Mỗi tin tức thuộc về một người nào đó đăng tin lên.
-
Thông tin đăng nhập:
-
•
Tên đăng nhập
•
Mật khẩu.
Đăng nhập Với quyền Admin Chưa đăng nhập
Kết thúc phiên làm việc
Đăng nhập
Bảng 4-3: Yêu cầu chức năng cho Quản Trị Viên
65
4.7. Lược đồ Use-Case tổng thể
66
4.8. Các lược đồ Use-Case Chi Tiết 4.8.1. Khách hàng và Member(Thành viên) 4.8.1.1. Use-Case Chi tiết về Khách hàng và Member
67
4.8.1.1.1.
Chi tiết về Use-Case “So Sánh giá” với các Bookstore khác
4.8.2. Admin 4.8.2.1. Use-Case Chi tiết về Admin
68
4.8.2.1.1.
Chi tiết về Use-Case “Quản lý tài khoản”
69
4.8.2.1.2.
Chi tiết về Use-Case “Quản lý Sản phẩm”
4.8.2.1.3.
Chi tiết về Use-Case “Quản lý Tin Tức”
70
4.9. Thiết kế dữ liệu lưu trữ Cơ sở dữ liệu quan hệ, hệ quản trị cơ sở dữ liệu Oracle.
Trong chương này chúng ta đã có cái nhìn tổng quát mô hình hóa trong kiến
trúc hướng dịch vụ.
Bước tiếp theo của pha mô hình hóa là pha tổng hợp. Để thực hiện pha này
chúng ta cần sự hỗ trợ của phần mềm Oracle JDeveloper Studio để tổng hợp, lắp ráp, pha trộn các thành phần lại với nhau . Chương 5 sẽ trình bày rõ vấn đề này.
71
Chương 5
TNG HP NG DNG VINABOOK Nội
dung chương 5 trình bày tập trung chủ yếu vào việc tổng hợp ứng dụng
ở mức tổng quát nhất có thể. Chúng emxin trình bày 3 dịch vụ trong số 48 dịch vụ (trong đó có 44 dịch vụ được sử dụng để tích hợp vào ứng dụng) quy trình được tổng hợp từ các dịch vụ trong và ngoài hệ thống. Nội dung chi tiết được trình bày trong phần phụ lục B. Trong giai đoạn tổng hợp ứng dụng được thực hiện dưới sự hỗ trợ của phần mềm JDeveloper.
5.1. Thành phần dịch vụ “Thêm Sản Phẩm” Sử dụng quy trình BPEL truy xuất vào cơ sở dữ liệu. Gán các giá trị đầu vào, kiểm tra mã sản phẩm có tồn tại hay không, để thêm sản phẩm mới.
Hình 5-1: Thành phần tổng hợp dịch vụ “Thêm sản phẩm” o
Tên thành phần dịch vụ
: ThemSanPham
o
Exposed Service
: themspbpelprocess_client_ep (WebService)
o
Components
: ThemSPBPELProcess (BPEL)
o
External References
: SanPhamTable (WebService)
5.1.1. Tổng quan quy trình nghiệp vụ BPEL Tên quy trình nghiệp vụ : ThemSPBPELProcess.bpel o
72
Hình 5-2: Quy trình nghiệp vụ “Thêm sản phẩm”
73
5.1.2. Các thành phần tham chiếu 5.1.2.1. o
Partner Link : themspbpelprocess_client
o
WSDL URL : ThemSPBPELProcess.wsdl
o
Partner Link Type : ThemSPBPELProcess
o
Partner Role : (not specified)
o
My Role : ThemSPBPELProcessProvider
5.1.2.2. o
Partner Link : SanPhamTable
o
WSDL URL : SanPhamTable.wsdl
o
Partner Link Type : SanPhamTable_plt
o
Partner Role : SanPhamTable_role
o
My Role : (not specified)
5.1.3. Các hành động STT Hành động 1
receiveInput
Cài đặt - Partner link : themspbpelprocess_client - Operation : process - Variable : inputVariable
74
- Ý nghĩa: nhận giá trị đầu vào 2
Assign
Ý nghĩa : Gán giá trị đầu vào (inputVariable) cho biến (Invoke1_SanPhamTableSelect_InputVariable)
3
Invoke
- Partner link : SanPhamTable - Operation : SanPhamTableSelect - Variable : o
Input : Invoke1_SanPhamTableSelect_InputVariable
o
Output: Invoke1_SanPhamTableSelect_OutputVariable
75
- Ý nghĩa: gọi đến web service (SanPhamTable) đề thực hiện hành động truyền giá trị đầu vào (Input) để lấy về “sản phẩm” (Output). 4
Switch
- Ý nghĩa : Quyết định nhánh theo điều kiện - Điều kiện : Kiểm tra mã của “sản phẩm” cần thêm có tồn tại hay không?
4.1
Nếu “sản phẩm” đó không tồn tại
4.1.1 Assign
- Ý nghĩa : Gán giá trị đầu vào inputVariable vào Invoke2_insert_InputVariable
4.1.2
Invoke
- Partner link : SanPhamTable - Operation : insert - Variable : Invoke2_insert_InputVariable
76
- Ý nghĩa: gọi đến web service (SanPhamTable) đề thực hiện hành động thêm. 4.1.3 Assign
- Ý nghĩa : Gán giá trị cho biến kết quả (bpws:getVariableData('outputVariable','payload','/ns2:Re sponse/ns2:boolResult')) = true()
4.2
Nếu “Sản phẩm” đó đã tồn tại
4.2.1 Assign
- Ý nghĩa : Gán giá trị cho biến kết quả (bpws:getVariableData('outputVariable','payload','/ns2:Re sponse/ns2:boolResult')) = false()
5
replyOutput
- Partner link : themspbpelprocess_client - Operation : process - Variable : outputVariable
77
- Ý nghĩa: xuất giá trị kết quả Bảng 5-1: Các hành động của dịch vụ “Thêm sản phẩm”
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) Sử dụng quy trình BPEL truy xuất vào cơ sở dữ liệu. Gán 4 giá trị đầu vào (loại sản phẩm, giá thấp nhất, giá cao nhất, tên tác giả hoặc sản phẩm) để lấy về danh sách các sản phẩm.
Hình 5-3: Thành phần tổng hợp dịch vụ “Tìm kiếm nâng cao” o
Tên thành phần dịch vụ
: TimKiemNangCao
o
Exposed Service
: timkiemnangcaobpelprocess_client_ep (WebService)
o
Components
: TimKiemNangCaoBPELProcess (BPEL)
o
External References
: SanPhamTable (WebService)
5.2.1. Tổng quan quy trình nghiệp vụ BPEL Tên quy trình nghiệp vụ : TimKiemNangCaoBPELProcess.bpel o
78
Hình 5-4: Quy trình nghiệp vụ “Tìm kiếm nâng cao”
5.2.2. Các thành phần tham chiếu 5.2.2.1. o
Partner Link : timkiemnangcaobpelprocess_client
o
WSDL URL : TimKiemNangCaoBPELProcess.wsdl
o
Partner Link Type : TimKiemNangCaoBPELProcess
o
Partner Role : (not specified)
o
My Role : TimKiemNangCaoBPELProcessProvider
79
5.2.2.2. o
Partner Link : SanPhamTable
o
WSDL URL : SanPhamTable.wsdl
o
Partner Link Type : SanPhamTable_plt
o
Partner Role : SanPhamTable_role
o
My Role : (not specified)
5.2.3. Các hành động STT Hành động 1
receiveInput
Cài đặt - Partner link : timkiemnangcaobpelprocess_client - Operation : process - Variable : inputVariable
- Ý nghĩa: nhận giá trị đầu vào 2
Assign
Ý nghĩa : Gán giá trị đầu vào (inputVariable) cho biến (Invoke1_SanPhamTableSelect_InputVariable)
3
Invoke
- Partner link : SanPhamTable - Operation : SanPhamTableSelect - Variable : o
Input :
80
Invoke1_SanPhamTableSelect_InputVariable
o
Output: Invoke1_SanPhamTableSelect_OutputVariable
- Ý nghĩa: gọi đến web service (SanPhamTable) đề thực hiện hành động truyền giá trị đầu vào (Input) để lấy về danh sách các “sản phẩm” (Output). 4
Transform
- Variable : Invoke1_SanPhamTableSelect_OutputVariable - Target Variable : outputVariable - Mapper File : xsl/Transformation_1.xsl - Ý nghĩa : chuyển đổi dữ liệu từ giá trị đầu vào (Variable) đến giá trị đích (Target Variable) 81
5
replyOutput
- Partner link : timkiemnangcaobpelprocess_client - Operation : process - Variable : outputVariable
- Ý nghĩa: xuất giá trị kết quả (xuất danh sách “Sản Phẩm”) Bảng 5-2: Bảng hàng động của dịch vụ “Tìm kiếm nâng cao”
82
5.3. Thành phần dịch vụ “So Sánh Giá” (Với Amazon.com) Sử dụng quy trình BPEL truy xuất vào 2 web service (AmazonSearchService và VinabookSearchService). Gán các giá trị đầu vào (loại sản phẩm, tên sản phẩm) để lấy về kết quả so sánh giá sản phẩm của 2 trang web.
Hình 5-5: Thành phần tổng hợp dịch vụ “So sánh giá” o
Tên thành phần dịch vụ
: SoSanhGia
o
Exposed Service
: sosanhgiabpelprocess_client_ep (WebService)
o
Components
: SoSanhGiaBPELProcess (BPEL)
o
External References
: AmazonSearchService (WebService) và
VinabookSearchService (WebService)
5.3.1. Tổng quan quy trình nghiệp vụ BPEL Tên quy trình nghiệp vụ : SoSanhGiaBPELProcess.bpel o
83
Hình 5-6: Quy trình nghiệp vụ “So sánh giá”
84
5.3.2. Các thành phần tham chiếu 5.3.2.1. o
Partner Link : sosanhgiabpelprocess_client
o
WSDL URL : SoSanhGiaBPELProcess.wsdl
o
Partner Link Type : SoSanhGiaBPELProcess
o
Partner Role : (not specified)
o
My Role : SoSanhGiaBPELProcessProvider
5.3.2.2. o
Partner Link : VinabookSearchService
o
WSDL URL : LaySPTheoLoaiVaTenSPServiceWrapper.wsdl
o
Partner Link Type : VinabookSearchService
o
Partner Role : laysptheoloaivatenspExecute_ptt
o
My Role : (not specified)
5.3.2.3. o
Partner Link : AmazonSearchService
o
WSDL URL : AmazonSearchServiceWrapper.wsdl
o
Partner Link Type : AmazonSearchService
o
Partner Role : Service1Soap
o
My Role : (not specified)
85
5.3.3. Các hành động STT Hành động 1
receiveInput
Cài đặt - Partner link : sosanhgiabpelprocess_client - Operation : process - Variable : inputVariable
- Ý nghĩa: nhận giá trị đầu vào 2
Assign
Ý nghĩa : Gán giá trị đầu vào (inputVariable) cho biến (Invoke1_laysptheoloaivatenspExecute_InputVariable) và (Invoke2_GetProductPriceByName_InputVariable)
3
Invoke
- Partner link : VinabookSearchService - Operation : laysptheoloaivatenspExecute - Variable : o
Input : Invoke1_laysptheoloaivatenspExecute_InputVariab le
o
Output: Invoke1_laysptheoloaivatenspExecute_OutputVaria ble 86
- Ý nghĩa: gọi đến web service (VinabookSearchService) đề thực hiện hành động truyền giá trị đầu vào (Input) để lấy về “sản phẩm” (Output). 4
Invoke
- Partner link : AmazonSearchService - Operation : GetProductPriceByName - Variable : o
Input : Invoke2_GetProductPriceByName_InputVariable
o
Output: Invoke2_GetProductPriceByName_OutputVariable
87
- Ý nghĩa: gọi đến web service (AmazonSearchService) đề thực hiện hành động truyền giá trị đầu vào (Input) để lấy về “sản phẩm” (Output). 5
Switch
- Ý nghĩa : Quyết định nhánh theo điều kiện - Điều kiện : Kiểm tra giá của “sản phẩm” trên Amazon.com có >= giá trên Vinabook hay không?
5.1 5.1.1
Nếu giá của “sản phẩm” trên Amazon.com >= giá trên Vinabook Switch
- Ý nghĩa : Quyết định nhánh theo điều kiện - Điều kiện : Kiểm tra giá của “sản phẩm” trên Amazon.com có > giá trên Vinabook hay không?
5.1.1.1 Nếu giá của “sản phẩm” trên Amazon.com > giá trên Vinabook Transform
- Variable : Invoke2_GetProductPriceByName_OutputVariable và Invoke1_laysptheoloaivatenspExecute_InputVariable - Target Variable : outputVariable - Mapper File : xsl/Transformation_1.xsl - Ý nghĩa : chuyển đổi dữ liệu từ giá trị đầu vào (Variable) đến giá trị đích (Target Variable)
5.1.1.2 Nếu giá của “sản phẩm” trên Amazon.com = giá trên Vinabook Transform
- Variable : Invoke2_GetProductPriceByName_OutputVariable và
88
Invoke1_laysptheoloaivatenspExecute_InputVariable - Target Variable : outputVariable - Mapper File : xsl/Transformation_2.xsl - Ý nghĩa : chuyển đổi dữ liệu từ giá trị đầu vào (Variable) đến giá trị đích (Target Variable) 5.2 5.2.1
Nếu giá của “sản phẩm” trên Amazon.com < giá trên Vinabook Transform
- Variable : Invoke2_GetProductPriceByName_OutputVariable và Invoke1_laysptheoloaivatenspExecute_InputVariable - Target Variable : outputVariable - Mapper File : xsl/Transformation_3.xsl - Ý nghĩa : chuyển đổi dữ liệu từ giá trị đầu vào (Variable) đến giá trị đích (Target Variable)
6
replyOutput
- Partner link : sosanhgiabpelprocess_client - Operation : process - Variable : outputVariable
- Ý nghĩa: xuất giá trị kết quả Bảng 5-3: Bảng hàng động của dịch vụ “So sánh giá”
89
Trong chương này chúng ta đã có cái nhìn tổng quát về cách tổng hợp các
thành phần dịch vụ trong kiến trúc hướng dịch vụ và hiểu rõ các tính năng của phần mềm Oracle JDeveloper Studio để tổng hợp, lắp ráp các thành phần lại với nhau .
Bước tiếp theo của pha tổng hợp là pha triển khai và quản lý. Để thực hiện
pha này chúng ta cần sự hỗ trợ của phần mềm Oracle WebLogic để quản lý ứng dụng trong môi trường thực tế. Chương 6 sẽ trình bày rõ vấn đề này.
90
Chương 6
TRIN KHAI VÀ QUN LÝ NG DNG VINABOOK
Sau giai đoạn tổng hợp lắp ráp vào ứng dụng. Bước kế tiếp là triển khai ứng
dụng vào môi trường thực thi . Trong chương này trình bày 2 phần:
Triển khai ứng dụng sử dụng phần mềm Oracle JDeveloper.
Khảo sát ứng dụng dưới các vai trò: o
Guest
o
Member (Thành viên)
o
Quản trị (Admin)
Quản lý ứng dụng với Oracle WebLogic Enterprise Manager
Nội dung của chương 6 trình bày tập trung chủ yếu vào việc triển khai ứng dụng vào môi trường thực thi và quản lý nó ở mức tổng quan nhất có thể. Phần khảo sát ứng dụng chỉ chỉ trình bày một phần nhỏ của ứng dụng. Nội dung chi tiết xin được trình bày trong phần Phụ lục D. Tính năng nổi bật của ứng dụng là Thanh toán bằng Paypal và So Sánh
Giá với Các BookStore khác trên mạng. Sự so sánh giá này mang lại tiện ích to lớn cho khách hàng , giúp cho khách hàng có cơ hội mua sách với giá rẻ. Thông tin Sách lấy thông qua dịch vụ hỗ trợ của Amazon trên website : www.amazon.com
6.1. Triển khai ứng dụng Ứng dụng VINABOOK sau khi được tổng hợp, lắp ráp sẽ được triển khai vào môi trường thực thi WebLogic. Chi tiết về triển khai ứng dụng xin được trình bày trong phụ lục D. Ở đây chúng em chỉ trình bày một số Use case chính của ứng dụng.
6.2. Khách hàng 6.2.1. Use Case “Đăng Nhập” Để thực hiện chức năng đăng nhập, ta làm theo bước sau: 91
- Trên trang chủ, ta click vào nút “Đăng Nhập”
Hình 6-1: Đăng nhập ứng dụng
- Trong màn hình “ĐĂNG NHẬP” , ta gõ tên tài khoản và mật khẩu của khách hàng.
Hình 6-2: Giao diện đăng nhập
- Sau đó bấm nút Đăng nhập. 92
6.2.2. Use Case “Quản lý tài khoản” 6.2.2.1. Use-Case “Mở tài khoản” - Để thực hiện chức năng mở tài khoản ta chọn vào nút “Đăng ký” - Xuất hiện màn hình đăng ký như sau: o
Điền đầy đủ thông tin cần thiết vào.
Hình 6-3: Giao diện đăng kí
- Màn hình đăng ký thành công cho biết người dùng đã đăng ký thành công
93
Hình 6-4: Giao diện thông báo đăng ký thành công
6.2.2.2. Use-Case “Cập nhật tài khoản” - Sau khi đăng nhập thành công, để cập nhật tài khoản ta click vào “ Thay đổi thông tin cá nhân”. - Màn hình cập nhật tài khoản xuất hiện như sau
Hình 6-5: Giao diện chỉnh sửa thông tin cá nhân
- Chọn vào nút Save để thực hiện cập nhật lại tài khoản. - Màn hình thông báo cập nhật tài khoản thành công 94
Hình 6-6: Giao diện thông báo chỉnh sửa thành công
6.2.3. Use Case “Xem Danh Mục Sản Phẩm” - Màn hình “Xem Danh Mục Sản Phẩm” hiển thị Sản phẩm theo từng danh mục cho người dùng xem khi có nhu cầu.
Hình 6-7: Giao diện danh mục sản phẩm
6.2.4. Use Case “Tìm kiếm” - Trước tiên ta xét chức năng tìm kiếm cơ bản, chức năng này cho phép người dùng tìm kiếm sản phẩm có trong hệ thống theo lọc tiêu chí Tên sản phẩm.
95
Hình 6-8: Giao diện tìm kiếm sản phẩm
6.2.4.1. Chi tiết Use Case “Tìm kiếm Cơ Bản” - Gõ thông tin cần tìm kiếm vào ô text box sau đó bấm vào nút Tìm. - Giả sử ta gõ nội dung cần tìm là “Java”, kết quả tìm kiếm xuất hiện như sau:
Hình 6-9: Giao diện tìm kiếm cơ bản
96
6.2.4.2. Chi tiết Use Case “Tìm kiếm Nâng Cao” - Use-Case “Tìm kiếm Nâng Cao” cho phép người dùng tìm kiếm sản phẩm theo nhiều tiêu chí khác nhau. - Ta bấm vào nút “ Tìm Kiếm Nâng Cao” sau đó màn hình xuất hiện như sau: - Gõ thông tin cần tìm kiếm vào ô text box sau đó bấm vào nút Tìm.
Hình 6-10: Tìm kiếm nâng cao
- Kết quả tìm kiếm xuất hiện như sau:
97
Hình 6-11: Kết quả tìm kiếm nâng cao
6.2.4.3. Chi tiết Use Case “Tìm kiếm Theo Danh Mục” - Use-Case “Tìm kiếm Theo Danh Mục” cho phép người dùng tìm kiếm Sản phẩm theo danh mục khác nhau, và sau đó hệ thống sẽ liệt kê ra sản phẩm tương ứng với danh mục người dùng đã chọn.
98
Hình 6-12: Giao diện tìm kiếm theo danh mục
- Chẳng hạn, người dùng chọn vào danh mục “Sách Tin Học”, kết quả tìm kiếm xuất hiện như sau:
Hình 6-13: Kết quả tìm kiếm theo danh mục
99
6.2.5. Use Case “Quản Lý Đặt Hàng” 6.2.5.1. Use-Case “Đưa Sản Phẩm vào Giỏ Hàng” Để thực hiện chức năng mua hàng, ta làm theo các bước sau: - Chọn sản phẩm cần mua và đưa vào giỏ hàng. - Tìm sản phẩm cần mua
Hình 6-14: Đưa vào giỏ hàng
- Chọn vào nút “Đưa vào giỏ hàng”. - Màn hình giỏ hàng của bạn xuất hiện như sau:
100
Hình 6-15: Giao diện giỏ hàng
- Ta nhập số lượng sản phẩm cần mua tại ô “ Số Lượng” , ví dụ nhập là 9 sản phẩm chẳng hạn. - Sau đó chọn vào nút “ Cập nhật” - Màn hình của bạn tự động cập nhật lại tình trạng của giỏ hàng
Hình 6-16: Cập nhật giỏ hàng
101
- Để tiếp tục mua sản phẩm khác thì ta chọn nút “Tiếp tục mua hàng”
- Chương trình trả về các chức năng tìm kiếm để lựa chọn các sản phẩm khác cần mua. - Các thao tác tương tự, ta chọn thêm 2 sản phẩm khác nữa vào giỏ hàng kết quả như sau:
Hình 6-17: Tiếp tục mua hàng
- Sau khi kiểm tra giỏ hàng đã đầy đủ những sản phẩm và số lượng sản phẩm cần mua, sau đó chọn nút Thanh toán. - Ghi chú: Thao tác thanh toán thì khách hàng phải tài khoản trong PayPal.
6.2.5.2. Use-Case “Thanh toán” - Để thanh toán ta chọn vào nút “ Thanh Toán”. Màn hình xuất hiện như sau:
102
Hình 6-18: Thanh toán
- Màn hình thanh toán xuất sau khi chúng ta chọn nút Thanh toán để thực hiện thanh toán tiền mua sản phẩm.
Hình 6-19: Giao diện Sandbox PayPal
- Màn hình các tài khoản dùng để thanh toán
103
Hình 6-20: Màn hình tài khoản PayPal
- Màn hình đăng nhập với tài khoản của PayPal để thực hiện thanh toán
Hình 6-21: Đăng nhập vào hệ thống PayPal
- Màn hình số tiền trước khi thực hiện thanh toán
104
Hình 6-22: Tài khoản trước khi mua sản phẩm
- Màn hình xác nhận để thực hiện thanh toán
Hình 6-23: Màn hình xác nhận thanh toán
- Màn hình thông báo thanh toán thành công 105
Hình 6-24: Màn hình thông báo thanh toán thành công
6.2.5.3. Use-Case “Lưu giỏ hàng” - Để lưu sản phẩm vào giỏ hàng ta chọn vào nút “Save”. Màn hình xuất hiện như sau:
Hình 6-25: Lưu giỏ hàng
- Để Xem kết quả ta vào xem trong bảng Đơn Đặt hàng và bảng “Tình Trạng Đơn Đặt hàng” 106
Hình 6-26: Kết quả lưu giỏ hàng
6.2.5.4. Use-Case “Xóa Sản phẩm trong giỏ” - Màn hình trước khi xóa
Hình 6-27: Xóa sản phẩm
- Để xóa sản phẩm ta làm như sau:
Chọn vào ô checkbox của sản phẩm mà chúng ta muốn xóa, rồi sau đó bấm vào nút Xóa 107
Hình 6-28: Chọn sản phẩm trong giỏ hàng để xóa
- Màn hình sau khi xóa
Hình 6-29: Màn hình sau khi xóa
6.2.6. Use Case “Xem Chi Tiết Sản Phẩm” - Hệ thống cho phép khách hàng xem chi tiết sản phẩm. - Để xem chi tiết sản phẩm, ta chọn vào nút “Xem Chi Tiết” 108
Hình 6-30: Xem chi tiết sản phẩm
- Màn hình Xem chi Tiết Sản Phẩm xuất hiện như sau:
Hình 6-31: Giao diện chính ‘Chi tiết sản phẩm’
6.2.7. Use Case “Xem sản phẩm bán chạy” - Để Xem sản phẩm bán chạy ta chọn vào từng danh mục Sản phẩm , sau đó chọn sản phẩm bán chạy theo từng danh mục sản phẩm 109
- Danh Mục Sách Bán chạy
Hình 6-32: Giao diện sản phẩm bán chạy
6.2.8. Use Case “Xem sản phẩm mới” - Danh Mục Sách Mới
Hình 6-33: Giao diện sản phẩm mới
110
6.2.9. Use Case “So Sánh Giá” - Để so sánh giá với các BookStore khác ta chọn vào nút “So Sánh Giá”
Hình 6-34: So sánh giá
- Màn hình so sánh giá xuất hiện như sau:
Hình 6-35: Giao diện ‘So sánh giá’
111
- Chương trình sẽ giá sách đó từ trang Amazon và so sánh giá sách của trang VinaBook. - Để xem chi tiết Giá Sách ta chọn nút “ Xem”
Hình 6-36: Xem chi tiết so sánh giá
- Màn hình xem chi tiết xuất hiện như sau:
Trang VinaBook
Hình 6-37: Chi tiết so sánh giá Vinabook
112
Trang Amazon
Hình 6-38: Chi tiết so sánh giá Amazon
6.3. Admin (Quyền quản trị) 6.3.1. Use-Case Quản Lý Tài Khoản - Giao diện của trang Admin như sau
Hình 6-39: Giao diện quản lý của Admin
6.3.1.1. Chi Tiết Use-Case “Thêm Tài Khoản” - Màn hình thêm mới tài khoản 113
Hình 6-40: Thêm tài khoản
- Sau đó chọn nút “Insert” kết quả thông báo thành công - Kết quả được thêm vào thành công như sau
Hình 6-41: Kết quả sau khi thêm tài khoản
6.3.1.2. Chi Tiết Use-Case “Cập nhật Tài Khoản” - Màn hình cập nhật” Tài khoản” như sau:
114
Hình 6-42: Cập nhật tài khoản
- Sau đó chọn vào nút “Update” để cập nhật tài khoản, kết quả thông báo cập nhật thành công
Hình 6-43: Thông báo cập nhật tài khoản thành công
6.3.1.3. Chi Tiết Use-Case “Xóa Tài Khoản” - Để xóa tài khoản ta chọn vào biểu tưởng xóa
Hình 6-44: Xóa tài khoản
- Màn hình thông báo xóa thành công như sau: 115
Hình 6-45: Thông báo xóa thành công
6.3.2. Chi Tiết Use-Case “Quản Lý Sản Phảm” - Màn hình trang quản lý sản phẩm
Hình 6-46: Giao diện quản lý sản phẩm
6.3.2.1. Chi Tiết Use-Case “Thêm Sản Phảm” - Để thêm một sản phầm mới ta làm như sau
Hình 6-47: Thêm sản phẩm
116
-
Sau đó chọn vào nút Insert
-
Màn hình thông báo thêm thành công như sau
Hình 6-48: Thông báo thêm sản phẩm thành công
6.3.2.2. Chi Tiết Use-Case “Xóa Sản Phảm” - Để xóa sản phẩm ta chọn vào biểu tưởng xóa sau đó bấm nút “Delete” để xóa Sản phẩm. - Màn hình Xóa sản phẩm.
Hình 6-49: Xóa sản phẩm
- Màn hình thông báo cập nhật thành công
Hình 6-50: Thông báo thêm sản phẩm thành công
117
6.4. Quản lý ứng dụng với WebLogic - Màn hình sau cho thấy chúng ta đã hoàn tất việc deploy ứng dụng .
Hình 6-51: Deployment – Log thông báo việc deploy đã thành công
- Sau khi Deploy đã hoàn tất chúng ta có thể tiến hành kiểm tra và quản lý ứng dụng. 1. Mở Enterprise Manager theo link sau: http://localhost:7001/em. 2. Đăng nhập (nếu bạn làm theo mặc định cài đặt ở trên thì username/password là weblogic/welcome1). 3. Click vào package mà chúng ta muốn xem (chẳng hạn ta chọn vào package
layThongTinNhanVien) trong thư mục SOA ở vùng bên trái cây thư mục:
118
Hình 6-52: WebLogic Enterprise Manager
4. Để kiểm tra ứng dụng ta chọn vào nút “Test”
119
Hình 6-53: Kiểm tra dịch vụ
5. Nó mở ra trang test mà bạn có thể dùng để kích hoạt một ví dụ của ứng dụng tổng hợp layThongTinNhanVien.
Hình 6-54: Nhập thông tin để kiểm tra
6. Trong vùng maNhanVien, điền vào mã nhân viên. Nhập 1 vào phần
maNhanVien. 120
7. Click vào nút Test Web Service. 8. Bạn sẽ có được giá trị trả về từ dịch vụ, đó là thông tin của nhân viên. Hình dưới là giá trị xuất ra của nhân viên có mã nhân viên là 1:
Hình 6-55: Chọn hình thức xem
9. Click Launch Message Flow Trace để xem chi tiết của message flow cho ví dụ ứng dụng tổng hợp của bạn. Nó mở ra một cửa sổ mới với flow trace.
Hình 6-56: Test thành công
121
Bạn đã hoàn tất việc kiểm tra ứng dụng tổng hợp thông qua Oracle WebLogic.
Như vậy chúng ta đã hoàn thành xây dựng một ứ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ụ của Oracle.
Chương cuối cùng sẽ nêu lên các kết quả đã đạt được trong quá trình thực
hiện đề tài và hướng phát triển trong tương lai.
122
Chương 7
Kết luận Chương này sẽ trình bày về những kết quả đạt được và hướng phát triển
của đề tài trong tương lai.
(Nguồn www.modernanalyst.com)
7.1. Các kết quả đạt được 7.1.1. Về mặt tìm hiểu kiến trúc hướng dịch vụ. - Tìm hiểu được cơ sở nền tảng kiến trúc hướng dịch vụ.
Hiểu được tính chất cơ bản của cơ sở kiến trúc hướng dịch vụ.
Tìm hiểu được một cách rõ ràng các ưu điểm của SOA.
- Tìm hiểu được nền tảng kiến trúc hướng dịch vụ Oracle.
Tìm hiểu được cách sử dụng các phần mềm của Oracle hỗ trợ cho từng pha trong chu kỳ sống của SOA. o
Oracle SOA Suite : hỗ trợ cho việc xây dựng, triển khai và quản lý ứng dụng SOA. 123
Oracle JDeveloper Studio : hỗ trợ viết mã nguồn, thiết kế quy
o
trình nghiệp vụ ( như quy trình BPEL), thiết kế Use-Case, thiết kế sơ đồ lớp ở mức phân tích, thiết kế cơ sở dữ liệu và triển khai ứng dụng . o
Oracle WebLogic : hỗ trợ cho pha triển khai và quản lý .
o
Oracle Business Activity Monitoring : hỗ trợ cho việc quản lý các tác vụ. Oracle SQL * Plus : hỗ trợ viết câu lệnh SQL để tạo và quản lý cơ
o
sở dữ liệu. Oracle SQL Developer : hỗ trợ viết câu lệnh SQL để tạo và quản
o
lý cơ sở. So sánh nền tảng kiến trúc hướng dịch vụ Oracle và kiến trúc hướng
dịch vụ IBM . 7.1.2. Về mặt phát triển ứng dụng - 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. - Xây dựng thành công 48 dịch vụ để phục cho ứng dụng trong đó có 4 dịch vụ tổng hợp: •
So sánh giá: tổng hợp từ 2 dịch vụ tìm kiếm sản phẩm của vinabook và dịch vụ tìm kiếm sản phẩm của amazon.com.
•
Quản lý khách hàng: tổng hợp từ 3 dịch vụ là thêm, xóa và cập nhật khách hàng.
•
Quản lý sản phẩm: tổng hợp từ 3 dịch vụ là thêm, xóa và cập nhật sản phẩm.
•
Quản lý tin tức: tổng hợp từ 3 dịch vụ là thêm, xóa và cập nhật tin tức.
- Tìm hiểu được kiến trúc Hibernate để phục vụ xây dựng ứng dụng. - Tìm hiểu được kiến trúc Spring framework để phục vụ xây dựng ứng dụng. - Xây dựng thành công ứng dụng web trên môi trường lập trình Java 124
7.2. Hướng phát triển của đề tài 7.2.1. Về mặt tìm hiểu kiến trúc hướng dịch vụ - Nghiên cứu sâu về các phần mềm Oracle hỗ trợ cho việc phát triển các giải pháp dựa trên kiến trúc hướng dịch vụ. - Nghiên cứu nâng cao về mô hình hướng dịch vụ của Oracle. - Tìm hiểu sâu hơn về lựa chọn các kịch bản SOA cho từng yêu cầu cụ thể và phát triển các giải pháp dựa trên kiến trúc hướng dịch vụ Oracle. - Hiểu rõ việc thiết kế kiến trúc ứng dụng với Oracle SOA Suite. - Hiểu rõ kiến trúc hệ quản trị cơ sở dữ liệu của Oracle.
7.2.2. Về mặt phát triển ứng dụng Hỗ trợ nhiều phương thức thanh toán cho từng đối tượng khách hàng cụ thể •
khi mua sản phẩm. •
Hoàn thiện và cài đặt thêm các chức năng còn thiếu cho ứng dụng Vinabook.
•
Tìm hiểu và nâng cấp việc so sánh giá với nhiều loại sản phẩm và nhiều Store Online.
•
Nghiên cứu để xử lý vấn đề bảo mật cho ứng dụng.
125