5.1. Ưu điểm
Ứng dụng được xây dựng theo định hướng dịch vụ, tức là gồm có 3 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ừ được xây dựng từ các dịch vụ từ điển) và thành phần đăng ký dịch vụ (dịch vụ UDDI của Windows 2003), do vậy, nó đã tách được phần giao diện ra khỏi phần cài đặt. Hơn nữa, nó được xây dựng theo cơ chế liên kết dịch vụ động nên đảm bảo tính linh hoạt khi dịch vụ thay đổi.
Ứng dụng có giao diện sử dụng thân thiện, đã thể hiện được các tính chất căn bản cần có của một ứ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 của dịch vụ được công bố trong UDDI, mô tả mọi thông tin cần thiết về chức năng cũng như các tham số đầu vào, đầu ra, điểm truy cập của dịch vụ, tạo ra giao ước sử dụng dịch vụ giữa thành phần sử dụng và thành phần cung cấp dịch vụ.
Một dịch vụ là một đơn vị phần mềm gồm các hoạt động nghiệp vụ có tính tự chứa đựng và mức độ đóng gói cao (coarse-grained):
Các dịch vụ từ điển đều thực hiện được một chức năng hoàn chỉnh, đó là tra từ. Các dịch vụ độc lập có thể tích hợp lại với nhau trong cùng một ứng dụng để làm
nên ứng dụng tổng thể (từ điển đa ngôn ngữ). Mỗi dịch vụ lại được 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ả năng được phát hiện ra một cách công khai bằng cách sử dụng một nơi đăng ký dịch vụ nhằm cho phép các liên kết động tới dịch vụ:
Điều này được thực hiện 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ụ chỉ cần biết đặc tả giao diện của dịch vụ là file WSDL tuân theo định dạng XML mà bất kỳ nền tảng nào cũng có thể hiểu được và không quan tâm tới cài đặt cụ thể của dịch vụ, việc truyền thông lại dùng giao thức phổ biến là HTTP nên các dịch vụ mạng được xây dựng có thể hoạt động và tương tác trên mọi nền tảng.
Các dịch vụ không được gắn kết chặt chẽ:
Thành phần sử dụng và thành phần cung cấp dịch vụ không gắn kết trực tiếp với nhau mà thông qua thành phần đăng ký dịch vụ là UDDI, điều này đảm bảo cho tính mềm dẻo và linh hoạt của dịch vụ.
Các dịch vụ trong suốt về vị trí:
Sự thay đổi vị trí của dịch vụ không làm ảnh hưởng tới thành phần sử dụng dịch vụ, do các thay đổi của dịch vụ đều được phản ánh trong UDDI, thành phần sử dụng dịch vụ chỉ 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 mới chỉ cung cấp chức năng cơ bản là tra từ. • Chưa quan tâm tới vấn đề bảo mật cho dịch vụ mạng.
KẾT LUẬN
Khi độ phức tạp phần mềm tăng lên, các nhà nghiên cứu luôn tìm ra nhiều cách mới để khắc phục. Kiến trúc hướng dịch vụ, cùng với công nghệ dịch vụ mạng là câu trả lời cuối cùng cho vấn đề này.
Trong khuôn khổ đồ án tốt nghiệp này, NVĐA đã trình bày những khái niệm về kiến trúc hướng dịch vụ và công nghệ dịch vụ mạng, cũng như 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 là một đề tài rất thú vị, không chỉ bởi tính thời sự của nó, mà còn bởi tư duy mới trong xây dựng phần mềm của nó. Việc nghiên cứu đề tài về kỹ thuật hướng dịch vụ đã giúp tôi có cái nhìn mới về phát triển phần mềm, các vấn đề của các kỹ thuật phát triển phần mềm hiện tại.
Các kết quả đạt được:
• Nắm được bản chất của các mô hình phát triển phần mềm và sự tiến hóa của chúng.
• Nghiên cứu các bản chất, các yêu cầu và các thành phần của kiến trúc hướng dịch vụ.
• Hiểu được các lợi ích khi phát triển phần mềm theo kiến trúc hướng dịch vụ.
• Tìm hiểu về công nghệ dịch vụ mạng, tính liên thông giữa các dịch vụ mạng và các chuẩn cho phép thực hiện 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 độ chuyên môn và 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 được về vấn đề bảo mật cho kiến trúc hướng dịch vụ.
• Chưa thử nghiệm được nhiều về tính liên thông giữa các dịch vụ. • Chưa thật sự hoàn thiện chương trình ứng dụng.
• Chưa triển khai ứng dụng trên mạng Internet.
Hướng phát triển tiếp theo của đề tài:
• Tìm hiểu các công nghệ khác áp dụng cho việc cài đặt kiến trúc hướng dịch vụ.
• Phát triển cơ chế bảo mật cho các dịch vụ.
Việc nghiên cứu đề tài đã giúp tôi nắm được xu thế mới trong phát triển phần mềm - phát triển hướng dịch vụ, để từ đó áp dụng những lợi điểm của kỹ thuật phát triển này vào các sản phẩm trong tương lai của mình, cũng như khả năng tiếp cận và nắm bắt các công nghệ, công cụ mới 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, một lần nữa tôi xin chân thành cảm ơn TS. Huỳnh Quyết Thắng, người đã định hướng cho tôi hướng nghiên cứu về đề tài này và là người hướng dẫn, giúp đỡ tôi rất nhiều trong quá trình thực hiện đề tài. Tôi cũng xin cảm ơn gia đình và bạn bè đã tạo điều kiện và giúp đỡ tôi trong suốt quá trình học tập cũng như thực hiện đề tài này.
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_gci1017004, 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