Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 88 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
88
Dung lượng
2,28 MB
Nội dung
ỨNG DỤNG KIẾN TRÚC HƯỚNG DỊCH VỤ VÀ CÔNG NGHỆ DỊCH VỤ MẠNG TRONG XÂY DỰNG PHẦN MỀM Danh mục từ viết tắt STT Từ viết tắt CBD CORBA DCOM IDL JINI JMS HTTP NASSL RMI 10 SDL 11 SOA Giải nghĩa Phát triển hướng thành phần Component-Based Development Kiến trúc môi giới yêu cầu đối tượng chung Common Object Request Broker Architecture Mơ hình đối tượng thành phần phân tán Distributed Component Object Model Ngôn ngữ đặc tả giao diện Interface Description Language Hạ tầng mạng thông minh cho Java Java Intelligent Network Infrastructure Dịch vụ thông điệp Java Java Message Service Giao thức truyền siêu văn HyperText Transfer Protocol Ngơn ngữ đặc tả dịch vụ có khả truy cập qua mạng Network Accessible Service Specification Language Triệu gọi phương thức từ xa Remote Method Invocation Ngôn ngữ đặc tả dịch vụ Service Description Language Kiến trúc hướng dịch vụ Service-Oriented Architecture STT Từ viết tắt 12 SOAP 13 UDDI 14 WSDL 15 XML Giải nghĩa Giao thức truy cập đối tượng đơn giản Simple Object Access Protocol Mơ tả, tích hợp tìm kiếm tồn cầu Universal Description Discovery and Integration Ngôn ngữ đặc tả dịch vụ mạng Web Service Description Language Ngôn ngữ đánh dấu mở rộng eXtensible Markup Language Danh mục hình vẽ Mục lục Danh mục từ viết tắt Danh mục hình vẽ .3 Mục lục MỞ ĐẦU 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 Kiến trúc hướng dịch vụ - giải pháp 10 2.1 Sự tiến hóa lý thuyết phát triển phần mềm .10 2.2 Kiến trúc hướng dịch vụ 13 2.3 Dịch vụ thành phần .21 Thiết kế theo kiến trúc hướng dịch vụ .25 3.1 Các nguyên tắc thiết kế hướng dịch vụ 25 3.2 Các định thiết kế kiến trúc kiến trúc hướng dịch vụ .26 3.3 Các mức độ chấp nhận kiến trúc hướng dịch vụ .28 3.4 Các bước quy trình phát triển phần mềm theo định hướng dịch vụ 30 3.5 Vòng đời phát triển dịch vụ 34 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ụ mạng 39 4.4 Enterprise Service Bus (ESB) 39 Kết luận chương 41 CHƯƠNG II CÔNG NGHỆ DỊCH VỤ MẠNG .43 Kiến trúc dịch vụ mạng .44 Các chuẩn cho dịch vụ mạng 45 2.1 Ngôn ngữ mô tả dịch vụ mạng WSDL 45 2.2 Giao thức truy cập đối tượng đơn giản SOAP 49 2.3 Đặc tả mơ tả tích hợp tìm kiếm UDDI .54 Các kiểu liên kết dịch vụ mạng 59 3.1 Liên kết tĩnh .59 3.2 Liên kết động thời gian xây dựng 60 3.3 Liên kết động thời gian chạy 61 Xây dựng dịch vụ mạng 63 5.1 Vòng đời dịch vụ mạng 63 5.2 Bảo mật dịch vụ mạng 63 5.3 Tính liên thông dịch vụ mạng 69 Kết luận chương 69 Chương III: CÀI ĐẶT ỨNG DỤNG 71 Nhắc lại yêu cầu hệ thống xây dựng theo kiến trúc hướng dịch vụ 71 Mơ tả tốn 72 Cài đặt toán 74 3.1 Thành phần cung cấp dịch vụ 74 3.2 Thành phần sử dụng dịch vụ 79 3.3 Thành phần đăng ký dịch vụ 80 Các kết đạt 81 Đánh giá ứng dụng 84 5.1 Ưu điểm 84 5.2 Các điểm hạn chế 85 KẾT LUẬN 86 Danh mục tài liệu tham khảo 88 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) [1] 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 số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 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 số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ụ mạng (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 ngồi 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ụ mạng 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 đồ án (NVĐA) trình bày lý thuyết kiến trúc hướng dịch vụ công nghệ dịch vụ mạng, 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ụ mạng 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ụ CHƯƠNG I LÝ THUYẾT KIẾN TRÚC HƯỚNG DỊCH VỤ Kiến trúc hướng dịch vụ sóng phát triển ứng dụng Nó xem tập hợp khái niệm kiến trúc mơ hình lập trình 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ự tồn cầu hố kinh doanh điện tử làm tăng tốc thay đổi Sự tồn cầu hố 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 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ụ 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 1.2 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 tớ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 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 tồn dịch vụ khác có chất lượng tốt 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 kiến trúc hướng dịch vụ chất khái niệm tạo nên kiến trúc hướng dịch vụ, cần phải hiểu lịch sử phát triển kiến trúc hướng dịch vụ 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, từ 1960 đến 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 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 10 Cài đặt toán 3.1 Thành phần cung cấp dịch vụ Các bước xây dựng thành phần cung cấp dịch vụ: Tạo đặc tả giao diện WSDL Cài đặt dịch vụ theo đặc tả giao diện có Kiểm thử dịch vụ Triển khai (đăng ký) dịch vụ Ta xây dựng dịch vụ trước sau tạo đặc tả giao diện nhờ cơng cụ (wsdl.exe, Java2WSDL …): Hình 3.3: Cài đặt dịch vụ mạng Tạo cài đặt dịch vụ: Dữ liệu cho dịch vụ từ điển cung cấp T.S Hồ Ngọc Đức địa chỉ: http://www.informatik.uni-leipzig.de/~duc/software/Dict/english.zip (Anh Việt, Việt – Anh ) http://www.informatik.uni-leipzig.de/~duc/software/Dict/french.zip (Pháp Việt, Việt – Pháp ) Cấu trúc liệu từ điển tuân theo định dạng chuẩn đưa http://www.dict.org sau: 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 74 = 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 tốn =general acceptance+ nhận tốn khơng cần có điều kiện =qualified acceptance+ nhận tố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 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: 75 @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 ) 76 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ử sự to acquit oneself ill làm khơng tốt phần mình, xử xấu Cài đặt dịch vụ sử dụng cấu trúc AVL cấu trúc điển hình việc xây dựng ứng dụng từ điển Cây AVL dạng nhị phân, nhiên, không giống nhị phân, thời gian tìm kiếm xâu AVL O(logn) Cấu trúc liệu AVL đạt thời gian tìm kiếm nhanh giới hạn chênh lệch chiều cao nút thực việc cân lại giới hạn bị vi phạm Dịch vụ từ điển tạo thành từ lớp sau: public class AvlNode: Cài đặt cấu trúc nút avl public class AvlTree: Cài đặt avl public class LoadDict: Tải từ điển vào avl cài đặt phương thức tra cứu từ public class BASE64Converter: Chuyển đổi dạng số thập phân mã BASE64 public class XMLGenerator: Sinh xâu có nội dung file XML từ xâu trả tra cứu nghĩa từ Tạo đặc tả giao diện WSDL: Giả sử dịch vụ sau tạo có địa sau: http://localhost/EVDictionary/EVDictionary.asmx Khi đó, ta xem file đặc tả giao diện WSDL địa chỉ: http://localhost/EVDictionary/EVDictionary.asmx?WSDL Kiểm thử: 77 VS NET tự động cung cấp trang kiểm thử cho dịch vụ mạng tạo Trang có giao diện sau: Hình 3.4: Trang kiểm thử dịch vụ mạng Nhập từ vào ô HeadWord ấn Invoke để xem kết Triển khai (đăng ký) dịch vụ: Sau dịch vụ kiểm thử, đăng ký với dịch vụ UDDI Hình 3.5: Đăng ký dịch vụ với UDDI 78 3.2 Thành phần sử dụng dịch vụ Thành phần cung cấp dịch vụ thành phần sử dụng dịch vụ liên kết động với nhau, theo mơ hình liên kết động chương 2, phần Hình 3.6: Mơ hình liên kết dịch vụ mạng động Các bước xây dựng: Tìm đặc tả cài đặt dịch vụ Tạo triển khai ủy nhiệm dịch vụ Gọi dịch vụ Tìm đặc tả cài đặt dịch vụ: Đặc tả dịch vụ tìm kiếm nhờ dịch vụ UDDI 79 Hình 3.7: Tìm kiếm UDDI Tạo triển khai ủy nhiệm dịch vụ: Sau tìm đặc tả giao diện phù hợp, bước tạo ủy nhiệm dịch vụ nhờ công cụ wsdl.exe NET Hình 3.8: Sử dụng cơng cụ wsdl.exe Gọi dịch vụ: Việc gọi dịch vụ thực thông qua ủy nhiệm dịch vụ, kết tạo ứng dụng tra từ điển từ dịch vụ mạng mà không cần biết cài đặt chi tiết dịch vụ 3.3 Thành phần đăng ký dịch vụ Hiện giới có nơi đăng ký dịch vụ cơng cộng Microsoft ( http://www.uddi.microsoft.com ) IBM ( http://www-3.ibm.com/services/uddi/ ) quản lý Khi nhà cung cấp dịch vụ đăng ký hay cập nhật dịch vụ nơi 80 đăng ký thơng tin dịch vụ cập nhật tới nơi đăng ký lại vịng 24 Chỉ có Windows 2003 (trừ Web Edition), Microsoft cho phép tích hợp nơi đăng ký dịch vụ riêng để sử dụng mạng nội bộ, dịch vụ UDDI (UDDI Services – thành phần không cài mặc định) Dịch vụ UDDI cho phép xuất bản, cập nhật tìm kiếm dịch vụ nhà cung cấp dịch vụ Giao diện dịch vụ UDDI sau: Hình 3.9: Giao diện dịch vụ UDDI Các kết đạt Ứng dụng từ điển xây dựng từ dịch vụ từ điển khác Anh – Việt, Việt – Anh, Pháp – Việt, Việt – Pháp Giao diện chương trình: 81 Hình 3.10: Giao diện chương trình Thơng tin chi tiết dịch vụ sử dụng: Hình 3.11: Thơng tin chi tiết dịch vụ Khi thông tin dịch vụ thay đổi (chẳng hạn vị trí dịch vụ thay đổi) ứng dụng thực việc truy vấn UDDI để cập nhật thông tin dịch vụ mà khơng cần phải dịch lại chương trình 82 Hình 3.12: Dịch vụ thay đổi Truy vấn UDDI thành công, ứng dụng lại hoạt động bình thường Hình 3.13: Truy vấn thay đổi dịch vụ thành công Thông tin thay đổi dịch vụ thấy rõ xem thông tin chi tiết dịch vụ (để ý điểm truy cập dịch vụ thay đổi): 83 Hình 3.14: Thông tin dịch vụ thay đổi Đánh giá ứng dụng 5.1 Ưu điểm Ứng dụng xây dựng theo định hướng dịch vụ, tức gồm có thành phần: thành phần cung cấp dịch vụ (các dịch vụ từ điển), thành phần sử dụng dịch vụ (ứng dụng tra từ xây dựng từ dịch vụ từ điển) thành phần đăng ký dịch vụ (dịch vụ UDDI Windows 2003), vậy, tách phần giao diện khỏi phần cài đặt Hơn nữa, xây dựng theo chế liên kết dịch vụ động nên đảm bảo tính linh hoạt dịch vụ thay đổi Ứng dụng có giao diện sử dụng thân thiện, thể tính chất cần có ứng dụng xây dựng theo kiến trúc hướng dịch vụ: Các dịch vụ có giao diện rõ ràng: Giao diện dịch vụ công bố UDDI, mô tả thông tin cần thiết chức tham số đầu vào, đầu ra, điểm truy cập dịch vụ, tạo giao ước sử dụng dịch vụ thành phần sử dụng thành phần cung cấp dịch vụ Một dịch vụ đơn vị phần mềm gồm hoạt động nghiệp vụ có tính tự chứa đựng mức độ đóng gói cao (coarse-grained): Các dịch vụ từ điển thực chức hồn chỉnh, tra từ Các dịch vụ độc lập tích hợp lại với ứng dụng để làm 84 nên ứng dụng tổng thể (từ điển đa ngôn ngữ) Mỗi dịch vụ lại cấu tạo từ nhiều lớp khác nhau: AvlNode, AvlTree, LoadDict, BASE64Converter, XMLGenerator Một dịch vụ cần có khả phát cách công khai cách sử dụng nơi đăng ký dịch vụ nhằm cho phép liên kết động tới dịch vụ: Điều thực thông qua việc sử dụng dịch vụ UDDI Các dịch vụ có tính liên thơng: Do việc sử dụng dịch vụ cần biết đặc tả giao diện dịch vụ file WSDL tuân theo định dạng XML mà tảng hiểu không quan tâm tới cài đặt cụ thể dịch vụ, việc truyền thông lại dùng giao thức phổ biến HTTP nên dịch vụ mạng xây dựng hoạt động tương tác tảng Các dịch vụ không gắn kết chặt chẽ: Thành phần sử dụng thành phần cung cấp dịch vụ không gắn kết trực tiếp với mà thông qua thành phần đăng ký dịch vụ UDDI, điều đảm bảo cho tính mềm dẻo linh hoạt dịch vụ Các dịch vụ suốt vị trí: Sự thay đổi vị trí dịch vụ không làm ảnh hưởng tới thành phần sử dụng dịch vụ, thay đổi dịch vụ phản ánh UDDI, thành phần sử dụng dịch vụ truy vấn thông qua UDDI mà không liên kết trực tiếp tới dịch vụ 5.2 Các điểm hạn chế • Ứng dụng cung cấp chức tra từ • Chưa quan tâm tới vấn đề bảo mật cho dịch vụ mạng 85 KẾT LUẬN Khi độ phức tạp phần mềm tăng lên, nhà nghiên cứu ln tìm nhiều cách để khắc phục Kiến trúc hướng dịch vụ, với công nghệ dịch vụ mạng câu trả lời cuối cho vấn đề Trong khuôn khổ đồ án tốt nghiệp này, NVĐA trình bày khái niệm kiến trúc hướng dịch vụ công nghệ dịch vụ mạng, việc áp dụng công nghệ dịch vụ mạng để xây dựng ứng dụng theo định hướng dịch vụ Đây đề tài thú vị, khơng tính thời nó, mà tư xây dựng phần mềm Việc nghiên cứu đề tài kỹ thuật hướng dịch vụ giúp tơi có nhìn phát triển phần mềm, vấn đề kỹ thuật phát triển phần mềm Các kết đạt được: • Nắm chất mơ hình phát triển phần mềm tiến hóa chúng • Nghiên cứu chất, yêu cầu thành phần kiến trúc hướng dịch vụ • Hiểu lợi ích phát triển phần mềm theo kiến trúc hướng dịch vụ • Tìm hiểu cơng nghệ dịch vụ mạng, tính liên thơng dịch vụ mạng chuẩn cho phép thực cơng nghệ dịch vụ mạng • Áp dụng thành công công nghệ dịch vụ mạng để xây dựng ứng dụng tra từ điển theo kiến trúc hướng dịch vụ Các hạn chế: Do trình độ chun mơn thời gian hạn hẹp nên đồ án không tránh khỏi có nhiều thiếu sót: • Chưa tìm hiểu sâu vấn đề bảo mật cho kiến trúc hướng dịch vụ • Chưa thử nghiệm nhiều tính liên thơng dịch vụ • Chưa thật hồn thiện chương trình ứng dụng • Chưa triển khai ứng dụng mạng Internet Hướng phát triển đề tài: • Tìm hiểu cơng nghệ khác áp dụng cho việc cài đặt kiến trúc hướng dịch vụ • Hoàn thiện giao diện chức cho ứng dụng • Phát triển chế bảo mật cho dịch vụ 86 Việc nghiên cứu đề tài giúp nắm xu phát triển phần mềm - phát triển hướng dịch vụ, để từ áp dụng lợi điểm kỹ thuật phát triển vào sản phẩm tương lai mình, khả tiếp cận nắm bắt công nghệ, công cụ hỗ trợ cho việc phát triển phần mềm theo kiến trúc hướng dịch vụ Cuối cùng, lần xin chân thành cảm ơn TS Huỳnh Quyết Thắng, người định hướng cho hướng nghiên cứu đề tài người hướng dẫn, giúp đỡ tơi nhiều q trình thực đề tài Tôi xin cảm ơn gia đình bạn bè tạo điều kiện giúp đỡ tơi suốt q trình học tập thực đề tài 87 Danh mục tài liệu tham khảo [1] Mark Endrei & others, Patterns: Service-Oriented Architecture and Web Services, IBM Press , 2004 [2] Scott Short, Building XML Web Services for the Microsoft NET Platform, Microsoft Press, 2002 [3] David S Linthicum, 12 Steps to implementing a Service-Oriented Architecture, http://itresearch.forbes.com/detail/RES/1098380700_642.html, 2004 [4] Micheal S Mimoso, A defining moment for SOA, http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci101700 4,00.html, 2004 [5] Bernhard Borges & others, Delving into Service-Oriented Architecture and Web Services, http://www.developer.com/design/article.php/10925_3409221 [6] Don Box, Four tenets to keep in mind when considering service orientation, http://weblogs.asp.net/sebastianweber/archive/2004/07/15/184113.aspx, 2004 [7] Connecticut Object-Oriented User Group, Service-Oriented Architecture, 2003 [8] Brent Carlson & Dmitry Tyomkin, Service-Oriented Architecture: Elements of good design, Business Integration, 2004 [9] Sayed Hashimi, Service-Oriented Architecture Explained, http://www.ondotnet.com/pub/a/dotnet/2003/08/18/soa_explained.html, 2003 [10] Friedemann Lindermann, Service-Oriented Requirements Engineering and Verification, UTHH, 2004 [11] Google, http://www.google.com [12] Vietnam Dictionary, http://vietdic.portal.vinacomm.com.vn/default.aspx 88