Bài này giới thiệu cho các nhà phát triển J2EE về các bước tham gia vào việc xây dựng một giải pháp đơn giản để trình diễn sự tích hợp giữa WebSphere Enterprise Service Bus V7 (sau đây gọi tắt là Service Bus - Bus dịch vụ) và WebSphere Service Registry và Repository V7 (sau đây gọi tắt là Service Registry – Đăng ký dịch vụ). Bộ công cụ phát triển được chọn sẽ là WebSphere Integration Developer V7 (sau đây gọi tắt là Integration Developer - Nhà phát triển tích hợp).
Service Registry là một kho lưu trữ trung tâm được sử dụng để quản lý các tài liệu dịch vụ tái sử dụng, gồm các kiểu tài liệu Web Services Description Language (WSDL - Ngôn ngữ mô tả dịch vụ web), Service Component Definition Language (SCDL- Ngôn ngữ định nghĩa thành phần dịch vụ), Extensible Markup Language (XML - Ngôn ngữ đánh dấu mở rộng) và XML Schema Definition (XSD - Định nghĩa lược đồ XML). Có thể sử dụng các tài liệu dịch vụ này làm các khối xây dựng để phát triển các ứng dụng hỗn hợp có thể được triển khai trên môi trường runtime của Service Bus.
Bus dịch vụ doanh nghiệp được chọn sẽ là Service Bus, đó là một môi trường runtime dựa trên WebSphere Application Server – Máy chủ dịch vụ WebSphere (sau đây được gọi là WAS). Tầng trung gian trong Service Bus được sử dụng để thực hiện các luồng trung gian có chứa các nguyên hàm trung gian, để cung cấp chức năng dựng sẵn nhằm tạo điều kiện thuận lợi cho việc xây dựng nhanh chóng các giải pháp tích hợp. Một nguyên hàm trung gian như vậy là Endpoint Lookup (tra tìm điểm đầu cuối), mà chúng tôi sẽ sử dụng để truy vấn Service Registry từ bên trong một luồng trung gian.
Chúng ta sẽ thực hiện các bước để hoàn thành giải pháp này. Có thể tóm tắt các bước này như sau: trước tiên tạo ra một dịch vụ tầng sau lưu trú trên Service Bus, tiếp theo là định nghĩa luồng trung gian để thực hiện việc tra tìm dựa vào Service Registry. Luồng trung gian này sẽ chạy trên cùng môi trường runtime của Service Bus như dịch vụ tầng sau. Cuối cùng, chúng ta sẽ tạo ra một trình máy khách dịch vụ web dựa vào JavaServer Page (JSP) của API Java cho Các dịch vụ Web XML (JAX-WS) để thử nghiệm kịch bản tích hợp.
Trước khi tiến hành các bước trong bài này, sẽ cần phải đáp ứng các điều kiện tiên quyết dưới đây:
- Cài đặt Integration Developer trên một môi trường hệ điều hành Windows.
- Cài đặt Service Bus với hoặc một máy chủ đơn hoặc một cấu hình cụm và các máy chủ có liên quan được khởi động.
- Cài đặt Service Registry (cục bộ để cài đặt Service Bus) với hoặc một máy chủ đơn hoặc một cấu hình cụm và các máy chủ có liên quan được khởi động.
- Cấu hình định nghĩa Service Registry và kết nối được thiết lập thành công.
- IBM HTTP Server V7 (Máy chủ HTTP của IBM phiên bản 7 - sau đây được gọi là IHS) được cài đặt (cục bộ để cài đặt Service Bus) và được cấu hình.
Chúng ta sẽ bắt đầu bằng cách tạo ra một dịch vụ tầng sau ví dụ mẫu, là việc thực hiện bằng Java. Dịch vụ này sẽ trả về tên máy chủ ứng dụng để thực hiện dịch vụ. Lược tả máy chủ ứng dụng được sử dụng trong kịch bản này sẽ là lược tả máy chủ ứng dụng của Service Bus.
- Khởi chạy Integration Developer bằng cách chọn Start > All Programs > IBM WebSphere Integration Developer > IBM WebSphere Integration Developer V7.0 > WebSphere Integration Developer V7.0.
- Trong vùng làm việc của Integration Developer, hãy nhấn vào File > New > Integration Solution.
- Trong hộp thoại hiển thị trong Hình 1, gõ
IntegrationSolutionvào trường Integration solution name (Tên giải pháp tích hợp) và nhấn Next (Tiếp theo).
Hình 1. Hộp thoại New Integration Solution (Giải pháp tích hợp mới)
- Trong hộp thoại kế tiếp, chọn tất cả ba dự án với các tên mặc định, như được mô tả trong Hình 2 và nhấn Finish để hoàn thành trình hướng dẫn.
Hình 2. Hộp thoại thêm các dự án
- Kiểm tra xem ba dự án có xuất hiện trong danh sách như mô tả trong Hình 3 không.
Hình 3. Các dự án được liệt kê trong khung nhìn Business Integration (Tích hợp nghiệp vụ)
- Mở rộng IntegrationSolution_Library trong khung nhìn Business Integration, nhấn chuột phải vào Interfaces và chọn New > Interface từ trình đơn ngữ cảnh.
Hình 4. Khởi chạy trình hướng dẫn giao diện
- Gõ
ServiceInterfacevào trường tên và nhấn Finish để hoàn thành trình hướng dẫn.
Hình 5. Tạo một hộp thoại Interface (Giao diện)
- Khởi chạy giao diện này trong Interface Editor (Trình soạn thảo giao diện) như trong Hình 6.
Hình 6. Trình soạn thảo giao diện
- Nhấn vào biểu tượng Add Request Response Operation (Thêm hoạt động yêu
cầu đáp ứng) và đặt tên cho hoạt động này là
getServerResponsenhư trong Hình7.
Hình 7. Thêm hoạt động yêu cầu đáp ứng
- Nhấn vào File > Save để lưu lại các thay đổi đã thực hiện cho đến nay.
- Mở rộng IntegrationSolution_BackendModule (ở dưới Projects trong khung nhìn Business Integration) và nhấn đúp vào Assembly Diagram (Sơ đồ Assembly) để khởi chạy Assembly Editor (Trình soạn thảo Assembly).
Hình 8. Sơ đồ Assembly của IntegrationSolution_BackendModule
- Chèn một thành phần Java (dưới thư mục Components trong danh
sách Palette) vào khung nền ảnh (canvas) trống và đặt tên nó là
BackendComponent.
Hình 9. Thành phần java
- Chọn BackendComponent và nhấn vào biểu tượng Add Interface (Thêm giao diện) trong cửa sổ bật lên như trong Hình 10.
Hình 10. Thêm giao diện
- Trong hộp thoại Add Interface, chọn ServiceInterface (Giao diện dịch vụ) và nhấn OK.
Hình 11. Chọn ServiceInterface
- Kiểm tra xem giao diện có được thêm vào thành công không.
Hình 12. Kiểm tra giao diện
- Nhấn chuột phải vào BackendComponent và chọn Generate Implementation từ trình đơn ngữ cảnh.
- Khi được nhắc đặt tên gói, gõ vào com.ibm.au.samples và nhấn OK.
- Lớp BackendComponentImpl1.java sẽ được hiển thị trong Java Editor (Trình soạn thảo Java) như trong Hình 13.
Hình 13. Lớp BackendComponentImpl1.java
- Thay thế phần thân của phương thức
getServerResponsebằng đoạn mã được hiển thị trong Hình 14.
Hình 14. Phương thức getServerResponse
- Nhấn File > Save All để lưu các thay đổi đã thực hiện cho đến nay.
- Chuyển đến Sơ đồ Assembly IntegrationSolution_BackendModule.
- Nhấn chuột phải vào BackendComponent và chọn Generate Export > Web Service Binding từ trình đơn ngữ cảnh.
- Chọn giao thức truyền tải là SOAP1.1/HTTP và nhấn Finish để hoàn thành trình hướng dẫn.
Hình 15. Chọn giao thức truyền tải
- Kiểm tra xem đã tạo Web Service Binding Export (Xuất khẩu kết buộc dịch vụ Web) thành công chưa.
Hình 16. Xuất khẩu kết buộc dịch vụ Web dành cho BackendComponent
- Mở rộng IntegrationSolution_Library > Web Service Ports (ở dưới Projects trong khung nhìn Business Integration) và nhấn đúp lên ServiceInterfaceExport1_ServiceInterfaceHttpPort để mở tệp này trong WSDL Editor (Trình soạn thảo WSDL).
- Chọn ServiceInterfaceExport1_ServiceInterfaceHttpPort và gõ
http://<hostname>:<port>/ IntegrationSolution_BackendModuleWeb/sca/ServiceInterfaceExport1vào trường Address (Địa chỉ). (<hostname> chỉ ra tên miền phân biệt đầy đủ của máy tính trên đó cài đặt Service Bus và <port> chỉ ra giá trị tìm thấy tại Servers > Server Types > WebSphere application servers > [Service Bus application server] > Ports > WC_defaulthost của Integrated Solutions Console (Giao diện bàn điều khiển Các giải pháp tích hợp), ở đây [Service Bus application server] là máy chủ ứng dụng mặc định của lược tả Service Bus).
Hình 17. Thay đổi địa chỉ cổng xuất khẩu BackendModule
- Nhấn File > Save All để lưu các thay đổi đã thực hiện cho đến nay.
- Nhấn File > Export để khởi động trình hướng dẫn xuất khẩu.
- Trong hộp thoại đã hiển thị, chọn thư mục Integration modules and libraries under the Business Integration(Các mô đun và các thư viện tích hợp trong thư mục Tích hợp nghiệp vụ) và nhấn Next để tiếp tục.
Hình 18. Xuất khẩu các mô đun và các thư viện tích hợp
- Trong hộp thoại tiếp theo, chọn Files for server deployment (Các tệp để triển khai máy chủ), dự án IntegrationSolution_BackendModule và nhấn Next để tiếp tục.
Hình 19. Chọn Dự án
- Gõ vào một tên tệp lưu trữ chẳng hạn là
IntegrationSolution_BackendModule.ear,chỉ rõ một Target directory (Thư mục đích) để xuất khẩu dự án tới đó và nhấn Finish để hoàn thành trình hướng dẫn.
Hình 20. Chỉ rõ tên tệp lưu trữ
- Để xuất ra các file WSDL để sau đó tải các file này lên Service Registry, hãy nhấn vào File > Export.
- Trong hộp thoại tiếp theo, chọn WSDL and XSD trong thư mục Business Integration và nhấn Next để tiếp tục.
Hình 21. Xuất khẩu WSDL và XSD
- Trong hộp thoại như hiển thị trong Hình 22, hoàn thành các bước sau.
- Chọn dự án IntegrationSolution_Library.
- Chọn các tệp IntegrationSolution_BackendModule_ServiceInterfaceExport1.wsdl và ServiceInterface.wsdl WSDL.
- Chỉ rõ một Target directory để xuất khẩu các tệp WSDL tới đó.
- Nhấn Finish.
Hình 22. Chọn các tệp WSDL
Tải các dịch vụ lên Service Registry
Trong phần này, chúng tôi sẽ giới thiệu các bước để tải dịch vụ mới được tạo ra lên Service Registry. Sau đó chúng ta sẽ bắt đầu thêm các thuộc tính dịch vụ nói trên và thực hiện một truy vấn của dịch vụ bằng cách sử dụng các thuộc tính như là một phần của chuỗi truy vấn.
- Đăng nhập vào giao diện điều khiển Service Registry tại
http://<hostname>:<port>/ServiceRegistry. (<hostname> nói đến tên miền phân biệt đầy đủ của máy tính trên đó cài đặt Service Registry và <port> nói đến giá trị được tìm thấy tại Servers > Server Types > WebSphere application servers > [Service Registry application server] > Ports > WC_defaulthost của Integrated Solutions Console, ở đây [Service Registry application server] là máy chủ ứng dụng mặc định của lược tả Service Registry). - Nhấn Actions > Load Documents (Nạp tài liệu).
Hình 23. Nạp tài liệu dịch vụ
- Chọn tệp IntegrationSolution_BackendModule_ServiceInterfaceExport1.wsdl
từ hệ thống tệp cục bộ và hoàn thành các bước sau:
- Chọn WSDL làm Document type (Kiểu Tài liệu).
- Gõ
ServiceBackendlàm mô tả tài liệu. - Gõ 1.0 làm phiên bản tài liệu.
- Nhấn OK.
Hình 24. Chọn WSDL của dịch vụ tầng sau
- Trong màn hình tiếp theo, nhấn Add (Thêm vào).
Hình 25. Thêm giao diện dịch vụ
- Chọn ServiceInterface.wsdl từ hệ thống tệp cục bộ và hoàn thành các
bước sau:
- Chọn WSDL làm Document type.
- Gõ
ServiceInterfacelàm mô tả tài liệu. - Gõ 1.0 làm phiên bản tài liệu.
- Nhấn OK.
Hình 26. Chọn WSDL của giao diện dịch vụ
- Trong màn hình tiếp theo, nhấn Finish để hoàn thành trình hướng dẫn.
Hình 27. Nạp các tài liệu dịch vụ
- Kiểm tra xem các tài liệu dịch vụ đã được nạp thành công chưa.
Hình 28. Tải lên các tài liệu dịch vụ hoàn thành
- Trong trường tìm kiếm như đã mô tả trong Hình 29, gõ
ServiceInterfaceExport1_ServiceInterfaceHttpPortvà nhấn vào biểu tượng tìm kiếm.
Hình 29. Tìm kiếm các tài liệu
- Nhấn vào liên kết ServiceInterfaceExport1_ServiceInterfaceHttpPort của kiểu đối tượng Port (Cổng).
Hình 30. Các kết quả truy vấn
- Mở rộng phần Additional Properties (Các thuộc tính bổ sung) và nhấn vào Edit Properties (Chỉnh sửa các thuộc tính).
Hình 31. Chỉnh sửa các thuộc tính tài liệu
- Nhấn Add Property (Thêm thuộc tính).
Hình 32. Thêm thuộc tính
- Gõ
samplePropertyvào trường Custom Property Name và nhấn Add.
Hình 33. Thêm tên thuộc tính tùy chỉnh
- Gõ
abc123defvào trường giá trị của thuộc tính tùy chỉnh và nhấn OK.
Hình 34. Thêm giá trị thuộc tính tùy chỉnh
- Mở rộng phần Additional Properties để kiểm tra xem thuộc tính tùy chỉnh đã được thêm vào thành công chưa.
Hình 35. Kiểm tra thuộc tính tuỳ chỉnh
- Nhấn Actions > Query Wizard (Trình hướng dẫn truy vấn).
Hình 36. Khởi chạy trình hướng dẫn truy vấn
- Chọn WSDL Ports (Các cổng WSDL) từ danh sách thả xuống về kiểu thực thể và nhấn Next.
Hình 37. Chọn kiểu thực thể
- Trong trang các chi tiết của trình hướng dẫn truy vấn, chỉ rõ các giá trị bên
dưới và nhấn Next để tiếp tục.
- Gõ
samplePropertyvào trường Property name. - Gõ
abc123defvào trường Property value.
- Gõ
Hình 38. Nhập tên và giá trị thuộc tính
- Tại trang summary (tóm tắt) của trình hướng dẫn truy vấn, nhấn vào Finish để thực hiện truy vấn.
Hình 39. Tóm tắt tìm kiếm
- Nhấn vào liên kết ServiceInterfaceExport1_ServiceInterfaceHttpPort.
Hình 40. Các kết quả truy vấn
- Kiểm tra xem thuộc tính tùy chỉnh sampleProperty có tồn tại không.
Hình 41. Các thuộc tính bổ sung
Trong phần này, chúng ta sẽ thảo luận các bước để định nghĩa một luồng trung gian để bao gồm việc sử dụng các nguyên hàm trung gian Endpoint Lookup (Tra tìm điểm cuối) và Trace (Dò vết). Nguyên hàm trung gian đầu tiên sẽ thực hiện một việc tra tìm dựa vào việc đăng ký dịch vụ mặc định (đã được định nghĩa trong Service Bus và kết nối được thiết lập thành công). Các nguyên hàm trung gian sau sẽ tạo điều kiện thuận lợi cho việc khắc phục sự cố trong trường hợp có lỗi.
- Từ trong Integration Developer, nhấn đúp vào Assembly Diagram trong dự
án IntegrationSolution_MediationModule để khởi chạy Assembly
Editor và đặt tên cho thành phần Mediation Flow là
SampleMediation. (Lưu ý rằng một thành phần Mediation Flow mặc định tồn tại khi tạo Mediation Module).
Hình 42. Mediation Module (Mô đun trung gian)
- Chọn SampleMediation và nhấn vào biểu tượng Add Interface trong cửa sổ bật lên như trong Hình 43.
Hình 43. Thêm giao diện
- Trong hộp thoại Add Interface, chọn ServiceInterface và nhấn OK.
- Chọn SampleMediation và nhấn vào biểu tượng Add Reference (Thêm tài liệu tham khảo) trong cửa sổ bật lên như trong Hình 44.
Hình 44. Thêm tài liệu tham khảo
- Trong hộp thoại Add Reference, chọn ServiceInterface và nhấn OK.
- Nhấn chuột phải vào SampleMediation và chọn Generate Implementation từ trình đơn ngữ cảnh.
- Trong hộp thoại Generate Implementation, chọn thư mục IntegrationSolution_MediationModule và nhấn OK.
- Thành phần SampleMediation sẽ được khởi chạy trong Mediation Flow Editor (Trình soạn thảo luồng trung gian) như trong Hình 45.
Hình 45. Trình soạn thảo luồng trung gian
- Nhấn vào liên kết getServerResponse trong Mediation Flow Editor tiếp sau là liên kết Service Integration trong cửa sổ bật lên như trong Hình 46.
Hình 46. Tạo luồng trung gian
- Trong hộp thoại Integrate Services, nhấn Add để chọn tham chiếu ServiceInterfacePartner, giữ nguyên đánh dấu chọn tùy chọn Create a separate response flow... …(Tạo một luồng đáp ứng riêng ...) và nhấn OK để tạo luồng trung gian.
Hình 47. Tạo luồng trung gian
- Kiểm tra xem cả hai ngăn Request (Yêu cầu) và Response (Đáp ứng) đã được hiển thị trong Mediation Flow Editor chưa.
Hình 48. Luồng Yêu cầu và Đáp ứng được tạo ra
- Thêm 3 nguyên hàm trung gian Trace (ở dưới thư mục Tracing
trong Palette) vào luồng Request và đặt tên chúng là
BeforeLookup,AfterLookupvàNoMatchFound, như trong Hình 49.
Hình 49. Thêm các nguyên hàm trung gian Trace vào luồng Request
- Thêm một nguyên hàm trung gian Endpoint Lookup (ở dưới thư mục
Routing trong Palette) và đặt tên nó là
WSRREndpointLookup.
Hình 50. Thêm nguyên hàm trung gian Endpoint Lookup vào luồng Request
- Kết nối tất cả nguyên hàm trung gian trong luồng Request như trong Hình 51.
Hình 51. Kết nối các thiết bị đầu cuối trong luồng Request
- Nhấn vào ngăn Response trong Mediation Flow Editor , thêm một nguyên hàm trung gian Trace và đặt tên nó là TraceResponse, như trong Hình 52.
Hình 52. Thêm nguyên hàm trung gian Trace vào luồng Response
- Kết nối tất cả nguyên hàm trung gian trong luồng Response như trong Hình 53.
Hình 53. Kết nối các thiết bị đầu cuối trong luồng Response
- Quay trở lại luồng Request (bằng cách nhấn vào ngăn Request
trong Mediation Flow Editor), chọn BeforeLookup (Trước khi tra
tìm) và thêm vào tiền tố
BeforeLookup ---trong trường Message (trong phần Details của khung nhìn Properties).
Hình 54. Các chi tiết về BeforeLookup
- Lặp lại bước 17 cho AfterLookup (Sau khi tra tìm) như trong Hình 55.
Hình 55. Các chi tiết về AfterLookup
- Chọn NoMatchFound và cập nhật các trường sau trong phần
Details (Các chi tiết) của khung nhìn Properties.
- Chọn File trong danh sách thả xuống Destination.
- Chỉ rõ một File path (đường dẫn tệp) tuyệt đối ví dụ
C:\temp\dWSampleNoMatchFound.log - Thêm vào tiền tố
NoMatchFound ---(Không tìm thấy có sự trùng khớp nào ---) trong trường Message.
Hình 56. Các chi tiết về NoMatchFound
- Chọn WSRREndpointLookup và kiểm tra xem các trường trong phần Details của khung nhìn Properties có như trong Hình 57 không.
Hình 57. Các chi tiết về WSRREndpointLookup
- Chọn WSRREndpointLookup, nhấn Advanced trong khung nhìn Properties và nhấn Add.
Hình 58. Các thuộc tính nâng cao của WSRREndpointLookup
- Trong hộp thoại Add/Edit properties (Thêm/Chỉnh sửa các thuộc tính) như
trong Hình 59, gõ
samplePropertyvào trường Name, gõ/body/getServerResponse/input1vào trường Value và nhấn Finish.
Hình 59. Thêm thuộc tính người dùng
- Kiểm tra xem thuộc tính người dùng được thêm vào trong bước 22 đã được liệt kê trong phần Advanced của khung nhìn Properties chưa.
Hình 60. Kiểm tra thuộc tính người dùng đã thêm vào
- Nhấn đúp vào Assembly Diagram dưới dự án IntegrationSolution_MediationModule trong khung nhìn Business Integration để khởi chạy Assembly Editor.
- Nhấn phím chuột phải vào SampleMediation trong Assembly Editor và chọn Generate Export > Web Service Binding từ trình đơn ngữ cảnh.
- Trong hộp thoại Select a Transport Protocol (Chọn một giao thức truyền tải), chọn SOAP1.1/HTTP và nhấn Finish để tạo xuất khẩu.
- Kiểm tra xem Web Service Binding Export (Xuất khẩu kết buộc dịch vụ Web) đã được tạo thành công chưa.
Hình 61. Xuất khẩu kết buộc dịch vụ Web dành cho SampleMediation
- Nhấn đúp vào cổng dịch vụ web ServiceInterfaceExport1_ServiceInterfaceHttpPort ở dưới dự án IntegrationSolution_Library trong khung nhìn Business Integration như trong Hình 62.
- Chọn ServiceInterfaceExport1_ServiceInterfaceHttpPort trong WSDL
Editor và gõ
http://<hostname>:<port>/IntegrationSolution_MediationModuleWeb/sca/ServiceInterfaceExport1vào trường Address. (<hostname> chỉ ra tên miền phân biệt đầy đủ của máy tính trên đó cài đặt Service Bus và <port> chỉ ra giá trị tìm thấy tại Servers > Server Types > WebSphere application servers > [Service Bus application server] > Ports > WC_defaulthost của Integrated Solutions Console (Giao diện bàn điều khiển Các giải pháp tích hợp), ở đây [Service Bus application server] là máy chủ ứng dụng mặc định của lược tả Service Bus).
Hình 62. Thay đổi địa chỉ cổng của xuất khẩu SampleMediation
- Nhấn File > Save All để lưu các thay đổi đã thực hiện cho đến nay.
- Để xuất khẩu các tạo phẩm có thể triển khai được cho dự án này, hãy nhấn vào File > Export.
- Trong hộp thoại tiếp theo, chọn Files for server deployment (Các tệp để triển khai máy chủ), dự án IntegrationSolution_MediationModule và nhấn Next để tiếp tục.
- Trong hộp thoại cuối cùng của trình hướng dẫn Export, chỉ rõ một
Archive File Name (Tên tệp lưu trữ), ví dụ là
IntegrationSolution_MediationModule.ear, chọn một Target directory để xuất khẩu dự án tới đó và nhấn Finish để hoàn thành xuất khẩu.
Trong phần dưới đây, chúng tôi sẽ trình bày các bước để tạo ra một ứng dụng web bao gồm các JSP và các lớp được tạo bởi trình hướng dẫn tạo trình máy khách của dịch vụ web JAX-WS. JAX-WS là một mô hình lập trình các dịch vụ web được xây dựng trên nền của mô hình API Java cho RPC dựa trên XML (JAX-RPC) và cung cấp thêm một cách tiếp cận không cần biết rõ nền hệ thống để định nghĩa các trình máy khách dịch vụ web. Ứng dụng web sẽ được sử dụng để kiểm tra sự tích hợp giữa Service Bus và Service Registry bằng cách gọi việc xuất khẩu kết buộc dịch vụ web của luồng trung gian SampleMediation.
- Trong vùng làm việc của Integration Developer, hãy nhấn vào File > New > Other.
- Trong hộp thoại được hiển thị trong Hình 63, hãy chọn Enterprise Application Project (Dự án ứng dụng doanh nghiệp) trong thư mục Java EE và nhấn Next để tiếp tục.
Hình 63. Tạo một dự án ứng dụng doanh nghiệp
- Trong hộp thoại tiếp theo, gõ
SampleClientvào trường Project name, giữ nguyên phần còn lại theo mặc định và nhấn Next để tiếp tục.
Hình 64. Các thuộc tính của dự án ứng dụng doanh nghiệp
- Tiếp theo, nhấn vào New Module (Mô đun mới).
Hình 65. Định nghĩa một mô đun phụ thuộc
- Trong hộp thoại tiếp theo, chọn Web module, giữ nguyên giá trị theo mặc định và nhấn Finish.
Hình 66. Tạo mô đun web
- Cuối cùng, kiểm tra xem SampleClientWeb đã được chọn chưa và nhấn Finish để hoàn thành trình hướng dẫn.
Hình 67. Kiểm tra mô đun web đã thêm vào
- Khi được nhắc chuyển sang phối cảnh Java EE , hãy nhấn No (Không).
- Tiếp theo, nhấn vào File > New > Other và chọn Web Service Client (Trình máy khách dịch vụ Web) trong thư mục Web Services (Các dịch vụ Web).
- Trong hộp thoại tiếp theo, gõ
/IntegrationSolution_Library/IntegrationSolution_MediationModule_ServiceInterfaceExport1.wsdlvào trường Service definition (Định nghĩa dịch vụ) và nhấn vào liên kết Server:... (Máy chủ: ...).
Hình 68. Chọn định nghĩa dịch vụ
- Tiếp theo, chọn WebSphere ESB Server v7.0 làm Server, IBM WebSphere JAX-WS làm Web service runtime (Môi trường thời gian chạy dịch vụ Web) và nhấn OK.
Hình 69. Chọn thời gian chạy dịch vụ Web
- Tiếp theo, nhấn vào liên kết Client project:... (Dự án trình máy khách: ...).
Hình 70. Quy định dự án trình máy khách
- Trong hộp thoại tiếp theo, chọn SampleClientWeb làm dự án trình máy khách và nhấn OK.
- Kiểm tra xem Configuration (Cấu hình) có như trong Hình 71 không và nhấn Next để tiếp tục.
Hình 71. Kiểm tra cấu hình
- Trong hộp thoại cuối cùng của trình hướng dẫn, đánh dấu chọn Generate portable client, giữ nguyên phần còn lại như mặc định và nhấn Finish. (Khi đã đánh dấu chọn tùy chọn Generate portable client một bản sao cục bộ của các tệp WSDL sẽ được lưu trữ trong thư mục <WebModule>/WebContent/WEB-INF/wsdl folder.)
Hình 72. Cấu hình đầy đủ của trình máy khách dịch vụ web
- Chuyển sang phối cảnh Java EE bằng cách nhấn vào Window > Open Perspective > Other > Java EE.
- Kiểm tra xem các lớp Java như trong Hình 73 đã được liệt kê trong khung nhìn Enterprise Explorer (Trình thám hiểm doanh nghiệp) chưa.
Hình 73. Các lớp Java trong khung nhìn Enterprise Explorer
- Kiểm tra xem một cấu hình máy chủ Service Bus đã tồn tại trong vùng làm việc Integration Developer chưa.
Hình 74. Cấu hình máy chủ
- Nhấn phím chuột phải vào ServiceInterfaceExport1_ServiceInterfaceHttpPortProxy.java trong SampleClientWeb > Java Resources > integrationsolution_library.serviceinterface.binding2 và chọn Web Services > Generate JAX-WS JSPs từ trình đơn ngữ cảnh.
- Trong hộp thoại Web Service Client Test (Thử nghiệm trình máy khách
dịch vụ Web), đánh dấu chọn Test the generated proxy (Thử nghiệm proxy
đã tạo ra), gõ
form(biểu mẫu) vào trường Folder (Thư mục), bỏ dấu chọn Run test on Server (Chạy thử nghiệm trên máy chủ), giữ nguyên phần còn lại như mặc định và nhấn Finish để hoàn thành trình hướng dẫn.
Hình 75. Cấu hình trình máy khách dịch vụ Web
- Kiểm tra xem các JSP như trong Hình 76 đã được liệt kê trong khung nhìn Enterprise Explorer chưa.
Hình 76. Các JSP của JAX-WS
- Để xuất khẩu các tạo phẩm có thể triển khai được cho dự án này, hãy nhấn vào File > Export.
- Trong hộp thoại tiếp theo, chọn EAR file trong thư mục Java EE và nhấn Next để tiếp tục.
- Tiếp theo, chọn SampleClient làm EAR project, chỉ rõ một Destination để xuất khẩu dự án tới đó, giữ nguyên phần còn lại như mặc định và nhấn Finish để hoàn thành việc xuất khẩu.
Triển khai các ứng dụng tới Service Bus
Tiếp theo, chúng ta sẽ triển khai các mô đun tích hợp đã xuất khẩu và dự án web vào môi trường thời gian chạy Service Bus qua Integrated Solutions Console. Các mô đun Web của tất cả các ứng dụng sẽ được ánh xạ tới cả máy chủ ứng dụng Service Bus lẫn IHS.
- Đăng nhập vào Integrated Solutions Console tại
http://<hostname>:<port>/ibm/console. (<hostname> chỉ ra tên miền phân biệt đầy đủ của máy tính trên đó cài đặt Service Bus và <port> chỉ ra giá trị mặc định là 9060). - Chuyển hướng đến Applications > New Application > New Enterprise Application.
- Chọn tệp IntegrationSolution_BackendModule.ear từ Local file system và nhấn Next.
- Chọn Fast Path và nhấn Next.
- Trong màn hình tiếp theo, giữ nguyên các giá trị như mặc định và nhấn Next.
- Tiếp theo, ánh xạ IntegrationSolution_BackendModuleWeb tới máy chủ ứng dụng Service Bus và máy chủ web trong Cluster and servers list (Danh sách các máy chủ và cụm), rồi nhấn Next để tiếp tục.
Hình 77. Ánh xạ các mô đun tới các máy chủ
- Xem lại tóm tắt về triển khai và nhấn Finish để cài đặt ứng dụng.
- Nhấn Review sau khi việc cài đặt hoàn thành.
- Chọn Synchronize changes with Nodes (Đồng bộ hóa những thay đổi với các nút) và nhấn Save.
- Khi việc đồng bộ hóa hoàn thành, nhấn OK.
- Chuyển hướng đến Applications > Application Types > WebSphere enterprise applications, chọn IntegrationSolution_BackendModuleApp và nhấn Start.
- Lặp lại các bước 1 - 11 để cài đặt và khởi động ứng dụng sau.
- IntegrationSolution_MediationModule.ear
- SampleClient.ear
Trong phần cuối cùng này, chúng ta sẽ truy cập ứng dụng web SampleClientWeb qua một trình duyệt. Ứng dụng này nhận một chuỗi ký tự đầu vào từ biểu mẫu web và hoặc trả về tên máy chủ ứng dụng Service Bus trên đó thực hiện dịch vụ phía sau hoặc một giá trị rỗng (null) nếu thấy không khớp trong Service Registry. Khi thực hiện bài thử nghiệm này, chúng ta sẽ xem xét lại tệp SystemOut.log của máy chủ ứng dụng Service Bus để kiểm tra xem các thông báo đã được các nguyên hàm trung gian Trace ghi nhật ký chưa.
- Khởi chạy ứng dụng web trong trình duyệt bằng cách truy cập
http://<hostname>/SampleClientWeb/form/TestClient.jsp(<hostname> nói đến tên miền phân biệt đầy đủ của máy tính trên đó cài đặt IHS. Chúng tôi không quy định rõ một cổng vì mô đun web của các ứng dụng doanh nghiệp được ánh xạ tới IHS).
Hình 78. SampleClientWeb
- Nhấn vào liên kết getServerResponse trong khung Methods (Các phương
thức), gõ 10 (hoặc bất kỳ giá trị chuỗi ký tự chữ và số nào khác với
'abc123def') vào trường input1 và nhấn Invoke. - Kiểm tra xem 'null' có được hiển thị trong khung Results (Các kết quả) như trong Hình 79 không.
Hình 79. Không tìm thấy có sự trùng khớp nào
- Mở C:\temp\dWSampleNoMatchFound.log trong một trình soạn thảo văn bản và xem thông báo được nguyên hàm trung gian Trace ghi nhật ký.
Hình 80. dWSampleNoMatchFound.log
- Tiếp theo, gõ
abc123defvào trường input1 và nhấn Invoke. - Kiểm tra xem 'Server response from <Service Bus application server> with input abc123def' có được hiển thị trong khung Results như trong Hình 81 không. (<Service Bus application server> chỉ ra máy chủ ứng dụng mặc định của lược tả Service Bus).
Hình 81. Đáp ứng từ máy chủ
- Chuyển về Integrated Solutions Console và chuyển hướng tới Troubleshooting > Logs and trace > [Service Bus application server] > JVM Logs. ([Service Bus application server] (Máy chủ ứng dụng Service Bus) là máy chủ ứng dụng mặc định của lược tả Service Bus).
- Nhấn vào ngăn Runtime và nhấn View bên cạnh SystemOut.log.
- Xem các thông báo được các nguyên hàm trung gian Trace ghi nhật ký như trong Hình 82.
Hình 82. SystemOut.log
Trong bài này, bạn đã học cách phát triển một giải pháp bằng cách sử dụng Integration Developer, qua đó trình diễn sự tích hợp giữa Service Bus và Service Registry. Bạn đã bắt đầu bằng cách tạo ra một dịch vụ tầng sau ví dụ mẫu và sau đó đã tải dịch vụ nói trên lên Service Registry. Sau đó bạn đã định nghĩa một luồng trung gian thực hiện việc tra tìm dựa vào Service Registry và đã tạo ra một trình máy khách của dịch vụ web JAX-WS để thử nghiệm kịch bản tích hợp này.
Tôi muốn gửi lời cảm ơn tới đồng nghiệp của tôi, Damien McAullay tại nhóm Các dịch vụ WebSphere của Phòng thí nghiệm Phát triển Úc đã xem lại bài này.
- Tìm thêm nhiều chi tiết về Service Registry trong
WebSphere Service Registry and Repository V7
Information Center (Trung tâm thông tin của Kho lưu trữ và Đăng ký dịch vụ
WebSphere V7).
- Tìm thêm nhiều chi tiết về Các chi tiết dịch vụ
trong WebSphere Enterprise Service Bus V7
Information Center (Trung tâm thông tin của Bus dịch vụ doanh nghiệp
WebSphere V7).
- Tìm hiểu cách thực hiện các cấu trúc liên kết của
WebSphere Business Process Management V7 bằng cách tham khảo WebSphere Business Process Management V7
Production Toplogies Redbook (Sách Đỏ về các cấu trúc liên kết của sản phẩm
Phiên bản 7 của Quản lý quy trình nghiệp vụ WebSphere).
- Đọc thông tin chi tiết về API Java cho Các dịch vụ Web XML (JAX-WS).
