La línea borrosa entre Biztalk y SSIS
biztalk-2010 (2)
Estoy construyendo una aplicación que recibe archivos planos posicionales de una aplicación heredada y para cada fila de detalles necesito buscar dentro de una tercera aplicación algunos datos y luego llenar mi base de datos. Y en el caso de cualquier línea mal formada en el archivo, necesito detener el procesamiento y registrar la línea y la posición de la cadena con formato incorrecto.
Al menos por ahora, los archivos tienen, máx. 50MB.
Estoy muy confundido acerca de quién es el más adecuado para este escenario, Biztalk y SSIS tienen características similares y, hasta donde puedo ver, ambos son adecuados en este escenario. Esta es una tarea que podría hacer un buen uso de Biztalk o debería ir con una solución ETL (Integration Services)?
Normalmente recomiendo BizTalk a la izquierda, a la derecha y al centro, sin embargo, en este caso iría con SSIS por dos razones:
En un archivo de 50Mb plus obtendrás un mejor rendimiento de SSIS, no importa cuántos recursos utilices en BizTalk, dado el modo en que BTS procesará cada registro dentro del archivo. Aquí hay estrategias, por supuesto, pero SSIS ganará sin inconvenientes (aunque me imagino que su servicio web probablemente sea su cuello de botella independientemente de la solución que elija); y
A menos que escriba un desensamblador de archivos planos personalizado (que es casi ciencia de cohetes, territorio de BizTalk God), el desensamblador estándar simplemente se detendrá cuando llegue a una línea mal formada, registrando el error en el registro de eventos y no se procesará ningún mensaje adicional .
Por otro lado, me han dejado caer en demasiados proyectos donde los clientes tienen una solución escrita en BizTalk donde se realizan operaciones por lotes. El desarrollo y las pruebas originales se completaron en archivos planos c. 1Mb - 10Mb. Los clientes se confunden cuando un archivo de 50Mb - 100Mb + demora tanto en procesarse.
Es mucho mejor elegir la solución correcta al problema (en mi humilde opinión, SSIS) al comienzo del proyecto, en lugar de una solución de palanca en un producto que no es adecuado.
Probablemente haría esto en SSIS. Parece ser un trabajo de ETL. Es posible que BizTalk le brinde una mayor flexibilidad dado el origen de los datos a largo plazo, pero si, como usted dice, es un servicio web, esto es algo que se puede lograr en SSIS.
En general, SSIS = proceso por lotes y traducciones directas de datos. BizTalk = Mensajes / solicitudes de sistemas horizontales que pueden o no ser sincronizados.
Pero no tome mi palabra para eso. Incluya el esfuerzo, los costos de software si importan y la longevidad de este proceso.