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 -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 lasAPIs
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
APIs 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 APIs 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