El funcionamiento de un banco se divide en dos tareas principales:
- Conseguir recursos monetarios, mediante las cuentas o servicios que ofrecen a sus clientes, por ejemplo las cuentas de cheques, cuentas de ahorro, inversiones etc.
- Colocar los recursos obtenidos dentro del ambito comercial mediante créditos ya sea a las empresas o a particulares, las ganancias de un banco se provienen de la diferencia entre los intereses pagados y los intereses obtenidos.
Entonces identificamos de un banco:
- Clientes
- Cuentas
- Transferencias
- Declaraciones
- Pagos en linea
- Estadísticas / Reportes
Una plataforma de software tradicional de banco, tiene
- Muchos modelos
- Controladores de administrador
- Controladores para los clientes
- Dificultas para la rehabilitación ante los errores o caida del sistema.
El Banco en una Arquitectura Orientada a Servicios
SOA rompe grandes plataformas de software en pequeños servicios, componentes y aplicaciones reutilizables. Cada servicio puede almacenar datos en su propia base de datos o usar otros servicios de datos.
Segun Wikipedia :
Un servicio es una unidad autónoma de funcionalidad, por ejemplo la recuperación de un estado de cuenta bancariaen línea. Los servicios pueden ser combinadas por otras aplicaciones de software para proporcionar la funcionalidad completa de una aplicación de software grande. SOA facilita a los computadoras conectados en una red para que cooperen entre ellas.
Los servicios son unidades no asociadas, formados con flexibilidad de funcionalidad independientes del ambiente. Cada servicio implementa al menos una acción, como por ejemplo la presentación de una solicitud en línea para una cuenta banaria, la recuperación de un estado de cuenta en línea o la modificación de una orden de compra de entradas online o línea aérea.
Servicios
- Cuentas
- Autenticaciones
- Estadisticas / Reportes
- Cambio de moneda
- Notificaciones WebHooks
Componentes
- Gems (persistencia, intercambio de mensajes)
- Rails engines (REST APIs, Autenticacion)
- etc .......
Data
- Cada servicio puede tener su propia base de datos.
- Diferentes tipos de base de datos (SQL, NoSQL,etc..)
Aplicaciones
- Interfaz de usuario (uno o mas ..)
- Banca en linea
- Website del Banco
- Aplicaciones mobiles
- Servicios de terceros (como los pagos de Bitcoin)


Un método del servicio cliente podría ser consultar cuentas, el cual veo dos posibles retornos. uno podría ser un listado con los códigos de las cuentas para después consultar el servicio de cuentas o podría listar la información de las cuentas directamente. En una arquitectura SOA cual opción es mas viable buscando la posible orquestación de los servicios en los diferentes procesos de negocio.
ResponderEliminar