MỤC LỤC
{ LỜI CẢM ƠNi
DANH SÁCH CHỮ VIẾT TẮTiii
DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANHvii
MỤC LỤCviii
DANH MỤC CÁC HÌNHxi
TÓM TẮTxiii
Tên đề tàixiii
Nội dung nghiên cứu. xiii
Hướng tiếp cận và giải quyết vấn đề. xiii
Một số kết quả đạt được. xiv
1.Về phần cơ sở lý thuyếtxiv
Đã tìm hiểu và nắm bắt được các vấn đề sau:xiv
2.Về cơ sở thực hành. xiv
CHƯƠNG 1. MỞ ĐẦU1
1.1. LÝ DO CHỌN ĐỀ TÀI1
1.2. MỤC TIÊU ĐỀ TÀI1
1.3. PHẠM VI NGHIÊN CỨU1
CHƯƠNG 2. TỔNG QUAN3
2.1. ĐẶT VẤN ĐỀ3
2.2. TÌNH HÌNH ỨNG DỤNG ESB TRÊN THẾ GIỚI5
2.3. KẾT LUẬN5
CHƯƠNG 3. NỘI DUNG NGHIÊN CỨU6
3.1. KIẾN TRÚC HƯỚNG DỊCH VỤ VÀ ỨNG DỤNG TRONG CHÍNH PHỦ ĐIỆN TỬ6
3.1.1. Kiến Trúc Hướng Dịch Vụ. 6
3.1.2. Giới thiệu chính phủ điện tử. 7
3.2. CÔNG NGHỆ ESB (ENTERPRISE SERVICE BUS). 8
3.2.1. Tiền đề của ESB9
3.2.2. Hướng tiếp cận ESB9
3.2.3. Các đặt tính của một hệ thống nền tảng tích hợp ESB10
3.3. CÔNG NGHỆ JBOSS-ESB15
3.3.1. Giới thiệu chung. 15
3.3.2. Message và Service. 17
3.3.3. JBoss Web Service. 20
3.4. CÁC VẤN ĐỀ VÀ GIẢI PHÁP. 22
3.4.1. Bất đồng bộ. 22
3.4.2. Thiết lập hệ thống Server Farm23
3.4.3. Xác thực. 25
3.4.4. Bảo mật và toàn vẹn dữ liệu. 28
3.4.5. Bố trí hệ thống queue, định tuyến, thực thi jBPM . 31
3.4.6. Dùng jBPM xử lý dịch vụ phức. 34
3.5. BÀI TOÁN ỨNG DỤNG37
3.5.1. Phát biểu bài toán. 37
3.5.2. Các chức năng cần xây dựng. 37
3.5.3. Quy trình đăng ký Doanh Nghiệp Tư Nhân. 38
3.5.4. Sơ đồ mô tả quy trình đăng ký Doanh Nghiệp Tư Nhân. 41
3.5.5. Mô hình triển khai hệ thống. 42
3.5.6. Mô hình Usecase. 44
3.5.6.1. Sở Kế hoạch đầu tư. 44
3.5.6.2. Phần mềm lõi50
3.5.7. Thiết kế cơ sở dữ liệu. 55
3.5.8. Chức năng định tuyến. 62
3.5.9. Chức năng xác thực và bảo mật69
3.5.10. Chức năng bảo toàn dữ liệu.73
3.5.11. Chức năng quản trị của hệ thống Phần mềm lõi84
3.5.12. Chức năng ghi nhật kí của hệ thống Phần mềm lõi88
CHƯƠNG 4. KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN91
4.1. KẾT QUẢ ĐẠT ĐƯỢC91
4.2. HƯỚNG PHÁT TRIỂN92
TÀI LIỆU THAM KHẢO93
PHỤ LỤC1
LAB 1 - CÀI ĐẶT JBOSS AS & JBOSS ESB1
1.Mục tiêu. 1
2.Cài đặt Jboss Server. 1
3.Cấu hình JBoss server cho Eclipse. 9
4.Cấu hình JBoss Server.11
5.Tạo ứng dụng helloworld, deploy và run.14
LAB 2 - CÀI ĐẶT MỘT WEB SERVICE TRÊN JBOSS. 23
1.Yêu cầu bài toán:23
2.Các công việc cần phải làm24
3.Tiến hành. 24
LAB 3 - KẾT NỐI ESB VỚI ENDPOINT WEBSERVICE32
1.Giới thiệu về lớp SOAPProcessor:32
2.Cài đặt project ESB kết nối với Webservice EndPoint:33
LAB 4 – JMS. 49
1.Khái niệm:49
2.Mô hình:49
VÍ DỤ ỨNG DỤNG JMS Point - To - Point MODEL52
VÍ DỤ ỨNG DỤNG JMS Publish-and-Subscribe MODEL53
LAB 5 - MATH SERVICE56
1.GIỚI THIỆU BÀI TOÁN56
3.CẤU HÌNH MÔI SERVER & IDE56
4.QUY TRÌNH THỰC HIỆN56
LAB 6 - CÀI ĐẶT ECLIPSE JBPM GRAPHIC PROCESS DESIGNER (ECLIPSE GPD)65
1.CẤU HÌNH CÀI ĐẶT65
179 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3051 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Giải pháp phần mềm lõi cho mô hình chính phủ điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
message lại trang thái ban đầu với message gốc được
lưu bên trong body.
Bước 9 : Giải mã dữ liệu bên trong body với khóa bí mật ứng với phiên bản của
khóa được lưu trong body của message.
Bước 10 : Băm dữ liệu sau khi mã hóa ra thành giá trị băm Hash – X1, đồng thời
lưu giá trị này cũng với dữ liệu vào bên trong body của message.
Bước 11 : Mã hóa dữ liệu là body có chứa Hash – X1 và dữ liệu với khóa bí mật
hiện tại thống nhất giữa đơn vị và hệ thống lõi.
Bước 12 : Đóng gói message với phiên bản của khóa được dùng để mã hóa dữ
liệu cùng với dữ liệu đã được mã hóa bên trong body của message. Sau đó gửi
message đến đơn vị như ở bước 1.
Lúc này hệ thống đơn vị sẽ giải mã được dữ liệu với khóa hiện tại được thống nhất
với hệ thống lõi.
3.5.10.2. Cơ chế giải mã và mã hóa của hệ thống phần mềm lõi.
Hệ thống lõi sẽ thực hiện lưu trữ lại các khóa bí mật đã thống nhất với đơn vị trước
đó, nghĩa là ngoài khóa bí mật hiện tại đang sử dụng, còn lưu trữ các khóa cũ trước
đó. Hệ thống phần mềm lõi sẽ giải mã dữ liệu thông qua khóa ứng với giá trị của
version được lưu trữ bên trong message. N gược lại quá trình mã hóa dữ liệu tại hệ
thống lõi sẽ được dựa trên khóa bí mật thống nhất với đơn vị hiện tại đang sử dụng,
nghĩa là khóa mới nhất được thống nhất. Cơ chế này giúp cho quá trình giãi mã
tránh được trường hợp không phù hợp về khóa do hệ thống lõi luôn lưu trữ lại các
khóa đã thống nhất trước đó. Và quá trình mã hóa luôn sử dụng khóa mới nhất để
mã hóa, điều này như là một sự đào thải dần dần các khóa cũ, không phải là loại bõ
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 79 SVTH: Vinh, Khương, Thông, Trung, Thúy
triệt để các khóa cũ khi đã có khóa mới mà là các quá trình mã hóa dữ liệu luôn sử
dụng các khóa mới, tuy nhiên dữ liệu có thể được mã hóa bằng khóa cũ cho nên khi
giải mã dựa và phiên bản của khóa.
Cơ chế của bộ giải mã và mã hóa dữ liệu ở hệ thống lõi có thể được tóm tắt như sau:
luôn mã hóa bằng khóa bí mật mới nhất và giải mã bằng khóa bí mật ứng với phiên
bản của khóa được chỉ định bên trong message.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 80 SVTH: Vinh, Khương, Thông, Trung, Thúy
Mô hình cơ chế của bộ phận giải mã và mã hóa dữ liệu tại hệ thống lõi.
Chi tiết của cơ chế như sau :
Quá trình giải mã dữ liệu :
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 81 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 1 : Đơn vị gửi message tới hệ thống lõi. Dữ liệu gửi đi sẽ được băm ra
thành giá trị Hash – X1 và được đính kèm cũng với dữ liệu gốc. Tiếp theo cả gói
dữ liệu và giá trị Hash – X1 được mã hóa bằng khóa hiện tại mà hệ thống đang
thống nhất sử dụng, đây là cặp khóa mới nhất được thống nhất giữa đơn vị và hệ
thống lõi.
Bước 2 : Hệ thống lõi nhận được message. Lấy phiên bản của khóa được dùng để
mã hóa dữ liệu bên trong và tìm kiếm khóa bí mật ứng với phiên bản khóa được
lưu bên trong message. Thực hiện giải mã gói dữ liệu với khóa trên. Sau khi giải
mã thu được giá trị Hash – X1 và dữ liệu.
Bước 3 : Thực hiện băm dữ liệu đã được giải mã ở bước trước. Thu được giá trị
Hash – X2. Hash – X2 và Hash – X1 được dùng để kiểm tra tính toàn vẹn dữ
liệu.
Bước 4 : Kiểm tra tính toàn vẹn dữ liệu. So sánh giá trị của Hash – X1 và Hash
– X2. N ếu giống nhau, dữ liệu toàn vẹn.
Quá trình mã hóa dữ liệu trước khi gửi đi :
Bước 5 : Băm dữ liệu ra thành giá trị Hash – X1. Đóng gói giá trị Hash – X1 và
dữ liệu vào body của message.
Bước 6 : Mã hóa gói dữ liệu với khóa bí mật đã thống nhất và hiện tại đang sử
dụng cho đơn vị được gửi đến. Được dữ liệu đã mã hóa.
Bước 7 : Đóng gói dữ liệu đã được mã hóa với phiên bản của khóa bí mật được
dùng để mã hóa dữ liệu trước đó vào trong body của message.
Bước 8 : Gửi message đến hệ thống của đơn vị.
Khi hệ thống lõi gửi dữ liệu đi, dữ liệu sẽ được mã hóa bằng khóa hiện tại thống
nhất giữa hệ thống lõi và đơn vị. Điều này đảm bảo cơ chế đào thải khóa nhưng vấn
đảm bảo dữ liệu được giải mã thông qua việc sử dụng các khóa cũ.
3.5.10.3. Cơ chế của bộ giải mã và mã hóa tại hệ thống của đơn vị
Hệ thống của đơn vị sẽ lưu danh sách các khóa đã thống nhất trước đó trên bộ nhớ
và hoàn toàn không có quá trình lưu trữ lại trong cơ sở dữ liệu, mục đích của việc
lưu trữ này để đảm bảo message có thể được giải mã thông qua version trong trường
hợp hệ thống lõi không giải mã được yêu cầu do đơn vị gửi lên và yêu cầu xác thực
lại. Sau khi xác thực, đơn vị phải phục hồi lại message ban đầu và giải mã dữ liệu đã
mã hóa trước đó, tiếp theo sẽ mã hóa dữ liệu bằng khóa bí mật mới thống nhất mới.
Và gửi message trở lại hệ thống lõi.
Cơ chế của bộ mã hóa và giải mã ở đơn vị có thể được tóm tắt như sau : quá trình
mã hóa và giải mã luôn sử dụng cặp khóa hiện hiện tại. N hưng để bảo toàn dữ liệu
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 82 SVTH: Vinh, Khương, Thông, Trung, Thúy
trong trường hợp sau khi chứng thực lại, lúc này cần phải sử dụng khóa bí mật cũ để
giải mã dữ liệu và mã hóa lại bằng khóa mới.
Mô hình mã hóa và giải mã tại đơn vị.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 83 SVTH: Vinh, Khương, Thông, Trung, Thúy
Chi tiết cơ chế như sau :
Giai đoạn nhận dữ liệu và mã hóa dữ liệu.
Bước 1 : Hệ thống lõi gửi message đã được mã hóa cũng với phiên bản của khóa
đến đơn vị.
Bước 2 : Đơn vị nhận được message, trước khi thực hiện giải mã dữ liệu hệ
thống thực hiện kiểm tra phiên bản của khóa bí mật dùng để mã hóa dữ liệu được
lưu bên trong body của message của đồng nhất với phiên bản khóa đang sử dụng
ở hệ thống của đơn vị hay không. N ếu đồng nhất, sử dụng khóa hiện tại đang sử
dụng để giải mã dữ liệu. Trong trường hợp phiên bản khóa không đồng nhất,
nghĩa là giữa hệ thống của đơn vị và phần mềm lõi đã có sự bất đồng bộ về khóa
bí mật, cần phải thực hiện xác thực lại, nhưng phải bảo toàn dữ liệu. Trước khi
gửi message đi với yêu cầu AUTHEN TICATE đơn vị sẽ phải lưu toàn bộ
message bao gồm cả header và body và body của chính message đó, tiếp theo sẽ
thay đổi kiểu message trở thành REAUTHEN TICATE. Đơn vị sẽ gửi message
đó ngược trở lại hệ thống lõi với kiểu message được thay đổi lại với yêu cầu xác
thực.
Sau các bước xác thực, hệ thống lõi gửi message đó về đơn vị với kiểu message
là thông báo xác thực thành công. Lúc này đơn vị sẽ thực hiện phục hồi message
ban đầu lại với từ message được lưu trong body trước đó. Và gửi message trở lại
hệ thống lõi.
Bước 3 : Lấy khóa bí mật ứng với phiên bản khóa được lưu bên trong message
và giải mã. Sau khi giải mã thu được Hash – X1 và dữ liệu.
Bước 4 : Băm dữ liệu đã được giải hóa thành Hash – X2.
Bước 5 : Kiểm tra tính toàn vẹn dữ liệu. So sánh giá trị Hash – X1 và Hash – X2.
N ếu giống nhau, dữ liệu toàn vẹn.
Giai đoạn mã hóa dữ liệu trước khi gửi gửi đi.
Bước 6: Băm dữ liệu ra thành giá trị Hash – X1.
Bước 7: Đóng gói dữ liệu và giá trị Hash – X1. Thực hiện mã hóa gói dữ liệu với
khóa bí mật đã thống nhất và hiện tại đang sử dụng. Được dữ liệu đã mã hóa.
Bước 8: Đóng gói dữ liệu và giá trị Hash – X1 đã được mã hóa và phiên bản của
khóa được dùng để mã hóa vào bên trong body của message.
Bước 9: Gửi message đến hệ thống lõi.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 84 SVTH: Vinh, Khương, Thông, Trung, Thúy
3.5.11. Chức năng quản trị của hệ thống Phần mềm lõi
Chức năng quản trị của hệ thống Phần mềm lõi cho phép người điều hành quản lý
thông tin các kết nối trong hệ thống thông qua giao diện Web. N gười quản trị có thể:
Quản lý đơn vị: chỉnh sửa thông tin kết nối đến đơn vị.
Quản lý dịch vụ: tạo mới, xoá dịch vụ, sửa thông tin và quy định đơn
vị xử lý dịch vụ.
3.5.11.1. Quản lý đơn vị
Địa chỉ kết nối tại các đơn vị có thể không cố định. Do đó, khi địa chỉ tại đơn vị thay
đổi thì hệ thống Phần mềm lõi cần phải cập nhật lại địa chỉ kết nối.
Đối với đơn vị cung cấp dịch vụ JMS:thay đổi địa chỉ JN P(ProviderURL), thay đổi
Queue Gateway nhận thông điệp.
Đối với đơn vị cung cấp dịch vụ Web Service: Thay đổi địa chỉ WSDL của đơn vị
cung cấp Web Service.
Quản lý danh sách các đơn vị:
Hình 3-39 Quản lý danh sách các đơn vị
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 85 SVTH: Vinh, Khương, Thông, Trung, Thúy
Xem thông tin chi tiết của đơn vị:
Hình 3-40 Thông tin chi tiết của đơn vị
Chỉnh sửa thông tin kết nối đến đơn vị:
Hình 3-41 Chỉnh sửa thông tin kết nối đến đơn vị
3.5.11.2. Quản lý dịch vụ
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 86 SVTH: Vinh, Khương, Thông, Trung, Thúy
N gười quản trị có thể quy định đơn vị xử lý dịch vụ.
Cơ chế thay đổi liên quan đến cơ chế định tuyến này trong hệ thống Phần mềm lõi
dựa theo nguyên tắc sau:
Sau khi thông điệp đến bộ định tuyến “Service Router”, bộ định tuyến dựa vào
ServiceID trong Header của thông điệp, truy xuất cơ sở dữ liệu để tìm địa chỉ Queue
Out và định tuyến thông điệp vào Queue Out này. Tại Queue Out, hệ thống sẽ tiếp
tục dựa vào ServiceID của thông điệp,truy xuất cơ sở dữ liệu tìm địa chỉ kết nối tới
Endpoint.
Do đó, để thay đơn vị cung cấp dịch vụ, hệ thống chỉ việc gán lại địa chỉ Queue Out
và ID đơn vị xử lý dành cho dịch vụ đó đến trong cơ sở dữ liệu.
Hình 3-42 Mô hình quản lý định tuyến trên cơ sở dữ liệu
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 87 SVTH: Vinh, Khương, Thông, Trung, Thúy
Xem danh sách dịch vụ:
Xem chi tiết dịch vụ:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 88 SVTH: Vinh, Khương, Thông, Trung, Thúy
Chỉnh sửa thông tin dịch vụ và chọn đơn vị xử lý:
3.5.12. Chức năng ghi nhật kí của hệ thống Phần mềm lõi
Một trong những chức năng quan trọng của hệ thống Phần Mềm Lõi đó là chức năng
ghi nhật kí. Chức năng ghi nhật kí nhằm mục đích ghi nhận thông tin những thông
điệp đã luân chuyển trong hệ thống. Từ những thông tin ghi nhận này, người quản lý
có thể theo dõi, phân tích, thống kê các thông điệp.
Chức năng ghi nhật kí có khả năng ghi nhận một số thông tin cơ bản như: ngày giờ
nhận hoặc gửi thông điệp, đơn vị gửi thông điệp, đơn vị nhận thông điệp, dịch vụ
yêu cầu, loại thông điệp(request,respone,authenticate…), giao thức gửi (JMS,Web
Service, …), nội dung thông điệp.
N goài ra, hệ thống Phần mềm lõi sẽ cung cấp khả năng xem nội dung nhật kí cung
cấp khả năng xuất báo cáo, thống kê thông qua giao diện Web. Một số tính năng báo
cáo, thống kê đã xây dựng hiện tại: xem thông tin tất cả các thông điệp gửi và nhận
tại hệ thống, xem thông tin tất cả các thông điệp gửi từ một đơn vị, xem thông tin tất
cả các thông điệp yêu cầu một dịch vụ.
3.5.12.1. Xem thông tin nhật kí qua giao diện Web:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 89 SVTH: Vinh, Khương, Thông, Trung, Thúy
Xem tất cả các thông điệp gửi và nhận tại hệ thống:
Hình 3-43 Chức năng xem nhật kí thông điệp với tuỳ chọn tất cả
Xem tất cả các thông điệp gửi từ một đơn vị:
Hình 3-44 Chức năng xem nhật kí thông điệp phân loại theo đơn vị
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 90 SVTH: Vinh, Khương, Thông, Trung, Thúy
Xem tất cả các thông điệp của một dịch vụ:
Hình 3-45 Chức năng xem nhật kí phân loại theo dịch vụ
3.5.12.2. Vị trí tiến hành ghi nhật kí tại hệ thống:
Ghi nhật kí tại Queue In: Bất kì thông điệp nào khi gửi vào hệ thống
Lõi sẽ được Router Đơn Vị định tuyến đến hệ thống Queue In của đơn
vị gửi thông điệp đó. Tại Queue In này, Logging Engine sẽ tiến hành
lưu thông tin thông điệp.
Ghi nhật kí tại Queue Out: Sau khi thông điệp được định tuyến qua
Queue In của đơn vị gửi và đến Queue Out của đơn vị nhận, Logging
Engine sẽ lưu lại thông tin của thông điệp ngay trước thời điểm thông
điệp được gửi đến Endpoint.
Hình 3-46 Vị trí ghi nhật kí tại hệ thống
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 91 SVTH: Vinh, Khương, Thông, Trung, Thúy
CHƯƠ2G 4. KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚ2G
PHÁT TRIỂ2
4.1. KẾT QUẢ ĐẠT ĐƯỢC
Sau thời gian nghiên cứu, cho tới nay nhóm đã thực hiện được một số mục tiêu như
sau:
Tìm hiểu lý thuyết: Kiến Trúc SOA, ESB, jBPM, Web Service, JMS,
XSLT, Liferay Portal, giao thức chứng thực CHAP.
Áp dụng vào thực tế các công nghệ sau:
Sử dụng công nghệ Jboss ESB vào hệ thống mô phỏng.
Sử dụng jBPM trong xử lý quy trình nghiệp vụ hành chính.
Sử dụng giao thức chứng thực CHAP để xây dựng cơ chế
chứng thực và bảo mật cho Phần Mềm Lõi và các đơn vị.
Sử dụng JMS và Web Service làm giao thức trao đổi thông
điệp trong hệ thống.
Xây dựng ví dụ sử dụng XSLT để truyền giao diện Web bẳng
giao thức Web Service.
Triển khai hoàn chỉnh hệ thống mô phỏng cho mô hình Chính Phủ
Điện Tử với bài toán xây dựng quy trình đăng ký kinh doanh Doanh
N ghiệp Tư N hân trực tuyến.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 92 SVTH: Vinh, Khương, Thông, Trung, Thúy
4.2. HƯỚ2G PHÁT TRIỂ2
Xây dựng mô hình Chính Phủ Điện Tử tập trung
Hệ thống tại các đơn vị có thể được triển khai tại các hệ thống
Server Farm trong hệ thống Lõi.
Việc xử lý quy trình nghiệp vụ có thể được xây dựng tại Lõi
hoặc tại từng đơn vị linh động theo từng nghiệp vụ.
Triển khai cơ chế bất đồng bộ cho các đơn vị cung cấp dịch vụ theo
công nghệ Web Service
Xây dựng cơ chế xác thực và bảo mật cho hệ thống chính phủ bằng
Certificate Authority
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 93 SVTH: Vinh, Khương, Thông, Trung, Thúy
TÀI LIỆU THAM KHẢO
[1] Dave Chappell, Enterprise Service Bus, thứ nhất, O'Reilly,2004,0-596-00675-6
[2] JBoss, Administration Guide, 4.4.GA, JBoss, 2008
[3] JBoss, Getting Started With JBoss ESB, 4.4.GA, JBoss, 2008
[4] JBoss, Programmers Guide, 4.4.GA, JBoss, 2008
[5] JBoss, Services Guide, 4.4.GA, JBoss, 2008
[6] JBoss, User Guide, 4.4.GA, JBoss, 2008
[7] Định nghĩa SOA từ Wikipedia, DotN etGuru
[8] 2ội dung Slide trình bày về Chính Phủ Điện Tử, IBM Việt N am
[9] 2ội dung Slide trình bày Chính Phủ Điện Tử và Phần Mềm Lõi, thầy Phạm Văn
Tính
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 1 SVTH: Vinh, Khương, Thông, Trung, Thúy
PHỤ LỤC
LAB 1 - CÀI ĐẶT JBOSS AS & JBOSS ESB
1. Mục tiêu
- Cấu hình eclipse với JBoss tool và ESB.
- Cấu hình JBoss server.
- Tạo ứng dụng ESB với Helloworld Project.
- Deploy và run Helloworld Project.
2. Cài đặt Jboss Server
Bước 1: chun bị công cụ
1) Apache Ant:
2) JBossESB-4.4.GA
3) JBoss Application Server 4.2.3.GA
Thay vì dùng JBossESB-4.4.GA kết hợp với JBossAS ta có thể dùng bản
bundle sẵn là bản jboss-esb-server.4.4
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 2 SVTH: Vinh, Khương, Thông, Trung, Thúy
4) Eclipse 3.3.2 "Europa" hoặc Eclipse 3.4 "Ganymede" (trong phần này giới
thiệu cấu hình với eclipse 3.4, cấu hình đối với eclipse 3.3 tương tự).
5) JBoss Tools 3.0 hoặc JBoss Tools 2.1.2.GA . N ếu sử dụng Eclipse 3.4 thì
dùng JBoss Tools 3.0 và Eclipse 3.3 thì dùng JBoss Tools 2.1.2.GA. Có thể
download JBoss tool ở địa chỉ sau :
6) ESB Eclipse Plugin. Có thể download plugin ở địa chỉ sau :
Bước 2: Cài đặt ban đầu
1) Java
- Thiết lập biến môi trường:
JAVA_HOME = đường dẫn đến thự mục jdk1.6.0.
PATH = đến thư mục \bin trong jdk1.6.0
- Test JAVA_HOME: vào Command Promt
java –version
2) Apache Ant
- Giải nén
- Thiết lập biến môi trường:
A2T_HOME = đường dẫn đến thự mục apache ant vừa bung nén
PATH = đến thư mục \bin trong apache ant
- Test apache: vào Command Promt
ant –version
echo %A2T_HOME%
Bước 3: Cài đặt ESB
- Có 2 cách cài đặt, hoặc là dùng gói JBossESB-server thì không cần cài đặt ,
chỉ cần giải nén. Ở bước này hướng dẫn cài đặt JBoss ESB vào JBoss AS
(Application Server).
- Giải nén jbossesb-4.4.GA
- Giải nén jboss-4.2.3.GA ( JBoss Application Server)
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 3 SVTH: Vinh, Khương, Thông, Trung, Thúy
- Vào jbossesb-4.4.GA/install/
- Copy file deployment.properties-example đổi tên thành
deployment.properties
- Vào file deployment.properties: thiết lập esb server home: đường dẫn đến thư
mục của JBoss-4.2.3.GA:
org.jboss.esb.server.home=C:/jboss-4.2.3.GA
( Chú ý dùng “/” ,ko dùng “\’ của windows)
- Vào Command Promt: chuyển thư mục đến : jbossesb-4.4.GA/install/
- Thực hiện lệnh deploy
ant depoy
- Kiểm tra thông báo Build succesfull thì thành công
Bước 4: Cấu hình eclipse với JBoss tool và ESB
- Giải nén eclipse 3.4, JBoss tool 3.0.
- Sau đó chép 2 thư mục features và plugins trong thư mục JBoss Tools 3.0
đã giải nén.
- Khởi động Cmd và browse đến thư mục eclipse.
- Chạy lệnh sau : eclipsec.exe –clean
- Sau khi khởi động eclipse xong, vào File 2ew Other
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 4 SVTH: Vinh, Khương, Thông, Trung, Thúy
- N ếu có JBoss jBPM và JBoss tools là thành công.
Bước 5: Cài đặt ESB Eclipse Plugin và Eclipse.
- Khởi động eclipse như bình thường.
- Màn hình eclipse :
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 5 SVTH: Vinh, Khương, Thông, Trung, Thúy
Vào Help Software Updates. Trong cửa sổ Software Update and Add-ons chọn
thẻ tab Available Software.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 6 SVTH: Vinh, Khương, Thông, Trung, Thúy
Click vào nút Manage Sites.
Click vào nút Add click vào Local và browse đến thư mục ESB Eclipse
Plugin đã xả nén.
Chọn OK. Trong cửa sổ Software Updates and Add-ons check vào ESB
Eclipse Plugin.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 7 SVTH: Vinh, Khương, Thông, Trung, Thúy
Click vào Install để cài đặt plugin.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 8 SVTH: Vinh, Khương, Thông, Trung, Thúy
Click next và check vào accept…. click Finish.
Chờ một lát cho quá trình cài đặt plugin vào Eclipse.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 9 SVTH: Vinh, Khương, Thông, Trung, Thúy
Sau khi cài xong, khởi động lại Eclipse.
Vào File 2ew Other:
N ếu có JBoss ESB quá trình cài đặt plugin thành công.
Chú ý quan trọng : trong đường dẫn của thư mục eclipse không được có
khoảng trắng (space).
3. Cấu hình JBoss server cho Eclipse
Sau khi cài đặt thành công JBoss tool và ESB Eclipse Plugin vào Eclipse,
tiến hành cấu hình JBoss server cho Eclipse.
Trong màn hình chính của Eclipse vào menu window Preferences
ESB Preferences.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 10 SVTH: Vinh, Khương, Thông, Trung, Thúy
Trong field ESB Install Location, browse đến thư mục JBoss ESB Server.
Click Apply và OK.
Xong quá trình cấu hình server JBoss.
Trong màn hình chính của Eclipse, tạo một ESB project. Vào menu File
2ew Other JBoss ESB ESB Project.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 11 SVTH: Vinh, Khương, Thông, Trung, Thúy
N hập tên của project và Finish.
4. Cấu hình JBoss Server.
Khởi động lại Eclipse(optional).
Trong màn hình chính của Eclipse, vào menu window show view
Other.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 12 SVTH: Vinh, Khương, Thông, Trung, Thúy
Chọn JBoss Server View và click OK.
Trong màn hình của Eclipse, trong tab JBoss Server View click phải vào
đó chọn 2ew Server.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 13 SVTH: Vinh, Khương, Thông, Trung, Thúy
Trong màn hình 2ew Server, chọn JBoss JBoss v4.2 (có thể chọn JBoss
v5.0) và 2ext. Trong field Application Server Directory browse đến thư
mục chứa JBoss ESB Server.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 14 SVTH: Vinh, Khương, Thông, Trung, Thúy
Finish.
5. Tạo ứng dụng helloworld, deploy và run.
Bước 1: Create project
Khởi động eclipse.
Tạo một ESB Project (như đã thực hiện ở trên).
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 15 SVTH: Vinh, Khương, Thông, Trung, Thúy
Chạy JBoss ESB Server, thời gian chạy có thể hơi lâu. Trong khi khởi động
server, nếu Eclipse báo như sau :
Thì cần tăng thời gian timeouts (mặc định là 50s).
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 16 SVTH: Vinh, Khương, Thông, Trung, Thúy
Server đã chạy:
Vào menu Window Show view Ant (nếu không có vào Other Ant
Ant).
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 17 SVTH: Vinh, Khương, Thông, Trung, Thúy
Trong tab Ant, click vào Add Buildfiles.
Chọn project cần deploy, và chọn file build.xml trong project đó.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 18 SVTH: Vinh, Khương, Thông, Trung, Thúy
Và Ok.
Bước 2: Deploy
Trong tab Ant, double click vào deploy [default][…]
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 19 SVTH: Vinh, Khương, Thông, Trung, Thúy
Deploy thành công.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 20 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 3: Run
Trong tab Ant, double click vào runtest (sendesb) để chạy test.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 21 SVTH: Vinh, Khương, Thông, Trung, Thúy
Double click vào runtest.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 22 SVTH: Vinh, Khương, Thông, Trung, Thúy
JMS Client run thành công.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 23 SVTH: Vinh, Khương, Thông, Trung, Thúy
Server đã nhận được thông điệp.
LAB 2 - CÀI ĐẶT MỘT WEB SERVICE TRÊ2 JBOSS
1. Yêu cầu bài toán:
Một JMS Client muốn sử dụng dịch vụ “Cộng Hai Số” cung cấp bởi một Web
Service Provider.
JMS Client này thông qua một hệ thống ESB để kết nối đến tới Web Service
Provider “Cộng Hai Số” đó.
Thực Hiện:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 24 SVTH: Vinh, Khương, Thông, Trung, Thúy
2. Các công việc cần phải làm
- Dựng Web Service Provider (Add2N umber_WebService_Provider) :cung cấp
dịch vụ cộng 2 số .(Deploy trên Apache Tomcat)
- Dựng ESB Server ( Add2N umber_ESBServer) : mở cổng JMS Listener .Kết
nối đến Web Service Provider (Add2N umber_WebService) thông qua
SOAPClient trong Jboss ESB .(Deploy trên Jboss ESB Server)
- Dựng JMS Client để tương tác với Web Serive Provider Cộng 2 số thông qua
ESB Server Add2N umber_ESB
3. Tiến hành
Dựng Web Service Provider (Add22umber_WebService_Provider):
cung cấp dịch vụ cộng 2 số .(Deploy trên Apache Tomcat)
Bước 1: Trong Eclipse tạo 1 Dynamic web Project, đặt tên
Add2N umber_WebService_Provider
Bước 2:
Tạo Class Add2N umber ( packet provider) với nội dung như sau:
Bước 3 : tạo Add2N umber Web Service bằng Apache Axis 2:
N hấn chuột phải vào Class Add2N umber vừa tạo ,chọn N ew
Web Service.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 25 SVTH: Vinh, Khương, Thông, Trung, Thúy
Server: chọn Apache Tomcat , Web service Runtime :
Apache Axis 2
Bước 4: deploy Web service vào Apache tomcat
Vào WebContent axis 2 index.jsp . Thực hiện Run
as: Run On server Chọn Server: Apache Tomcat. Kết
quả:
Vào Services :
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 26 SVTH: Vinh, Khương, Thông, Trung, Thúy
Vào Add2N umberService:
Dựng ESB Server ( Add22umber_ESBServer) :
Cung cấp dịch vụ “Cộng Hai Số” qua giao thức JMS .
Dịch vụ “Cộng Hai Số” của ESB : sử dụng dịch vụ “Cộng Hai Số” từ
Web Service Provider bên ngoài (Add2N umber_WebService) qua
thư viện SOAPClient .(Deploy trên Jboss ESB Server):
Trong Eclipse tạo Project Jboss ESB mới
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 27 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 1: Tạo 2 Class :
Myrequest_Add2N umber : làm nhiệm vụ chuyển đổi các
Java Object trong ESB Message Body thành các giá trị
nguyên thuỷ(String,Integer…) cho vào đối tượng Map để
dùng cho gói SOAPClient.
MyRespone_Add2N umber : Biến đổi đối tượng Map trong
ESB Message Respone thành đối tượng mong muốn.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 28 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 2: Cấu hình file jboss-esb.xml như sau:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 29 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 3: cấu hình file deployment.xml như sau:
Bước 4 : cấu hình file jbm-queue-service.xml như sau:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 30 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 5: cấu hình file jbmq-queue-service.xml như sau:
Bước 6: Dùng Ant deploy Add2N umber_ESBServer vào Jboss ESB
Server
Dựng JMS Client để sử dụng dịch vụ “Cộng 2 số “ từ Web Serive
Provider thông qua ESB Server Add22umber_ESB: trong Eclipse tạo
Project Jboss ESB mới(Add22umber_Client)
Bước 1 : Tao Class SendJMSMessage(packet test)
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 31 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 2: cấu hình file build.xml như sau:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 32 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 3: Dùng Ant chạy hàm Runtest
Bước 4:Kết quả
• Hiển thị ở Console của Jboss ESB server:
• Hiển thị ở Console của Web Service Provider
(Add2N umber_WebService_Provider):
LAB 3 - KẾT 2ỐI ESB VỚI E2DPOI2T WEBSERVICE
1. Giới thiệu về lớp SOAPProcessor:
Action này hỗ trợ việc kết nối từ hệ thống ESB đến một dịch vụ webservice
JbossWS. N ghĩa rằng một hệ thống ESB có thể đảm nhiệm vai trò quảng bá các
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 33 SVTH: Vinh, Khương, Thông, Trung, Thúy
dịch vụ của một webservice endpoint thông qua các cổng lắng nghe của mình
(bao gồm http, ftp, jms…). Webservice enpoint được cài đặt theo chuNn JSR 181
dùng server JbossWS.
Để sử dụng được action này cần phải thỏa các điều kiện sau:
1. JBoss Application Server 4.2.0GA hoặc hơn
2. JBossWS 2.0.x hoặc hơn
3. Các thư viện trong gói soap.esb.
• Triển khai Webservice Endpoint: Bất kỳ một JBossWS Webservice endpoint
đề có thể được quảng bá thông qua bộ lắng nghe của ESB bằng cách sử dụng
action này. Các endpoint này có thể được triển khai bên trong (bằng cách đặt
gói .war vào trong gói .esb) hoặc bên ngoài (gói Webservice .war được triển
khai độc lập gói ESB (.esb)
• Cấu hình:
Thể cấu hình của action này không phức tạp. Aciont này yêu
cầu một thuộc tính là “jbossws-endpoint” chỉ ra tên của JbossWS
EndPoint mà SOAPProcessor muốn gọi đến.
<action name="JBossWSAdapter"
class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
<property name="jbossws-endpoint" value="GoodbyeWorldWS"/
2. Cài đặt project ESB kết nối với Webservice EndPoint:
- Công cụ để tạo một project ESB là eclipse có plugin tạo ESB Project, môi
trường chạy jboss-4.2.3.GA đã được deploy sẵn JbossWS, jbossesb-4.4.GA.
-Bước đầu tiên chúng ta hãy tạo một project ESB trên eclipse.
Vào menu File -> N ew -> Other, chọn JBoss ESB -> ESB project:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 34 SVTH: Vinh, Khương, Thông, Trung, Thúy
N hấn N ext, nhập tên của Project vào, nhấn N ext, cấu hình cho JBoss server
và JBossEsb:
N hấn chọn Finish
-Vào file cấu hình jboss-esb.xml, tạo nội dung như sau:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 35 SVTH: Vinh, Khương, Thông, Trung, Thúy
<jbossesb xmlns="
/etc/schemas/xml/jbossesb-1.0.1.xsd"
parameterReloadSecs="5">
<jms-message-filter dest-type="QUEUE"
dest-name="queue/quickstart_webservice_producer_gw"/>
<jms-message-filter dest-type="QUEUE"
dest-name="queue/quickstart_webservice_producer_esb"/>
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 36 SVTH: Vinh, Khương, Thông, Trung, Thúy
<service category="MyServiceCategory"
name="MyWSProducerService"
description="WS Frontend speaks natively to the
ESB">
<jms-listener name="JMS-Gateway"
busidref="quickstartGwChannel"
is-gateway="true"/>
<jbr-listener name="Http-Gateway"
busidref="Http-1" is-gateway="true"/>
<jbr-listener name="Socket-Gateway" busidref="Socket-1"
is-gateway="true"/>
<jms-listener name="JMS-ESBListener"
busidref="quickstartEsbChannel"/>
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 37 SVTH: Vinh, Khương, Thông, Trung, Thúy
<action name="print-before"
class="org.jboss.soa.esb.actions.SystemPrintln">
<property name="message"
value="[Quickstart_webservice_producer] BEFORE
invoking jbossws endpoint"/>
<action name="JBossWSAdapter"
class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
<property name="jbossws-endpoint"
value="GoodbyeWorldWS"/>
<action name="print-after"
class="org.jboss.soa.esb.actions.SystemPrintln">
<property name="message"
value="[Quickstart_webservice_producer] AFTER invoking
jbossws endpoint"/>
<action name="testStore"
class="org.jboss.soa.esb.actions.TestMessageStore"/>
Trước hết cấu hình các cổng http và socket:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 38 SVTH: Vinh, Khương, Thông, Trung, Thúy
Cấu hình cho ESB lắng nghe trên các cổng này:
<jms-listener name="JMS-Gateway"
busidref="quickstartGwChannel"
is-gateway="true"/>
<jbr-listener name="Http-Gateway"
busidref="Http-1" is-gateway="true"/>
<jbr-listener name="Socket-Gateway" busidref="Socket-1"
is-gateway="true"/>
Cấu hình SOAPProcessor:
<action name="JBossWSAdapter"
class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
<property name="jbossws-endpoint"
value="GoodbyeWorldWS"/>
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 39 SVTH: Vinh, Khương, Thông, Trung, Thúy
-Chúng ta hãy mô tả một tý về JBoss remoting. Để mà nhận một yêu cầu dạng
http/socket chúng ta cần cài đặt một bộ lắng nghe cho interface này.
-Cài đặt Webservices:
@WebService(name = "GoodbyeWorldWS",
targetN amespace="")
// @SOAPBinding(style = SOAPBinding.Style.RPC)
public class GoodbyeWorldWS {
@WebMethod
public String sayGoodbye(@WebParam(name="message") String message) {
Message esbMessage = SOAPProcessor.getMessage();
if(esbMessage != null) {
System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" +
esbMessage.getBody().get());
// System.out.println("\n" + esbMessage.toString() + "\n");
}
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 40 SVTH: Vinh, Khương, Thông, Trung, Thúy
System.out.println("Web Service Parameter - message=" + message);
return "... Ah Goodbye then!!!! - " + message;
}
@WebMethod
public String sayAdios(String message) {
Message esbMessage = SOAPProcessor.getMessage();
if(esbMessage != null) {
System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" +
esbMessage.getBody().get());
// System.out.println("\n" + esbMessage.toString() + "\n");
}
System.out.println("Web Service Parameter - message=" + message);
return "... Adios Amigo!!!! - " + message;
}
@WebMethod
@Oneway
public void sayGoodbyeWithoutResponse(@WebParam(name="message")
String message) {
Message esbMessage = SOAPProcessor.getMessage();
if(esbMessage != null) {
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 41 SVTH: Vinh, Khương, Thông, Trung, Thúy
System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" +
esbMessage.getBody().get());
}
System.out.println("Web Service Parameter - message=" + message);
}
Chú ý tên của endpoint @WebService(name = "GoodbyeWorldWS"
Và targetN amespace="")
Đây là thông tin quan trọng để tạo SOAP protocol
Chúng ta có 3 service là sayGoodbye và sayAdios và sayGoodbyeWithoutResponse
-Tạo file build.xml với nội dung:
${ant.project.name}
${line.separator}
<import file="E:/ESBTool/jbossesb-4.4.GA/samples/quickstarts/conf/base-
build.xml"/>
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 42 SVTH: Vinh, Khương, Thông, Trung, Thúy
<fileset dir="${org.jboss.esb.server.home}/client" includes="jbossws-
client.jar,jboss-remoting.jar" />
<war warfile="build/${ant.project.name}.war"
webxml="${basedir}/war/resources/WEB-IN F/web.xml">
<target name="runtest" depends="compile" description="run tests over jms, http,
and socket">
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 43 SVTH: Vinh, Khương, Thông, Trung, Thúy
Invoking a JBossWS Endpoint over JMS (via JBoss ESB).
<java fork="yes"
classname="org.jboss.soa.esb.samples.quickstart.webserviceproducer.test.SendMess
age" failonerror="true">
Invoking a JBossWS Endpoint over HTTP (via JBoss ESB).
<java fork="yes"
classname="org.jboss.soa.esb.samples.quickstart.webserviceproducer.test.SendMess
age" failonerror="true">
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 44 SVTH: Vinh, Khương, Thông, Trung, Thúy
Invoking a JBossWS Endpoint over a raw socket connection (via JBoss
ESB).
<java fork="yes"
classname="org.jboss.soa.esb.samples.quickstart.webserviceproducer.test.SendMess
age" failonerror="true">
Dòng <import file="E:/ESBTool/jbossesb-4.4.GA/samples/quickstarts/conf/base-
build.xml"/> Chỉ ra địa chỉ file base-build.xml. Đây là file chứa các đoạn ant có sẳn
để deploy ứng dụng.
target name="saygoodbye_over_jms": Test ESB thông qua cổng jms
target name="saygoodbye_over_http": Test ESB thông qua http
target name="saygoodbye_over_socket": Test ESB thông qua socket
-Bước tiếp theo là tạo một message theo chuNn của giao thức SOAP protocol:
<soapenv:Envelope xmlns:soapenv=""
xmlns:good="">
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 45 SVTH: Vinh, Khương, Thông, Trung, Thúy
Goodbye!!
Chú ý là xmlns:good=""> phải khớp với
targetN amespace=""
-Tạo file web.xml với nội dung như sau:
<web-app xmlns=""
xmlns:xsi=""
xsi:schemaLocation="
"
version="2.4">
GoodbyeWorldWS
<servlet-
class>org.jboss.soa.esb.samples.quickstart.webserviceproducer.webservice.Goodbye
WorldWS
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 46 SVTH: Vinh, Khương, Thông, Trung, Thúy
GoodbyeWorldWS
/GoodbyeWorldWS
-Cấu trúc thư mục toàn hệ thống theo hình đưới đây:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 47 SVTH: Vinh, Khương, Thông, Trung, Thúy
-Để test hệ thống , ta cần có một Client. Phương thức dưới đây để gửi message vào
ESB thông qua http vào socket:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 48 SVTH: Vinh, Khương, Thông, Trung, Thúy
private void sendMessageToJBRListener(String protocol, int port, String message)
throws Throwable {
String locatorURI = protocol + "://localhost:" + port;
InvokerLocator locator = new InvokerLocator(locatorURI);
System.out.println("Calling JBoss Remoting Listener using locator URI: " +
locatorURI);
Client remotingClient = null;
try {
remotingClient = new Client(locator);
remotingClient.connect();
// Deliver the message to the listener...
Object response = remotingClient.invoke(message);
System.out.println("JBR Class: " + response.getClass().getN ame());
System.out.println("Response from JBoss Remoting Listener '" + locatorURI
+ "' was '" + response + "'.");
} finally {
if(remotingClient != null) {
remotingClient.disconnect();
}
}
}
Phương thức này dùng đối tượng Client để kết nối với ESB thông quả cổng http hay
socket.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 49 SVTH: Vinh, Khương, Thông, Trung, Thúy
-Mọi thứ hoàn tất, giờ là lúc deploy, và test ứng dụng
LAB 4 – JMS
1. Khái niệm:
JMS không phải là một hệ thống Messaging mà nó là một khái niệm trừu tượng
gồm các giao diện và các lớp được các máy trạm sử dụng để giao tiếp với các
messaging system (giải pháp truyền thông phục vụ xử lý giao dịch cho các hệ thống
phân tán).
JMS là một giao diện lập trình chuNn chính thức cho các hệ thống messaging
thương mại.
Việc thống nhất một chuNn giao diện cho các hệ thống messaging sẽ giúp cho các
nhà phát triển phần mềm sử dụng trên nền tảng các hệ thống messaging dễ dàng phát
triển ứng dụng độc lập với nhà cung cấp sản phNm messaging và không phải nghiên
cứu về giao diện lập trình của các nhà cung cấp sản phNm khác nhau.
2. Mô hình:
Có 2 mô hình hệ thống messaging :
Mô hình Point-to-Point Messaging
Mô hình Publish-and-Subscribe Messaging:
Mô hình Point-to-Point Messaging (p2p):
Là mô hình trong đó mỗi message chỉ được chuyển tới một người nhận
(Receiver), việc trao đổi dữ liệu được tiến hành thông qua một kênh thông tin ảo, tổ
chức theo cơ chế hàng đợi (queue). Có thể có nhiều người nhận kết nối đến một
queue nhưng mỗi message trong queue chỉ được được nhận và được một trong
trong số những người nhận đó xử lý. Các message được nhận theo thứ tự vào
trước ra trước FIFO (First-In-First-Out) hoặc theo độ ưu tiên tức là message nào đến
trước hoặc có độ ưu tiên cao hơn sẽ được xử lý trước. Khi message được xử lý nó sẽ
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 50 SVTH: Vinh, Khương, Thông, Trung, Thúy
bị loại bỏ khỏi Queue.
Mô hình Publish-and-Subscribe Messaging (pub/sub):
Là mô hình trong đó các tiến trình gửi message vào một hàng đợi đặc biệt
gọi là topic, các tiến trình khác muốn nhận message từ một topic thì phải đăng ký
trước với topic đó. Thành phần quản lý topic trong hệ thống messaging sẽ tự động
chuyển message tới các tiến trình đăng ký mỗi khi có message được gửi tới topic.
Trong mô hình pub/sub, mỗi message gửi đi có thể có nhiều tiến trình cùng nhận
được. Khi đăng ký với một topic, các client đều bình đẳng và đều nhận được một
cách tự động tất cả các message được gửi tới topic.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 51 SVTH: Vinh, Khương, Thông, Trung, Thúy
Các interfaces chính của JMS:
JMS Parent Interface PTP Specific Pub/Sub Specific
ConnectionFactory QueueConnectionFactory TopicConnectionFactory
Connection QueueConnection TopicConnection
Destination Queue Topic
Session QueueSession TopicSession
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 52 SVTH: Vinh, Khương, Thông, Trung, Thúy
MessageProducer QueueSender TopicPublisher
MessageConsumer
QueueReceiver,
QueueBrowser
TopicSubscriber
Giải thích:
Interface Description
Concurrent
Use?
ConnectionFactory
An administered object used by a client to
create a Connection
Yes
Connection An active connection to a JMS provider Yes
Destination
An administered object that encapsulates the
identity of a message destination
Yes
Session
A single-threaded context for sending and
receiving messages
N o
MessageProducer
An object created by a Session that is used for
sending messages to a destination
N o
MessageConsumer
An object created by a Session that is used for
receiving messages sent to a destination
VÍ DỤ Ứ2G DỤ2G JMS Point - To - Point MODEL
Point - To - Point sender:
Các bước tiến hành
Performs a Java N aming and Directory InterfaceTM (JN DI) API lookup of the
QueueConnectionFactory and queue
Creates a connection and a session
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 53 SVTH: Vinh, Khương, Thông, Trung, Thúy
Creates a QueueSender
Creates a TextMessage
Sends one or more messages to the queue
Sends a control message to indicate the end of the message stream
Closes the connection in a finally block, automatically closing the session and
QueueSender
Point - To - Point receiver:
Các bước tiến hành
1. Performs a JN DI API lookup of the QueueConnectionFactory and
queue
2. Creates a connection and a session
3. Creates a QueueReceiver
4. Starts the connection, causing message delivery to begin
5. Receives the messages sent to the queue until the end-of-message-
stream control message is received
6. Closes the connection in a finally block, automatically closing the
session and QueueReceiver
VÍ DỤ Ứ2G DỤ2G JMS Publish-and-Subscribe MODEL
Publish-and-Subscribe publisher:
Các bước tiến hành
1. Performs a JN DI API lookup of the TopicConnectionFactory and topic
2. Creates a connection and a session
3. Creates a TopicPublisher
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 54 SVTH: Vinh, Khương, Thông, Trung, Thúy
4. Creates a TextMessage
5. Publishes one or more messages to the topic
6. Closes the connection, which automatically closes the session and
TopicPublisher
Publish-and-Subscribe receiver:
Các bước tiến hành
1. Performs a JN DI API lookup of the TopicConnectionFactory and topic
2. Creates a connection and a session
3. Creates a TopicSubscriber
4. Creates an instance of the TextListener class and registers it as the
message listener for the TopicSubscriber
5. Starts the connection, causing message delivery to begin
6. Listens for the messages published to the topic, stopping when the user
enters the character q or Q .
7. Closes the connection, which automatically closes the session and
TopicSubscriber
CẤU HÌN H JBOSS 4.2.3
Sau các bước viết source JMS. Để chạy được ứng dụng trong ví dụ jms, cần
thực hiện các bước sau :
Deploy Ant
Start server JBOSS : bạn phải đảm bảo rằng JBOSS đang chạy và nó
được cấu hình như các phần sau:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 55 SVTH: Vinh, Khương, Thông, Trung, Thúy
Trong tập tin %JBOSS%\server\default\deploy\jms\jbossmq-destinations-
service.xml, thêm phân đoạn xml sau để tạo 1 queue mới
<mbean code=”org.jboss.mq.server.jmx.Queue”
name=”jboss.mq.destination:service=Queue,name=tên_ queue_ của_
bạn”>
( vi du name = queue/thuy)
<depends optional-attribute-
name=”DestinationManager”>jboss.mq:service=DestinationManager</depen
ds>
//===================================
Để thêm 1 Topic mới, trong tập tin này thêm phân đoạn xml sau
<mbean code=”org.jboss.mq.server.jmx.Topic”
name=”jboss.mq.destination:service=Topic,name=tên_ topic_ của_ bạn”>
<depends optional-attribute-
name=”DestinationManager”>jboss.mq:service=DestinationManager</depen
ds>
<depends optional-attribute-
name=”SecurityManager”>jboss.mq:service=SecurityManager
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 56 SVTH: Vinh, Khương, Thông, Trung, Thúy
Sau đó chạy class Sender và Reciver.
LAB 5 - MATH SERVICE
1. GIỚI THIỆU BÀI TOÁ2
Bài toán mô tả quá trình một CLIE2T yêu cầu một dịch vụ trên SERVER thực
hiện phép tính cộng 2 số tự nhiên.
Để đơn giản chúng ta chỉ sử dụng dạng Message đơn giản nhất là text, vì thế 1
yêu cầu cộng 2 số a và b sẽ có định dạng như sau:
3. CẤU HÌ2H MÔI SERVER & IDE
Tham khảo “Lab ESB.doc”
4. QUY TRÌ2H THỰC HIỆ2
B1 - Tạo Project
File / 2ew / Others
CLIE2
T
SERV
ER
addRequestChannel
addResponseChanne
l
addRequest queue
addResponse
a:b
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 57 SVTH: Vinh, Khương, Thông, Trung, Thúy
2ext
Đặt tên cho Project là MathServer
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 58 SVTH: Vinh, Khương, Thông, Trung, Thúy
2ext
Khai báo đường dẫn đến JBoss AS Server và ESB install dir. 2ếu đã khai báo
từ trước như bài “Lab ESB.doc” đã làm thì bạn sẽ thấy dialog sau:
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 59 SVTH: Vinh, Khương, Thông, Trung, Thúy
finish
B2 - Tạo AddAction class
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 60 SVTH: Vinh, Khương, Thông, Trung, Thúy
B3 - Cấu hình
2hư thiết kế ta cần có 2 queue chính:
queue_math_request: là queue để client gửi yêu cầu tính toán lên cho server. Vì
client dùng message của gói javax.jms.Message nhưng server ESB dùng
message của gói org.jboss.soa.esb.message.Message nên ta cần khai báo queue
này là 1 gateway.
queue_math_response: là queue để server gửi kết quả trả về cho client, queue
này không cần khai báo là gateway.
Bắt buột phải có của 1 Action
Quy trình xử lý
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 61 SVTH: Vinh, Khương, Thông, Trung, Thúy
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 62 SVTH: Vinh, Khương, Thông, Trung, Thúy
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 63 SVTH: Vinh, Khương, Thông, Trung, Thúy
B 4 - Deploy
B 5 - Tạo client, thiết lập kết nối và test
A. Tạo MathClient
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 64 SVTH: Vinh, Khương, Thông, Trung, Thúy
Performs a Java 2aming and Directory InterfaceTM (JN DI) API
lookup of the QueueConnectionFactory and queue.
Conection Factory is object a client to create a conection to
provider. Each conection factor is an instance of either
QueueConnectionFactory interface.
Create an InitialContext object and uses it to look up the
QueueConnection-
Factory and the TopicConnectionFactory by name:
Context ctx = new InitialContext();
QueueConnectionFactory queueConnectionFactory =
(QueueConnectionFactory)
ctx.lookup("QueueConnectionFactory");
The following line of code looks up a queue named :
queueIn = (Queue) context.lookup(queueInPath);
queueOut = (Queue) context.lookup(queueOutPath);
Create Session form Conection object:
session = conn.createQueueSession(false,
QueueSession.AUTO_ACKN OWLEDGE);
Session is a single-threaded context for producing and consuming messages.
provides a transactional context with which to group a set of sends and receives into
an atomic unit of work.
1. Start or stop connection
con.start();
2. SendMessage
QueueSender send = session.createSender(queueOut);
3. Create Message body:
TextMessage tm = session.createTextMessage(arg1 + ":" + arg2);
tm.setJMSCorrelationID(correlationID);
4. ReceiveMessage
QueueReceiver receiver = session.createReceiver(queueIn,
"JMSCorrelationID = '" + correlationID + "'");
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 65 SVTH: Vinh, Khương, Thông, Trung, Thúy
TextMessage msg = (TextMessage) receiver.receive();
B. Thực thi và kết quả:
LAB 6 - CÀI ĐẶT ECLIPSE JBPM GRAPHIC PROCESS
DESIG2ER (ECLIPSE GPD)
1. CẤU HÌ2H CÀI ĐẶT
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 66 SVTH: Vinh, Khương, Thông, Trung, Thúy
Bước 1: Eclipse IDE
Phiên bản GPD 3.1.5 đòi hỏi cấu hình Eclipse tối thiểu là 3.4. Có thể download theo
địa chỉ sau:
Một vài phiên bản có thể dùng được
STT: Số thứ tự
SDK: Phiên bản của Eclipse IDE.
A2T: Phiên bản của trình build AN T.
GPD: Phiên bản của plug-in thiết kết JBPM cho Eclipse (Graphic Process
Designer)
STT SDK EMF GEF JEM DTP WTP A2T GPD
1 3.2.1 2.2.1 3.2.1 1.2.1 1.5.1 1.6.5 3.0.13
2 3.1.0 3.0
3 3.4.1 2.4.1 3.4.1 1.6.1 3.0.2 1.7.0 3.1.5
Bước 2: Eclipse GPD
Download phiên bản cài đặt cho GPD theo địa chỉ bên dưới
Chúng ta sẽ cấu hình ví dụ sau đây theo phiên bản GPD 3.1.5 dành cho Eclipse 3.4.1.
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 67 SVTH: Vinh, Khương, Thông, Trung, Thúy
Download tất cả các gói sau đây
Bước 3: Cài đặt JBPM-JPDL 3.2.3
Chọn gói (f) jBPM jPDL 3
Chúng ta có nhiều lựa chọn cài đặt
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 68 SVTH: Vinh, Khương, Thông, Trung, Thúy
1. jbpm-jpdl-3.3.0.GA.jar: là gói cài đặt dùng trình cài đặt wizard. Trong quá
trình cài đặt sẽ phải download Eclipse 3.4 và các Plug-in.
2. jbpm-jpdl-3.2.3: là gói cài đặt vào Eclipse 3.4 mà ta đã download ở bước
bên trên. LAB này sẽ dùng gói cài đặt này. Bạn download 2 file jbpm-jpdl-
3.2.3.zip và jbpm-jpdl-suite-3.2.3.zip
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 69 SVTH: Vinh, Khương, Thông, Trung, Thúy
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 70 SVTH: Vinh, Khương, Thông, Trung, Thúy
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 71 SVTH: Vinh, Khương, Thông, Trung, Thúy
Giải pháp phần mềm lõi cho mô hình chính phủ điện tử
GVHD: TS. Phạm Văn Tính 72 SVTH: Vinh, Khương, Thông, Trung, Thúy
Các file đính kèm theo tài liệu này:
- Giải pháp phần mềm lõi cho mô hình chính phủ điện tử.pdf