Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 81 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
81
Dung lượng
2,03 MB
Nội dung
MỤC LỤC MỤC LỤC KẾT LUẬN 83 .1 MỞ ĐẦU DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ CHƯƠNG I LÝ THUYẾT KIẾN TRÚC HƯỚNG DỊCH VỤ Kiến trúc hướng dịch vụ - xu hướng công nghệ thông tin .5 Kiến trúc hướng dịch vụ - giải pháp .7 2.1 Sự tiến hóa lý thuyết phát triển phần mềm 2.2 Kiến trúc hướng dịch vụ .10 2.3 Dịch vụ thành phần 18 Thiết kế theo kiến trúc hướng dịch vụ 22 Các công nghệ hướng dịch vụ 35 4.1 Sun JINI .35 4.2 Openwings 36 4.3 Dịch vụ Web 39 4.4 Enterprise Service Bus (ESB) 40 Kết luận chương: .41 CHƯƠNG II CÔNG NGHỆ DỊCH VỤ WEB .43 Kiến trúc dịch vụ Web 44 Các chuẩn cho dịch vụ Web 45 2.1 Ngôn ngữ mô tả dịch vụ Web WSDL 45 2.2 Giao thức truy cập đối tượng đơn giản SOAP .48 2.3 Đặc tả mô tả tích hợp tìm kiếm UDDI 53 Các kiểu liên kết dịch vụ Web 57 3.1 Liên kết tĩnh 57 3.2 Liên kết động thời gian xây dựng .58 3.3 Liên kết động thời gian chạy 60 Xây dựng dịch vụ Web 61 5.1 Vòng đời dịch vụ Web 61 5.2 Bảo mật dịch vụ Web 62 5.3 Tính liên thông dịch vụ Web 67 Kết luận chương .68 CHƯƠNG III CÀI ĐẶT ỨNG DỤNG 69 KẾT LUẬN 83 Trang MỞ ĐẦU Kiến trúc phần mềm hệ thống mô tả thành phần hệ thống cách thức thành phần tương tác với nhau; tương tác thành phần gọi “liên kết” (connector) Trong hệ thống phần mềm có quy mô lớn phức tạp kiến trúc hệ thống giữ vị trí quan trọng việc hiểu hệ thống, việc tổ chức phát triển tăng cường tái sử dụng Ngày nay, mà độ phức tạp phần mềm ngày tăng kiến trúc phần mềm truyền thống dường tiến tới giới hạn khả giải vấn đề chúng; đó, tổ chức công nghệ thông tin phải đáp ứng yêu cầu đặt như: yêu cầu đáp ứng nhanh, yêu cầu giảm giá thành, yêu cầu khả thu hút tích hợp với đối tác v.v…, đặc biệt thay đổi nhanh chóng công nghệ Trong suốt bốn thập kỷ qua, thực tế phát triển phần mềm trải qua nhiều phương pháp phát triển khác Mỗi phương pháp xuất hướng tới mục tiêu quản lý độ phức tạp ngày tăng phần mềm cách đưa cấu trúc có mức độ đóng gói tăng dần: từ hàm (function), lớp (class), tới thành phần (component); cấu trúc xem phần mềm “hộp đen”, chúng che giấu cài đặt nhờ việc kiểm soát việc truy cập tới hành vi liệu thông qua giao diện tường minh Ở mức độ đóng gói thấp, sử dụng đối tượng để che giấu liệu, mức độ đóng gói cao hơn, sử dụng thành phần để thực việc Việc sử dụng đối tượng để che giấu thông tin hoạt động tốt với hệ thống nhỏ, cho phép tạo cấu trúc phần mềm phản ánh đối tượng giới thực Vấn đề nảy sinh cố gắng nhóm số lượng lớn đối tượng với Mặc dù truy cập tới đối tượng điều khiển thông qua giao diện chúng, mức độ đóng gói thấp đối tượng làm cho phụ thuộc chúng trở nên khó kiểm soát hệ thống tương đối lớn Khái niệm thành phần phát triển giúp quản lý hệ thống lớn tốt hơn: thành phần định nghĩa nhóm đối tượng hoạt động để thực chức hệ thống Các công nghệ EJB (Enterprise Java Bean), NET, CORBA (Common Object Request Broker Architecture) tỏ hiệu việc cài đặt thành phần Phương pháp phát triển phần mềm dựa thành phần (Component-based Development - CBD) cho phép nhà phát triển tạo hệ thống phức tạp hơn, có chất lượng cao nhanh phương pháp phát triển phần mềm khác trước Nhưng xây dựng thành phần ngôn ngữ khác nhau, hay chí tảng khác (các thành phần không đồng nhất) cho hệ thống cần có khả tích hợp chúng lại với nhau, vấn đề nảy sinh: thành phần dùng công nghệ EJB đòi hỏi việc triệu gọi phương thức thông qua RMI (Remote Method Trang Invocation – Triệu gọi phương thức từ xa), đó, thành phần dùng công nghệ CORBA lại dùng IIOP (Internet Inter-ORB Protocol), nữa, thành phần định vị qua Internet, thông điệp chúng bị chặn tường lửa Ngay không gặp phải vấn đề để sử dụng thành phần, cần phải biết vị trí xác giao diện thành phần để giao diện thay đổi, phải thay đổi cách gọi đến chúng Vì số lượng người dùng thành phần lớn nên việc tạo phụ thuộc có quy mô lớn, khó kiểm soát Vậy làm giải vấn đề này? Kiến trúc hướng dịch vụ (Service-oriented architecture, viết tắt SOA) phát triển xem bước đột phá kiến trúc phần mềm giúp giải vấn đề “khủng hoảng” phần mềm Sự xuất công nghệ dịch vụ Web (Web services) vài năm trở lại tạo quan tâm mạnh mẽ tới kiến trúc Web service thực hóa việc phát triển hệ thống theo kiến trúc hướng dịch vụ cách tự nhiên dễ dàng Web service kiến trúc hướng dịch vụ thay đổi cách cách thức xây dựng hệ thống nội (các hệ thống thông tin hỗ trợ tổ chức) cách hệ thống nội tương tác với hệ thống bên mà chưa kiến trúc trước thực Thuật ngữ “dịch vụ” kiến trúc hướng dịch vụ khái niệm mới: ứng dụng khách/chủ (client/server) năm 90 sử dụng “dịch vụ” để khả thực lời gọi phương thức từ xa Kiến trúc hướng dịch vụ đặc biệt đề cao tính liên thông (interoperability) suốt vị trí dịch vụ, nói tới dịch vụ kiến trúc hướng dịch vụ nói việc thiết kế xây dựng hệ thống sử dụng thành phần phần mềm không đồng Sử dụng công nghệ dịch vụ Web kiến trúc hướng dịch vụ đem lại lợi ích sau: • Mở rộng lựa chọn mặt công nghệ • Các hệ thống xây dựng linh hoạt nhạy bén • Giảm thời gian phát triển • Giảm chi phí bảo trì Trong đồ án tốt nghiệp này, người viết luận văn (NVLV) trình bày lý thuyết kiến trúc hướng dịch vụ công nghệ dịch vụ Web, công nghệ xóa bỏ rào cản công nghệ để tạo hệ thống phần mềm có tính tích hợp cao, lựa chọn công nghệ dịch vụ Web thích hợp cho việc cài đặt ứng dụng theo kiến trúc hướng dịch vụ lợi ích ứng dụng xây dựng theo kiến trúc hướng dịch vụ Trang DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC HÌNH VẼ Trang CHƯƠNG I LÝ THUYẾT KIẾN TRÚC HƯỚNG DỊCH VỤ Chương trình bày khái niệm : • Sự tiến hóa kỹ thuật phát triển phần mềm • Kiến trúc hướng dịch vụ phát triển phần mềm theo kiến trúc hướng dịch vụ • Các công nghệ giúp thực hóa triết lý kiến trúc hướng dịch vụ Kiến trúc hướng dịch vụ - xu hướng công nghệ thông tin Trong nhà quản lý công nghệ thông tin phải đối đầu với việc giảm giá thành tối đa lợi ích công nghệ có, họ phải liên tục cố gắng để phục vụ khách hàng tốt hơn, trở nên cạnh tranh phản ứng nhanh với chiến lược doanh nghiệp Có hai yếu tố ẩn sau áp lực này, tính không đồng hệ thống thay đổi nhanh mặt công nghệ Phần lớn doanh nghiệp ngày gồm nhiều hệ thống, ứng dụng kiến trúc khác với thời gian tồn công nghệ khác Việc tích hợp sản phẩm từ nhiều nhà cung cấp nhiều tảng thực điều khó khăn Nhưng cố gắng tiếp cận theo kiểu nhà cung cấp công nghệ thông tin ứng dụng kiến trúc hỗ trợ không mềm dẻo Sự thay đổi công nghệ yếu tố thứ hai mà nhà quản lý công nghệ thông tin phải đối mặt Sự toàn cầu hoá kinh doanh điện tử làm tăng tốc thay đổi Sự toàn cầu hoá dẫn tới cạnh tranh gay gắt việc rút ngắn chu kỳ sản xuất để chiếm ưu đối thủ cạnh tranh Các thay đổi yêu cầu nhu cầu khách hàng nhanh chóng tác động phân phối cạnh tranh phong phú thông tin sản phẩm Internet Do lại thúc đẩy việc cải tiến sản phẩm dịch vụ diễn nhanh Các cải tiến công nghệ tiếp tục tăng, làm tăng thay đổi yêu cầu khách hàng Doanh nghiệp phải nhanh chóng thích nghi để tồn tại, chưa kể đến việc phải thành công môi trường cạnh tranh động ngày nay, hạ tầng công nghệ thông tin phải đem lại khả thích nghi cho doanh nghiệp Vì vậy, tổ chức kinh doanh phát triển từ phân chia doanh nghiệp theo chiều thẳng dọc, cô lập năm 1980 trước thành cấu trúc trọng quy trình kinh doanh theo chiều ngang năm 1980, 1990, tới mô hình kinh doanh doanh nghiệp có tác động lẫn Các dịch vụ Trang kinh doanh ngày cần phải thành phần hoá phân tán.Cần trọng vào dây chuyền cung cấp mở rộng, cho phép khách hàng đối tác truy cập tới dịch vụ kinh doanh Hình 1.1: Sự phát triển công ty Làm để môi trường công nghệ thông tin trở nên linh hoạt nhạy bén thay đổi yêu cầu kinh doanh? Làm để hệ thống ứng dụng không đồng trao đổi với cách liền mạch? Làm để đạt mục tiêu kinh doanh mà không làm phá sản doanh nghiệp? Đã có nhiều giải pháp đề song song với phát triển vấn đề kinh doanh, hình Hiện nay, nhiều nhà quản lý chuyên gia công nghệ thông tin tin tiến ngày gần với câu trả lời với kiến trúc hướng dịch vụ (SOA) Hình 1.2: Sự phát triển kiến trúc Để đáp ứng nhu cầu không đồng nhất, tính liên thông thay đổi yêu cầu không ngừng, kiến trúc phải đem lại tảng cho việc xây dựng dịch vụ ứng dụng với đặc tính sau: • Liên kết lỏng lẻo (Loosely coupled) • Vị trí suốt (Location transparent) • Độc lập giao thức (Protocol independent) Dựa kiến trúc hướng dịch vụ vậy, người dùng dịch vụ chí không cần phải quan tâm tới dịch vụ cụ thể mà trao đổi thông tin hạ tầng sở, tuyến dịch vụ (service bus), tạo lựa chọn thích hợp cho người dùng Các đặc tả kỹ thuật cụ thể từ công nghệ cài đặt khác J2EE hay NET không làm ảnh hưởng tới người dùng SOA Người dùng có khả cân nhắc thay cài đặt dịch vụ tốt có dịch vụ khác có chất lượng tốt tồn Trang Kiến trúc hướng dịch vụ - giải pháp 2.1 Sự tiến hóa lý thuyết phát triển phần mềm Trước giải thích SOA chất khái niệm tạo nên SOA, cần phải hiểu lịch sử phát triển SOA cách nhìn lại khó khăn mà nhà phát triển phần mềm phải đối mặt vài thập kỷ qua xem xét giải pháp đưa để giải khó khăn Những người lập trình sớm nhận việc viết phần mềm ngày phức tạp Họ cần cách tốt để sử dụng lại đoạn mã viết Khi nhà nghiên cứu quan tâm tới vấn đề này, họ đưa khái niệm thiết kế mô đun Với quy tắc thiết kế mô đun, lập trình viên có khả viết hàm chương trình sử dụng lại mã viết Đó bước đột phá điều tuyệt vời cho việc xây dựng phần mềm Cách có hiệu tốt thời gian, giai đoạn 1960 - 1980 Hình 1.3: Phát triển phần mềm theo mô đun Nhưng sau đó, lập trình viên lại nhận thấy họ thực việc cắt dán mô đun vào ứng dụng khác, điều bắt đầu tạo ác mộng bảo trì: lỗi phát hàm đó, họ phải kiểm tra tất ứng dụng có sử dụng hàm thay đổi mã để sửa chữa Những nhà phát triển không muốn điều này, họ cần mức trừu tượng cao hơn.Các nhà nghiên cứu đưa khái niệm lớp phần mềm hướng đối để giải vấn đề Phương pháp phát triển phần mềm hướng đối tượng có hiệu thời gian từ 1980 đến 1990 Trang Hình 1.4: Phát triển phần mềm hướng đối tượng Lại lần nữa, độ phức tạp phần mềm tăng lên, nhà phát triển bắt đầu nhận thấy việc xây dựng bảo trì phần mềm phức tạp, họ muốn cách để sử dụng lại bảo trì chức không đơn mã nguồn Những nhà nghiên cứu lại đưa lớp trừu tượng khác để kiểm soát độ phức tạp này, phần mềm dựa thành phần (Component-based software - CBD) Hình 1.5: Phát triển phần mềm hướng thành phần CBD giải pháp tốt cho việc sử dụng lại bảo trì, không kiểm soát tất độ phức tạp mà nhà phát triển phải đối mặt như: phần mềm phân tán, ứng dụng tích hợp, tảng, thiết bị khác v.v… Phần mềm ngày phải xây dựng cho đáp ứng tất yêu cầu Và kiến trúc hướng dịch vụ với công nghệ dịch vụ Web xuất đem lại giải pháp cho tất yêu cầu Bằng cách thực SOA, nhà phát triển loại bỏ không tương thích giao thức, tảng ứng dụng tích hợp cách dễ dàng Trang Hình 1.6: Phát triển phần mềm hướng dịch vụ Như vậy, theo thời gian, ta nhận thấy phương pháp phát triển phần mềm liên tục tiến hóa, từ phương pháp xây dựng phần mềm đơn giản phần mềm đồ sộ ngày Quá trình tiến hóa phương pháp phát triển phần mềm tóm lược lại sau: ban đầu phương pháp phát triển tự phát, tức cần máy tính thực viết lệnh Đơn vị tái sử dụng phần mềm nhỏ - dòng lệnh Những phần mềm viết thường nhỏ, đơn giản, chủ yếu phần mềm hỗ trợ tính toán Sau kỹ thuật phát triển phần mềm tiến thêm bước mới, phát triển phần mềm theo mô đun Nhờ phương pháp này, đơn vị chương trình có khả tái sử dụng tăng lên quy mô phần mềm lớn hơn, không dừng phần mềm hỗ trợ tính toán, mà bao gồm ứng dụng thương mại Kỹ thuật phát triển phần mềm hướng đối tượng trở thành sóng kỹ thuật phát triển phần mềm vài thập kỷ gần đây, việc đưa khái niệm lớp, hàm biến thành phần, kế thừa, kết tập khiến cho việc xây dựng phần mềm trở nên dễ dàng hơn, cấu trúc chương trình trở nên dễ hiểu hơn, với khái niệm đối tượng tương đối gần với thực thể đời sống tự nhiên xã hội Kỹ thuật phát triển phần mềm hướng đối tượng làm tăng khả tái sử dụng mã phương pháp kế thừa, kết tập, làm cho phần mềm có khả khả chuyển đặc tính khép kín lớp Cùng với phát triển ngày nhanh phần mềm quy mô lẫn yêu cầu thời gian phát triển, phương Trang pháp phát triển phần mềm hướng thành phần, mức trừu tượng hóa cao phương pháp phát triển hướng đối tượng Đặc điểm phần mềm phát triển theo phương pháp chúng gồm nhiều thành phần, thành phần hoàn thành công việc cụ thể, định Mỗi thành phần bao gồm tập lớp, đối tượng Phần mềm tạo cách ghép thành phần lại với nhau, thông qua việc sử dụng giao diện chúng Phần mềm tạo theo phương pháp có khả tái sử dụng mã cao, việc bảo trì nâng cấp dễ dàng Tuy nhiên, quy mô phần mềm ngày nở rộng, thời gian đưa thị trường đòi hỏi ngày phải sớm hơn, yêu cầu khả tái sử dụng mã khả dễ bảo trì phần mềm khiến cho phương pháp phát triển phần mềm hướng dịch vụ đời xem sóng phát triển phần mềm Bảng so sánh cho ta thấy rõ ưu phương pháp phát triển phần mềm hướng dịch vụ so với phương pháp phát triển phần mềm trước Hướng cấu trúc Hướng đối tượng Hướng thành Hướng dịch phần vụ Mức độ đóng gói Giao ước sử dụng Khả tái sử dụng Rất thấp Thấp Trung bình Cao Xác định Riêng tư /Công khai Công khai Xuất Thấp Thấp Trung bình Cao Độ gắn kết Chặt Chặt Lỏng lẻo Rất lỏng lẻo Thời gian biên Thời gian biên Thời gian biên Thời gian dịch dịch dịch chạy Phạm vi Nội ứng Nội ứng Nội ứng Giữa công truyền thông dụng dụng dụng ty Các ràng buộc 2.2 Kiến trúc hướng dịch vụ Kiến trúc phần mềm chương trình hệ thống tính toán cấu trúc cấu trúc hệ thống, bao gồm thành phần phần mềm, thuộc tính nhìn thấy từ bên thành phần mối quan hệ chúng Hình 1.7: Kiến trúc phần mềm theo định nghĩa cổ điển Kiến trúc hướng dịch vụ loại kiến trúc phần mềm đặc biệt có nhiều đặc tính riêng biệt Trang 10 Khi ứng dụng xác định ủy nhiệm cách sử dụng chế thẩm định quyền, cần xác định xem người dùng có truy cập tới tài nguyên bảo vệ hay không gọi hàm cụ thể, đáng ý sử dụng danh sách điều khiển truy cập Một danh sách điều khiển truy cập gồm nhiều điểm vào kiểm soát truy cập (ACE – Access Control Entries) Mỗi điểm vào kiểm soát truy cập liệt kê ủy nhiệm chứa thông tin ủy nhiệm thao tác thực tài nguyên Ví dụ, vài người trao quyền đọc số khác có toàn quyền Điểm mạnh thật danh sách điều khiển truy cập chỗ chúng luôn tuân theo theo cách thức, không quan tâm tới chế truy cập.Vì vậy, vài lý mà kẻ công qua dịch vụ phá hỏng logic quyền hạn mức ứng dụng truy cập tài nguyên cách trực tiếp sách quyền hạn danh sách điều khiển truy cập tài nguyên có hiệu lực 5.3 Tính liên thông dịch vụ Web Khi dịch vụ Web sử dụng rộng rãi, nhà cung cấp lại cố gắng thêm nhiều tính nhiều chuẩn vào framework để việc truyền thông hệ thống phong phú mạnh Vì WSDL ngôn ngữ mà máy hiểu (file XML), công cụ hạ tầng quanh xây dựng cách dễ dàng Ngày nay, nhà phát triển sử dụng định nghĩa WSDL để sinh mã có khả biết cách tương tác cách xác với dịch vụ Web mà mô tả Loại sinh mã che giấu chi tiết nhàm chán không cần thiết việc gửi nhận thông điệp SOAP qua nhiều giao thức khác làm cho dịch vụ Web tiếp cận dễ dàng Microsoft NET Framework có tiện ích dòng lệnh wsdl.exe cho phép sinh lớp từ định nghĩa WSDL Wsdl.exe sinh mọt lớp dành cho việc sử dụng dịch vụ lớp khác dành cho việc cài đặt dịch vụ Apache Axis có tiện ích tương tự WSDL2Java thực chức tương tự cho lớp Java Các lớp sinh từ định nghĩa WSDL có khả tương tác với thông qua giao diện WSDL cung cấp, không bị gắn chặt với ngôn ngữ lập trình dùng để viết chúng Trang 67 Hình 2.8: WSDL việc sinh mã Kết luận chương Công nghệ dịch vụ Web thích hợp để cài đặt kiến trúc hướng dịch vụ Về chất, dịch vụ Web có khả tự mô tả ứng dụng có tính mô đun thể logic nghiệp vụ dịch vụ xuất bản, tìm kiếm thực thi qua Internet Dựa chuẩn XML, dịch vụ Web phát triển thành phần ứng dụng gắn kết không chặt chẽ với nhau, không quan tâm tới ngôn ngữ lập trình, giao thức hay tảng Điều làm ứng dụng nghiệp vụ xây dựng thành dịch vụ được truy cập ai, vào thời điểm nào, vị trí sử dụng tảng Trang 68 CHƯƠNG III CÀI ĐẶT ỨNG DỤNG Ứng dụng minh họa phần mềm từ điển phát triển theo mô hình hướng dịch vụ xây dựng dịch vụ Web Thành phần cung cấp dịch vụ: dịch vụ Web cung cấp dịch vụ tra từ (Anh – Việt, Việt – Anh, Pháp – Việt, Việt – Pháp) Thành phần môi giới/ đăng ký dịch vụ: dịch vụ UDDI Thành phần sử dụng dịch vụ: ứng dụng khách sử dụng dịch vụ từ điển Dịch vụ tra từ xây dựng để đáp ứng tính chất sau SOA: • Xác định rõ ràng Có thể gọi thông qua giao thức truyền thông (HTTP, SOAP) Đảm bảo tính liên thông tảng tính suốt dịch vụ • Tự chứa đựng, xác định qua giao diện tường minh: Độc lập với cài đặt dịch vụ Cung cấp giao ước thành phần sử dụng thành phần cung cấp dịch vụ • Không phụ thuộc vào ngữ cảnh hay trạng thái dịch vụ khác Thành phần đăng ký dịch vụ: Thành phần đăng ký dịch vụ sử dụng dịch vụ UDDI tích hợp Windows 2003 (trừ Web Edition) Trang 69 Thành phần cung cấp dịch vụ: NET WebService Các bước cài đặt: Tạo dịch vụ: Tổ chức liệu: liệu từ điển tổ chức theo dạng chuẩn quy định http://www.dict.org, gồm file: File data: chứa thông tin theo định dạng sau: @từ_cần_tra *từ_loại - định_nghĩa_1 = ví_dụ_1 + nghĩa_của_ví_dụ_1 - định_nghĩa_2 = ví_dụ_2 + nghĩa_của_ví_dụ_2 !thành_ngữ_1 - định_nghĩa_thành_ngữ_1 = ví_dụ_thành_ngữ_1 + nghĩa_của_ví_dụ_thành_ngữ_1 *từ_loại - định_nghĩa_3 Ví dụ: @acceptance * danh từ - nhận, chấp nhận, chấp thuận - thừa nhận, công nhận - hoan nghênh, tán thưởng, tán thành; tin =his statement will not find acceptance+ lời tuyên bố ông ta không tin - (thương nghiệp) nhận toán (hoá đơn); hoá đơn nhận toán =general acceptance+ nhận toán không cần có điều kiện =qualified acceptance+ nhận toán có điều kiện !acceptance of persons - thiên vị File index: chứa từ cần tra (HeadWord), địa từ tính từ đầu file (tính theo byte) dạng mã BASE64, độ dài từ (tính theo byte) dạng mã BASE64 Ví dụ: acceptable MkG DB Trang 70 Việc lưu trữ tìm kiếm từ điển sử dụng Avl (là cấu trúc điển hình để cài đặt ứng dụng từ điển) Dịch vụ cung cấp phương thức: - string LookUp (string HeadWord): trả xâu biểu diễn định nghĩa từ file data Ví dụ: LookUp(acquit) trả xâu: @acquit * ngoại động từ - trả hết, trang trải (nợ nần) =to acquit one's debt trang trải hết nợ nần+ tha bổng, tha tội, tuyên bố trắng án =to be acquitted of one's crime+ tha bổng - to acquit oneself of làm xong, làm trọn (nghĩa vụ, bổn phận ) =to acquit oneself of a promise+ làm trọn lời hứa =to acquit oneself of one's task+ làm trọn nhiệm vụ !to acquit oneself - làm bổn phận mình, làm trọn phận mình; xử =to acquit oneself ill+ làm không tốt phần mình, xử xấu - string LookUpXML(string HeadWord): trả xâu biểu diễn nghĩa từ dạng XML (để định dạng file CSS) Ví dụ: LookUpXML(acquit) trả xâu: acquit ngoại động từ trả hết, trang trải (nợ nần) to acquit one's debt trang trải hết nợ nần tha bổng, tha tội, tuyên bố trắng án to be acquitted of one's crime tha bổng to acquit oneself of làm xong, làm trọn (nghĩa vụ, bổn phận ) to acquit oneself of a promise làm trọn lời hứa Trang 71 to acquit oneself of one's task làm trọn nhiệm vụ to acquit oneself làm bổn phận mình, làm trọn phận mình; xử sự to acquit oneself ill làm không tốt phần mình, xử xấu Tạo đặc tả WSDL từ dịch vụ có nhờ công cụ wsdl.exe NET: Trang 72 Trang 73 Kiểm thử dịch vụ: Trang kiểm thử dịch vụ sinh NET: Đăng ký dịch vụ: Đăng ký dịch vụ với dịch vụ UDDI: Trang 74 Thành phần sử dụng dịch vụ: sử dụng dịch vụ theo mô hình liên kết động thời gian chạy phần Trang 75 - Tìm kiếm dịch vụ dịch vụ UDDI: Trang 76 Sau tìm kiếm dịch vụ từ điển theo yêu cầu, tiến hành xây dựng ủy nhiệm dịch vụ gọi dịch vụ từ điển thông qua ủy nhiệm đó: Lớp ủy nhiệm sinh ra: using using using using using using System.Diagnostics; System.Xml.Serialization; System; System.Web.Services.Protocols; System.ComponentModel; System.Web.Services; /// [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Web.Services.WebServiceBindingAttribute(Name="EVDictionarySoap", Namespace="http://WebServices.com/Dictionaries/")] public class EVDictionary : System.Web.Services.Protocols.SoapHttpClientProtocol { /// public EVDictionary() { this.Url = "http://localhost/EVDictionary/EVDictionary.asmx"; } /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute( "http://WebServices.com/Dictionaries/LookUp", RequestNamespace="http://WebServices.com/Dictionaries/", ResponseNamespace="http://WebServices.com/Dictionaries/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public string LookUp(string HeadWord) { object[] results = this.Invoke("LookUp", new object[] { HeadWord}); return ((string)(results[0])); } Trang 77 /// public System.IAsyncResult BeginLookUp(string HeadWord, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("LookUp", new object[] { HeadWord}, callback, asyncState); } /// public string EndLookUp(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string)(results[0])); } /// [System.Web.Services.Protocols.SoapDocumentMethodAttribute( "http://WebServices.com/Dictionaries/LookUpXML", RequestNamespace="http://WebServices.com/Dictionaries/", ResponseNamespace="http://WebServices.com/Dictionaries/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle= System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] public string LookUpXML(string HeadWord) { object[] results = this.Invoke("LookUpXML", new object[] { HeadWord}); return ((string)(results[0])); } /// public System.IAsyncResult BeginLookUpXML(string HeadWord, System.AsyncCallback callback, object asyncState) { return this.BeginInvoke("LookUpXML", new object[] { HeadWord}, callback, asyncState); } /// public string EndLookUpXML(System.IAsyncResult asyncResult) { object[] results = this.EndInvoke(asyncResult); return ((string)(results[0])); } } Giao diện ứng dụng từ điển sử dụng dịch vụ Web: Trang 78 Thông tin chi tiết dịch vụ Web sử dụng: Khi thông tin dịch vụ thay đổi: Trang 79 Trang 80 Đánh giá chương trình: Phần mềm đảm bảo tính chất ứng dụng xây dựng theo kiến trúc hướng dịch vụ: • Dịch vụ đơn vị phần mềm có khả thực chức nghiệp vụ hoàn chỉnh (tra từ) • Dịch vụ tách biệt cài đặt giao diện • Dịch vụ có khả tìm kiếm động (thông qua UDDI) • Dịch vụ có tính suốt vị trí (khi dịch vụ thay đổi vị trí ứng dụng sử dụng dịch vụ không cần phải biên dịch lại) • Dịch vụ có giao diện rõ ràng: mô tả qua file WSDL • Dịch vụ có tính gắn kết lỏng lẻo: thành phần sử dụng cung cấp dịch vụ không phụ thuộc trực tiếp vào mà thông qua thành phần đăng ký dịch vụ ( dịch vụ UDDI) Trang 81 [...]... dụng dịch vụ có thể liên kết với một dịch vụ mãi mãi và không bao giờ liên kết lại với giao kèo của nó Các thao tác trong kiến trúc hướng dịch vụ bao gồm: Xuất bản dịch vụ: Để có thể truy cập được, một mô tả dịch vụ phải được xuất bản để nó có thể được tìm thấy và triệu gọi bởi một người dùng dịch vụ Tìm kiếm dịch vụ: Một người yêu cầu dịch vụ định vị một dịch vụ bằng cách yêu cầu nơi đăng ký dịch vụ. .. nhiệm dịch vụ • Ràng buộc sử dụng dịch vụ (service lease) Dịch vụ: Dịch vụ là một chức năng rõ ràng, tự chứa đựng và không phụ thuộc vào ngữ cảnh hay trạng thái của các dịch vụ khác Các thành phần sử dụng dịch vụ có thể truy cập tới dịch vụ thông qua giao diện dịch vụ được xuất bản Dịch vụ có các tính chất sau: • Dịch vụ có tính chất rõ ràng, là một đơn vị chức năng nghiệp vụ để có thể được triệu gọi ... tả các dịch vụ nghiệp vụ trong SOA, bao gồm một danh sách, phân loại và cấu trúc cây của các dịch vụ được xác định thông qua kx thuật phân tích và thiết kế hướng dịch vụ • Các thành phần: Cung cấp các cài đặt chức năng của dịch vụ • Thành phần sử dụng dịch vụ, thành phần cung cấp dịch vụ và thành phần môi giới dịch vụ (tùy chọn) với các kho đăng ký dịch vụ, ở đó, các định nghĩa và mô tả dịch vụ được... giao ước dịch vụ để mô tả các định dạng thông điệp cần thiết 2.2.2 Các thực thể trong kiến trúc hướng dịch vụ Các thực thể trong kiến trúc hướng dịch vụ bao gồm: • Dịch vụ (service) • Thành phần sử dụng dịch vụ (service consumer client/ requester) • Thành phần cung cấp dịch vụ (service provider) • Thành phần đăng ký dịch vụ (service registry) • Giao kèo dịch vụ (contract) • Ủy nhiệm dịch vụ • Ràng... thái cần thiết của dịch vụ để thực thi một chức năng cụ thể Bản giao kèo cũng có thể bao gồm các mức độ chất lượng của dịch vụ, các đặc tả cho các khía cạnh phi chức năng của dịch vụ Ủy nhiệm dịch vụ: Thành phần cung cấp dịch vụ cung cấp một ủy nhiệm dịch vụ cho thành phần sử dụng dịch vụ Thành phần sử dụng dịch vụ thực thi yêu cầu bằng cách gọi một hàm API trên nó Ủy nhiệm dịch vụ (hình 1.9) sẽ tìm... mô đun phần mềm khác có yêu cầu sử dụng dịch vụ Đây là thực thể khởi tạo việc định vị dịch vụ tại một kho đăng ký dịch vụ, liên kết tới dịch vụ qua một kênh truyền thông và thực thi chức năng của dịch vụ Thành phần này thực thi nhiệm vụ bằng cách gửi tới dịch vụ một yêu cầu được định dạng theo đúng giao kèo Thành phần cung cấp dịch vụ: Thành phần cung cấp dịch vụ là một thực thể có khả năng được địa... tổ chức Dịch vụ là yếu tố then chốt trong SOA Có thể hiểu dịch vụ như là hàm chức năng (mô đun phần mềm) thực hiện quy trình nghiệp vụ nào đó Các dịch vụ trong SOA có các đặc điểm sau: • Các dịch vụ là có thể tìm kiếm được • Các dịch vụ có tính liên thông • Các dịch vụ không được gắn kết chặt chẽ với nhau • Các dịch vụ là phức hợp, bao gồm nhiều thành phần, được đóng gói ở mức cao • Các dịch vụ trong... sử dụng dịch vụ Thành phần cung cấp dịch vụ có thể là một hệ thống máy tính lớn, một thành phần, hoặc một loại hệ thống phần mềm khác có thể thực thi các yêu cầu dịch Trang 15 vụ Thực thể này xuất bản giao kèo của nó trong một kho đăng ký dịch vụ để các thành phần sử dụng dịch vụ có thể truy cập Thành phần đăng ký dịch vụ: Thành phần đăng ký dịch vụ là một thư mục trên mạng có chứa các dịch vụ sẵn dùng... 1.10: Thành phần Dịch vụ là gì? Dịch vụ là một chức năng rõ ràng, tự chứa đựng và không phụ thuộc vào ngữ cảnh hoặc trạng thái của các dịch vụ khác.” Hình 1.11: Dịch vụ Mối quan hệ giữa dịch vụ và thành phần: Hình 1.12: Mối quan hệ giữa thành phần và dịch vụ Dịch vụ là một đơn vị xử lý có mức độ đóng gói cao, nó dùng và sinh ra các tập đối tượng được truyền theo kiểu tham trị Dịch vụ không giống như... suốt • Dịch vụ được định nghĩa bằng các giao diện tường minh Các giao diện độc lập với cài đặt Cung cấp giao kèo giữa các thành phần cung cấp và sử dụng dịch vụ Dịch vụ là các mô đun phức tạp, bao gồm nhiều thành phần Mức độ đóng gói của dịch vụ càng cao thì dịch vụ càng có khả năng tái sử dụng và linh hoạt Thành phần sử dụng dịch vụ: Thành phần sử dụng dịch vụ là một ứng dụng, một dịch vụ, hoặc