Kiến trúc hướng dịch vụ SOA & trục tích hợp dữ liệu

Một phần của tài liệu Một Số Khung Kiến Trúc Và Phương Pháp Luận Hỗ Trợ Xây Dựng Kiến Trúc Doanh Nghiệp (Trang 46 - 86)

Nội dung

 Vấn đề doanh nghiệp đối mặt

 Kiến trúc SOA là gì?

 Cách thức xây dựng giải pháp Kiến trúc SOA

 Trục tích hợp dữ liệu ESB (Enterprise Service Bus) là gì?

47

Vấn đề doanh nghiệp đối mặt

Đặt vấn đề

 Trong khi các nhà quản lý công nghệ thông tin đang phải đối đầu với việc giảm giá thành và tối đa lợi ích của các công nghệ hiện có, họ vẫn phải liên tục cố gắng để phục vụ khách hàng được tốt hơn, trở nên cạnh tranh hơn và phản ứng nhanh hơn với chiến lược cửa doanh nghiệp.

49

Đặt vấn đề

 Có hai yếu tố chính ẩn sau những áp lực này, đó là:

Tính không đồng nhất của các hệ thống, ứng dụng và kiến trúc khác nhau với thời gian tồn tại và công nghệ khác nhau. Việc tích hợp nhiều sản phẩm từ nhiều nhà cung cấp và nhiều nền tảng thực sự là điều khó khăn. Nhưng chúng ta cũng không thể cố gắng tiếp cận theo kiểu một nhà cung cấp công nghệ thông tin vì các bộ ứng dụng và kiến trúc hỗ trợ rất không mềm dẻo.

50

Đặt vấn đề

 Có hai yếu tố chính ẩn sau những áp lực này, đó là:

Sự thay đổi liên tục về mặt công nghệ là yếu tố thứ hai mà các nhà quản lý công nghệ thông tin phải đối mặt. Các cải tiến trong công nghệ tiếp tục tăng nhanh, làm tăng sự thay đổi yêu cầu của 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 trong môi trường cạnh tranh và hạ tầng công nghệ thông tin phải đem lại khả năng thích nghi cho các doanh nghiệp.

51

Đặt vấn đề

52

Đặt vấn đề

 Làm thế nào để môi trường công nghệ thông tin trở nên linh hoạt và nhạy bén hơn đối với sự thay đổi của các yêu cầu kinh doanh? Làm thế nào để các hệ thống và ứng dụng không đồng nhất trao đổi với nhau một cách liền mạch? Làm thế nào để đạt mục tiêu kinh doanh mà không bị phá sản các doanh nghiệp?

 Đã có nhiều giải pháp được đề ra song song với sự phát triển của các vấn đề kinh doanh: kiến trúc các đơn vị riêng lẻ, có cấu trúc, mô hình khách chủ, mô hình ba lớp, mô hình đa lớp, mô hình đối tượng phân tán, các thành phần, dịch vụ.

53

Đặt vấn đề

 Hiện nay, nhiều nhà quản lý và các chuyên gia CNTT tin rằng chúng ta đang tiến gần hơn tới câu trả lời kiến trúc hướng dịch vụ SOA (Service Oriented Architectural).

54

Kiến trúc SOA là gì?

Kiến trúc SOA là gì?

Định nghĩa 1:

“Một kiến trúc hướng dịch vụ là một kiến trúc cho việc xây dựng các ứng dụng nghiệp vụ như là một tập của các thành phần hộp đen (black – box components) liên kết lỏng lẻo với nhau được phối hợp để phân các mức độ rõ ràng của dịch vụ bởi việc kết lối các xử lí nghiệp vụ với nhau.”

<Service Oriented Architecture for Dummies>

56

Kiến trúc SOA là gì?

Định nghĩa 2:

“SOA là một kiểu kiến trúc hỗ trợ tích hợp các nghiệp vụ của bạn bởi việc kết nối các dịch vụ.”

<Ph.D C.Mohan, IBM Expert>

57

Kiến trúc SOA là gì?

Định nghĩa 3:

“Một SOA là một nhóm các dịch vụ, giao tiếp với các dịch vụ khác. Tiến trình giao tiếp này liên quan đến một trong hai luồng dữ liệu giữa nhà cung cấp dịch vụ và đối tượng sử dụng dịch vụ, hoặc là một hệ thống phức tạp hơn của cả hai hay nhiều hơn các nhà cung cấp dịch vụ. Sự liên giao tiếp (intercommunication) này đưa đến những nhu cầu cho điều kiện kết nối giữa hai hay nhiều dịch vụ với nhau.”

<Từ Wikipedia>

58

Kiến trúc SOA là gì?

Định nghĩa 4:

“Kiến trúc hướng dịch vụ là một cách tiếp cận để tổ chức các tài nguyên công nghệ thông tin mà ở đó dữ liệu, logic và nguồn lực hạ tầng được truy cập thông qua các giao diện (interface) và thông điệp (Message)”

59

Kiến trúc SOA là gì?

Như vậy, ta có thể hiểu:

Xét về khía cạnh sử dụng thì có thể hiểu đơn giản như sau: "Dịch vụ là một tập các chương trình con (thư viện) cho phép các chương trình chạy trên các máy tính khác trong mạng có thể triệu gọi và sử dụng...“

SOA có thể được hiểu là một hướng tiếp cận để xây dựng các hệ thống phân tán cung cấp các chức ứng dụng dưới các dạng dịch vụ tới các ứng dụng người cuối cùng hoặc các dịch vụ khác.

60

Kiến trúc SOA là gì?

Như vậy, ta có thể hiểu:

SOA là một kiến trúc dùng trong các chuẩn mở để biểu diễn các thành phần mềm như là các dịch vụ.

Cung cấp một cách thức chuẩn hoá cho việc biểu diễn và tương tác với các thành phần phần mềm.

Các thành phần phần mềm riêng lẻ trở thành các khối cơ bản để có thể sử dụng lại để xây dựng các ứng dụng khác.

Được sử dụng để tích hợp các ứng dụng bên trong và bên ngoài tổ chức.

61

Dịch vụ (service) là gì?

Dịch vụ (service) là gì?

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 (modul phần mềm) thực hiện theo quy trình nghiệp vụ nào đó. Các dịch vụ trong SOA có đặc điểm sau:

1. Các dịch vụ là có thể tìm kiếm được.

2. Các dịch vụ có tính liên thông.

3. Các dịch vụ không được gắn kết chặt chẽ với nhau.

4. 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.

5. Các dịch vụ trong suốt về vị trí.

6. Các dịch vụ có khả năng tự hàn gắn.

63

Dịch vụ (service) là gì?

 SOA là tập hợp các dịch vụ kết nối “ mềm dẻo ” với nhau (nghĩa là một ứng dụng có khả năng giao tiếp với một ứng dụng khác mà không cần biết các chi tiết hệ thống bên trong), có giao diện được định nghĩa rõ ràng và độc lập với nền tảng của hệ thống, và có thể tái sử dụng.

 SOA là cấp độ cao hơn của sự phát triển ứng dụng, chú trọng đến quy trình nghiệp vụ và dùng giao diện chuẩn để che dấu sự phức tạp kỹ thuật bên dưới.

64

Dịch vụ (service) là gì?

 Thiết kế SOA tách riêng phần thực hiện dịch vụ (phần mềm) với giao diện gọi dịch vụ. Điều này tạo nên một giao diện nhất quán cho ứng dụng sử dụng dịch vụ mà không cần quan tâm tới công nghệ thực hiện dịch vụ.

 Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ, nhà phát triển sẽ xây dựng các dịch vụ tinh gọn hơn có thể triển khai và tái tạo sử dụng trong toàn bộ quy trình nghiệp vụ. Điều này cho phép tái sử dụng phần mềm tốt hơn, cũng như tăng sự mềm dẻo vì các nhà phát triển có thể cải tiến dịch vụ mà không làm ảnh hưởng đến ứng dụng sử dụng dịch vụ.

65

Dịch vụ (service) là gì?

 SOA dựa trên hai nguyên tắc thiết kế quan trọng:

Modul: tách vấn đề lớn thành nhiều vấn đề nhỏ.

Đóng gói: che dấu dữ liệu và logic trong từng modul đối với truy cập từ bên ngoài.

66

Dịch vụ (service) là gì?

 Một thiết kế kiến trúc phù hợp với khái niệm của SOA cần tuân theo những tính chất sau:

 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 chứa đựng và mức độ đóng gói cao (coarse-grained).

 Một dịch vụ có thể dùng lại được, cho phép có thể xây dựng được một dịch vụ mới từ các dịch vụ hiện có. Do đó, việc quan sát các hàm ý có thể có của các thuộc tính phi chức năng như tính giao dịch là rất quan trọng.

 Một giao diện dịch vụ là một điểm cuối mạng Network Endpoint) đảm bảo tính độc lập và trong suốt về vị trí.

67

Dịch vụ (service) là gì?

 Một thiết kế kiến trúc phù hợp với khái niệm của SOA cần tuân theo những tính chất sau:

 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ụ.

 Một dịch vụ cần đảm bảo tính liên thông bằng cách hỗ trợ các giao thức truyền thông được chuẩn hoá và các định dạng dữ liệu rõ ràng.

68

Cách thức xây dựng giải pháp Kiến trúc SOA

Mô hình của một kiến trúc SOA

 Các thực thể trong kiến trúc hướng dịch vụ bao gồm:

1. Dịch vụ (Services).

2. Thành phần sử dụng dịch vụ (Services consumer/ Client / Request).

3. Thành phần cung cấp dịch vụ (Services Provider).

4. Thành phần đăng ký dịch vụ (Services Registry).

5. Giao ước dịch vụ (Contract).

6. Uỷ nhiệm dịch vụ.

7. Ràng buộc sử dụng dụng dịch vụ (Services lease)

70

Mô hình kiến trúc hướng dịch vụ

Thành phần sử dụng dịch vụ

 Thành phần sử dụng dịch vụ (Web Services Customer) là một ứng dụng, một dịch vụ, hoặc một loại modul 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 các 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 ước.

71

Thành phần cung cấp dịch vụ

 Thành phần cung cấp dịch vụ (Web Services Implementation) là một thực thể có khả năng được địa chỉ hoá qua mạng, nó có thể chấp nhận và thực thi các yêu cầu từ những thành phần 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 vụ.

Thực thể này xuất bản giao ước dịch vụ 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.

72

Thành phần đăng ký dịch vụ

 Thành phần đăng ký dịch vụ (UDDI) là một thư mục trên mạng có chứa các dịch vụ sẵn dùng. Đây là một thực thể chấp nhận và lưu trữ các giao ước từ các thành phần cung cấp dịch vụ và cung cấp các giao ước đó cho các thành phần sử dụng dịch vụ.

 Dịch vụ UDDI, đóng vai trò như người chỉ đường cho các thành phần sử dụng dịch vụ, tạo sự trong suốt về vị trí đối với thành phần cung cấp dịch vụ; để khi thành phần này thay đổi thì thành phần sử dụng dịch vụ không cần phải biên dịch hay cấu hình lại.

73

Mô hình của một kiến trúc SOA

 Giữa ba thành phần: cung cấp dịch vụ, sử dụng dịch vụ, đăng ký dịch vụ, việc trao đổi dữ liệu hoàn toàn dùng giao thức SOAP và nội dung bên trong được định dạng bằng XML.

74

Xây dựng ứng dụng theo kiến trúc SOA

 Trong sự tiến hoá của các kỹ thuật xây dựng phần mềm, kỹ thuật lập trình hướng đối tượng thích hợp để cài đặt các thành phần.

 Trong khi các thành phần lại là cách thích hợp nhất để cài đặt các dịch vụ

 Khi vai trò của dịch vụ trong kiến trúc ứng dụng được hiểu rõ, chúng ta có thể tích hợp các thành phần mới và các thành phần hiện có.

75

Cáctầngi đặttrongthiết kế: đi ng, thànhphần, dịch v

Xây dựng ứng dụng theo kiến trúc SOA

Các tầng của SOA 76

Xây dựng ứng dụng theo kiến trúc SOA

12 bước xây dựng ứng dụng theo kiến trúc SOA:

1. Hiểu nghiệp vụ.

2. Xác định phạm vi (miền) của vấn đề.

3. Hiểu tất cả ngữ nghĩa của ứng dụng trong miền đó.

4. Hiểu tất cả các dịch vụ hiện có trong miền.

5. Hiểu tất cả các nguồn và đích của thông tin có trong miền.

6. Hiểu tất cả các quy trình trong miền.

7. Xác định và phân loại tất cả các giao diện bên ngoài miền cần

thiết cho việc xây dựng

ứng dụng (các dịch vụ và thông tin).

8. Định nghĩa các dịch vụ mới và các ràng buộc thông tin của các ứng dụng dịch vụ đó.

77

Xây dựng ứng dụng theo kiến trúc SOA

12 bước xây dựng ứng dụng theo kiến trúc SOA:

9. Định nghĩa các dịch vụ mới, cũng như các dịch vụ và ràng buộc thông tin cho các quy trình này.

10.Lựa chọn tập công nghệ.

11.Triển khai công nghệ SOA.

12.Kiểm thử và đánh giá.

78

Vòng đời phát triển của ứng dụng theo kiến trúc SOA

79

Vòng đời phát triển dịch vụ

Các mức độ thực hiện kiến trúc SOA

80

Các mức độ thực hiện kiến trúc hướng dịch vụ

Trục tích hợp dữ liệu ESB - Enterprise Service Bus

ESB (Enterprise Service Bus) là gì?

 ESB là một kiến trúc tốt nhất cho việc cài đặt một kiến trúc hướng dịch vụ

82

Mô hình ESB

ESB (Enterprise Service Bus) là gì?

 Mục đích của ESB là cung cấp một sự trừu tượng hoá về các nguồn tài nguyên của doanh nghiệp, cho phép các nghiệp vụ của doanh nghiệp có thể được phát triển và quản lý độc lập với hạ tầng, mạng và có sự có mặt của các dịch vụ doanh nghiệp khác.

83

ESB (Enterprise Service Bus) là gì?

Cài đặt một ESB đòi hỏi một tập hợp được tích hợp của các dịch vụ phần giữa hỗ trợ các kiểu kiến trúc như sau:

Các kiến trúc hướng dịch vụ: ở đây, các ứng dụng phân tán bao gồm các dịch vụ có thể sử dụng lại được với các giao diện rõ ràng, có thể được xuất bản và tương thích với các chuẩn.

Các kiến trúc hướng thông điệp: ở đây, các ứng dụng gửi thông điệp qua ESB tới các ứng dụng nhận thông điệp.

Các kiến trúc hướng sự kiện: ở đây, các ứng dụng tạo mới và sử dụng các thông điệp độc lập lẫn nhau.

84

ESB (Enterprise Service Bus) là gì?

Cài đặt một ESB đòi hỏi một tập hợp được tích hợp của các dịch vụ phần giữa hỗ trợ các kiểu kiến trúc như sau:

Các dịch vụ phần giữa(middleware): đựơc cung cấp bởi một ESB cần chứa:

 Phần giữa truyền thông hỗ trợ nhiều mô hình truyền thông

(như đồng bộ, không đồng

bộ, yêu cầu/ trả lời, một chiều...), chất lượng dịch vụ (bảo mật, hiệu năng...), các API,...

 Một cơ chế cho việc chèn xử lý thông minh của các lần yêu cầu và đáp ứng dịch vụ trong mạng.

 Các công cụ dựa theo chuẩn để cho phép sự tích hợp nhanh chóng của các dịch vụ.

 Hệ thống quản lý cho các ứng dụng liên kết lỏng và các tương tác của chúng.

85

Một phần của tài liệu Một Số Khung Kiến Trúc Và Phương Pháp Luận Hỗ Trợ Xây Dựng Kiến Trúc Doanh Nghiệp (Trang 46 - 86)

Tải bản đầy đủ (PPT)

(86 trang)