Академический Документы
Профессиональный Документы
Культура Документы
Nota de aceptacin
________________________
________________________
________________________
________________________
Presidente del Jurado
________________________
Jurado
________________________
Jurado
DEDICATORIA
A Dios sobre todas las cosas, a mi familia por ser el motor que me impulsa a
crecer cada da y a mis amigos quienes con su apoyo y consejos me ayudan a
mantener firmes mis objetivos.
AGRADECIMIENTOS
A Dios a quien confo mis retos, a mi familia y amigos quienes con su cario y
respaldo me acompaaron en este proceso y a mi director de tesis y colegas
quienes nos respaldaron, con sus valiosos conocimientos y aportes, para el logro
de este objetivo.
TABLA DE CONTENIDO
1.
2.
3.
METODOLOGA ....................................................................................... 21
3.1
3.1.1
Etapa I ......................................................................................... 22
3.1.2
Etapa II ........................................................................................ 22
3.1.3
3.2
3.2.1
Etapa I ......................................................................................... 23
3.2.2
Etapa II ........................................................................................ 23
3.2.3
3.2.4
Etapa IV ....................................................................................... 23
3.2.5
Etapa V ........................................................................................ 23
3.3
4.
3.3.1
Etapa I ......................................................................................... 24
3.3.2
Etapa II ........................................................................................ 24
RESULTADOS ......................................................................................... 25
4.1
4.1.1
4.1.2
4.1.3
4.2
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.3
4.3.1
4.3.2
5.
CONCLUSIONES ..................................................................................... 78
6.
LISTA DE TABLAS
LISTA DE FIGURAS
LISTA DE ANEXOS
10
RESUMEN
prob el diseo del mtodo a diez (10) casos de negocio reales y al mismo tiempo
se hizo el refinamiento a travs de la definicin y validacin de criterios que
permitieron determinar la pertinencia del conjunto de recomendaciones entregado
por el mtodo diseado, frente a la caracterizacin del caso de negocio.
12
INTRODUCCIN
sobre
las
posibles
opciones
usar;
considerando
las
caractersticas propias de las aplicaciones y restricciones con las que trabaja. Para
lo anterior se identific un conjunto de caractersticas y restricciones que al ser
agrupadas, permitieron definir las categoras en las que se pueden clasificar los
casos de negocio; complementando lo anterior se defini cules son las buenas
prcticas y soluciones conocidas que se pueden aplicar a cada categora. De
manera que una vez clasificado un caso de negocio en una categora, se
relacionan las buenas prcticas y soluciones conocidas que son aplicables.
13
14
15
identificar los posibles valores que pueden tomar cada una de estas restricciones;
definir una taxonoma con la que se puedan clasificar, categorizar y/o tipificar los
casos de negocio de aplicaciones empresariales; recopilar y seleccionar un
conjunto de buenas prcticas de integracin de aplicaciones, que apliquen a cada
categora; recopilar y seleccionar un conjunto de soluciones conocidas de
integracin de aplicaciones, que puedan aplicar a cada categora; definir un
conjunto de filtros, aplicables a la integracin de aplicaciones, que permitan
realizar la correcta caracterizacin de cada caso de negocio; probar y refinar el
diseo del mtodo aplicndolo a un conjunto de casos de negocio reales.
16
2. MARCO TEORICO
paradigmas
computacionales
ms
actuales,
como
es
el
caso
de
la
organizaciones
en
procesos
de
integracin
de
aplicaciones
empresariales [16, 20, 22]. Estos patrones brindan solucin a un conjunto amplio
de problemas de integracin entre aplicaciones empresariales. Se debe tener en
cuenta que las soluciones de integracin son una tarea compleja, pues existe ms
de una solucin posible, sin embargo saber si la solucin definida es una buena
opcin, no se conocer sino hasta muchos meses o aun aos ms tarde, cuando
inevitablemente los cambios y la dinmica del negocio pongan a prueba la
solucin original [16].
18
requiere
tanto
habilidades
tcnicas
como
habilidades
mtodo,
los
escenarios
son
analizados
desde
tres
perspectivas
20
3. METODOLOGA
21
3.1.1 Etapa I
Determinar el conjunto de variables con las que se puede caracterizar un caso de
integracin de aplicaciones Empresariales: En la cual el trabajo se orientar a la
construccin de los siguientes entregables:
22
3.2.1 Etapa I
Definicin de categoras: Para esta actividad el entregable ser la taxonoma en la
que se puedan clasificar, categorizar o tipificar los casos de negocio de integracin
de aplicaciones empresariales.
3.2.2 Etapa II
Definicin de soluciones conocidas aplicables por categora: Para esta actividad el
entregable ser el conjunto de soluciones conocidas aplicables a cada categora
definida en la Etapa I.
3.2.3 Etapa III
Definicin de buenas prcticas aplicables por categora: Para esta actividad el
entregable ser el conjunto de buenas prcticas o reglas aplicables a cada
categora definida en la Etapa I.
3.2.4 Etapa IV
Definicin de Filtros: Para esta actividad el entregable ser el conjunto de filtros y
el orden en el que se deben aplicar en el proceso de caracterizacin, estos filtros
se construyen para garantizar la coherencia de los valores de las variables con las
que se caracteriza el caso de negocio, compatibilidad y complemento de las
mismas, y con ello garantizar que la categora en la que se clasificar el caso de
negocio, objeto de la aplicacin del mtodo diseado, sea correcta.
3.2.5 Etapa V
Con la recopilacin de las etapas anteriores se realizar la definicin de los pasos
del mtodo. En esta fase las definiciones se realizarn teniendo como insumo
principal la recopilacin de la literatura y entrevistas con expertos realizada en la
Fase I.
3.3 Fase III, denominada Aplicacin
En esta fase se pondr a prueba el diseo del mtodo definido en la fase de
Diseo (Fase II). Y comprende las siguientes actividades:
23
3.3.1 Etapa I
Definicin de criterios para determinar la pertinencia de la(s) recomendacin(es)
entregada(s) por el mtodo frente a la caracterizacin del caso de negocio.
3.3.2 Etapa II
Aplicacin y refinamiento del mtodo diseado.
casos de
24
4. RESULTADOS
25
grupo de artculos [4, 5, 11, 12, 13, 14]; a partir de los cuales se logr establecer
una serie de elementos que se agruparon como se muestra a continuacin:
4.1.1.1.1 Necesidades de integracin
La principal caracterstica de este primer grupo es que rene los elementos que
motivan la integracin de aplicaciones empresariales. En otras palabras, es el
porqu y el para qu se integran las aplicaciones empresariales. Los elementos de
este grupo se describen a continuacin:
subsistemas.
4.1.1.1.2 Criterios de Integracin
Este segundo grupo contiene los elementos que marcan los criterios a tener en
cuenta en el momento en que son tomadas las decisiones de integracin y las
restricciones que se pueden presentar durante esta toma de decisiones:
26
27
No procesan eventos.
Transaccionales 1:
28
Transaccionales 2:
Cliente servidor:
Web:
29
30
4.1.1.2 Encuesta
Una vez revisada la literatura existente y luego de recopilar y agrupar los
diferentes elementos ah presentados; se procedi a trabajar con la segunda
herramienta, que consisti en la elaboracin y anlisis de resultados de una
encuesta realizada a veintiuno (21) voluntarios que trabajan o han trabajado en
proyectos de integracin de aplicaciones empresariales. Los objetivos de esta
encuesta fueron:
nuevos
elementos,
necesidades,
criterios,
restricciones,
31
32
Esta solucin se basa en el estilo de integracin que lleva su mismo nombre (File
Transfer) [16]. Cuando se usa la transferencia de archivos como solucin a un
problema de integracin, una aplicacin simplemente escribe los datos que desea
compartir con otras aplicaciones dentro de un archivo, en un sistema de archivos,
desde donde otras aplicaciones puedan leerlo y procesarlo. En este punto los
encargados de los proceso de integracin tienen la responsabilidad de transformar
los archivos en diferentes formatos en caso que las aplicaciones destino as lo
requieran. Como tambin de identificar los intervalos de produccin de dichos
archivos de acuerdo a la naturaleza del negocio.
Recomendacin:
En caso que sea necesario tener la informacin con una periodicidad mayor a la
que la aplicacin productora puede generar, o en el caso que sea necesario
realizar ms transformaciones para realizar la integracin con nuevos sistemas, se
recomienda usar una solucin con estilo de bases de datos compartidas. O en el
caso que los periodos de frecuencia hayan disminuido y esto redunde en
intercambios de informacin muy pequeos comparados con los identificados en
el diseo de la solucin original, se recomienda el uso del estilo de mensajera.
4.1.2.2 Bases de datos compartidas
33
Recomendacin:
En caso que sea necesario integrar la funcionalidad y ya no los datos, se sugiere
el uso del estilo de integracin de procedimientos almacenados, o en caso que las
aplicaciones deseen intercambiar informacin en pequeas cantidades de datos,
entre ellas y ya no a travs de un esquema universal, se sugiere el uso del estilo
de integracin de mensajera.
34
por la
Este tipo de soluciones, lucen muy agradables para los desarrolladores, debido a
que esta permite llamar los mtodos de aplicaciones externas, de la misma
manera como se hace con los mtodos locales. Sin embargo esto puede generar
inconvenientes, pues al invocar un mtodo remoto, este no se comporta de la
misma manera que uno local y por esta razn pueden generarse errores
inesperados. Estos pueden deberse a fallas en la red, lo cual evita que el mtodo
pueda ser invocado, o que la aplicacin propietaria del mtodo remoto no se
encuentra disponible en este momento. Finalmente otro aspecto a tener en cuenta
en esta solucin es la modificacin de dichos mtodos, pues mientras no se
alteren las firmas de dichos mtodos no habrn problemas, pero en caso de
necesitarlo, es necesario informar a los administradores de las aplicaciones
clientes, quienes deben hacer los cambios necesarios para que las invocaciones
35
Recomendacin:
En caso que se necesitara hacer llamados asncronos a las aplicaciones, y/o de
buscar un menor acoplamiento entre las aplicaciones a integrar, se sugiere el uso
de mensajera como solucin a estos nuevos requerimientos de integracin.
4.1.2.4 Mensajera
Sistemas de mensajera
37
Debido a que tanto los equipos como las redes que los conectan no son cien por
ciento seguros y confiables, hace relevante la existencia de los MOMs. Por
ejemplo, puede que no siempre que se enve un mensaje el destinatario est
activo y disponible, o en caso de que lo est, podra ser que la red de
comunicacin presente no disponibilidad. Previo a la aparicin de los MOMs, para
atacar este tipo de problemtica se implementaba manualmente la retransmisin
de mensajes hasta asegurarse que el receptor los haba procesado. Esto haca
que cada vez que se deseaba usar mensajera se debieran afrontar una y otra vez
los mismos problemas. Como respuesta a esto, surgen los sistemas de
mensajera, que permiten a quien enva un mensaje olvidarse del mismo luego del
envo, delegando al sistema de mensajera la responsabilidad de asegurar la
entrega del mensaje a su destinatario. A continuacin se enumeran los
componentes de un sistema de mensajera as como su responsabilidad segn
[16]:
38
39
subscritos al mismo.
40
Entrega en orden, y una sola vez: un MOM garantiza que los mensajes
sern entregados una sola vez, y que adems los mismos sern
entregados respetando el orden en que fueron enviados.
41
42
Estos patrones describen los aspectos que deben ser tenidos en cuenta a la hora
de escoger el canal de comunicacin entre las aplicaciones, cuando se desea
integrar dos o ms sistemas de software. Por lo tanto estos patrones resuelven
distintos problemas de transporte de los mensajes entre aplicaciones. Por ejemplo,
las aplicaciones que envan informacin por un canal no tienen por qu conocer
cul es el receptor final de los datos que produce, sin embargo seleccionando un
canal en particular el productor puede asegurarse que quien reciba la informacin
es quien la esperaba. Apuntan a especificar caractersticas de los canales de
comunicacin a utilizar, como por ejemplo: si el mensaje es enviado a uno o a
muchos receptores, garanta de entrega de los mensajes que se transportan por el
canal, expiracin de los mensajes enviados al canal, entre otros. Los patrones que
integran la categora son:
43
Point-to-Point Channel.
Publish-Subscribe Channel.
Datatype Channel.
Guaranteed Delivery.
Channel Adapter.
Messaging Bridge.
Message Bus.
Estos patrones, contemplan los aspectos que se encargan de envolver los datos
de inters en un mensaje, para que pueda ser transmitido a travs de los canales,
que llevaran la informacin hacia los interesados en el mensaje. De esta manera
abordan el diseo de los mensajes que envan los diferentes participantes de una
comunicacin. Por ejemplo, en el intercambio que se realiza entre dos
aplicaciones, la informacin se enva insertndola en un mensaje. Apuntan a
especificar la informacin que contienen los mensajes, su semntica, informacin
adicional para permitir su procesamiento adecuado, entre otros. Los patrones que
integran esta categora son:
Command Message.
Document Message.
Event Message.
Request-Reply.
Return Address.
Correlation Identifier.
Message Sequence.
44
Message Expiration.
Format Indicator.
relacionados con el ruteo de los mensajes desde una aplicacin a otra. Por
ejemplo, permiten desacoplar los componentes que realizan en conjunto el
procesamiento en etapas de determinada informacin, logrando que la secuencia
de pasos a realizar dependa de un conjunto de condiciones. Apuntan a la
configuracin de rutas por las que deben pasar los mensajes para su
procesamiento, independizando a quien enva o recibe los mensajes de esta
lgica. Cabe anotar que muchos de los patrones agrupados en esta categora son
refinamientos o combinaciones del patrn Message Router [16]. Los patrones que
componen esta categora son:
Content-Based Router.
Message Filter.
Dynamic Router.
Recipient List.
Splitter.
Aggregator.
Resequencer.
Scatter-Gather.
Routing Slip.
Process Manager.
Message Broker.
45
Message Translator.
Envelope Wrapper.
Content Enricher.
Content Filter.
Claim Check.
Normalizer.
Message Endpoint.
Messaging Gateway.
Messaging Mapper.
Transactional Client.
46
Polling Consumer.
Event-Driven Consumer.
Competing Consumers.
Message Dispatcher.
Selective Consumer.
Durable Subscriber.
Idempotent Receiver.
Service Activator.
Control Bus.
Detour.
Wire Tap.
Message History.
Message Store.
Smart Proxy.
Test Message.
Channel Purger.
47
48
core de los
Al consultar las buenas prcticas, que estos expertos aplican en su trabajo diario,
se observ que las respuestas se enfocaban a cada una de las necesidades de
integracin que se identificaron en la caracterizacin de los casos de negocio. En
la mayora de los casos los expertos resaltaron los pros y los contras de la buena
prctica. Por lo anterior la descripcin de estas buenas prcticas, se hace
agrupada por cada una de las necesidades de integracin y se identifican las
ventajas y desventajas de utilizarla:
49
4.1.3.1.1 Datos
Para la necesidad de integracin compartir datos, las buenas prcticas,
entregadas por el grupo de expertos, se resume a continuacin:
rapidez con la que son validados por las maquinas. La desventaja est en
el tamao de los archivos, los archivos en formato XML siempre son de
mayor tamao que los archivos de otros formatos; esto se debe a que la
meta-data est inmersa en los archivos.
50
4.1.3.1.2 Funcionalidades
Para la necesidad de integracin compartir funcionalidad, las buenas prcticas,
entregadas por el grupo de expertos, se resume a continuacin:
Consulta de informacin: Los servicios web son muy tiles para consumir
lgica de negocio de otras aplicaciones, sin embargo si los servicios
retornan bloques de datos mayores de 5MB, los servicios web no son
recomendados. Para retornar bloques de resultados de ms de 5MB es
mejor usar protocolos binarios tales como RMI-IIOP, DCOM o RPC.
51
52
53
archivos han sido recibidos correctamente [32]. Para esto se puede generar
un mensaje de retroalimentacin al cliente a travs de:
Problemas de red.
Una buena prctica en este caso es la de las soft fail [32], que consisten
en el reintento de la operacin sin intervencin humana, en un perodo de
una hora, sin embargo despus de cinco (5) soft fail seguidas, deber
generarse una hard fail que de inmediato generara una notificacin al
personal encargado de los servidores de archivos, tanto los de recepcin
como los de emisin de los archivos.
54
las hard fail no son tiles, y por ende se sugiere seguir las siguientes
buenas prcticas:
55
Limitar el acceso de los clientes, solo a los objetos de inters para el.
El uso de estas prcticas para compartir bases de datos, no son por si solas la
mejor solucin, pues deben estar acompaadas por una correcta verificacin del
administrador de la base de datos, quien definir con ayuda de lo descrito por el
cliente, la informacin que este realmente necesita y la definicin de posibles
casos que llevaran a abortar la transaccin al momento de modificar los datos,
adems de identificar los posibles escenarios, que podran generar inconsistencias
y como evitarlas pues no se debe olvidar que la informacin puede estar siendo
manipulada por varias aplicaciones al tiempo.
Como se mostr en esta etapa, existen buenas prcticas conocidas para cada
estilo de integracin, por lo tanto no existe un estilo mejor que otro, sino que cada
situacin indica qu estilo debe ser usado, o en algunos casos, cules estilos
deben ser combinados [31]. A continuacin se presentan en la Tabla 1, algunos
pros y contras de cada uno de los estilos.
Estilo de integracin
Ventajas
Simple,
Desventajas
No es transaccional, ni para
Bases de datos
Simple,
compartidas
transaccional.
evolucionar.
Invocacin remota de
procedimientos
rpido.
altamente acoplado.
Asncrono,
Mensajera
escalable.
Complejo.
57
Estilo de integracin
Transferencia de archivos
Bases de datos
compartidas
Invocacin remota de
procedimientos
Framework
Spring resource abstraction, Spring Batch,
GoAnyWhere, Kettle
Spring data access (JDBC, Object-Relational
Mapping, transaction)
Spring Remoting (Remote Method Invocation,
HttpInvoker, Hessian, Burlap), EJB Session
Stateless
Spring JmsTemplate, Spring message container
Mensajera
sola para cada caso de negocio y que las otras variables se pueden presentar
simultneamente en la caracterizacin de este; siendo la necesidad de
integracin la que determina la combinacin que se puede presentar entre dems
variables. Por lo anterior en esta etapa se definieron:
Transferencia de Archivos
Mensajera
Mensajera
59
60
uno (1) lo que define que todas las combinaciones son posibles y que en esta
actividad no se identificaron filtros.
Sub-variables asociadas a la misma variable: Por la definicin de cada subvariable, en el anlisis se encontr que las sub-variables son mutuamente
excluyentes entre s cuando estn asociadas a la misma variable. Por lo
anterior las casillas de interseccin entre sub-variables asociadas a la
misma variable se marcaron con cero (0). En este anlisis se identific el
61
identific el Filtro 2.
Destino NO siempre disponible y Funcionalidad: Por definicin de la subvariable Funcionalidad y de la sub-variable Destino NO siempre disponible
se encuentra la mutua exclusin. En este anlisis se identific el Filtro 6.
Adems en el anlisis tambin se identific que la aplicacin que provee la
funcionalidad siempre es la aplicacin destino lo cual llev a identificar el
Filtro 6 Funcionalidad y destino.
Como resultado de este anlisis se obtuvo una matriz simtrica debido a que las
exclusiones encontradas entre las sub-variables son mutuas.
62
Se elabor una matriz en la que las que las filas corresponden a los criterios y
restricciones y las columnas corresponden a los tipos de aplicaciones origen; la
casilla de interseccin entre fila y columna marcada con un uno (1) indica que la
combinacin es posible en caso contrario se marca con un (0), para este anlisis
se separaron los tipos de aplicaciones transaccionales 1 y 2 que se haban venido
63
manejando, en los anteriores anlisis como uno solo; lo anterior debido a que la
diferencia entre estos dos tipos de aplicaciones es el tipo de estructuras de datos
que manejan y que para este anlisis es requerido revisar por separado, ver
Anexo 2.4 Criterios y restricciones tipo de aplicacin origen. En el anlisis
realizado se encontr que en por la definicin de aplicacin tipo batch, es
excluyente con las sub-variables: funcionalidad y aplicacin destino no siempre
disponible en este segundo caso solo se puede resolver cuando hay tecnologa
disponible que lo permita. En este anlisis se identificaron los filtros 11A y 11B. Y
el filtro 12 que corresponde al tipo de aplicaciones transaccionales 1 que no
procesan datos complejos, por tanto buscar un formato de datos extensible en el
tiempo se considera excluyente.
Se elabor una matriz en la que las que las filas corresponden a los criterios y
restricciones y las columnas corresponden a los tipos de aplicaciones destino; la
casilla de interseccin entre fila y columna marcada con un uno (1) indica que la
combinacin es posible en caso contrario se marca con un (0), para este anlisis
se separaron los tipos de aplicaciones transaccionales 1 y 2 que se haban venido
manejando, en los anteriores anlisis como uno solo; lo anterior debido a que la
diferencia entre estos dos tipos de aplicaciones es el tipo de estructuras de datos
que manejan y que para este anlisis es requerido revisar por separado, ver
Anexo 2.5 Criterios y restricciones tipo de aplicacin destino. En el anlisis
realizado se encontr el Filtro 13. En el cual se define:
64
Identificar
necesidad
de
integracin:
Como
se
haba
expuesto
65
66
67
4.3.1.1.7 Mensajera
Por definicin de la solucin Mensajera se encuentra la exclusin la sub-variable
del grupo criterios y restricciones seleccin de la tecnologa no disponible. En este
anlisis se identific el Filtro 18.
68
Paso2: Aplicar los filtros para con ello encontrar la correcta caracterizacin
del caso de negocio y por consiguiente asociarlo a una de las siguientes
categoras. La aplicacin de los filtros debe realizarse en el siguiente orden:
69
de
aplicacin
destino
identificada
vs.
Criterios
restricciones
o Criterios y restricciones vs. Criterios y restricciones
o Caractersticas de calidad vs. Caractersticas de Calidad
70
71
Solucin Conocida
Transferencia de archivos
Buenas prcticas
Uso de Formato
Generacin de Archivos
Transporte
Sincronizacin y polticas
Tipos de datos nativos
Gobierno de datos
Mecanismo de Exposicin
Invocacin remota de procedimientos Consulta de informacin
Llamado a procedimientos
Bases de datos compartidas
Mensajera
72
El mtodo final refinado y aplicado qued definido como lo muestra la Figura 10.
Los pasos se describen a continuacin:
Paso2: Aplicar los filtros para con ello encontrar la correcta caracterizacin
del caso de negocio y por consiguiente asociarlo a una de las siguientes
categoras. La aplicacin de los filtros debe realizarse en el siguiente orden:
73
74
En todos los casos la solucin real implementada coincide con una de las
soluciones recomendadas por el mtodo.
75
es necesario
76
77
5. CONCLUSIONES
78
79
80
81
BIBLIOGRAFIA
82
] MA OU
E , ernard y M A , Laurent. Application ntegration
EAI, B2B, BPM and SOA. 1 ed. Wiley, 2007. 256 p.
83
[29] CRAGGS, S. File transfer for the future, EAI Industry Consortium, 2003.
Disponible en http://hosteddocs.ittoolbox.com/Craggs010504.pdf
[30] LUI , Mark, GRAY, Mario, CHAN, Andy y LONG, Josh. Pro Spring
Integration, 1 ed, Apress, 2011. 664 p.
[31] COGOLUEGNES, Arnaud, TEMPLIER, Thierry , GREGORY, Gary y
BAZOUD, Olivier. Spring batch in action. 1 ed. Manning, 2011. 504 p.
[32] FLUX. Best practices in Managed File Transfer, Disponible en
http://fluxcorp.com/resources/5-best-practices-in-managed-file-transfer
84