Xây dựng một ứng dụng mẫu để trình diễn sự tích hợp giữa WESB và WSRR V7

Bài này sẽ có ích cho các nhà phát triển, những người đang bắt đầu với WebSphere Enterprise Service Bus (WESB – Bus dịch vụ doanh nghiệp WebSphere) và WebSphere Service Registry and Repository (WSRR – Kho lưu trữ và Đăng ký dịch vụ WebSphere) và cung cấp một điểm tham khảo để xây dựng một giải pháp đơn giản bằng cách sử dụng WID để trình diễn sự tích hợp giữa các sản phẩm nói trên.

Benjamin Yee, Chuyên gia kỹ thuật WebSphere, IBM

Ảnh của Benjamin YeeBen làm việc trong nhóm Các dịch vụ WebSphere của Phòng thí nghiệm Phát triển Australia và cung cấp các dịch vụ triển khai cho nhiều khách hàng trên các sản phẩm WebSphere chủ yếu là WebSphere Process Server, WebSphere Enterprise Service Bus và WebSphere Application Server.



22 02 2013

Giới thiệu

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.

Điều kiện tiên quyết

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.

Tạo dịch vụ ví dụ mẫu

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.

  1. 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.
  2. Trong vùng làm việc của Integration Developer, hãy nhấn vào File > New > Integration Solution.
  3. Trong hộp thoại hiển thị trong Hình 1, gõ IntegrationSolution và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)
Hộp thoại Integration Solution
  1. 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
Hộp thoại thêm các dự án
  1. 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ụ)
Các dự án được liệt kê trong khung nhìn Business Integration
  1. 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
Khởi chạy trình hướng dẫn giao diện
  1. ServiceInterface và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)
Tạo một hộp thoại Interface
  1. 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
Trình sọan thảo giao diện
  1. 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à getServerResponse như trong Hình7.
Hình 7. Thêm hoạt động yêu cầu đáp ứng
Thêm hoạt động yêu cầu đáp ứng
  1. Nhấn vào File > Save để lưu lại các thay đổi đã thực hiện cho đến nay.
  2. 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
Sơ đồ Assembly của IntegrationSolution_BackendModule
  1. 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
Thành phần java
  1. 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
Thêm giao diện
  1. 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
Chọn ServiceInterface
  1. 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
Kiểm tra giao diện
  1. Nhấn chuột phải vào BackendComponent và chọn Generate Implementation từ trình đơn ngữ cảnh.
  2. Khi được nhắc đặt tên gói, gõ vào com.ibm.au.samples và nhấn OK.
  3. 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
Lớp BackendComponentImpl1.java
  1. Thay thế phần thân của phương thức getServerResponse bằng đoạn mã được hiển thị trong Hình 14.
Hình 14. Phương thức getServerResponse
Phương thức getServerResponse
  1. Nhấn File > Save All để lưu các thay đổi đã thực hiện cho đến nay.
  2. Chuyển đến Sơ đồ Assembly IntegrationSolution_BackendModule.
  3. Nhấn chuột phải vào BackendComponent và chọn Generate Export > Web Service Binding từ trình đơn ngữ cảnh.
  4. 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
Chọn giao thức truyền tải
  1. 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
Xuất khẩu kết buộc dịch vụ Web dành cho BackendComponent
  1. 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).
  2. Chọn ServiceInterfaceExport1_ServiceInterfaceHttpPort và gõ http://<hostname>:<port>/ IntegrationSolution_BackendModuleWeb/sca/ServiceInterfaceExport1 và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
Thay đổi địa chỉ cổng xuất khẩu BackendModule
  1. Nhấn File > Save All để lưu các thay đổi đã thực hiện cho đến nay.
  2. Nhấn File > Export để khởi động trình hướng dẫn xuất khẩu.
  3. 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
Xuất khẩu các mô đun và các thư viện tích hợp
  1. 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
Chọn Dự án
  1. 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ữ
Chỉ rõ tên tệp lưu trữ
  1. Để 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.
  2. 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
Xuất khẩu WSDL và XSD
  1. 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
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.

  1. Đă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).
  2. Nhấn Actions > Load Documents (Nạp tài liệu).
Hình 23. Nạp tài liệu dịch vụ
Nạp tài liệu dịch vụ
  1. 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).
    • ServiceBackend là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
Chọn WSDL của dịch vụ tầng sau
  1. 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ụ
Thêm giao diện dịch vụ
  1. 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.
    • ServiceInterface là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ụ
Chọn WSDL của giao diện dịch vụ
  1. 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ụ
Nạp các tài liệu dịch vụ
  1. 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
Tải lên các tài liệu dịch vụ
  1. Trong trường tìm kiếm như đã mô tả trong Hình 29, gõ ServiceInterfaceExport1_ServiceInterfaceHttpPort và 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
Tìm kiếm các tài liệu
  1. 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
Các kết quả truy vấn
  1. 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
Chỉnh sửa các thuộc tính tài liệu
  1. Nhấn Add Property (Thêm thuộc tính).
Hình 32. Thêm thuộc tính
Thêm thuộc tính
  1. sampleProperty và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
Thêm tên thuộc tính tùy chỉnh
  1. abc123def và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
Thêm giá trị thuộc tính tùy chỉnh
  1. 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
Kiểm tra thuộc tính tùy chỉnh
  1. 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
Khởi chạy trình hướng dẫn truy vấn
  1. 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ể
Chọn kiểu thực thể
  1. 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.
    • sampleProperty vào trường Property name.
    • abc123def vào trường Property value.
Hình 38. Nhập tên và giá trị thuộc tính
Nhập tên và giá trị thuộc tính
  1. 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
Tóm tắt tìm kiếm
  1. Nhấn vào liên kết ServiceInterfaceExport1_ServiceInterfaceHttpPort.
Hình 40. Các kết quả truy vấn
Các kết quả truy vấn
  1. 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
Các thuộc tính bổ sung

Định nghĩa luồng trung gian

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.

  1. 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 FlowSampleMediation. (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)
Mô đun trung gian
  1. 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
Thêm giao diện
  1. Trong hộp thoại Add Interface, chọn ServiceInterface và nhấn OK.
  2. 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
Thêm tài liệu tham khảo
  1. Trong hộp thoại Add Reference, chọn ServiceInterface và nhấn OK.
  2. Nhấn chuột phải vào SampleMediation và chọn Generate Implementation từ trình đơn ngữ cảnh.
  3. Trong hộp thoại Generate Implementation, chọn thư mục IntegrationSolution_MediationModule và nhấn OK.
  4. 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
Trình soạn thảo luồng trung gian
  1. 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
Tạo luồng trung gian
  1. 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
Tạo luồng trung gian
  1. 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
Luồng Yêu cầu và Đáp ứng được tạo ra
  1. 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, AfterLookupNoMatchFound, 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 các nguyên hàm trung gian Trace vào luồng Request
  1. 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
Thêm nguyên hàm trung gian Endpoint Lookup vào luồng Request
  1. 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
Kết nối các thiết bị đầu cuối trong luồng Request
  1. 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
Thêm nguyên hàm trung gian Trace vào luồng Response
  1. 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
Kết nối các thiết bị đầu cuối trong luồng Response
  1. 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
Các chi tiết về BeforeLookup
  1. 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
Các chi tiết về AfterLookup
  1. 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
Các chi tiết về NoMatchFound
  1. 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
Các chi tiết về WSRREndpointLookup
  1. 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
Các thuộc tính nâng cao của WSRREndpointLookup
  1. 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õ sampleProperty vào trường Name, gõ /body/getServerResponse/input1 vào trường Value và nhấn Finish.
Hình 59. Thêm thuộc tính người dùng
Thêm thuộc tính người dùng
  1. 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
Kiểm tra thuộc tính người dùng đã thêm vào
  1. 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.
  2. 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.
  3. 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.
  4. 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
Xuất khẩu kết buộc dịch vụ Web dành cho SampleMediation
  1. 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.
  2. Chọn ServiceInterfaceExport1_ServiceInterfaceHttpPort trong WSDL Editor và gõ http://<hostname>:<port>/IntegrationSolution_MediationModuleWeb/sca/ServiceInterfaceExport1 và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
Thay đổi địa chỉ cổng của xuất khẩu SampleMediation
  1. Nhấn File > Save All để lưu các thay đổi đã thực hiện cho đến nay.
  2. Để 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.
  3. 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.
  4. 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.

Tạo trình máy khách JAX-WS

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.

  1. Trong vùng làm việc của Integration Developer, hãy nhấn vào File > New > Other.
  2. 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
Tạo một dự án ứng dụng doanh nghiệp
  1. Trong hộp thoại tiếp theo, gõ SampleClient và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
Các thuộc tính của dự án ứng dụng doanh nghiệp
  1. 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
Định nghĩa một mô đun phụ thuộc
  1. 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
Tạo mô đun web
  1. 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
Kiểm tra mô đun web đã thêm vào
  1. Khi được nhắc chuyển sang phối cảnh Java EE , hãy nhấn No (Không).
  2. 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).
  3. Trong hộp thoại tiếp theo, gõ /IntegrationSolution_Library/IntegrationSolution_MediationModule_ServiceInterfaceExport1.wsdl và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ụ
Chọn định nghĩa dịch vụ
  1. 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
Chọn thời gian chạy dịch vu Web
  1. 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
Quy định dự án trình máy khách
  1. 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.
  2. 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
Kiểm tra cấu hình
  1. 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
Cấu hình đầy đủ của trình máy khách dịch vụ web
  1. Chuyển sang phối cảnh Java EE bằng cách nhấn vào Window > Open Perspective > Other > Java EE.
  2. 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
Các lớp Java trong khung nhìn Enterprise Explorer
  1. 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ủ
Cấu hình máy chủ
  1. 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.
  2. 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
Cấu hình trình máy khách dịch vụ Web
  1. 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
Các JSP của JAX-WS
  1. Để 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.
  2. 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.
  3. 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.

  1. Đă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).
  2. Chuyển hướng đến Applications > New Application > New Enterprise Application.
  3. Chọn tệp IntegrationSolution_BackendModule.ear từ Local file system và nhấn Next.
  4. Chọn Fast Path và nhấn Next.
  5. Trong màn hình tiếp theo, giữ nguyên các giá trị như mặc định và nhấn Next.
  6. 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ủ
Ánh xạ các mô đun tới các máy chủ
  1. Xem lại tóm tắt về triển khai và nhấn Finish để cài đặt ứng dụng.
  2. Nhấn Review sau khi việc cài đặt hoàn thành.
  3. Chọn Synchronize changes with Nodes (Đồng bộ hóa những thay đổi với các nút) và nhấn Save.
  4. Khi việc đồng bộ hóa hoàn thành, nhấn OK.
  5. Chuyển hướng đến Applications > Application Types > WebSphere enterprise applications, chọn IntegrationSolution_BackendModuleApp và nhấn Start.
  6. 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

Thử nghiệm ứng dụng

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.

  1. 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
SampleClientWeb
  1. 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.
  2. 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
Không tìm thấy có sự trùng khớp nào
  1. 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
dWSampleNoMatchFound.log
  1. Tiếp theo, gõ abc123def vào trường input1 và nhấn Invoke.
  2. 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ủ
Đáp ứng từ máy chủ
  1. 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).
  2. Nhấn vào ngăn Runtime và nhấn View bên cạnh SystemOut.log.
  3. 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
SystemOut.log

Kết luận

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.

Lời cảm ơn

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ài nguyên

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=SOA và dịch vụ Web
ArticleID=859083
ArticleTitle=Xây dựng một ứng dụng mẫu để trình diễn sự tích hợp giữa WESB và WSRR V7
publish-date=02222013