Общая информационная модель для систем SOA - PullRequest
1 голос
/ 11 февраля 2011

Мы рассматриваем возможность внедрения Общей информационной модели для данных в нескольких системах в архитектуре SOA.

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

Что нам интересно, так это допустимый подход, или нам просто нужно сопоставить с общими типами в клиенте?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2011

Этот вопрос сформулирован довольно широко, поэтому мой ответ также останется довольно широким.

Кажется, что ключевым соображением здесь является независимость от местоположения - хотя вы работаете с несколькими приложениями, они 'все собираются делиться определенными видами данных (хотя, насколько я вижу из вашего вопроса, нет, фактических данных).Очевидным вариантом использования для этого являются данные аутентификации и авторизации.

Если вы определили, что общие данные действительно достаточно подготовлены, чтобы их можно было изолировать описанным вами способом, то я думаю, что имеет смысл выделить их в один слой.в сервис.Я думаю, что идеальным примером этого является Windows Identity Framework .Это берет то, что мы, архитекторы, всегда воспринимаем как данные, и превращаем это в сервис.

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

1 голос
/ 11 февраля 2011

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

Вы можете рассмотреть вопрос о наличии реальной общей модели на каком-либо языке моделирования. Исходя из этого, конкретные типы данных и классы могут быть созданы для конкретных обстоятельств. Для этого можно использовать UML, но я лично предпочитаю использовать NORMA , инструмент Object-Role Modeling . Он работает на концептуальном уровне, поэтому создает модели, независимые от технологии хранилища данных.

NORMA работает как надстройка к Visual Studio Standard или выше, но из коробки генерирует артефакты для нескольких баз данных, а также классов LINQ to SQL и даже веб-сервисов PHP, все из одной модели. Он расширяемый, так что вы можете создавать свои собственные артефакты из модели. И, конечно, модель представлена ​​в виде XML, поэтому вы можете делать с ней все, что захотите.

...