Интеграция с 500+ приложениями - PullRequest
3 голосов
/ 16 июля 2010

Наши клиенты используют более 500 приложений, и мы хотели бы интегрировать эти приложения с нашими.Каков наилучший способ сделать это?Эти приложения являются приложениями регистрации времени, и для большинства из них общим является то, что они могут экспортироваться в csv или аналогичные, некоторые из них на самом деле представляют собой домашние таблицы Excel, где регистрируется время.

На данный момент лучшая идея состоит в том, чтобысоздайте наш собственный лист Excel, который можно использовать для интеграции со всеми этими приложениями.Интеграции могут быть в форме ячеек, содержащих что-то вроде = '[c: \ export.csv] rawdata'! $ A $ 3 Где export.csv - это файл csv, экспортированный из приложений регистрации времени.Можете ли вы увидеть лучший способ интеграции со всеми этими приложениями?Следует отметить, что почти все наши клиенты имеют Microsoft Office.


Редактировать: Ответы на замечательные вопросы от Понтуса Гагге:

Насколько похожи данные в разныхзаявки? Я предполагаю, что, поскольку они регистрируют заявки на регистрацию, у них будет некоторое сходство, но я предполагаю, что некоторые из них будут регистрировать, сколько времени вы проработали в целом за целый месяц, в то время как другие будут специфицировать каждый день.Если выбрать Excel, я считаю, что многие из различий можно устранить с помощью основных формул.

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

Какой объем данных вы говорите? Естьбудет информация о времени работы до 50 сотрудников.

Является ли интеграция только односторонней? Да

С какой периодичностью должна передаваться информация? Один раз в месяц (когда им нужно платить зарплату).

Как часто меняются сами приложения и как часто меняется ваш продукт? Если их приложение дома-приготовил лист Excel, тогда я предполагаю, что он будет меняться раз в год (например, из-за ошибки кого-то).Если это стандартное приложение для регистрации надлежащего времени, то я не верю, что оно обновляется чаще, чем раз в пять лет или около того, поскольку это очень стабильная концепция.

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

Будут ли клиентыесть кто-нибудь, кто будет следить за интеграциями? Поскольку у нас много клиентов, многие из них должны быть в состоянии самостоятельно провести интеграцию.Хотя мы сможем помочь им по телефону.Мы не можем, хотя и предпринимаем интеграцию сами, потому что в таком случае мы будем нести ответственность за любые ошибки, вызванные ошибками пользователей и т. Д.

Означает ли для вас фраза "спагетти интеграции" ...? Я ищу идеи от лучших поваров, чтобы приготовить большую часть этого.

Ответы [ 7 ]

6 голосов
/ 19 июля 2010

Вам нужно придумать общий формат данных и способ перевода отдельных форматов данных в общий формат. Там действительно нет никакого способа обойти это - любое решение, которое вы придумали, должно будет сделать это так или иначе. Это основная сложность того, что вы делаете.

Более серьезная проблема - на самом деле различия в исходных данных с точки зрения того, как хранятся такие вещи, как даты, отсутствующие столбцы и т. Д. Выполнение общего преобразования для CSV для перемещения столбцов относительно просто.

2 голосов
/ 23 июля 2010

Если вы попытаетесь создать что-то, что может взаимодействовать с любой структурой данных во вселенной (а 500 достаточно близко), это гарантированно будет кошмаром обслуживания.Вместо этого я хотел бы подойти к этому с нескольких точек зрения:

  1. Разработать интерфейс, в который человек может вводить эти данные уже в надлежащем формате.С более чем 500 клиентами я бы сделал этот небольшой, сырой, но функциональный браузерный сайт, который пользователи могут использовать для ввода этой информации вручную.Это запасной вариант.В конце дня человек может повторно ввести информацию на сайт и решить проблему импорта.В идеале каждый должен использовать это вместо своего собственного формата.Люди вводят данные дешево.

  2. Как и выше, но расширено, я бы разработал стандартное приложение или стандартизировал бы готовое приложение, которое можно использовать для замены их существующего формата.Это может занять больше времени, чем # 1.Цель состоит в том, чтобы только один раз импортировать эти изменяющиеся схемы данных в приложение и выполнить их с пользой.

  3. Хорошая особенность электронных таблиц состоит в том, что вы можете делать все что угоднов любом месте.В электронных таблицах плохо то, что вы можете делать что угодно и где угодно.С CSV или электронной таблицей просто невозможно обеспечить целостность данных и, следовательно, согласованность (что является основной целью) данных.Если исходные данные уже находятся в базе данных, то это, очевидно, проще.

Я был бы склонен использовать формат database , в который каждый из этих файлов нужно преобразовывать, а не электронную таблицу (например, использовать что-то вроде Jet (MDB)),Если у вас есть пользователи не из Windows, это усложнит задачу, и вам, возможно, придется использовать электронную таблицу.Проблема в том, что пользователю слишком легко изменить свою исходную структуру, прервать загрузку и поплакаться к вам.Если у данного конечного пользователя есть постоянный эксперт, он может найти способ импорта данных в этот формат базы данных.Если вы являетесь этим экспертом, то я бы на индивидуальной основе напишу что-нибудь, что можно импортировать в этот формат базы данных.XML был бы другим выбором, но это, вероятно, потребует больше кодирования, чем импорт / экспорт в формат базы данных.

Стандартизация приложений (даже если бы все источники в формате базы данных вместо электронной таблицы помогли бы) и контроль над схемой данных является конечной целью, а не разрешением форматов gazillion.Там действительно нет хорошего ответа, кроме стандартизации.В противном случае вам придется написать конвертер для каждого формата Тома-Дика и Гарри и снова, когда кто-то изменит исходный формат.

2 голосов
/ 16 июля 2010

Я бы также посмотрел на CSV и затем использовал соединение OLEDB с CSV-файлом для импорта.

1 голос
/ 26 июля 2010

Посмотрите на Тейида от JBoss: http://jboss.org/teiid

Также рассмотрите возможность использования SOA - например, если вы на Java, попробуйте платформу JBoss SOA: http://www.jboss.com/resources/soa/?intcmp=1004

1 голос
/ 23 июля 2010

С множеством источников данных, сопоставление каждого из которых в промежуточный формат не является тривиальным. Регулярные выражения хороши с конечным набором известных форматов данных. Многопроходность может помочь, когда данные неоднозначны без контекста (поля месяца, дня и имеют данные за несколько дней), а также помогают устранить ошибки ввода данных. Но, похоже, эти данные связаны с зарплатами, поэтому нужен надежный перевод.

Трюк настройки импорта

Попросите клиента внести в приложение набор обучающих данных. Он должен иметь «предварительно определенную уникальную дату», и каждое последующее поле данных имеет номер, соответствующий целевому полю данных в вашем приложении. При импорте приложения необходимо распознать предварительно определенную дату, определить требуемый уникальный перевод и произвести отображение / сохранение этого «ключа сопоставления», а также остановить импорт. Например, если вы ожидаете «Продолжительность часов» в поле два, попросите пользователя ввести 2 в соответствующем поле, которое может быть «Часы присутствия».

При последующих запусках и с ключом определения сопоставления импорт становится довольно простым процессом перевода.

Примечание по условиям

  • «предопределенная дата» - должна быть исторической, скажем, дата основания вашей компании ?, возможно, она должна находиться в диапазоне, устанавливаемом часами ПК.
  • «ключ сопоставления» - может быть строкой из шестнадцатеричных цифр и на основе nybble, поэтому поддается тренировке Введенный код может быть расширен для обозначения необходимых преобразований, т. Е. Приложение клиента имеет продолжительность в днях, а ваше приложение ожидает ее в часах.

Взаимодействие с программами Windows (в порядке увеличения хрупкости)

  • Вы сохраняете файл в формате CSV
  • Печать на принтере операционной системы, который настроен как текстовый файл / pdf, а затем очистить данные от этого
  • Извлечение данных с помощью интерфейса управления приложениями, обычно ActiveX для нескольких программ Windows, например, как Matlab Spreadsheet Link
  • Чтение собственного формата файла в формате xls, т.е. как в xlaread от Matlab
  • Добавьте дополнительную промежуточную электронную таблицу с расширенными ссылками на ячейки, т.е. = '[имя_файла] rawdata'! $ A $ 3
0 голосов
/ 25 июля 2010

Если у вас есть куча данных и куча денег, вы можете посмотреть на существующие инструменты управления и очистки данных:

http://www -01.ibm.com / software / data / infosphere /datastage

http://www -01.ibm.com / программное обеспечение / данные / инфосфера / qualitystage

Но даже тогда вам, вероятно, придется следоватьпредложение kyoryu, если у вас есть более 500 форматов данных.Проблема не в вашей стороне.Вам нужно, чтобы они стандартизировали свои выходные форматы, если у вас нет контроля над их приложениями.CSV, вероятно, самый простой.Вы можете даже отправить им шаблон Excel, чтобы помочь им в этом.

0 голосов
/ 24 июля 2010

Используйте простой формат XML. Нетехнический специалист может легко понять простой формат XML (и даже может определить основные проблемы с документами XML, которые не являются правильно сформированными).

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

Преимущество этого подхода состоит в том, что веб-браузеры, такие как Internet Explorer, могут применять таблицы стилей XSL. Потребителю нужно потратить не более одного дня на усовершенствование своих приложений или написание макросов Excel для генерации данных XML в указанном вами формате.

Последние версии Excel поддерживают преобразование данных электронной таблицы в XML и могут даже проверять соответствие схемам.

Как только данные проходят проверки XSL, вы проверяете данные XML.

...