Подходящая архитектура для перезаписи с интеграцией + сценарий миграции

StackOverflow https://stackoverflow.com/questions/4400167

Вопрос

Недавно мы начали проект в компании, работаю на реструктуризации и переписать наши системы ландшафта и спасете будущее наших детей.

У нас есть 3-4 устаревшие системы, которые абсолютно не могут быть адаптированы к новым случаям использования из-за ужасного кода, но все еще обрабатывают довольно большое количество заказов в день с помощью различных интерфейсов и форматов, таких как электронная почта, XMLRPC, WebInterface.

Поэтому мы подумали о написании новой системы с нуля на основе полностью переработанной модели домена. Из-за того, что мы не можем просто переключить старые системы и - это действительно небольшая команда, мы пришли к выводу, что нам нужна архитектура и подход, который позволяет нам постепенно развивать новую систему и поставить части его вживую и легко (читать; Быстро) Интегрируйте новые интерфейсы, партнеры и устаревшие приложения и интерфейсы.

Идея состояла в том, чтобы полностью переделать всю модель домена с нуля, создать службу заказа и использовать Apache верблюда с контейнером OSGI, чтобы имитировать старые интерфейсы, маршрующие заказы на устаревшие и новые системы и отделите обработку формата и самих перевозок формата из новой системы. Из-за постепенного развития мы хотели бы выбрать более «ориентированную на службу», которая позволит нам постепенное улучшение, повторное использование и масштабируемость. Все это звучит хорошо на бумаге, и я прочитал совсем немного о "SOA", но пока не дождался, чтобы вымирал, а «хорошие части» остаться, но большая часть разговора все еще на очень абстрактном и беспрецевенном » Продажи «Уровень кажется.

Я нахожу «Basic / Shared Service Data Service» довольно проблематично, если у меня есть субъекты с большим количеством отношений, таких как порядок, с довольно большим графом. Если бы я создал индивидуальную услугу для трудных операций по заказам и другим организациям, чтобы основывать более абстрактные, это было бы действительно проблематично или невозможно обрабатывать кислоту, реляционную целостность или вам придется пожертвовать автономией этих услуг и взаимосвязи. их, что сделало бы услуги совершенно бесполезными (и, возможно, довольно медленно). Или я понял что-то не так?

Таким образом, моя идея была просто создать «традиционный» DAL, используя хорошие jpa pojos, конечно, с интерфейсами и развертываю его как простое версию Osgi Bundle для использования бизнеса и процессов, используемых, имеют более абстрактное отображение. Эти услуги будут просто использовать его и подвергать их интерфейсу на автобус. Чтобы служить редкому случаю, необходимым для доступа к отдельным данным, как для обогащения содержания в верблюде или объемных данных импорта или отчетности, могут быть созданы уродливые «все объекты обслуживания», которые будут решить проблему кислоты и целостности.

До сих пор так хорошо, но: как Webui (который в основном Crud, как я уже упоминал и, таким образом, не совсем абстрактный процесс) доступа к данным? Непосредственно используя JPA POJOS, сделает его сочетаться в сочетании достаточно взволнованно, но создавая отображение и ввести другую, почти идентичную модель и использовать вышеупомянутую «Monster Dal Service» тоже звучит слишком хорошо.

Как вы думаете? Где хороший баланс между чувством, элегантностью и практическими возможностями?

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

Спасибо за уделенное время :)

Это было полезно?

Решение

Это не так много ответа, как записка, желая вам удачи.

У нас есть ситуация, которая является той же / разной формой вашей, и оказывается очень сложным, чтобы эффективно иметь дело.

Я думаю, что ваш подход в порядке, звучит так, как будто вы поразите баланс в порядке.

Вы можете предпринять шаблоны интеграции предприятия, как те Опубликовано Мартин Фаулером, но принесет ли это, куда вы хотите / надо быть останенным, чтобы увидеть.

Другие варианты: есть машина «колбаса»: где вы толкаете старую систему в систему, которая генерирует «новый» код (в Java или .NET), который становится вашей новой платформой. Хорошее, что у вас сейчас есть кодовая база на языке, с которым вы можете работать, плохие новости - это то, что она будет самая большая самая ужасная куча спагетти, которую вы когда-либо представляли.

Даже тогда это огромное обязательство. Государственное агентство здесь провело 2 или 3 года и 5 миллионов долларов. Это было не красиво или безболезненно, но, кажется, работал. Если вы спросите достаточно (то есть: не на Stackoverflow), вы должны найти людей, которые имели дело с миграцией с платформ, с которыми вы застряли, попадают в разговор с ними.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top