Вообще, чтобы было красиво и правильно - каждая система должна заниматься своим делом, а при интеграции - собой.
Т.е. если у меня что-то меняется, то именно я должен это отлавливать (на мне ответственность) и передавать куда нужно, а уж они разбирают как хотят (XML например).
Если у них что-то меняется, то зачем мне это отслеживать? Нормальная чужая система сама отлавливает свои действия и передаёт данные мне (на ней ответственность), а я уж потом разбираю.
А если совсем красивше, то архитектор должен так спроектировать программный комплекс, чтобы не приходилось тягать данные туда-сюда, а передавать их, в идеале, в одностороннем порядке.
Я по этим принципам всегда стараюсь работать.