Công ty chúng tôi đang bắt đầu một sáng kiến khá lớn về SOA. Chúng tôi đang làm rất nhiều thứ đúng: có giao tiếp tốt; tiền cho công cụ khi thích hợp; và chúng tôi đã mang lại một số chuyên môn tốt để giúp chúng tôi chuyển đổi.
Chúng tôi đang cố gắng phát triển các tiêu chuẩn mà chúng tôi có thể theo một nhóm và một trong những tiêu chuẩn được đề xuất đang làm phiền tôi khá nhiều:
Chúng tôi đã chuẩn hóa mẫu mà mọi thao tác đều lấy một đối tượng yêu cầu và trả về một đối tượng phản hồi.
Tôi nhận ra rằng đây ít nhiều là một cách tiếp cận tiêu chuẩn cho nhiều người, nhưng tôi đang hỏi tại sao tôi phải bận tâm? (Tôi không tốt lắm với sự khôn ngoan nhận được, tôi cần một số lý do tại sao).
Hầu hết các dịch vụ mà tôi sẽ cung cấp là truy xuất siêu dữ liệu tổ chức đơn giản. Ví dụ: tìm chính sách bảo mật cho một người dùng cụ thể. Điều này cần một id người dùng và không có gì khác. Tiêu chuẩn cho tôi biết rằng tôi nên bọc yêu cầu này trong một đối tượng và bọc chính sách được trả về trong một đối tượng phản hồi.
Sự khó chịu của tôi được khuếch đại bằng cách nhìn vào WSDL được tạo ra từ các hợp đồng của chúng tôi. WCF tự động tạo thông điệp yêu cầu và phản hồi và kết thúc tốt đẹp ngay cả đối tượng yêu cầu / phản hồi.
Tôi hoàn toàn hiểu rằng nếu bạn đang thực hiện một yêu cầu phức tạp thì một đối tượng đầu vào phức tạp sẽ được bảo hành. Đó là những gì bạn sẽ làm ngay cả khi các dịch vụ không liên quan.
Câu hỏi của tôi là tại sao tôi nên tự động gói yêu cầu và trả lời khi:
- Nó làm cho các dịch vụ đơn giản ít biểu cảm
- Dù sao bạn cũng sẽ làm điều đó cho một dịch vụ phức tạp
- WCF vẫn tạo một thông báo yêu cầu / phản hồi
Tôi đã tìm thấy các đối số sau đây có lợi cho phương pháp này:
Nó hỗ trợ phiên bản bằng cách cho phép các tham số tùy chọn được đưa vào đối tượng yêu cầu.
Trước đây, tôi đã thực hiện một chút COM và tôi sẽ coi đây gần như là một mô hình chống phiên bản. Đối với một số thứ, tôi cho rằng nó sẽ giúp ích, nhưng tôi hy vọng rằng nó sẽ giúp được gì, dù sao bạn cũng đã có một đối tượng tham số.
Nó cho phép dữ liệu và hành vi chung được tách biệt với lớp cơ sở
Điều này mang một số trọng lượng với tôi.
Nó giúp mọi người tránh xa hành vi kiểu RPC và hướng tới hành vi nhắn tin
Tôi đã đọc nó trên trang web của Microsoft và nghe nó từ guru của chúng tôi, nhưng tôi vẫn không biết rõ ý nghĩa của chúng hoặc tại sao nó có giá trị. Có phải các giao diện tìm kiếm tự nhiên làm cho mọi người có xu hướng quên rằng họ đang gọi một dịch vụ từ xa?
Tôi đang xem xét tái cấu trúc chữ ký của có lẽ 300 phương pháp, vì vậy đây là một nỗi đau không hề nhỏ. Tôi là một fan hâm mộ lớn của sự nhất quán trong việc triển khai, vì vậy tôi sẵn sàng chịu đựng nỗi đau, điều đó sẽ giúp ích để biết rằng cuối cùng tất cả sẽ có giá trị.