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 Lee Ackerman, Giám đốc tiếp thị, EMC Bertrand Portier, Kiến trúc I
Trang 1Thiế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
Lee Ackerman, Giám đốc tiếp thị, EMC
Bertrand Portier, Kiến trúc IT, IBM Software Group Services
Tóm tắt: 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
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
Trang 2• 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
Trang 3Nó 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ề đầu trang
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
Trang 4(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
Về đầu trang
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)
Về đầu trang
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:
Trang 5• 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
Trang 6Mở đầ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ụ
Trang 7Nhậ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)
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
Trang 8Figure 1 Nhập khẩu Trao đổi dự án (Project Interchange)
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
Trang 99 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
Trang 10Hình 2 Các phần tử trong Project Explorer sau khi nhập khẩu
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
Trang 11Tạ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,
Trang 12chẳ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
Trang 13Configuration)
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
Trang 14trê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
4 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ọ
5 Trên trang Nguồn (Source) và Đích (Target) của trình thủ thuật:
a 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)
i Chọn Hiển thị tất cả các trình thủ thuật (Show All Wizards)
ii Gõ Dynamic vào trường Wizards để lọc các kiểu các dự án
iii 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
Trang 15Hình 4 Lựa chọn trình thủ thuật Dynamic Web Project
iv 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)
v Ghi rõ ClaimManagement làm tên dự án (Project Name)
vi Đả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
vii Nhấn vào Finish
Trang 16Hình 5 Cấu hình Dynamic Web Project
viii 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
Trang 17bậ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
b Đả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)
c 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
d Nhấn Next
Trang 18e Chấp nhận SOAP-DOCUMENT-LITERAL làm kết buộc mặc định
Nhấn Next
f Cập nhật Các thuộc tính (Properties) như sau:
i Ghi rõ www.biginsurance.com làm Vùng tên mặc định
(Default namespace)
ii Đặ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
g 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
Trang 19muố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 đó
g 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
h 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
i 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)
Trang 20j 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
k Đó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
l 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ứ
Trang 21đượ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
7 Đó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