2008-09-24 45 views
9

Tôi đã được giao nhiệm vụ đặt nền móng cho SOA cho khách hàng của mình. Mục tiêu là để mở ra nhiều quy trình khác nhau theo cách độc lập của khách hàng cuối và cũng để làm cho dữ liệu khả dụng ngoại tuyến, ví dụ: cho đại diện đến thăm khách hàng.Làm thế nào để tăng tốc độ trên SOA?

Tôi có nhiều kinh nghiệm với J2EE (Websphere) và các dịch vụ web nhưng tôi sẽ đánh giá cao lời khuyên về cách xây dựng một SOA như vậy.

Cạm bẫy ở đâu? Điều gì về an ninh? Làm thế nào các dịch vụ hạt mịn nên được? v.v.

Liên kết đến hướng dẫn và đề xuất sách cũng sẽ hữu ích.

Cảm ơn!

Trả lời

6

cạm bẫy

  • Versioning/khả năng tương thích ngược: nó được thực sự khó khăn để thay đổi một hợp đồng một khi bạn có vô số khách hàng. Tôi đã thấy nhiều trang web phiên bản API bằng cách giới thiệu các phiên bản trong URL

Mức độ chi tiết

  • Mỗi dịch vụ nên reasonly khép kín (không mong đợi mọi người làm 3 cuộc gọi trước khi họ có được những gì họ cần)

độc lập nền tảng

  • Cố gắng cung cấp cho nhiều hơn một cách để truy cập vào API của bạn (WS, JSON, REST ...)
1

Nhận một (bus dịch vụ doanh nghiệp) ESB: Mulesource là một lựa chọn tốt (OpenSource, Mature, tuy nhiên chảy máu cạnh). Một khi bạn hiểu nó, bạn sẽ hiểu SOA.

4

Mọi người không thể đồng ý về ý nghĩa thực sự của SOA.

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

(mặc dù đồng thuận có thể đã phát triển kể từ đó đã được viết)

Tôi đề nghị một tròng khách hàng của bạn để tìm hiểu chính xác ý nghĩa của chúng - nếu bất cứ điều gì. Sau đó cung cấp cho họ một cái gì đó mà thực sự cung cấp giá trị kinh doanh, trong khi đánh dấu vào bất kỳ hộp SOA nào có thể trùng với nỗ lực đó.

+0

Đó là một từ buzz. Họ chỉ cần có SOA - tốt nhất là màu xanh lá cây! – paul

3

Tìm thấy Sách đỏ này của IBM (#sg246303), đây là một phần giới thiệu cơ bản về SOA.

+0

Liên kết tốt, cảm ơn! –

1

Mục đích là để mở ra nhiều quy trình chấm dứt-client độc lập cách và cũng để làm cho dữ liệu có sẵn ẩn ví dụ cho các đại diện truy cập khách hàng.

Phần thứ hai của nó không thực sự là một chủ đề SOA, nó còn là một sự sao chép cho vấn đề thiết bị di động.Tôi sẽ ở xa, cách xa cố gắng thực hiện một từ thông dụng và tập trung vào các vấn đề mà bạn đang nói. Các dịch vụ web là cách tốt để mở ra quy trình cho các cách độc lập của khách hàng.

+0

Bạn nói đúng. Nó là một giải pháp điều khiển từ buzz. Tôi đã thêm bit nhân bản bởi vì tôi cho rằng dữ liệu được sao chép sẽ được truy cập thông qua các dịch vụ - nhưng làm cách nào để tối ưu hóa mọi thứ? – paul

2

Như Alan nói, tôi muốn bắt đầu đọc các Enterprise Integration Patterns book. Có một số cách để thực hiện chúng bằng cách sử dụng hệ thống nhắn tin trực tiếp như JMS hoặc sử dụng các dự án nguồn mở như Apache Camel, ví dụ: xem pattern catalogue.

Tôi cũng tìm hiểu cách xây dựng các dịch vụ RESTful tốt bằng cách sử dụng JAX-RS với Jersey như một cách đơn giản để hiển thị tài nguyên cho hệ thống của bạn cho bất kỳ ai trên web từ bất kỳ ngôn ngữ/nền tảng nào một cách dễ dàng mà không rơi vào SOAP/WS- * deathstar :)

Các vấn đề liên quan