Tiểu luận Phát triển phần mềm hướng đối tượng GIỚI THIỆU KIẾN TRÚC HƯỚNG DỊCH VỤ (SOA) VÀ CÁCH THỰC HIỆN

74 764 5
Tiểu luận Phát triển phần mềm hướng đối tượng GIỚI THIỆU KIẾN TRÚC HƯỚNG DỊCH VỤ (SOA) VÀ CÁCH THỰC HIỆN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM    GIỚI THIỆU KIẾN TRÚC HƯỚNG DỊCH VỤ (SOA) VÀ CÁCH THỰC HIỆN BÁO CÁO ĐỒ ÁN MÔN HỌC Giáo viên hướng dẫn: Ths Tăng Mỹ Thảo Nhóm: Vũ Ngọc Hưng MSSV: 06520197 Vương Hà Thanh Mẫn MSSV: 06250282 Lời nói đầu Sự phát triển Internet thúc đẩy nhu cầu cộng tác, làm việc qua mạng sử dụng dịch vụ trực tuyến dần trở thành nhu cầu thiết yếu sống Điều địi hỏi ứng dụng không hệ thống hoạt động đơn lẻ máy trạm (máy client) chịu phụ thuộc vào tảng cố định nữa, mà chúng phải hệ thống linh động giúp người dùng làm việc “mọi lúc, nơi” Điều làm nhà phát triển phải đối mặt với hàng loạt vấn đề tích hợp thành phần phân tán lại với nhau; hay tái sử dụng thành phần có sẵn; vấn đề triển khai bảo trì, … vấn đề làm điên đầu nhà phát triển “Tôi cần dịch vụ lưu trữ”; “Khách hàng yêu cầu dịch vụ phân tích đánh giá chứng khốn” Đó hai số nhiều yêu cầu khách hàng với nhà phát triển nhà cung cấp Gần tất thứ dần trở thành dịch vụ, khơng cịn thiết bị hay phần mềm cụ thể nữa, từ việc lưu trữ liệu, đến xử lý, phân tích đánh giá,… Mơ hình phần mềm dịch vụ phát triển gọi mơ hình SOA – (Service Oriented Architecture) hay Kiến trúc Định hướng Dịch vụ Vậy thật SOA ? Nó có thật hồn hảo ? Làm để triển khai SOA ? Các vấn đề hệ thống SOA ? Đó câu hỏi mà đề tài nghiên cứu trả lời Trong trình tìm hiểu đề tài biên soạn tài liệu tránh khỏi thiếu sót định, mong nhận đóng góp ý kiến q thầy bạn để đề tài thêm hoàn thiện Tp Hồ Chí Minh, tháng 01, năm 2010 Nhóm SOA Mục lục Tổng quan SOA 1.1 Khái niệm 1.2 Các nguyên tắc tính chất hệ thống SOA .2 1.2.1 Ranh giới rõ ràng 1.2.2 Các dịch vụ tự hoạt động 1.2.3 Các dịch vụ chia sẻ lược đồ 1.2.4 Tính tương thích dịch vụ dựa sách 1.2.5 Loose coupling 1.2.6 Sử dụng lại dịch vụ 1.2.7 Sử dụng dịch vụ bất đồng 1.2.8 Quản lý sách 1.2.9 Khả cộng tác 1.2.10 Tự động dị tìm ràng buộc động 1.3 Lợi ích SOA Kiến trúc SOA 2.1 Kiến trúc tổng quan SOA 2.2 Kiến trúc chi tiết 10 2.3 SOA Web service 11 2.4 Mơ hình giao tiếp thơng điệp (message) SOA 12 Các phương pháp xây dựng hệ thống SOA 14 Triển khai SOA Web service ứng dụng thực tế .16 4.1 Mơ tả tốn 16 4.2 Yêu cầu chức 16 4.2.1 Các yêu cầu quản lý dự án (project) 16 4.2.2 Tạo dự án (project) 18 4.2.3 Chỉnh sửa, xóa project .19 4.2.4 Thêm, xóa thành viên project 19 4.2.5 Liệt kê project thành viên 19 4.2.6 Hiển thị tiến độ project theo phần trăm (%) 20 4.2.7 Hiển thị thông tin project: days left, budget, description 20 4.2.8 Hiển thị calendar kèm theo milestone 20 4.2.9 Thêm cột mốc (milestone) .21 4.2.10 Chỉnh sửa, xóa đóng milestone .21 4.2.11 Tạo danh sách công việc (tasklist) 21 4.2.12 Hiển thị danh sách tasklist task tương ứng 22 4.2.13 Chỉnh sửa xóa tasklist 23 4.2.14 Tạo công việc (task) 23 4.2.15 Chỉnh sửa, xóa đóng task 23 4.2.16 Phân công công việc cho hay nhiều thành viên 23 4.2.17 Thêm xóa thành viên khỏi project 24 4.2.18 Các yêu cầu quản lý thành viên/người sử dụng (user) 24 4.2.19 Liệt kê tất thành viên 24 4.2.20 Thêm thành viên vào hệ thống .24 4.2.21 Xóa thành viên khỏi hệ thống .25 4.3 Yêu cầu phi chức 26 4.3.1 Các thành viên cập nhật tiến độ công việc họ 26 4.3.2 Yêu cầu hiệu .26 4.3.3 Bảng trách nhiệm yêu cầu hiệu 27 4.3.4 Yêu cầu tiện dụng 28 4.3.5 Bảng trách nhiệm yêu cầu tiện dụng 29 4.3.6 Yêu cầu tương thích 30 4.3.7 Yêu cầu công nghệ 30 4.3.8 Yêu cầu tiến hoá 31 4.3.9 Bảng trách nhiệm yêu cầu tiến hoá 31 4.3.10 Yêu cầu an toàn .32 4.3.11 Bảng trách nhiệm yêu cầu an toàn .32 4.3.12 Yêu cầu bảo mật 33 4.3.13 Bảng yêu cầu trách nhiệm bảo mật 33 4.4 User-case .34 4.4.1 Mục đích 34 4.4.2 Các quy ước 34 4.4.3 Sơ đồ use-case tổng quát 35 4.4.4 Các actor use-case hệ thống 36 4.4.4.1 Danh sách actor hệ thống 36 4.4.4.2 Danh sách use-case 36 4.4.5 Biểu đồ (Sequence Diagram) .39 4.5 Sơ đồ lớp .40 4.5.1 Mục đích 40 4.5.2 Sơ đồ lớp EPM (mức phân tích) .40 4.5.2.1 Sơ đồ lớp 40 4.5.2.2 Danh sách lớp đối tượng quan hệ 41 4.6 Thiết kế liệu 44 4.6.1 Sơ đồ logic 44 4.6.2 Sơ đồ logic chi tiết: 45 4.7 Thiết kế giao diện 45 4.7.1 Danh sách hình 45 4.8 Mô tả chi tiết hình 47 4.8.1 Màn hình “Desktop” .47 4.8.1.1 Chức 47 4.8.1.2 Các thành phần giao diện 47 4.8.2 Màn hình “Project” 51 4.8.2.1 Chức 51 4.8.3 Màn hình “Milestone List” .52 4.8.3.1 Chức 52 4.8.4 Màn hình “Milestone Add/Edit” .52 4.8.4.1 Chức 52 4.8.5 Màn hình “Task List” 53 4.8.5.1 Chức 53 4.8.6 Màn hình “User “ 53 4.8.6.1 Chức 54 4.8.7 Liệt kê thêm user vào project Màn hình “My Project” 54 4.8.7.1 Chức 54 4.8.8 Màn hình “Add Project” 54 4.8.8.1 Chức 55 4.8.9 Màn hình “User profile” 55 4.8.9.1 Chức 56 4.8.10 Màn hình “Edit user” 57 4.8.10.1 Chức 57 4.8.11 Màn hình “My Task” 57 4.8.11.1 Chức .58 4.8.12 Màn hình “Add Task List” 58 4.8.12.1 Chức 58 4.8.13 Màn hình “Add Task” 59 4.8.13.1 Chức 59 4.8.14 Màn hình “User Administration” 60 4.8.14.1 Chức .60 4.8.15 Màn hình “Add User” 61 4.8.15.1 Chức .61 4.9 EPM Web Service 61 4.10 Xây dựng ứng dụng Client – EPM Agent 63 4.10.1 Gọi EPMService từ client .63 4.10.2 Thiết kế giao diện 64 4.10.2.1 Màn hình Login .64 4.10.2.2 Màn hình 64 Lời kết 66 Tài liệu tham khảo 67 Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 1 Tổng quan SOA 1.1 Khái niệm SOA (Service Oriented Architecture) – Kiến trúc Định hướng Dịch vụ cách tiếp cận hay phương pháp luận để thiết kế tích hợp thành phần khác nhau, bao gồm phần mềm chức riêng lẻ lại thành hệ thống hoàn chỉnh Kiến trúc SOA giống cấu trúc phần mềm hướng đối tượng gồm nhiều module Tuy nhiên khái niệm module SOA khơng đơn gói phần mềm, hay thư viện Thay vào đó, module ứng dụng SOA dịch vụ cung cấp rải rác nhiều nơi khác truy cập thơng qua mơi trường mạng Nói cách ngắn gọn, hệ thống SOA tập hợp nhiều dịch vụ cung cấp mạng, tích hợp lại với để cộng tác thực tác vụ theo yêu cầu người dùng Một cách hiểu sai lầm SOA coi SOA công nghệ Mặc dù SOA hoạt động nhờ công nghệ, khách hàng cần phải chuyển đổi từ chỗ việc tích hợp cơng nghệ SOA sang việc phải điều chỉnh phương pháp thực dự án, sách bảo trì thay đổi để đạt lợi ích khả trưởng thành đáp ứng Dịch vụ yếu tố then chốt SOA Có thể hiểu dịch vụ loại module thực quy trình nghiệp vụ Một mục đích SOA giúp ứng dụng 'nói chuyện' với mà khơng cần biết chi tiết kỹ thuật bên Để thực điều SOA định chuẩn giao tiếp (dùng để gọi hàm dịch vụ) định nghĩa rõ ràng độc lập với tảng hệ thống, tái sử dụng Như vậy, SOA cấp độ cao phát triển ứng dụng, trọng đến quy trình nghiệp vụ dùng giao tiếp chuẩn để giúp che phức tạp kỹ thuật bên Sự trừu tượng cốt lõi khái niệm dịch vụ, giúp cho Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Cơng nghệ Phần mềm Trang doanh nghiệp tích hợp thành phần có vào ứng dụng thành phần chia sẻ tái sử dụng nhiều lĩnh vực khác cơng ty mà khơng cần phải chỉnh sửa mã nguồn hay phải tái cấu trúc lại hệ thống Có nhiều cách khác để kết nối dịch vụ, chẳng hạn dùng giao thức mạng có sẵn, tạo giao thức riêng Nhưng từ năm 2001, dịch vụ web (Web service) xây dựng dựa tảng web toàn cầu, nơi có, trở thành phương pháp phổ biến cho việc kết nối thành phần hệ thống SOA với Thoạt nhìn SOA dịch vụ web trơng giống chúng khơng phải Chúng ta tìm hiểu rõ dịch vụ web phần Hình 1.1 – Mơ hình SOA 1.2 Các nguyên tắc tính chất hệ thống SOA Những phần sau giới thiệu nguyên tắc dịch vụ hướng Kiến Trúc (SOA).Những nguyên tắc khơng khơng xác tuyệt đối, dùng khung tham khảo cho thảo luận liên quan đến SOA 1.2.1 Ranh giới rõ ràng Các dịch vụ thực trình tương tác chủ yếu thông qua thành phần giao tiếp Thành phần giao tiếp quy định dạng thông điệp sử dụng Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang q trình trao đổi : thơng điệp chấp nhận thông điệp khơng xử lý Và cách để đối tượng bên ngồi truy cập thông tin chức dịch vụ Ta cần gửi thông điệp theo định dạng định nghĩa trước mà không cần quan tâm đến cách xử lý dịch vụ Điều đạt tách biệt thành phần giao tiếp thành phần giao tiếp thành phần xử lý kiến trúc dịch vụ 1.2.2 Các dịch vụ tự hoạt động Các dịch vụ cần phải triển khai họat động thực thể độc lập mà không lệ thuộc vào dịch vụ khác Dịch vụ phải có tính bền vững cao, nghĩa khơng bị sụp đổ có cố Để thực điều , dịch vụ cần trì đầy đủ thơng tin cần thiết cho q trình hoạt động để tiếp tục họat động trường hợp dịch vụ bị hỏng, để tránh cơng từ bên ngồi (như gửi thông điệp lỗi, hay gửi thông điệp ạt) cách sử dụng kỹ thuật an toàn, bảo mật … 1.2.3 Các dịch vụ chia sẻ lược đồ Các dịch vụ nên cung cấp thành phần giao tiếp (interface) bên ngồi, hổ trợ chia sẻ cấu trúc thông tin, ràng buộc liệu thông qua lược đồ liệu (chema) chuẩn (độc lập ngôn ngữ , đa nền) Như hệ thống ta có tính lên kết khả dễ mở rộng 1.2.4 Tính tương thích dịch vụ dựa sách Điều nghĩa là, dịch vụ muốn tương tác với dịch vụ khác phải thỏa mãn sách (policy) yêu cầu (requirement) dịch vụ mã hóa, bảo mật… Để thực điều này, dịch vụ cần pahỉ cung cấp công khai u cầu, sách Đồ án mơn học – Nhóm SOA Trường Đại học Cơng nghệ Thơng tin - Khoa Cơng nghệ Phần mềm Trang 53 Màn hình “Task List” 4.8.5 4.8.5.1 Chức Bao gồm thành phần : danh sách task list chưa hoàn thành danh sách task list hồn thành 4.8.6 Màn hình “User “ Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 54 4.8.6.1 Chức Liệt kê thêm user vào project Màn hình “My 4.8.7 Project” 4.8.7.1 Chức Liệt kê tất project mà user tham gia , kèm theo thông tin tiến độ , số ngày lại project Cho phép add / edit / delete project user administrator 4.8.8 Màn hình “Add Project” Đồ án mơn học – Nhóm SOA Trường Đại học Cơng nghệ Thơng tin - Khoa Công nghệ Phần mềm Trang 55 4.8.8.1 Chức Thêm project 4.8.9 Màn hình “User profile” Đồ án mơn học – Nhóm SOA Trường Đại học Cơng nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 56 4.8.9.1 Chức Hiển thị thông tin User Đồ án mơn học – Nhóm SOA Trường Đại học Cơng nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 57 4.8.10 Màn hình “Edit user” 4.8.10.1 Chức Chỉnh sửa thơng tin User 4.8.11 Màn hình “My Task” Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 58 4.8.11.1 Chức Hiển thị tất Task list user project Hiển thị tất Task có Task list 4.8.12 Màn hình “Add Task List” 4.8.12.1 Chức Thêm Task List vào project Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 59 4.8.13 Màn hình “Add Task” 4.8.13.1 Chức Thêm Task Task List Đồ án mơn học – Nhóm SOA Trường Đại học Cơng nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 60 4.8.14 Màn hình “User Administration” 4.8.14.1 Chức Quản lý thành viên: thêm, xoá, sửa thành viên Quản lý phân quyền (role): thêm, xoá, sửa mục phân quyền Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 61 4.8.15 Màn hình “Add User” 4.8.15.1 Chức Tạo user 4.9 EPM Web Service Để thành viên cập nhật cơng việc giao hệ thống EPM cung cấp Web Service để ứng dụng client truy xuất liệu Ở sử dụng cơng cụ có sẵn Visual Studio để tạo Web Service đơn giản chạy NET Web service NET tn thủ mơ hình chung Web Service Đồ án mơn học – Nhóm SOA Trường Đại học Cơng nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 62 Hình 4.9 – Mơ hình web service Việc tạo Web service Visual Studio dễ dàng, tầng cấp thấp bên hỗ trợ sẵn, việc cài đặt hàm xử lý business Sau cài đặt xong vào trình duyệt mở tập tin asmx xuất nội dung sau: Hình 4.10 – Web service NET Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 63 Như cài đặt thành công web service, ứng dụng khác (ứng dụng client, ứng dụng web khác,…) gọi sử dụng phương thức EPMservice cách dễ dàng Bước tiếp theo, xây dựng ứng dụng dạng Windows Form để sử dụng dịch vụ EPMservice cung cấp 4.10 Xây dựng ứng dụng Client – EPM Agent EPM Agent ứng dụng dạng Windows Forms hoàn toàn tách biệt với phần server ứng dụng web Để gọi phương thức từ web service, cần có đường dẫn đến web service nhà cung cấp, cụ thể hệ thống EPM server cung cấp dịch vụ EPMservice 4.10.1 Gọi EPMService từ client Tương tự tạo web service, để gọi web service, Visual Studio cần nhấp phải chọn “Add Service Reference…” làm theo hướng dẫn: Hình 4.10 - Tạo tham chiếu đến web service Sau tạo tham chiếu đến Web service, Visual Studio tự động đọc đặc tả WSDL (Web Service Description Language) cùa web service chuyển đổi thành lớp tương ứng phía client Nhờ gọi phương thức web service tương tự gọi phương thức đối tượng cục Ví dụ: Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 64 private EPMserviceSoapClient _epmClient; //… private bool _login() { if (_epmClient == null) { _epmClient = new EPMserviceSoapClient(); } _user = _epmClient.login(txtUserName.Text.Trim(), txtPassWord.Text.Trim()); } return _user != null; 4.10.2 Thiết kế giao diện 4.10.2.1 Màn hình Login 4.10.2.2 Màn hình Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 65 -oOo - Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 66 Lời kết SOA giúp cho công việc phát triển phần mềm trở nên dễ dàng nhanh chóng việc sử dụng dịch vụ có sẵn Chúng ta gần khơng phải thực cần thực bổ sung cần thiết để 'lắp ráp' ứng dụng Với ưu điểm đó, SOA giúp nhà phát triển tiết kiệm nhiều chi phí việc bảo trì phát triển ứng dụng, cịn người sử dụng hưởng lợi từ đa dạng dịch vụ với chi phí hợp lý có độ tin cậy cao Tuy SOA giai đoạn phát triển tiềm ẩn nhiều vấn đề bảo mật, tính tồn vẹn liệu vấn đề tích hợp hệ thống với Điều địi hỏi nhà phát triển phải tiếp tục tiến tìm giải pháp cho SOA Nhìn chung đề tài nghiên cứu cho thấy nhìn tổng quan SOA, nhiên rõ ràng báo cáo nhiều hạn chế chưa sâu vào nghiên cứu quy trình tạo ứng dụng SOA cụ thể nào, chưa cho thấy khác biệt quy trình Tuy nhiên đề tài mở nhiều điều thú vị nghiên cứu phát triển tiếp vấn đề bảo mật tích hợp hệ thống lại với -oOo - Đồ án mơn học – Nhóm SOA Trường Đại học Công nghệ Thông tin - Khoa Công nghệ Phần mềm Trang 67 Tài liệu tham khảo • Tiếng Anh: [1] http://en.wikipedia.org/wiki/Service-Oriented_Architecture [2] What is service-oriented architecture ? – http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html [3] Understanding Service-Oriented Architecture – http://msdn.microsoft.com/en-us/library/aa480021.aspx [4] Build your SOA – http://www.ibm.com/developerworks/webservices/library/ws-soa-method1.html [5] BPEL – http://en.wikipedia.org/wiki/Business_Process_Execution_Language [6] Service-Oriented Architecture: Concepts, Technology, and Design , By Thomas Erl, Publisher: Prentice Hall PTR, Pub Date: August 04, 2005, ISBN: 0-13-185858-0 [7] Expert Service-Oriented Architecture in C#: Using the Web Services, Copyright © 2004 by Jeffrey Hasan, Apress • Tiếng Việt: [8] SOA: Ngơi lĩnh vực phần mềm - http://www.htmedsoft.com/kythuat/congngheweb/congngheweb011.htm [9] Xu hướng ứng dụng SOA châu Á – http://www.thesaigontimes.vn/Home/kinhteso/thitruong/18146/ [10] Tìm hiểu SOA – http://eac.vn/tim-hieu-soa/ [11] SOA – http://eac.vn/category/cong-nghe-moi/soa-cong-nghe-moi/ [12] Mơ hình lập trình SOA để triển khai thực dịch vụ Web – http://www.ibm.com/developerworks/vn/library/ar-procmod2/index.html -oOo - Đồ án mơn học – Nhóm SOA ... đến cách xử lý dịch vụ Điều đạt tách biệt thành phần giao tiếp thành phần giao tiếp thành phần xử lý kiến trúc dịch vụ 1.2.2 Các dịch vụ tự hoạt động Các dịch vụ cần phải triển khai họat động thực. .. rõ dịch vụ web phần Hình 1.1 – Mơ hình SOA 1.2 Các nguyên tắc tính chất hệ thống SOA Những phần sau giới thiệu nguyên tắc dịch vụ hướng Kiến Trúc (SOA). Những ngun tắc khơng khơng xác tuyệt đối, ... nhà phát triển nhà cung cấp Gần tất thứ dần trở thành dịch vụ, khơng cịn thiết bị hay phần mềm cụ thể nữa, từ việc lưu trữ liệu, đến xử lý, phân tích đánh giá,… Mơ hình phần mềm dịch vụ phát triển

Ngày đăng: 09/04/2015, 09:53

Từ khóa liên quan

Mục lục

  • 1. Tổng quan về SOA

    • 1.1. Khái niệm

    • 1.2. Các nguyên tắc và tính chất của hệ thống SOA

      • 1.2.1 Ranh giới rõ ràng

      • 1.2.2 Các dịch vụ tự hoạt động

      • 1.2.3 Các dịch vụ chia sẻ lược đồ

      • 1.2.4 Tính tương thích của dịch vụ dựa trên chính sách

      • 1.2.5 Loose coupling

      • 1.2.6 Sử dụng lại dịch vụ

      • 1.2.7 Sử dụng dịch vụ bất đồng bộ

      • 1.2.8 Quản lý chính sách

      • 1.2.9 Khả năng cộng tác

      • 1.2.10 Tự động dò tìm và ràng buộc động

      • 1.3. Lợi ích của SOA

      • 2. Kiến trúc của SOA

        • 2.1. Kiến trúc tổng quan của SOA

        • 2.2. Kiến trúc chi tiết

        • 2.3. SOA và Web service

        • 2.4. Mô hình giao tiếp bằng thông điệp (message) trong SOA

        • 3. Các phương pháp xây dựng một hệ thống SOA

        • 4. Triển khai SOA và Web service trong ứng dụng thực tế

          • 4.1. Mô tả bài toán

          • 4.2. Yêu cầu chức năng

            • 4.2.1 Các yêu cầu về quản lý dự án (project)

            • 4.2.2 Tạo dự án (project) mới

Tài liệu cùng người dùng

Tài liệu liên quan