Mq conceptos y programacion as400

10,550 views 31 slides Jun 15, 2015
Slide 1
Slide 1 of 31
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31

About This Presentation

Websphere MQ, conceptos y programación sobre AS/400(IBM i).


Slide Content

Copyright © 2014 Tata Consultancy Services Limited
WMQ
Conceptos 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. WebsphereMQ
7. MQ Configuración
8. MQ Programación: RPG, COBOL, JAVA, C#
9. NotasFinales

SOA
• Método para organizar y utilizar capacidades distribuida s que
puedenestarbajoelcontroldediferentessistemas.
Services Services Services
Requestor Broker Provider
(Middleware)

Services Requestor
• Aplicaciónconunanecesidaddenegocio.Porejemplo:
• CORE transaccional que da servicio a los cajeros
automáticosydataphonos.
• Servidordeinternerconlasaplicacionesdeservicioparael
canal.
• Aplicacionesdebancanocorresponsal.

Services Broker o Middleware
• Software que asiste a una aplicación para interactuar o
comunicarse con otras aplicaciones, software, redes, hard ware
y/osistemasoperativos.
• Administra:
• Las comunicaciones físicasy lógicas
• La traducción y enrutamiento de los datos .

Services Provider
• Aplicación que implementa la lógica de negociopara dar
respuetaalassolicitudesdelservicesrequestor.
• Aplicacióndevalidacióndedatosdelcliente.
• Aplicación de autorización de transacciones de cajeros
automáticos.
• AplicacióndeautorizacióndetransaccionesdeCSSA.

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

WebsphereMQ
CFramework para comunicaciones intersistemas
CFunciona en diferentes sistemas operativos y plataforma s
de hardware
CAplicalos conceptos: 
CStore and Forward
CComunicaciónasincrona
Tiempo inicial
Tiempo Final / Entrega
Delay

WebsphereMQ
CTipos de comunicación de aplicaciones:
CFire and Forget
CRequest / Response
PGM A
PGM B
PUTGET
Cola
PGM A
PGM B
PUTGET
Cola
Reply to Queue
PUT Mensaje
Procesado
GET Mensaje
Procesado

WebsphereMQ -Componentes
CComponentesprincipales
CGestorde colas
CColas
CCanales
CMensajes

WebsphereMQ -Mensajes
CSon los datos enviados entre aplicaciones
CEstán formados por dos partes:
CDatos de la aplicación: Contiene los datos de la
aplicación.
CPropiedades del mensaje: Contiene información que
utiliza el gestor de colas como el nombre de la cola,
prioridad, información de seguridad, etc.

WebsphereMQ -Colas
CRepositorio por donde se envía y reciben mensajes
CPueden ser remotas o locales
CNo son como las data queues (*DTAQ)
CPara acceder y utilizar las colas se deben usar lasAPI’s
de MQ.

WebsphereMQ -Colas
CSon independientes de la aplicación.
CSe pueden definir las siguientes características al crea r
una cola:
CPut-enabled (Los mensajes pueden se colocados en la
cola para ser enviados)
CGet enabled (Los mensajes pueden ser recibidos desde
la cola)
CTamaño de la cola

Queue Manager es un subsistema de software que controla
el acceso a colas individuales. Registra las anotaciones de
toda 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
WebsphereMQ -QueueManager

MQ Configuración-WRKMQM

MQ Configuración-CRTMQM

MQ Configuración-CRTMQMCHL

MQ Configuración-CRTMQMQ

MQ Programación-APIs
CDe usocomún:
CMQCONN – Conectar al Queue Manager
CMQDISC – Desconectar del Queue Manager
CMQOPEN –Abrir una cola
CMQCLOSE – Cerrar una cola
CMQPUT – Colocar un mensaje en una cola
CMQGET –Tomar un mensaje de una cola
CQMQM –API para llamados
dinamicos (Conectar,
desconec tar, abrir, cerrar,
colocar y/o recibir).

MQ Programación-Modelo
CEl modelo general para crear un programa que utilice MQ
es el siguiente:
1. MQCONN:
Conectar al queue
manager
QUEUE MANAGER
2. MQOPEN: Abrir
la cola
QUEUE MANAGER
3. MQPUT:
Enviar Mensaje
QUEUE MANAGER

MQ Programación-Modelo
CEl 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
CEjemplo 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 de
estructuras de datos, prototipos y
API’s se encuentran la librería
QMQM.
Incluyen: Nombres de
constantes, información del
descriptor de objetovs y
mensajes e información para
opciones de las API’s Put y get.

MQ Programación-RPG
CCó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
CEjemplo para abir una cola:
* Abrir una cola
C Eval Opts = OOInpq +
OOFIQ
C Eval ODon = ReplyQue
C 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
CCódigoejemplode MQPut:
*MQGet sigue el mismo patron
C Eval MdFmt = FmStr
C Eval MDRQ = ReplyQue
C Eval MDRM = QMName
C CallP MQPut(HConn :
C HOutObj :
C MQMd :
C MQPmo :
C BufLen :
C BufPtr :
C CCode :
C Reason)
C If Reason <> RCNone
* Si ocurre un Error
C EndIf

MQ Programación-RPG
CCódigoEjemplode MQGet:
C CallP MQGet(HConn
:
C HInObj
:
C MQMd
:
C MQGmo
:
C BufLen
:
C BufPtr
:
C MsgLen
:
C CCode
:
C Reason) * No hay mensajes disponibles
C If Reason <> RCNone
C If Reason <> RC2033
* Ocurrió un error
C EndIf
C Else
* Procesa los datos
C EndIf

MQ Programación-RPG
CCódigoejemplode MQClose:
* Cierra la cola
C Eval Opts = CONone
C CallP MQClose(HConn :
C HInObj :
C Opts :
C CCode :
C Reason)
C If Reason <> RCNone
* Si ocurre un error
C EndIf

MQ Programación-RPG
CCódigoejemplode 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
CLlamadosDinámicoscon QMQM:
CMedianteel CID o identificadorde tipode operación,  se pueden
realizarllamadosal programaQMQM indicandoel tipode operación
a 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 ocode
C                   parm reason 
CID
QMQM
Call

NotasFinales
CMQ permite:
CInterconectarsistemas(AS/400, Mainframe, Linux, Win dows, etc).
CImplementarlos conceptosde SOA y MVC.
CCreararquitecturasdinámicas.
CModernizarsistemasde tipolegacy sin necesidadde cambiarlas
aplicacionesy bases de datosexistentes.

IngenieroGiovanny Guillen 
Bustamante
IBM Certified Specialist
E-mail: [email protected]
Gracias