ставится задача стандартизации процесса перекачивающего данные из внешней ERP-системы в нашу базу данных и (другие данные) обратно. ERP могут быть разные у разных заказчиков. Этот процесс приходится сейчас почти для каждого заказчика снова обрабатывать и если не заново программировать, то изменять в значительной степени. Надоело! А делает он в принципе всегда одно и то же, так что можно это и запараметрировать.
ERP может передавать данные разным способом (файл, сокет, RFC) и в разном формате. Предлагается следующая трехслойная модель (кодировать предполагается в , чтобы можно было с на винды без проблем портировать). Для определенности возьмем путь -> наша система:
1-й слой — прием данных от ERP. Он конечно для каждой ERP свой. Может быть сделан или отдельным процессом или библиотекой. Данные переводятся в стандартный формат.
2-й слой (от этого места — стандарт!) — читает данные в соответствии с описанием, которое задает структуру данных в информационном блоке (порядок следования записей, тип, количество полей,...) и вызывает обработчик
3-й слой (обработчик) — проверяет данные в соответствии с параметрированием, декодирует в тот формат в котором должны храниться в базе, если нужно собирает данные из нескольких записей, которые должны закачиваться в одну таблицу и закачивает в нашу базу.
Вопрос по поводу 2-го слоя и интерфейса к 3-му: не хочу изобретать велосипед, наверняка задача уже тысячу раз решена. Как описывать данные? Может что-то типа XML использовать? У кого есть какие идеи?