среда, 25 сентября 2013 г.

Шаблон "Обобщенный сервис" (Generic Service)

При разработке приложений на Java сразу бросается в глаза ее многословность. Причем дело здесь не столько в самом языке, сколько в принятых подходах к разработке. Например, при разработке корпоративных приложений часто используют подход с разделением системы на слои. Само по себе разделение на слои это замечательный архитектурный шаблон, правда его реализация выглядит зачастую следующим образом: есть слой представления из которого вызывается слой бизнес-логики, представляющий собой набор сервисов (по другому это называется анемичная модель предметной области). Из слоя сервисов вызывается слой объектов доступа к данным (DAO), который может быть реализован с помощью некоторого фреймворка объектно-реляционного отображения. При этом, т.к. хочется независимости реализации слоя бизнес-логики от слоя доступа к данным, то каждый DAO реализует некий интерфейс. Обращение к самим сервисам также осуществляется через интерфейсы. В итоге имеем следующую структуру:


Описание проблемы


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

1. Добавить метод в интерфейс сервиса.

2. Добавить метод в реализацию сервиса.

3. Добавить метод в интерфейс DAO.

4. Добавить метод в реализацию DAO, при этом иногда встречаются проекты с разными реализациями DAO для различных окружений, поэтому метод нужно добавить в каждую.

Понятно, что пункты 3 и 4 являются необязательными, иногда можно обойтись только расширением сервиса и его интерфейса, но мы рассматриваем предельный случай.

понедельник, 16 сентября 2013 г.

Возможности Oracle SOA Suite для интеграции унаследованных приложений

В данной заметке мы рассмотрим возможности, которые предоставляет Oracle SOA Suite для подключения унаследованных приложений к сервисно-ориентированной инфраструктуре предприятия.

Прежде всего стоит оговориться, что под унаследованными приложениями мы будем понимать приложения, которые не предоставляют возможности подключения с помощью стандартного механизма интеграции - Web Service'ов и в то же время не являются хорошо известными и широко используемыми корпоративными приложениями, т.е. к ним не существует стандартных адаптеров. Таким образом такие лидеры рынка как SAP, OeBS, JDEdwards и Siebel не попадают под наше определение унаследованных приложений.

Теперь можно рассмотреть конкретные механизмы интеграции, предлагаемые стеком продуктов Oracle Fusion Middleware. Для Oracle SOA Suite данными механизмами являются технологические адаптеры.