2008-09-24 5 views
9

Мне поручено заложить основу SOA для моего клиента. Цель состоит в том, чтобы открыть различные процессы независимо от конечного клиента, а также сделать доступными данные офлайн, например. для повторного посещения клиентов.Как добраться до скорости на SOA?

У меня есть большой опыт работы с J2EE (Websphere) и веб-сервисами, но я был бы признателен за советы по созданию такой SOA.

Где подводные камни? Как насчет безопасности? Насколько тонко гранулированы службы? и т. д.

Полезны ссылки на учебные пособия и рекомендации по книге.

Спасибо!

ответ

6

Ловушка

  • Versioning/обратная совместимость: он получает очень трудно изменить контракт, как только вы нагрузки клиентов. Я видел много сайтов, версии API-интерфейсы, вводя версии в URL

Granularity

  • Каждая услуга должна быть reasonly автономен (не ожидать, что люди делают 3 вызова, прежде чем они получить то, что им нужно)

независимость от платформы

  • Попробуйте дать больше, чем один способ доступа к вашему API (WS, JSON, REST ...)
1

Получить (автобус службы предприятия) ESB: Mulesource является хорошим выбором (Opensource, зрелый, но кровоточащий край). Как только вы это поймете, вы поймете SOA.

4

Люди не могут согласиться с тем, что на самом деле означает SOA.

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

(хотя консенсус, возможно, выращенный так, что было написано)

Я предлагаю опрашивать свой клиент, чтобы выяснить, что именно они имеют в виду - если что-нибудь. Затем дайте им что-то, что фактически обеспечивает бизнес-ценность, одновременно отмечая любые окна SOA, которые могут совпадать с этими усилиями.

+0

это умное слово. У них просто есть SOA - желательно зеленый! – paul 2008-09-24 08:53:22

3

Нашел это IBM Redbook (#sg246303), что является довольно хорошим введением в основы SOA.

+0

Хорошая ссылка, спасибо! – 2008-09-24 13:34:53

1

Цель состоит в том, чтобы открыть различные процессы конечного клиента независимого способом, а также, чтобы сделать данные доступными форума например для повторных посещений клиентов.

Вторая половина этого вопроса на самом деле не является темой SOA, это скорее проблема репликации на мобильные устройства.Я бы остался далеко, далеко от попытки реализовать модное слово и сосредоточиться на проблемах, о которых вы заявляете. Веб-сервисы - это хороший способ открыть процесс независимым от клиента способом.

+0

Вы правы. Это решение, основанное на buzz-word. Я добавил бит репликации, потому что предполагаю, что реплицированные данные будут доступны через службы, но как оптимизировать все? – paul 2008-09-25 07:00:34

4

Назовите меня SOA-скептиком. Плач Фаулера все еще кажется правильным.

Я хотел бы остановиться на более общей проблеме: у вашего клиента есть 2 или более приложения, которые должны совместно работать вместе. Посмотрите на старые шаблоны интеграции школы.

EIP image http://rcm-images.amazon.com/images/I/51tVn4YqQUL._SL110_.jpg

2

Как сказал Алан, я бы начать читать Enterprise Integration Patterns book. Существует несколько способов их реализации либо с использованием системы обмена сообщениями, например, JMS, либо с использованием проектов с открытым исходным кодом, таких как Apache Camel, например, см. pattern catalogue.

Я также хотел бы понять, как создавать хорошие сервисы RESTful с помощью JAX-RS с помощью Jersey как простой способ легко и быстро предоставить ресурсы для ваших систем любому человеку в Интернете с любого языка/платформы, не попадая в SOAP/WS- * Deathstar :)

Смежные вопросы