Thiết kế các dịch vụ SOA với Rational Software Architect, Phần 4: Tạo và thử nghiệm các dịch vụ Web từ các mô hình UML

Hướng dẫn này, Phần 4 của một loạt bài viết, sẽ thảo luận làm thế nào để chuyển dịch một thiết kế theo chiều thuận từ UML thành WSDL và Java -- các tạo phẩm (artifacts) mà bạn có thể chạy và thử nghiệm. Một đặc tính quan trọng của Rational Software Architect (Kiến trúc sư phần mềm Rational) mà bạn sẽ sử dụng trong hướng dẫn này là khả năng tự động chuyển đổi giữa các mô hình. Bạn sẽ thảo luận về đặc tính này và cho thấy cách tiếp cận này có thể trợ giúp bạn như thế nào khi xem xét để chuyển bản thiết kế vừa qua thành việc triển khai thực hiện giải pháp.

Lee Ackerman, Giám đốc tiếp thị, IBM

Lee AckermanLee Ackerman là một nhà quản lý sản phẩm cao cấp của đội các giải pháp và các dịch vụ học tập của Rational, IBM. Ông tập trung vào việc tạo ra các tài sản vốn trí thức, cho phép những người sử dụng bộ công cụ phát triển dựa theo mô hình của Rational thành công trong việc tạo ra các giải pháp J2EE và SOA


Cấp độ đóng góp cho developerWorks của
        tác giả

Bertrand Portier, Kiến trúc IT, IBM Software Group Services

Bertrand Portier làm việc cho các công nghệ nâng cao SOA SWAG của IBM (trước đây là EIS). Ông đã tham gia rất nhiều vào việc phát triển kiến trúc hướng dịch vụ, phát triển dựa vào-mô hình và phát triển dựa trên tài sản. Là diễn giả thường xuyên tại các hội nghị và là tác giả của một số bài viết về kỹ thuật, ông cũng là đồng tác giả của cuốn sách đỏ của IBM về các giải pháp SOA



28 08 2009

Trước khi bạn bắt đầu

Hãy xem bạn có thể mong đợi những gì từ hướng dẫn này và làm thế nào để học được nhiều nhất từ nó.

Về loạt bài viết này

Để thu được những lợi ích của Service-Oriented Architecture (SOA - Kiến trúc hướng-dịch vụ) và Model-Driven Development (MDD - Phát triển dựa theo mô hình), môi trường thiết kế và phát triển của bạn cần có các đặc điểm sau:

  • Các cách làm thực tế tốt nhất: mọi người sẽ có thể sử dụng lại các giải pháp đã được kiểm chứng để giải quyết các vấn đề xảy ra nhiều lần và cũng cung cấp các giải pháp cho những người khác sử dụng lại.
  • Dựa theo vai trò: các công cụ cần được nhắm đến nhiệm vụ sắp tới và đến vai trò thực hiện nhiệm vụ đó (ví dụ, nhà phân tích nghiệp vụ hoặc Kiến trúc sư CNTT).
  • Hỗ trợ và hướng dẫn quy trình xử lý: môi trường phát triển luôn luôn cung cấp hướng dẫn tùy bối cảnh cho các phương pháp hay các quy trình.
  • Nền tảng mở rộng được: các nhóm sẽ có thể mở rộng hoặc tùy chỉnh môi trường sao cho ăn khớp với các nhu cầu của họ.
  • Tự động hóa: các ánh xạ và siêu mô hình ở dưới khung công tác sẽ cho phép chuyển đổi bán tự động các mô hình, từ các mức trừu tượng hóa cao hơn đến thấp hơn và cuối cùng thành mã có thể chạy được. Ngoài ra, cần có khả năng truy ngược lại từ các mức trừu tượng hóa thấp hơn đến cao hơn.

Tất cả những điều trên là các đặc tính của IBM Rational Software Delivery Platform (SDP - Nền phát triển phần mền Rational IBM ) và cụ thể hơn là của IBM® Rational® Software Architect (Kiến trúc sư phần mềm Ratonal IBM). Trong loạt bài viết của hướng dẫn này, bạn sẽ tìm hiểu làm thế nào để sử dụng nền tảng và các khả năng của nó để thiết kế các giải pháp SOA.

Hướng dẫn này mô tả một cách tiếp cận Top-Down Model-Driven Development (Phát triển hướng mô hình từ trên xuống dưới) bằng cách sử dụng Rational Software Architect. Chúng tôi cũng chỉ ra các mô hình dịch vụ có thể được mô tả theo các mức trừu tượng hóa khác nhau như thế nào (Business Process - Quy trình nghiệp vụ, Unified Modeling Language UML - Ngôn ngữ mô hình hóa thống nhất, Web Services Description Language hay WSDL - Ngôn ngữ mô tả dịch vụ Web và Java™) và làm thế nào để Rational Software Architect hỗ trợ hiển thị trực quan và chuyển đổi từ một mức trừu tượng hóa này tới mức trừu tượng hóa khác.

Nó cũng thảo luận về việc sử dụng các lược tả UML (UML profiles) cho các ngôn ngữ đặc thù miền như Hướng-dịch vụ. Chìa khóa để thu được các lợi ích của SOA là việc tái sử dụng các tài sản hiện có. Chúng tôi chỉ ra cách làm thế nào để sử dụng các mẫu thiết kế hiện có để giải quyết các yêu cầu về các dịch vụ của bạn. Sau khi tìm hiểu hết loạt bài viết này, bạn sẽ có khả năng thiết kế các dịch vụ bằng Rational Software Architect và sử dụng các khả năng bạn được cung cấp xoay quanh các lược tả UML, các mẫu thiết kế, các tài sản có khả năng sử dụng lại, các phép chuyển đổi và các dịch vụ web.

Về hướng dẫn này

Trong Phần 1 của loạt bài viết, bạn đã làm quen với Rational Software Architect và cách nó tích hợp với các công cụ khác mà bạn sử dụng trong các giai đoạn khác nhau của vòng đời SOA như thế nào.

Trong Phần 2, bạn đã tìm hiểu cách sử dụng Rational Software Architect, UML và UML 2 Profile cho Các dịch vụ phần mềm như thế nào để thiết kế các dịch vụ.

Trong Phần 3, bạn đã tìm hiểu về các mẫu và các tài sản phần mềm có thể sử dụng lại và bạn sẽ sử dụng các mẫu thiết kế để giải quyết các yêu cầu. Hướng dẫn này tiếp tục chỉ ra cách bạn có thể liên kết các quyết định thiết kế với các yêu cầu trong một dự án IBM® Rational® RequisitePro® (khả năng truy vết nguồn gốc). Phần 3 đã kết thúc bằng việc cho bạn thấy làm thế nào để xuất bản các báo cáo thiết kế dịch vụ của bạn.

Hướng dẫn này, Phần 4 của một loạt bài viết, sẽ thảo luận làm thế nào để chuyển tiếp một thiết kế theo chiều thuận từ UML thành WSDL và Java (các tạo phẩm (artifacts) mà bạn có thể chạy và thử nghiệm). Một đặc tính quan trọng của Rational Software Architect mà bạn sẽ sử dụng trong hướng dẫn này là khả năng tự động chuyển đổi giữa các mô hình. Bạn sẽ thảo luận về đặc tính này và cho thấy cách tiếp cận này có thể trợ giúp bạn như thế nào khi xem xét để chuyển bản thiết kế vừa qua thành việc triển khai thực hiện giải pháp.

Các mục tiêu

Sau khi hoàn tất hướng dẫn này, bạn sẽ có một sự hiểu biết tốt hơn về cách làm thế nào để bạn có thể sử dụng việc chuyển đổi và các khả năng tạo mã của Rational Software Architect. Ngoài việc hỗ trợ cho việc mô hình hóa UML2, Rational Software Architect cho phép bạn sử dụng mô hình của bạn để sinh ra các tạo phẩm liên quan. Trong trường hợp này, hãy tập trung vào việc tạo WSDL cho các dịch vụ đã được mô hình hóa của bạn. Một khi chúng được sinh ra, bạn có thể sử dụng các trình thủ thuật (Wizards) và các công cụ bổ sung thêm để tạo ra các mã Java cần thiết để triển khai thực hiện các dịch vụ. Cuối cùng, nhưng không kém phần quan trọng, bạn có thể thử nghiệm bằng cách sử dụng môi trường thử nghiệm của IBM® WebSphere® Application Server (máy chủ ứng dụng WebSphere của IBM).

Các điều kiện cần trước

Để nhận được nhiều lợi ích hơn từ hướng dẫn này, bạn nên (nhưng không nhất thiết) quen thuộc với:

  • UML, Unified Modeling Language - Ngôn ngữ mô hình hóa thống nhất.
  • Rational Software Architect - Kiến trúc sư phần mềm Rational.
  • IBM® Rational® Software Modeler - Trình mô hình hóa phần mềm Rational.
  • RequisitePro, sản phẩm quản lý yêu cầu Rational của IBM.
  • SOA, Service-Oriented Architecture - Kiến trúc hướng dịch vụ.
  • SOAP, Simple Object Access Protocol - Giao thức truy cập đối tượng đơn giản.
  • WSDL, Web Service Definition Language - Ngôn ngữ định nghĩa dịch vụ Web.
  • XSD, XML Schema Definition - Định nghĩa lược đồ XML.

Xem Tài nguyên để có được các đường liên kết có ích đến các thông tin thêm nữa về các chủ đề này.


Mở đầu

Cho đến điểm này trong loạt bài viết, bạn đã thấy có thể sử dụng các mô hình để nắm bắt thiết kế về giải pháp dựa trên SOA của bạn như thế nào. Bạn đã có thể làm việc ở một số mức độ trừu tượng hóa khác nhau. Điều này đã cho phép bạn tập trung vào các chi tiết có liên quan nhất vào lúc này và bỏ qua các chi tiết có thể để lùi lại đến các bước sau trong quá trình phát triển của bạn. Trong phần này của loạt bài viết, bạn sẽ xem xét cách đi tiếp theo chiều thuận, từ một mô hình, sử dụng mô hình để sinh ra các tạo phẩm có liên quan đến việc triển khai thực hiện thực tế. Trong trường hợp này, bạn sẽ đi từ thiết kế UML tới một biểu diễn WSDL của các dịch vụ của bạn.

Phiên bản 7.0

Một điều quan trọng cần lưu ý trong phần hướng dẫn này là bạn đang sử dụng Phiên bản 7.0 của Rational Software Architect. Một liên kết đến phiên bản dùng thử của sản phẩm này được cung cấp trong phần Tài nguyên.

Trong Rational Software Architect, bạn sẽ sử dụng một đặc tính được gọi là Chuyển đổi và như tên gọi ngụ ý, nó chuyển đổi mô hình của bạn thành một tệp tin WSDL với các tệp tin XSD kèm theo. Sau khi bạn đã tạo ra tập hợp các tệp WSDL và các tệp tin có liên quan khác, bạn sẽ tận dụng lợi thế của môi trường phát triển tích hợp mà Rational Software Architect cung cấp. Bạn có thể hiển thị trực quan các tệp tin WSDL, sinh ra mã Java để triển khai thực hiện dịch vụ, tạo ra một trình khách thử nghiệm, triển khai dịch vụ trên một máy chủ thử nghiệm và sau đó tương tác với máy chủ và thử nghiệm dịch vụ.


Nhập khẩu dự án mô hình hóa

Bạn sẽ bắt đầu hướng dẫn này bằng cách sử dụng một tệp tin trao đổi dự án, dựa trên kết quả đầu ra của ba phần dầu trong loạt bài viết này. Để bắt đầu, bạn sẽ cần phải nhập khẩu tệp tin này. Bạn cần phải thực hiện theo các bước sau:

  1. Khởi động Rational Software Architect và chuyển đổi sang phối cảnh Mô hình hóa (Modeling perspective).
  2. Chọn File > Import.
  3. Nhập Project vào trường Chọn một nguồn nhập khẩu (Select an Import source) của trình thủ thuật hộp thoại nhập khẩu (Import dialog). Khía cạnh công việc này trong các trình thủ thuật là mới có trong phiên bản này của Rational Software Architect. Để hỗ trợ bạn trong việc tìm kiếm kiểu nguồn nhập khẩu, bạn có thể nhập vào các từ để lọc các mục được cung cấp.
  4. Danh sách đã lọc xuất hiện như được hiển thị trong Hình 1. Tại điểm này, bạn muốn chọn Trao đổi dự án (Project Interchange) từ thư mục khác (Other), sau đó nhấn vào Next.
    Figure 1. Nhập khẩu Trao đổi dự án (Project Interchange)
    nguồn nhập khẩu trong khung nhìn explorer
  5. Nhấn vào nút Browse và chuyển hướng tới thư mục ở đó bạn lưu trữ tệp tin SOA-Design-Part4-Intrchg.zip.
  6. Chọn tệp tin SOA-Design-Part4-Intrchg.zip và nhấn vào Open.
  7. Nhấn vào Select All, sau đó nhấn vào Finish.
  8. Trong khung nhìn Project Explorer, chuyển hướng tới thư mục Models trong dự án ClaimManagementDemoDesign.
  9. Nhấn chuột phải vào Claims Processing Service Design Model và chọn Open Model.
  10. Khám phá các sơ đồ và các phần tử mô hình trong mô hình đó. Như đã đề cập trước đó, điều này dựa trên kết quả đầu ra từ Phần 3 trong loạt hướng dẫn này. Nếu bạn đã đọc qua phần đó của loạt bài viết này bạn sẽ không nhận thấy có bất cứ điều gì đáng ngạc nhiên cả.
    Một điều thú vị cần lưu ý là khung nhìn Model Explorer đã biến mất. Trong phiên bản này của Rational Software Architect, bạn có thể xem và làm việc với các phần tử mô hình của bạn từ bên trong khung nhìn Project Explorer, như được hiển thị trong Hình 2.
    Hình 2. Các phần tử trong Project Explorer sau khi nhập khẩu
    Project Explorer chỉ ra tất cả các phần tử trong một cây

Tại điểm này, bạn có mô hình được nạp vào trong Rational Software Architect và sẵn sàng để đi tiếp.


Tạo ra và hiển thị WSDL

Trong phần này của hướng dẫn, bạn sẽ áp dụng một Phép chuyển đổi UML thành WSDL để tạo ra một bộ các tệp tin WSDL và XSD dựa vào thiết kế Dịch vụ đã được mô hình hóa. Sau đó, bạn sẽ xem lại tệp tin WSDL được tạo ra bằng cách sử dụng các khả năng hiển thị trực quan của Rational Software Architect. Điều then chốt cần ghi nhớ là bạn muốn sử dụng các đặc tính của Rational Software Architect để cho phép bạn tập trung vào khía cạnh cụ thể của việc thiết kế và việc triển khai thực hiện. Bạn có thể bỏ qua các chi tiết không liên quan vào lúc này và chỉ làm việc với những gì bạn hiện nay đang cần (hoặc quan tâm đến).

Cấu hình phép chuyển đổi UML thành WSDL

Bước đầu tiên trong việc thực hiện chuyển đổi là tạo ra một cấu hình để hướng dẫn cách chuyển đổi sẽ được áp dụng như thế nào. Là một phần của cấu hình, bạn có thể chỉ rõ các chi tiết như:

  • Nguồn (Source): Tham số này chỉ rõ đầu vào của chuyển đổi. Như bạn có thể mong đợi, đây là tham số quan trọng nhất của phép chuyển đổi. Kết quả đầu ra được tạo ra là gì có liên quan trực tiếp đến việc đã xác định làm đầu vào là cái gì.
  • Đích (Target): Thông thường bạn cần phải định rõ một dự án sẽ được dùng để chứa các kết quả đầu ra của phép chuyển đổi.
  • Các tùy chọn WSDL (WSDL Options): Trong trường hợp phép chuyển đổi WSDL, bạn có thể định rõ các chi tiết dành riêng cho việc ánh xạ giữa các WSDL và UML.
  • Các tùy chọn Chuyển đổi (Transformation Options): Phần này của cấu hình cho phép bạn chỉ rõ các tùy chọn có sẵn trên các phép chuyển đổi, chẳng hạn như là việc ghi nhật ký công việc đã thực hiện khi thi hành chuyển đổi.

Để tùy chỉnh cấu hình có kèm theo với phép chuyển đổi UML thành WSDL, bạn sẽ cần phải thực hiện theo các bước sau:

Lưu ý:

Phép chuyển đổi UML thành WSDL là một đặc tính tuỳ chọn mà bạn cần phải chọn khi bạn cài đặt Rational Software Architect.

  1. Chọn Modeling > Transform > New Configuration.
  2. Ghi rõ MyUMLtoWSDL là Tên (Name).
  3. Chọn UML to WSDL cho IBM Rational Transformation, như được hiển thị trong Hình 3.
    Hình 3. Tạo một Cấu hình chuyển đổi mới (new Transformation Configuration)
    chỉ rõ thông tin chuyển đổi và tệp tin

Phép chuyển đổi thuận

Trong trường hợp này, phép chuyển đổi UML thành WSDL là một chuyển đổi thuận (Forward Transformation). Một phép chuyển đổi thuận nhận một mô hình trừu tượng hơn làm đầu vào và tạo ra một mô hình kết quả đầu ra chi tiết hơn. Ngược lại, một phép chuyển đổi ngược (Reverse Transformation) nhận một mô hình chi tiết hơn và biến đổi nó thành một mô hình trừu tượng hơn. Ví dụ, Rational Software Architect có một phép chuyển đổi thuận để tạo ra mã Java dựa trên một mô hình UML. Ngoài ra, nó cũng có một phép chuyển đổi ngược để tạo ra một mô hình UML dựa trên một dự án Java.

  1. Chỉ rõ /ClaimManagementDemoDesign là địa điểm đích của tệp tin cấu hình. Nhấn Next.

Các tệp tin cấu hình

Việc này chỉ thị cho trình thủ thuật đặt tệp tin cấu hình trong dự án mô hình hóa của bạn. Nếu mong muốn, hoặc cần thiết, bạn có thể có nhiều tệp tin cấu hình trong dự án của bạn. Các cấu hình có thể có liên quan đến cùng một phép chuyển đổi, một số các phép chuyển đổi, hoặc một sưu tập của chúng. Ngoài ra, nếu có một cấu hình cụ thể mà bạn cần phải chia sẻ với nhóm của bạn, bạn có thể chia sẻ tệp tin cấu hình này với họ.

  1. Trên trang Nguồn (Source) và Đích (Target) của trình thủ thuật:
    1. Bạn cần phải định rõ nơi bạn muốn phép chuyển đổi sẽ đặt các tạo phẩm mà nó sinh ra vào đó. Để làm như vậy, nhấn vào Tạo thùng chứa đích mới (Create New Target Container).
      1. Chọn Hiển thị tất cả các trình thủ thuật (Show All Wizards).
      2. Dynamic vào trường Wizards để lọc các kiểu các dự án.
      3. Chọn Dự án Web động (Dynamic Web Project), là kiểu dự án mà phép chuyển đổi yêu cầu và sau đó nhấn vào Next, như được hiển thị trong Hình 4.
        Hình 4. Lựa chọn trình thủ thuật Dynamic Web Project
        Lựa chọn một trình thủ thuật trong New Project wizard
      4. Nếu được nhắc, hãy nhấn vào OK để cho phép hoạt động Phát triển Web (điển hình) (Web Development (typical)) và có thể chọn thêm Luôn luôn cho phép các hoạt động (Always enable activities).
      5. Ghi rõ ClaimManagement làm tên dự án (Project Name).
      6. Đảm bảo rằng WebSphere Application Server v6.1 được chỉ rõ làm môi trường chạy thực (Target Runtime), như được hiển thị trong Hình 5.
      7. Nhấn vào Finish.
        Hình 5. Cấu hình Dynamic Web Project
        cung cấp Thời gian chạy đích, các cấu hình và hội viên EAR
      8. Nhấn No khi yêu cầu chuyển đổi sang Phối cảnh Web (Web Perspective).

Luôn luôn cho phép các hoạt động

Nếu bạn được nhắc bằng một hộp thoại Xác nhận Hỗ trợ (Confirm Enablement), hãy chọn Luôn luôn cho phép các hoạt động và không hỏi lại tôi nữa (Always enable activities and don’t ask me again). Sau đó nhấn OK. Thao tác này chỉ thị cho Rational Software Architect kích hoạt các đặc tính khi cần thiết. Rational Software Architect sử dụng các vai trò (Role) và các khả năng (Capability) để hạn chế việc nạp vào và trình bày các đặc tính. Khi bạn truy cập vào một đặc tính có liên quan đến một Role hay Capability, Rational Software Architect sẽ nhắc bạn bật các đặc tính. Bạn đang đặt cấu hình nó sao cho nó sẽ chỉ bật các đặc tính theo mặc định mà không cần truy vấn bạn.

  1. Đảm bảo rằng ClaimManagement, dự án mới tạo của bạn, được chọn làm Dự án đích (Target Project).
  2. Trong ô nguồn được chọn (Selected source), chuyển hướng tới và chọn ClaimManagementDemoDesign > Models > Claims Processing Service Design Model > Services > ClaimProcessor, như được hiển thị trong Hình 6.
    Hình 6. Chỉ rõ nguồn và đích
    Cửa sổ Cấu hình chuyển đổi mới
  3. Nhấn Next.
  4. Chấp nhận SOAP-DOCUMENT-LITERAL làm kết buộc mặc định. Nhấn Next.
  5. Cập nhật Các thuộc tính (Properties) như sau:
    1. Ghi rõ www.biginsurance.com làm Vùng tên mặc định (Default namespace).
    2. Đặt Ghi đè lên các tệp tin mà không có cảnh báo (Overwrite files without warning) bằng Đúng (True), như được hiển thị trong Hình 7.
      Hình 7. Ghi rõ các thuộc tính cho cấu hình
      Ghi rõ thuộc tính và giá trị
  6. Nhấn vào Finish, để hoàn thành việc cấu hình của bạn cho phép chuyển đổi này.

Cấu hình

Sau khi bạn đã hoàn thành trình thủ thuật Cấu hình chuyển đổi (Transformation Configuration), một tệp tin có tên là MyUMLtoWSDL.tc đã được thêm vào dự án. Đây là cấu hình mà bạn chỉ định để chuyển đổi UML thành WSDL. Nếu bạn muốn xem xét lại hoặc thực hiện bất kỳ các thay đổi nào về cấu hình, bạn có thể nhấn đúp vào tệp tin đó trong Project Explorer để mở cấu hình trong một trình soạn thảo. Trình soạn thảo cung cấp cho bạn khả năng để chỉnh sửa nguồn và đích, các tùy chọn WSDL và các thuộc tính khác có liên quan đến phép chuyển đổi đó.

    1. Lúc trình thủ thuật hoàn thành, cấu hình mà bạn đã tạo ra sẽ được mở ra theo mặc định trong trình soạn thảo cấu hình, như được hiển thị trong Hình 8. Nếu không, bạn có thể mở nó bằng cách tìm đến nó trong khung nhìn Project Explorer và sau đó nhấn đúp vào tệp tin MyUMLtoWSDL.tc.
      Hình 8. Cấu hình chuyển đổi trong trình soạn thảo cấu hình
      Tab MyUMLtoWSDL.tc
    2. Nhấn vào nút Xem tài liệu làm căn cứ chuyển đổi (View Transformation Documentation để xem tài liệu làm căn cứ kết hợp với phép chuyển đổi này.
    3. Nhấn vào đường liên kết Tài liệu làm căn cứ của phép chuyển đổi UML thành WSDL (UML to WSDL transformation documentation).
    4. Tại điểm này, bạn có thể dành chút thời gian để xem xét các tư liệu đã sẵn sàng (Hình 9) để thực hiện hầu hết việc chuyển đổi này. Các tài liệu làm căn cứ cung cấp thông tin về việc làm thế nào để sử dụng lược tả Các dịch vụ phần mềm (Software Services), làm thế nào để tạo và chỉnh sửa cấu hình cho phép chuyển đổi này và làm thế nào để chạy thi hành phép chuyển đổi. Nó cũng cung cấp một cái nhìn khái quát về các kết buộc WSDL được hỗ trợ.
      Hình 9. Tài liệu làm căn cứ để hỗ trợ chuyển đổi
      thông tin trợ giúp
    5. Đóng cửa sổ tài liệu. Quay trở lại phối cảnh mô hình hóa trong Rational Software Architect.
    6. Trong trình soạn thảo Configuration, nhấn vào tab Nguồn và đích (Source and Target). Nguồn và đích phải tương ứng với những thứ được hiển thị trong Hình 10.
      Hình 10. Cấu hình chuyển đổi trong Project Explorer và bên trong trình soạn thảo cấu hình
      Thông tin Project Explorer, nguồn và đích
    Đóng tệp MyUMLtoWSDL.tc.

Thực hiện chuyển đổi UML thành WSDL

Bây giờ bạn đã thiết lập một cấu hình chuyển đổi, bước tiếp theo là thực hiện chuyển đổi và tạo ra các tạo phẩm mã lệnh của bạn. Đây là một quá trình nhanh chóng và dễ dàng và được hoàn thành thông qua ba bước đơn giản sau đây:

  1. Chọn tệp tin MyUMLtoWSDL.tc trong khung nhìn Project Explorer.
  2. Nhấn chuột phải vào tệp tin và chọn Transform > UML to WSDL.
  3. Chuyển sang phối cảnh Web và xem xét các tạo phẩm đã được tạo ra, như được hiển thị trong Hình 11.
    Hình 11. Những tệp tin được tạo ra bởi phép chuyển đổi UML thành WSDL
    Liệt kê tệp tin trong Project Explorer

Như bạn có thể thấy, đây là một quá trình đơn giản chỉ với một vài bước. Nếu đây là một dự án phát triển thực sự, chắc rằng bạn sẽ chạy chuyển đổi này nhiều hơn một lần. Một kịch bản chung là bạn sẽ khám phá ra rằng các yêu cầu của bạn đã thay đổi hoặc bạn đã phạm một số lỗi trong thiết kế của bạn. Bạn sẽ cập nhật mô hình UML của bạn và sau đó tạo lại WSDL, sử dụng phép chuyển đổi ấy.

Hiển thị trực quan WSDL

Bạn đã đặt cơ sở cho việc triển khai thực hiện bằng các tạo phẩm kết quả đầu ra của phép chuyển đổi, nhưng bạn vẫn có các chi tiết (và các tạo phẩm triển khai thực hiện khác) mà bạn cần phải thêm vào giải pháp. Để làm điều này, bạn sẽ sử dụng các khả năng Chỉnh sửa và Hiển thị trực quan của Rational Software Architect để làm việc với WSDL đã tạo ra.

  1. Trong khung nhìn Project Explorer, nhấn chuột phải vào tệp tin ClaimProcessor.wsdl và chọn Visualize > Add to New Diagram File > Class Diagram. Điều này sẽ dẫn đến một kết quả giống như sơ đồ được chỉ ra trong Hình 12.
    Hình 12. Biểu diễn trực quan các dịch vụ có trong tệp tin ClaimProcessor.wsdl
    Sơ đồ dịch vụ

Việc hiển thị trực quan

Quá trình này để hiển thị các tạo phẩm mức mã lệnh là nhất quán trên các tạo phẩm WSDL và Java. Chỉ cần chọn tạo phẩm trong khung nhìn Project Explorer, chọn Visualize và chọn trình đơn con thích hợp dựa vào kiểu sơ đồ mà bạn muốn sử dụng để xem tạo phẩm này.

  1. Trong sơ đồ lớp, nhấn đúp vào iclaimvalidator «WSDL Service» để mở tệp tin WSDL trong trình soạn thảo WSDL, như được hiển thị trong Hình 13.
    Hình 13. Một biểu diễn trực quan của các dịch vụ có trong tệp tin ClaimProcessor.wsdl
    Các chi tiết trong trình soạn thảo WSDL
  2. Tại điểm này, nếu bạn muốn thêm vào một cổng WSDL mới, bạn sẽ làm điều này bằng cách nhấn chuột phải vào một trong các dịch vụ và chọn Thêm cổng (Add Port). Bạn không cần phải thực hiện nó cho bài tập này, nhưng các bước sau đây cung cấp một vài hướng dẫn ngắn gọn về cách làm thế nào để có thể thực hiện nó.
  3. Bên trong trình thủ thuật Port bạn có thể chỉ rõ các chi tiết cổng, như được hiển thị trong Hình 14:
    1. Một Tên (Name)của dịch vụ.
    2. Một Kết buộc và Giao thức (Binding and Protocol)
    3. Các Tùy chọn kết buộc (Binding Options).
    Hình 14. Các tuỳ chọn có thể được thiết lập trong thủ thuật Port khi thêm một cổng mới
    Chỉ rõ Name, Binding, và Protocol
  4. Bạn cũng có thể sử dụng khung nhìn này để thêm và cấu hình các thông báo kết hợp với dịch vụ. Bạn không cần phải làm điều đó với bài tập này, nhưng các bước sau đây cung cấp một vài hướng dẫn ngắn gọn về cách làm thế nào để có thể thực hiện nó.
    1. Trước tiên, bạn muốn tiếp cận một khung nhìn để chỉ tập trung vào các hoạt động được cung cấp thông qua cổng này. Để làm như vậy, nhấn đúp chuột vào kiểu cổng IClaimRecorder dẫn đến một khung nhìn tương tự như khung nhìn trong Hình 15.
      Hình 15. Một biểu diễn trực quan các dịch vụ có trong tệp tin ClaimProcessor.wsdl
      IClaimRecorder mô tả chi tiết trong trình soạn thảo WSDL
    2. Tiếp theo, bạn có thể thêm vào một hoạt động mới bằng cách nhấn chuột phải vào kiểu cổng IClaimRecorder và chọn Thêm hoạt động (Add Operation), như được hiển thị trong Hình 16.
      Hình 16. Trong khi xem hiển thị trực quan về dịch vụ, bạn có thể Add Operations
      bạn có thể Xóa, chỉ ra các thuộc tính, cấu trúc lại hay nhận các tài liệu tham khảo
  5. Quay trở lại sơ đồ lớp mức đỉnh bằng cách nhấn ALT- mũi tên ngược hai lần.

Tạo ra và thử nghiệm dịch vụ Web

Tạo ra dịch vụ web

Cho đến điểm này, bạn chỉ mới hiển thị các tạo phẩm đã được sinh ra bởi phép chuyển đổi. Như có thể dự đoán trước, công việc bạn cần làm không kết thúc ở đây. Bạn vẫn còn cần phải có bản triển khai thực hiện để có thể chạy trên máy chủ. Hãy tiến thêm một bước nữa và bắt đầu để tạo ra một số mã dựa trên các tạo phẩm đó. Để làm như vậy, thực hiện theo các bước sau:

  1. Nhấn chuột phải vào iclaimrecorder và chọn Triển khai thực hiện dịch vụ Web (Implement Web Service), như được hiển thị trong Hình 17.
    Hình 17. Bước đầu tiên trong việc triển khai thực hiện dịch vụ Web
    Trình đơn bối cảnh iclaimrecorder
  2. Điền vào màn hình đầu tiên trong trình thủ thuật Web Service, như được hiển thị trong Hình 18.
    Hình 18. Chỉ rõ rằng bạn muốn xây dựng và triển khai dịch vụ này
    điền kiểu dịch vụ, định nghĩa dịch vụ và kiểu khách

Thử nghiệm

Bạn đã không chỉ thị cho Rational Software Architect xây dựng một trình khách cho dịch vụ Web này. Thay vào đó bạn sẽ sử dụng Web Services Explorer để thử nghiệm dịch vụ.

  1. Nhấn vào Finish.

Phần đầu tiên trong trình thủ thuật được sử dụng để thiết lập các giá trị dành cho việc sinh ra một bộ các lớp Java, nhằm cung cấp bản triển khai thực hiện một dịch vụ Web. Sau khi các lớp đã được tạo ra, Rational Software Architect sẽ triển khai dịch vụ lên một máy chủ thử nghiệm và sau đó khởi động máy chủ. Trong trường hợp này, bạn đang triển khai dịch vụ cho WebSphere Test Environment (Môi trường thử nghiệm WebSphere) bằng cách sử dụng phiên bản 6.1 của WebSphere Application Server.

Phần thứ hai của trình thủ thuật được sử dụng để để thiết lập các giá trị dành cho việc tạo ra một trình khách thử nghiệm dịch vụ. Trong trường hợp này, bạn đang sử dụng Web Services Explorer, mà không đòi hỏi phải tạo ra một trình khách thử nghiệm.

Có thể mất một chút thời gian để hoàn thành, vì không chỉ là tạo ra các lớp để triển khai thực hiện dịch vụ này, mà đồng thời cũng triển khai ứng dụng lên môi trường thử nghiệm và khởi động môi trường thử nghiệm của WebSphere Application Server.

Bạn sẽ thấy các tệp IClaimRecorderBindingImpl.javaIClaimValidatorBindingImpl.java mở ra trong trình soạn thảo Java. Đây là các triển khai thực hiện bằng bean (dựa vào kiến trúc thành phần JavaBean™) của các dịch vụ Web. Các trình phát sinh (emitters) dịch vụ Web của Rational Software Architect cũng sẽ tạo ra tất cả các tạo phẩm cần thiết để triển khai thực hiện các dịch vụ Web ClaimValidatorServiceClaimRecorderService dưới dạng các bean.

Bây giờ, ta hãy đưa một số mã cơ bản vào trong lớp IClaimRecorderBindingImpl.java để nó cung cấp cho bạn một đáp ứng khi bạn đang thử nghiệm dịch vụ này. Trong thực tế, bạn nên dành nhiều thời gian hơn để bổ sung thêm logic nghiệp vụ vào mã được tạo ra. Trong trường hợp này, bạn sẽ chỉ cần thêm một số mã đơn giản để bạn có thể thực hiện một số thử nghiệm cơ bản.

  1. Cập nhật lớp IClaimRecorderBindingImpl.java sao cho nó giống như được hiển thị trong Liệt kê 1.
    Liệt kê 1. Cập nhật lớp IClaimRecorderBindingImpl.java
    package Services;
    
    import Messages.RecordClaimResponse;
    
    public class IClaimRecorderBindingImpl implements 
        ServiceSpecifications.IClaimRecorder
    {
    	static private int claimNumber = 0;
        public Messages.RecordClaimResponse recordClaimDetails
        (Messages.RecordClaimRequest request) throws java.rmi.RemoteException 
        {
    		RecordClaimResponse rcr = new RecordClaimResponse();
    		rcr.setClaimNumber(IClaimRecorderBindingImpl.claimNumber += 1);
    		return rcr;
    
        }
    
        public Messages.RecordClaimResponse adjustClaim
        (Messages.Claim claim) throws java.rmi.RemoteException 
        {
            return null;
        }
    
    }

    Điều chủ yếu mà bạn đang thêm vào ở đây là một số mã cơ bản để hỗ trợ khi bạn thử nghiệm dịch vụ này. Trong trường hợp này, mỗi khi một yêu sách bồi thường được đệ trình, bạn muốn trả về số yêu sách mới.
  2. Sau khi bạn đã cập nhật mã này, chọn File > Save All.Lưu ý rằng máy chủ khởi động lại mô đun vì nó đồng bộ hóa để kết hợp các thay đổi mà bạn đã thực hiện.

Tại điểm này, bản triển khai thực hiện dịch vụ Web đã được tạo ra và được triển khai trên máy chủ. Trong phần kế tiếp, bạn sẽ xem xét cách bạn có thể thử nghiệm dịch vụ này như thế nào khi sử dụng Web Services Explorer.

Thử nghiệm dịch vụ Web

Trong phần này, bạn sẽ xem xét cách bạn có thể thử nghiệm dịch vụ được tạo ra bằng cách sử dụng Web Services Explorer. Web Services Explorer là một công cụ đơn giản mà bạn có thể sử dụng để tương tác và thử nghiệm các dịch vụ Web của bạn. Bằng cách sử dụng công cụ này, bạn có thể truy cập dịch vụ Web mà bạn tạo ra và đã xuất bản trong những nhiệm vụ trước đó. Sau khi truy cập, bạn có thể gửi dữ liệu thử nghiệm và đảm bảo rằng dịch vụ này hành động như mong đợi.

  1. Trong khung nhìn Project Explorer, chuyển hướng tới JSR-109 Web Services > Services và sau đó chọn iclaimrecorder. Nhấn chuột phải và chọn Thử nghiệm với Trình thám hiểm các dịch vụ Web (Test with Web Services Explorer). Thao tác này mở ra cửa sổ được hiển thị trong Hình 19.
    Hình 19. Danh sách các dịch vụ được hiển thị trong Web Services Explorer
    Các chi tiết, các dịch vụ và các ràng buộc WSDL

Vai trò đúng

Nếu bạn không nhìn thấy tùy chọn trình đơn Test with Web Services Explorer quay trở lại màn hình Chào mừng và đảm bảo rằng bạn đã chọn vai trò Web Service Developer (Nhà phát triển dịch vụ Web ).

  1. Trong phần Services, hãy nhấn vào iclaimrecorder, như được hiển thị trong Hình 20.
    Hình 20. Các chi tiết kết hợp với một dịch vụ
    tên, kiểu và tài liệu được liệt kê
  2. Trong phần Bindings, nhấn vào IClaimRecorderBinding, như được hiển thị trong Hình 21.
    Hình 21. Các hoạt động hiện có của dịch vụ này
    các hoạt động và các điểm cuối
  3. Trong phần Operations nhấn vào onrecordClaimDetails.

Tại điểm này, bạn sắp tương tác với hoạt động recordClaimDetails dành cho dịch vụ iclaimrecorder. Để dễ dàng chỉnh sửa các giá trị mà bạn sắp đệ trình thông qua hoạt động này, nên mở rộng tối đa vùng soạn thảo.

  1. Để mở rộng Web Services Explorer, nhấn đúp chuột vào tab Web Services Explorer, như được hiển thị trong Hình 22.
    Hình 22. Nhấn đúp chuột vào phiếu để mở rộng tối đa kích thước của Web Services Explorer
    mở rộng tối đa kích thước
  2. Bây giờ, hãy làm tăng kích thước của phần Actions. Để làm như vậy, nhấn đúp vào phần Actions, như được hiển thị trong Hình 23.
    Hình 23. Phần Actions được mở rộng tối đa
    các tham số và nội dung

Lưu ý rằng vào điểm này bạn có thể điền các chi tiết về một số khía cạnh trong việc điền một yêu sách bồi thường. Cụ thể là, bạn có thể chỉ rõ các thông tin về khách hàng và chính sách. Tuy nhiên, bạn không được cung cấp bất kỳ các trường nào để định rõ thông tin về chính yêu sách đó. Ngoài ra hãy nhớ lại rằng khi bạn đã mô hình hóa dịch vụ này bạn đã sử dụng mẫu phức hợp để chỉ rõ rằng, khi bạn ghi lại một yêu sách bồi thường, bạn đã có thể chỉ rõ từ không có đến có nhiều hồ sơ yêu sách, như được hiển thị trong Hình 24.

Hình 24. Biểu diễn UML của các phần tử trong RecordClaimRequest
Sơ đồ UML

Web Services Explorer phản ánh khía cạnh này của dịch vụ bằng cách cho phép bạn tạo ra một hoặc nhiều ClaimFolders. Trong trường hợp thử nghiệm này, ta hãy chỉ cung cấp một tham số ClaimFolder. Để làm như vậy, thực hiện theo các bước sau:

  1. Nhấn vào liên kết Add nằm bên cạnh phần tử claimfolder , như được hiển thị trong Hình 25.
    Hình 25. Thêm một cá thể của ClaimFolder vào lời gọi hoạt động của bạn
    các đường liên kết claimfolder, Thêm và tách ra
  2. Nhập vào dữ liệu thử nghiệm như được hiển thị trong Hình 26.
    Hình 26. Dữ liệu thử nghiệm để gửi đi cùng với lời gọi hoạt động
    các chi tiết nội dung
  3. Nhấp vào Go để gọi hoạt động này trên dịch vụ Web.
  4. Nhấn đúp chuột vào Actions để trả lại kích cỡ bình thường của phần này. Vào lúc này bạn đang quan tâm đến việc bảo đảm rằng dịch vụ Web đã chạy thi hành đúng và đã trả về một kết quả mong đợi (hoặc, ngược lại, xác định liệu có một kết quả bất ngờ đã được trả về không).
  5. Xem xét lại các thông tin trong phần Trạng thái (Status), như được hiển thị trong Hình 27.
    Hình 27. Các kết quả như được hiển thị trong phần Status
    Phần các trạng thái với một đường liên kết Source
  6. Lưu ý rằng trong trường hợp này, cuộc gọi đầu tiên của bạn đến dịch vụ này cho biết rằng claimNumber là 1.
  7. Bạn đã hoàn tất các bước. Bạn có thể dừng Máy chủ ứng dụng bằng cách chọn nó trong khung nhìn Servers, nhấn chuột phải vào nó, và chọn Dừng (Stop).

Tóm tắt

Kết luận

Xin chúc mừng, bạn đã hoàn thành hướng dẫn này!

Trong hướng dẫn này, bạn đã sử dụng Rational Software Architect để chuyển đổi một mô hình thiết kế dịch vụ thành một bộ các tệp tin WSDL và XSD. Sau khi bạn đã tạo ra các tạo phẩm này, bạn đã sử dụng một số công cụ để hiển thị và chỉnh sửa chúng và sau đó tạo ra một bản triển khai thực hiện các dịch vụ bằng Java. Sau khi các tài sản này đã được tạo ra, bạn đã triển khai chúng tới một máy chủ thử nghiệm và đã truy cập chúng thông qua Web Services Explorer.

Một điều mà bây giờ chúng tôi hy vọng đã nổi bật lên, khi bạn đã đạt đến điểm này của loạt bài viết là bạn đã sử dụng một số các công cụ và các đặc tính trong suốt quá trình làm việc. Mỗi công cụ và đặc tính phù hợp với một nhiệm vụ cụ thể, tại một thời điểm cụ thể. Điều này cho phép bạn tập trung vào các trách nhiệm của vai trò mà bạn đang đảm nhiệm tại thời điểm đó và đã cho phép bạn bỏ qua các chi tiết không liên quan tại thời điểm đó.

Khi bạn bắt đầu, bạn đã có quy trình nghiệp vụ của bạn được mô tả bằng cách sử dụng các thuật ngữ và ký pháp có ánh xạ tương ứng đến nghiệp vụ ( Business Process Modeling Notation-BPMN - Ký pháp mô hình hóa quy trình nghiệp vụ). Bạn đã có thể bỏ qua các chi tiết liên quan đến công nghệ, khi biết rằng điều quan trọng tại thời điểm này là đảm bảo rằng đã đang nắm bắt được các chi tiết về nghiệp vụ.

Tiếp tục tiến lên, bạn đã có thể chuyển tiếp biểu diễn này thành một bộ các phần tử mô hình UML, để cho có thể bắt đầu đưa vào thêm các thuật ngữ có liên quan đến cách bạn sẽ triển khai thực hiện một giải pháp như thế nào. Mặc dù các khái niệm bạn đã đưa vào là riêng cho các dịch vụ thông qua việc sử dụng UML 2 Profile cho Các dịch vụ phần mềm, bạn vẫn còn đang làm việc ở một mức độ trừu tượng hóa mà che dấu nhiều chi tiết có liên quan đến cách bạn sẽ thực sự triển khai thực hiện các dịch vụ đó như thế nào.

Cuối cùng nhưng không kém phần quan trọng, bạn đã sử dụng Phép chuyển đổi của Rational Software Architect để xuất phát từ mô hình Thiết kế dịch vụ của bạn xen thêm các chi tiết có liên quan đến triển khai thực hiện. Với các tạo phẩm đó làm đầu vào, bạn đã sử dụng các công cụ và các trình thủ thuật để tạo ra các dịch vụ Web.

Các bước tiếp theo

Tại điểm này trong loạt bài viết, bạn đã xem xét các cách thức trong đó các mẫu và các phép chuyển đổi mà IBM đã cung cấp có thể được sử dụng trong lúc thiết kế một giải pháp SOA. Các tài sản này đã cho phép bạn duy trì trọng tâm, sử dụng các cách làm thực tế tốt nhất và tạo ra các tạo phẩm một cách tự động. Trong phần tiếp theo của loạt bài viết này (Phần 5), bạn sẽ thảo luận về các cách thức trong đó bạn có thể tùy chỉnh Rational Software Architect. Tuỳ chỉnh này sẽ cho phép bạn xây dựng các kỹ thuật tự động hóa của riêng bạn, đặc thù cho dự án, công nghệ, quy trình và v.v.


Các tải về

Mô tảTênKích thước
Part 4 Input RSA Project InterchangeSOA-Design-Part4-Intrchg.zip10KB
Part 4 Solution RSA Project InterchangeSOA-Design-Part4-Solution-Intrchg.zip50KB

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luậ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=Rational, SOA và dịch vụ Web
ArticleID=423506
ArticleTitle=Thiết kế các dịch vụ SOA với Rational Software Architect, Phần 4: Tạo và thử nghiệm các dịch vụ Web từ các mô hình UML
publish-date=08282009