Nguyên tắc SOA (Kiến trúc hướng dịch vụ)

Anonim

Kiến trúc hướng dịch vụ (SOA) là một mẫu 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 một giao thức truyền thông, thường là qua mạng. Các nguyên tắc định hướng dịch vụ độc lập với 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 làm việc 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.

SOA dựa trên một số nguyên tắc chính được đề cập dưới đây

  1. Hợp đồng dịch vụ được tiêu chuẩn hóa - Các 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 hiểu dịch vụ làm gì dễ dàng hơn.
  1. Khớp nối lỏng lẻo - Ít phụ thuộc vào nhau. Đây là một trong những đặc điểm chính của các dịch vụ web chỉ ra rằng càng phải có ít sự phụ thuộc càng tốt giữa các dịch vụ web và khách hàng gọi dịch vụ web. Vì vậy, nếu chức năng dịch vụ thay đổi bất kỳ lúc nào, nó sẽ không làm hỏng ứng dụng khách hoặc ngừng hoạt động.
  1. Tóm tắt dịch vụ - Các dịch vụ ẩn logic mà chúng đóng gói khỏ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 nó; nó chỉ nên nói với ứng dụng khách về những gì nó làm chứ không phải về cách nó thực hiện.
  1. Khả năng tái sử dụng của 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 tái sử dụng là một chủ đề lớn bởi vì rõ ràng người ta sẽ không muốn dành thời gian và nỗ lực để xây dựng lại cùng một mã trên nhiều ứng dụng yêu cầu chúng. Do đó, một khi mã cho một dịch vụ web được viết, nó sẽ có khả năng hoạt động với nhiều loại ứng dụng khác nhau.
  1. Quyền tự chủ của 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 nên có toàn quyền kiểm soát đối với mã mà nó chứa.
  1. Dịch vụ không trạng thái - Tốt nhất, các dịch vụ nên ở trạng thái không 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ừ tiểu bang này sang tiểu bang khác. Điều này sẽ cần được thực hiện từ ứng dụng khách. Một ví dụ có thể là một đơn hàng được đặt trên một trang web 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 thực hiện trách nhiệm về giá của mặt hàng được chuyển sang trang thanh toán. Thay vào đó, nó cần được thực hiện bởi ứng dụng web.
  1. 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 về UDDI, nó thực hiện một sổ đăng ký có thể giữ thông tin về dịch vụ web.
  1. Khả năng tương tác của dịch vụ - Dịch vụ chia các vấn đề lớn thành các vấn đề nhỏ. Người ta không bao giờ nên nhúng tất cả các chức năng của một ứ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ó một chức năng nghiệp vụ riêng biệt.
  1. Khả năng tương tác của dịch vụ - Các dịch vụ nên sử dụng các tiêu chuẩn cho phép nhiều người đăng ký 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.