SOA là gì? Định hướng dịch vụ Archinguyên tắc kiến trúc
SOA (Hướng dịch vụ là gì? Archikiến trúc)?
Định hướng dịch vụ Archikiến trúc (SOA) là một mô hình kiến trúc trong thiết kế phần mềm máy tính trong đó các thành phần ứng dụng cung cấp dịch vụ cho các thành phần khác thông qua giao thức truyền thông, thường là qua mạng. Các nguyên tắc của hướng dịch vụ không phụ thuộc vào bất kỳ sản phẩm, nhà cung cấp hoặc công nghệ nào.
SOA chỉ giúp các thành phần phần mềm trên các mạng khác nhau hoạt động với nhau dễ dàng hơn.
Các dịch vụ web được xây dựng theo kiến trúc SOA có xu hướng làm cho dịch vụ web độc lập hơn. Bản thân các dịch vụ web có thể trao đổi dữ liệu với nhau và do các nguyên tắc cơ bản mà chúng được tạo ra, chúng không cần bất kỳ loại tương tác nào của con người và cũng không cần bất kỳ sửa đổi mã nào. Nó đảm bảo rằng các dịch vụ web trên mạng có thể tương tác với nhau một cách liền mạch.
Định hướng dịch vụ ArchiNguyên tắc kiến trúc (SOA)
Có 9 loại nguyên tắc thiết kế SOA được đề cập dưới đây
1. Hợp đồng dịch vụ tiêu chuẩn
Dịch vụ tuân theo mô tả dịch vụ. Một dịch vụ phải có một số loại mô tả mô tả nội dung của dịch vụ đó. Điều này giúp các ứng dụng khách dễ hiểu hơn về chức năng của dịch vụ.
2. Khớp nối lỏng lẻo
Less phụ thuộc lẫn nhau. Đây là một trong những đặc điểm chính của dịch vụ web, chỉ nêu rằng phải có ít sự phụ thuộc nhất có thể giữa các dịch vụ web và máy khách gọi dịch vụ web. Vì vậy, nếu chức năng dịch vụ thay đổi tại bất kỳ thời điểm nào, nó không nên làm hỏng ứng dụng máy khách hoặc dừng hoạt động.
3. Trừu tượng hóa dịch vụ
Các dịch vụ che giấu logic mà chúng gói gọn với thế giới bên ngoài. Dịch vụ không được tiết lộ cách nó thực thi chức năng của mình; nó chỉ nên cho ứng dụng khách biết nó làm gì chứ không phải nó làm như thế nào.
4. Khả năng tái sử dụng dịch vụ
Logic được chia thành các dịch vụ với mục đích tối đa hóa việc tái sử dụng. Trong bất kỳ công ty phát triển nào, khả năng sử dụng lại là một chủ đề lớn vì rõ ràng người ta sẽ không muốn dành thời gian và công sức để xây dựng cùng một mã lặp đi lặp lại trên nhiều ứng dụng yêu cầu chúng. Do đó, khi mã cho một dịch vụ web được viết, nó phải có khả năng hoạt động với nhiều loại ứng dụng khác nhau.
5. Tự chủ dịch vụ
Các dịch vụ phải có quyền kiểm soát logic mà chúng đóng gói. Dịch vụ biết mọi thứ về chức năng mà nó cung cấp và do đó cũng phải có toàn quyền kiểm soát mã chứa trong đó.
6. Dịch vụ không quốc tịch
Lý tưởng nhất là các dịch vụ phải không có trạng thái. Điều này có nghĩa là các dịch vụ không được giữ lại thông tin từ trạng thái này sang trạng thái khác. Điều này sẽ cần phải được thực hiện từ ứng dụng khách. Một ví dụ có thể là một đơn đặt hàng trên một trang mua sắm. Bây giờ bạn có thể có một dịch vụ web cung cấp cho bạn giá của một mặt hàng cụ thể. Nhưng nếu các mặt hàng được thêm vào giỏ hàng và trang web điều hướng đến trang nơi bạn thực hiện thanh toán thì dịch vụ web sẽ không chịu trách nhiệm về giá của mặt hàng được chuyển đến trang thanh toán. Thay vào đó, nó cần được thực hiện bởi ứng dụng web.
7. Khả năng khám phá dịch vụ
Dịch vụ có thể được phát hiện (thường là trong sổ đăng ký dịch vụ). Chúng ta đã thấy điều này trong khái niệm UDDI, nó thực hiện một sổ đăng ký có thể chứa thông tin về dịch vụ web.
8. Khả năng kết hợp dịch vụ
Dịch vụ biến những vấn đề lớn thành những vấn đề nhỏ. Không bao giờ nên nhúng tất cả chức năng của ứng dụng vào một dịch vụ duy nhất mà thay vào đó, hãy chia dịch vụ đó thành các mô-đun, mỗi mô-đun có chức năng kinh doanh riêng biệt.
9. Khả năng tương tác dịch vụ
Dịch vụ nên sử dụng các tiêu chuẩn cho phép nhiều thuê bao khác nhau sử dụng dịch vụ. Trong các dịch vụ web, các tiêu chuẩn như XML và giao tiếp qua HTTP được sử dụng để đảm bảo nó tuân thủ nguyên tắc này.