SOA Kiến trúc hướng dịch vụ - Service oriented Architecture

 Một tập hợp các dịch vụ web  Tạo ra khả năng giao tiếp giữa các dịch vụ web  Kết nối giữa các dịch vụ web hết sức mềm dẻo, lỏng lẻo

pdf32 trang | Chia sẻ: lylyngoc | Lượt xem: 1934 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu SOA Kiến trúc hướng dịch vụ - Service oriented Architecture, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
SOA Phạm Hồng Phong - SoICT – HUST SOA Kiến trúc hướng dịch vụ - Service oriented Architecture 2 SOA SOA  Một tập hợp các dịch vụ web  Tạo ra khả năng giao tiếp giữa các dịch vụ web  Kết nối giữa các dịch vụ web hết sức mềm dẻo, lỏng lẻo 3 SOA Các mô hình lập trình trước ñây  Lập trình hướng cấu trúc / SSADM (C/Pascal)  Lập trình hướng ñối tượng / OOADM & CBD (C++/Java) + kết hợp mềm dẻo, ñộc lập nền tảng, giao tiếp chuẩn & chia nhỏ công việc ñến mức có thể = Service Oriented Architecture 4 Tiếp cận SOA Các ứng dụng ñóng gói Giai ñoạn trung gian: các dịch vụ ñơn lẻ ñược phân tách ra Kiến trúc hướng dịch vụ 5 Tiếp cận SOA Ví dụ: Dịch vụ thu ngân của Ngân hàng dựa trên hướng dịch vụ  Các kiểu thu ngân khác nhau tạo ra các dịch vụ khác nhau Người thu ngân ñược nghiệp vụ hóa ñể chỉ phải thực hiện loại giao dịch nào ñó. Ví dụ: oQuản lý tài khoản (mở và ñóng các tài khoản) oTín dụng (yêu cầu phải thẩm ñịnh các ñiều kiện, tư vấn, yêu cầu cho việc thế chấp) oGửi/lấy tiền mặt (chuyển khoản, ñặt cọc, thu hồi vốn) oĐổi ngoại tệ (mua và bán các tiền tệ nước ngoài) 6 SOA oRất nhiều các nhân viên thu ngân xử lý các loại dịch vụ khác nhau (giúp giảm tải công việc cho công ty, tránh lỗi) oChúng ta không biết ñược chi tiết ñiều gì xảy ra sau quầy thu ngân (ñược che chắn bởi kính chống nổ, các thanh sắt!!) oNếu yêu cầu một giao dịch phức tạp, có thể ta phải giao tiếp với rất nhiều các nhân viên (Khách hàng giống như một ñiều phối viên giao dịch!!) 7 Thuật ngữ và các khái niệm Một dịch vụ - service là một gói các chức năng ñã ñược chuẩn hóa và liên quan mật thiết với nhau  Được gọi nhiều lần (theo các giao dịch khác nhau)  Được hiện thực bởi một tính năng chuyên biệt  Ví dụ: Quản lý Tài khoản  Một dịch vụ có thể ñược phân rã & bao gồm nhiều các hàm dịch vụ. Ví dụ: Mở Tài khoản  Đơn vị con nhỏ nhất bên trong các hàm dịch vụ ñược gọi là dịch vụ nguyên thủy Ví dụ: Thủ tục phát sinh Số tài khoản tiếp theo 8 Thuật ngữ và các khái niệm Các ñặc tính miêu tả ñầy ñủ về một dịch vụ  Người yêu cầu dịch vụ - Service requester (“Client”) oXác định ai/ thành phần nào sử dụng dịch vụ oĐối với họ, tính năng của dịch vụ được cung cấp là quan trọng nhất, không cần biết nó được thực hiện bên trong như thế nào (hộp đen) – quy tắc đóng gói thông tin và thực thi 9 Thuật ngữ và các khái niệm  Nhà cung cấp dịch vụ - Service provider(“Server”) oAi/thành phần nào thực thi hay cung cấp dịch vụ oCó trách nhiệm cho việc cung cấp địa chỉ dịch vụ, và đảm bảo chất lượng QoS oCó thể yêu cầu trả phí cho dịch vụ oChất lượng dịch vụ(QoS) oBao gồm tập các tham số để đánh giá chất lượng oVí dụ: độ tin cậy, chi phí, thời gian thực thi, cấp độ bảo mật, dự báo kết quả, các đảm bảo … 10 Thuật ngữ và các khái niệm  Giao diện – Interface  Một giao diện sẽ chứa ñặc tả về một dịch vụ, ñược thực thi bởi một thành phần nào ñó. Giao diện ñịnh nghĩa một thỏa thuận mà thành phần thực thi nó phải tuân theo  Interface có thể ñược miêu tả sử dụng các ngôn ngữ ñịnh dạng Web Services Description Language (WSDL) OMG/ISO Interface Definition Language (IDL) (for CORBA) UML Object Constraint Language (OCL) Tương tự: Java, C++ headers, . . .  Các giao diện an toàn kiểu lại thường có tính chất coupling rất chặt o Các kiểu thông ñiệp khác nhau là ñược phép ñối với một thông ñiệp 11 Thuật ngữ và các khái niệm Kiến trúc phần mềm: bao gồm một tập các quyết ñịnh quan trọng về việc tổ chức/thiết kế một hệ thống phần mềm  Lựa chọn các phần tử ñã ñược cấu trúc hóa từ hệ thống, và interface cho chúng  Hành vi chỉ ra việc giao tiếp/cộng tác giữa các phần tử  Phân rã/bố cục của các phần tử có hành vi và có cấu trúc bên trong một hệ thống lớn  Kiểu kiến trúc áp dụng cho hệ thống này 12 Thuật ngữ và các khái niệm Mẫu kiến trúc – Architectural Style  Định nghĩa một họ các hệ thống theo các thuật ngữ như là một khuôn mẫu của tổ chức có cấu trúc  Định nghĩa oMột bộ từ vựng cho các thành phần/phần tử như client, server, filter, layer, adapter, … và các kiểu kết nối như pipe, broadcast, queue, … oMột tập các quy tắc cấu hình (rằng buộc) chỉ ra cách thức các thành phần kết hợp với nhau 13 Thuật ngữ và các khái niệm Ví dụ một mẫu kiến trúc phần mềm: hướng sự kiện (event-based), repository, các máy ảo, ña tầng, … 14 Thuật ngữ và các khái niệm Kiến trúc hướng dịch vụ: mẫu kiến trúc gọi là hướng dịch vụ nếu như:  Nó không ở dạng nguyên khối (monolithic), các khối chức năng chung được phân rã ra khỏi các ứng dụng & được cung cấp thay thế bởi các dịch vụ oCác dịch vụ là tồn tại độc lập với ứng dụng và thể hiện giao diện cho các chức năng  Thiết kế các phần tử cho một SOA oCác thành phần: các dịch vụ (có thể là nhiều dịch vụ kết hợp), người dùng (consumer) và nhà cung cấp (provider) oKiểu kết nối: kích hoạt dịch vụ từ xa 15 Thuật ngữ và các khái niệm  Các quy tắc cấu hình cho một SOA oKhông phân tầng rõ rệt: việc thực thi dịch vụ có thể sử dụng các dịch vụ khác oKhông ñiều khiển hệ thống ở một nơi trung tâm, các thành phần có thể hoạt ñộng tách rời nhau oCác dịch vụ ñược thiết kế ñể sử dụng chung 16 Thuật ngữ và các khái niệm  Hướng dịch vụ  Là một tập các quy tắc có tổ chức ñể xây dựng các hệ thống lớn. Nó không bó buộc với bất cứ công nghệ nào  Ví dụ  Các dịch vụ “nằm ngang” chung: o Logging, ñịnh danh (authentication/single-sign-on), quản lý hệ thống, Thư mục tra cứu các dịch vụ, thông báo sự kiện …  Các dịch vụ “nằm dọc”, thiết kế chuyên biệt cho từng lĩnh vực nghiệp vụ o Dịch vụ tìm kiếm tính năng sản phẩm, quảng lý ñịa chỉ, dịch vụ truy vết trạng thái ñơn ñặt hàng, dịch vụ tra cứu quảng cáo …  Một tổ chức có nhiều cách ñể cấu trúc hóa một hệ thống lớn 17 Ưu ñiểm thiết kế SOA Mềm dẻo hơn, các quy tắc nghiệp vụ và các logic tiến trình nghiệp vụ không ñược nhúng nhiều bên trong các ứng dụng. Kết quả là:  Các tiến trình được thay đổi dễ hơn  Các dịch vụ đang có có thế được dùng trong nhiều ngữ cảnh khác nhau  Giảm chi phí vận hành bởi tính ñồng nhất  Dư thừa các chức năng dịch vụ bị hạn chế rất nhiều  Kết quả o Ít máy chủ hơn o Ít bản quyền hơn o Chi phí bảo trì thấp hơn 18 Ưu ñiểm thiết kế SOA Chất lượng tốt hơn  Hạn chế dư thừa làm giảm các hành vi và dữ liệu không đồng nhất  Trong suốt hơn  Kiến trúc hệ thống được cải thiện, dễ hiểu hơn Hạn chế rủi ro, chi phí và ñộ phức tạp phát triển  Tăng năng suất cho các LTV thông qua tính tái sử dụng  Các dự án có thể giúp thúc đẩy các dịch vụ đang có 19 Chất lượng của kiến trúc phần mềm 20 SOA more … Khung nhìn khái niệm của SOA 21 SOA more … Trong một kiến trúc hướng dịch vụ, các dịch vụ nghiệp vụ tương tác với nhau theo cách mà các dịch vụ của một nhà hàng tương tác. Kiến trúc cơ bản của một hệ thống xử lý ñơn hàng và SOA là giống nhau: 22 Các thành phần của SOA 23 Các thành phần của SOA Application frontend: phần tử hoạt ñộng của SOA, ñưa giá trị của SOA tới người dùng cuối  Khởi tạo và ñiều khiển tất cả các hoạt ñộng của hệ thống doang nghiệp Ứng dụng web, ứng dụng GUI, … Dịch vụ: thành phần phần mềm mà ñóng gói bên trong các chức năng nghiệp vụ mức cao Contract: cung cấp ñặc tả về mục ñích, tính năng, rằng buộc và sử dụng dịch vụ 24 Các thành phần của SOA  Interface: chức năng của dịch vụ ñược thấy bởi Client  Implementation: Thực thi dịch vụ cung cấp các logic nghiệp vụ và dữ liệu thích hợp. Nó chứa: chương trình, cấu hình, dữ liệu và datasets Business logic: các tiến trình nghiệp vụ ñược biểu diễn bởi dịch vụ Data: dữ liệu ñược sử dụng bởi dịch vụ Service repository: ñăng ký các dịch vụ và thuộc tính của chúng giúp việc khám phá các dịch vụ dễ dàng hơn: các hoạt ñộng, quyền truy xuất, người sở hữu, chất lượng, … 25 Các thành phần của SOA Enterprise Service Bus: một hạ tầng mềm dẻo giúp tích hợp các ứng dụng và dịch vụ một cách ñơn giản bằng: ñịnh tuyến các thông ñiệp, các giao thức truyền dữ liệu giữa người yêu cầu và dịch vụ, thực hiện các sự kiện nghiệp vụ, cung cấp QoS, bảo mật và quản lý tương tác giữa các dịch vụ Open standards: các chuẩn có thể thực thi sẵn có trên mạng 26 Dịch vụ và các kiểu dịch vụ 27 Dịch vụ và các kiểu dịch vụ  Các kiểu dịch vụ 1. Ứng dụng frontend: GUI -> trong pha thiết kế & thực thi 2. Các dịch vụ cơ bản: dữ liệu& logic (dịch vụ ngang) -> từ sơ ñồ quan hệ Entity 3. Các dịch vụ trung gian: gateway, adapters -> thêm một dịch vụ mới 4. Các dịch vụ hướng tiến trình: các hoạt ñộng nghiệp vụ (dịch vụ dọc) 5. Các dịch vụ doanh nghiệp công khai: thông suốt doanh nghiệp, bảo mật, tự trị Yếu tố quan trọng nhất trong SOA là tìm ra các dịch vụ nghiệp vụ và ñịnh nghĩa phạm vi của nó 28 SOA Stack 29 Case study SOA 30 Case study SOA 31 32
Tài liệu liên quan