Giải pháp phần mềm lõi cho mô hình chính phủ điện tử

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

pdf179 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3043 | Lượt tải: 1download
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: chu‡n 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:

  • pdfGiải pháp phần mềm lõi cho mô hình chính phủ điện tử.pdf