Page tree
Skip to end of metadata
Go to start of metadata

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

Одной фразой подход можно выразить законом Джона Постела:

Будь консервативным к тому, что делаешь, будь либеральным к тому, что получаешь от других.

Как быть консервативным к исходящим данным?

  • Не удаляйте/не переименовывайте поля, которые используются другими системами

Как быть либеральным к входящим данным?

  • Используйте только те поля в данных, которые вам нужны, и пропускайте то, что не можете обработать
  • Делайте минимальные предположения о структуре данных. Например, в XML файле вместо того, чтобы использовать точный поиск пути "/order-history/order-list/order", используйте общий поиск - "//order"


Помогайте сервису-поставщику в развитии его системы, сообщая какие именно данные вы используете. Хороший способ - отправить поставщику свой механизм чтения и тесты, которые он сможет использовать в работе для поиска и устранения потенциальных нарушений обмена. Это может стать очередных шагом на пути к «Consumer-Driven Contracts».

Подробнее о подходе можно почитать здесь на английском и здесь на русском.




  • No labels