Date post: | 09-Aug-2015 |
Category: |
Software |
Upload: | giovanny-guillen |
View: | 236 times |
Download: | 27 times |
Copyright © 2014 Tata Consultancy Services Limited
WMQConceptos y Programación AS/400
Giovanny Guillén Bustamante
Agenda
1. SOA
2. Services Requestor
3. Services Broker o Middleware
4. Services Provider
5. Patron MVC
6. Websphere MQ
7. MQ Configuración
8. MQ Programación: RPG, COBOL, JAVA, C#
9. Notas Finales
SOA
• Método para organizar y utilizar capacidades distribuidas que
pueden estar bajo el control de diferentes sistemas.
Services Services Services
Requestor Broker Provider
(Middleware)
Services Requestor
• Aplicación con una necesidad de negocio. Por ejemplo:
• CORE transaccional que da servicio a los cajeros
automáticos y dataphonos.
• Servidor de interner con las aplicaciones de servicio para el
canal.
• Aplicaciones de banca no corresponsal.
Services Broker o Middleware
• Software que asiste a una aplicación para interactuar o
comunicarse con otras aplicaciones, software, redes, hardware
y/o sistemas operativos.
• Administra:
• Las comunicaciones físicas y lógicas• La traducción y enrutamiento de los datos.
Services Provider
• Aplicación que implementa la lógica de negocio para dar
respueta a las solicitudes del services requestor.
• Aplicación de validación de datos del cliente.
• Aplicación de autorización de transacciones de cajeros
automáticos.
• Aplicación de autorización de transacciones de CSSA.
Patron MVC
• Patrón de arquitectura de software que separa los datos y
la lógica de negocio de una aplicación de la interfaz de
usuario y el módulo encargado de gestionar los eventos y las
comunicaciones.
Controlador
Vista
Modelo
Lógica de
Negocio
Acceso a
Datos
Websphere MQ
� Framework para comunicaciones intersistemas� Funciona en diferentes sistemas operativos y plataformas
de hardware� Aplica los conceptos:
� Store and Forward
� Comunicación asincrona
Tiempo inicial Tiempo Final / EntregaDelay
Websphere MQ
� Tipos de comunicación de aplicaciones:� Fire and Forget
� Request / Response
PGM APGM B
PUT GET
Cola
PGM APGM B
PUT GET
Cola
Reply to Queue
PUT Mensaje
Procesado
GET Mensaje
Procesado
Websphere MQ - Componentes
� Componentes principales
� Gestor de colas
� Colas
� Canales
� Mensajes
Websphere MQ - Mensajes
� Son los datos enviados entre aplicaciones
� Están formados por dos partes:
� Datos de la aplicación: Contiene los datos de la aplicación.
� Propiedades del mensaje: Contiene información queutiliza el gestor de colas como el nombre de la cola, prioridad, información de seguridad, etc.
Websphere MQ - Colas
� Repositorio por donde se envía y reciben mensajes
� Pueden ser remotas o locales
� No son como las data queues (*DTAQ)
� Para acceder y utilizar las colas se deben usar las API’s
de MQ.
Websphere MQ - Colas
� Son independientes de la aplicación.
� Se pueden definir las siguientes características al crear
una cola:
� Put-enabled (Los mensajes pueden se colocados en la
cola para ser enviados)
� Get enabled (Los mensajes pueden ser recibidos desde
la cola)
� Tamaño de la cola
Queue Manager es un subsistema de software que controlael acceso a colas individuales. Registra las anotaciones detoda actividad en cada cola.
Sistema Local Sistema Remoto
Remote Queue Local Queue
Local Queue Remote Queue
Administrado por el Queue manager del sistema Local
Administrado por el Queue manager del sistema remoto
Websphere MQ - Queue Manager
MQ Configuración-WRKMQM
MQ Configuración- CRTMQM
MQ Configuración- CRTMQMCHL
MQ Configuración - CRTMQMQ
MQ Programación - APIs
� De uso común:
� MQCONN – Conectar al Queue Manager� MQDISC – Desconectar del Queue Manager� MQOPEN – Abrir una cola� MQCLOSE – Cerrar una cola� MQPUT – Colocar un mensaje en una cola� MQGET – Tomar un mensaje de una cola
� QMQM – API para llamadosdinamicos (Conectar, desconec tar, abrir, cerrar, colocar y/o recibir).
MQ Programación - Modelo
� El modelo general para crear un programa que utilice MQ es el siguiente:
1. MQCONN: Conectar al queue
manager
QUEUE MANAGER
2. MQOPEN: Abrirla cola
QUEUE MANAGER
3. MQPUT:Enviar Mensaje
QUEUE MANAGER
MQ Programación - Modelo
� El modelo general para crear un programa que utilice MQ es el siguiente:
4. MQGET:Recibir Mensaje
QUEUE MANAGER
5. MQCLOSE: Cerrar la Cola
QUEUE MANAGER
6. MQDISC:Desconectar del queue manager
QUEUE MANAGER
MQ Programación- RPG
� Ejemplo de los Copy que se deben utilizar:
* MQI Named Constants /COPY QMQM/QRPGLESRC,CMQG * Object Descriptor
D MQOD DS /COPY QMQM/QRPGLESRC,CMQODG * Message Descriptor
D MQMD DS /COPY QMQM/QRPGLESRC,CMQMDG * Get Message Options
D MQGMO DS /COPY QMQM/QRPGLESRC,CMQGMOG * Put message options
D MQPMO DS
/COPY QMQM/QRPGLESRC,CMQPMOG
Todas las definiciones deestructuras de datos, prototipos yAPI’s se encuentran la libreríaQMQM.
Incluyen: Nombres deconstantes, información deldescriptor de objetovs ymensajes e información paraopciones de las API’s Put y get.
MQ Programación- RPG
� Código ejemplo para conectar al Queue Manager:
* Conectar al queue manager. C CallP MQConn(QMName : C HConn : C OCode : C Reason) C If OCode = CCFail
* Si ocurrió un error C EndIf
MQ Programación- RPG
� Ejemplo para abir una cola:
* Abrir una colaC Eval Opts = OOInpq +
OOFIQ C Eval ODon = ReplyQueC CallP MQOpen(HConn : C MQOD : C Opts : C HInObj : C OCode : C Reason) C If Reason <> RCNone
* Si hubo un Error C EndIf
MQ Programación- RPG
� Código ejemplo de MQPut:* MQGet sigue el mismo patron
C Eval MdFmt = FmStrC Eval MDRQ = ReplyQueC Eval MDRM = QMNameC CallP MQPut(HConn : C HOutObj : C MQMd : C MQPmo : C BufLen : C BufPtr : C CCode : C Reason) C If Reason <> RCNone
* Si ocurre un ErrorC EndIf
MQ Programación- RPG
� Código Ejemplo de MQGet:C CallP MQGet(HConn : C HInObj : C MQMd : C MQGmo : C BufLen : C BufPtr : C MsgLen : C CCode : C Reason) * No hay mensajes disponiblesC If Reason <> RCNoneC If Reason <> RC2033
* Ocurrió un errorC EndIfC Else
* Procesa los datosC EndIf
MQ Programación- RPG
� Código ejemplo de MQClose:
* Cierra la colaC Eval Opts = CONoneC CallP MQClose(HConn : C HInObj : C Opts : C CCode : C Reason) C If Reason <> RCNone
* Si ocurre un errorC EndIf
MQ Programación- RPG
� Código ejemplo de MQDisc:
* Desconectar del Queue Manager.C CallP MQDisc(HConn : C OCode : C Reason)
* Si se detecta algún error. C If OCode = CCFail
* Gestiona el error... C EndIf
MQ Programación- RPG
� Llamados Dinámicos con QMQM:
� Mediante el CID o identificador de tipo de operación, se puedenrealizar llamados al programa QMQM indicando el tipo de operacióna realizar.
C eval cid = MQCONN
C* Conexión a la cola
C call 'QMQM'
C parm cid
C parm QNAME
C parm hconn
C parm ocodeC parm reason
CID QMQM
Call
Notas Finales
� MQ permite:
� Interconectar sistemas (AS/400, Mainframe, Linux, Windows, etc).
� Implementar los conceptos de SOA y MVC.
� Crear arquitecturas dinámicas.
� Modernizar sistemas de tipo legacy sin necesidad de cambiar las
aplicaciones y bases de datos existentes.