Tabla de Contenidos

PBtoWS - Procesos: Arquitectura Backend (Powerbuilder)

1.1 Proposito

Este Documento de Arquitectura de Software presenta la arquitectura del Framework SICOF PBtoWS a través de diferentes vistas, con el fin de ilustrar la composición del API 1) que lo conforma.

1.2 Alcance

Este documento se centra en el desarrollo de la vista lógica del framework. Se incluyen los aspectos fundamentales del resto de las vistas y se omiten aquellas que no se consideren pertinentes como ser el caso de la vista de procesos. En cuanto a los componentes externos que se mencionen, se incluye una descripción de los mismos en el nivel que se considere apropiado y se indican las referencias donde consultar más información sobre los mismos.

1.3 Definiciones, Acrónimos y Abreviaciones

1.4 Organización del Documento

El documento se desarrolla y organiza en base a la plantilla elaborada para el artefacto DOCUMENTO DE ARQUITECTURA SICOF.docx del proceso de certificación CMMI Dev Nivel 34), adaptada a las características particulares del tipo de proyecto en desarrollo.

La sección 2 realiza una introducción a la representación utilizada de la arquitectura de forma de asegurar una comprensión general del documento en tal sentido. Las siguientes secciones se abocan a la descripción de la arquitectura del Framework SICOF PBtoWS. Luego de una descripción inicial de los objetivos y restricciones influyentes, se desarrolla cada una de las vistas y se cierra con algunas consideraciones finales importantes. En las secciones finales, y sobre la base de lo desarrollado anteriormente, se incluye la descripción de la general de la arquitectura de un módulo de SICOF ERP5).

2 Representación de la Arquitectura

El modelo propuesto en el documento DOCUMENTO DE ARQUITECTURA SICOF.docx para representar la arquitectura del Framework SICOF PBtoWS utiliza el siguiente conjunto de vistas6):

3 Objetivos y Restricciones

El Framework SICOF PBtoWS basa el desarrollo en propiedades esenciales para la arquitectura a definir:

3.1 Restricciones y Limitaciones

El Framework SICOF PBtoWS presenta las siguientes reestricciones y limitaciones de acuerdo a la tecnólogia que lo soporta:

3.2 Requerimientos Funcionales

3.3 Requerimientos Suplementarios (No Funcionales)

3.4 Requerimientos Especiales

3.4.1 Interoperabilidad

4 Vista Lógica

4.1 Introducción

La vista lógica presenta al sistema 10) como un todo, indicando en términos propios de la tecnología utilizada, las partes que lo forman y las relaciones principales entre ellas.

Este refinamiento consiste en descomponenter la vista en subsistemas. Los subsistemas representan cortes verticales al diseño del sistema. Cada subsistema consiste en el agrupamiento de diferentes funcionalidades relacionadas entre sí y posee la capacidad de funcionar como un sistema en sí mismo.

4.2 Descomposición en Subsistema

La descomposición utilizada en el Framework SICOF PBtoWS se basa en el modelo de comunicación punto a punto 11) el cual permite organizar la arquitectura en conjuntos de funcionalidades agrupadas (en PBL) que interactúan entre si para cumplir las funciones requeridas.

Figura 1: Principales componentes del Framework SICOF PBtoWS

4.3 Descripción de los Subsistemas

4.4 Diseño de Subsistemas

4.4.1 Definición de Procesos

A continuación se describen los subsistemas del framework SICOF PBtoWS basandose en representaciones intermedias sin profundizar en procesos del negocio. Ya que la salida de trabajo de los subsistemas serán insumos para capas externas que no hacen parte de la implementación.

4.4.2 Resolución y Orquestación de Servicios

El subsistema Resolución y Orquestación de Servicios tiene tres componentes como se puede observar en la siguiente imagen: Figura 2: Subsistema de Resolución y Orquestación de Servicios

Componente Factory

Es el componente inicial del subsistema. Es el encargado de realizar las siguientes operaciones:

Durante la ejecución del proceso, el componente realiza validaciones de instanciación y si no existen excepciones en la definición solicitada realiza una invocación interna de evento donde crea la clase de invocación y ejecuta el evento solicitado, el proceso es sincrónico ya que espera la respuesta de retorno.

Componente Service

Es el componente principal del subsistema. Es el encargado de realizar las siguientes operaciones:

Durante la ejecución del proceso, el componente inicializa el API básica de procesamiento como es la transacción base para acceder a las configuraciones iniciales, la clase de mensajes y genera el Json de configuración basado en el parametro (config) luego valida el hash de conexión para determinar vigencia de acceso, permisos, identificación de empresa (para determinar la transacción del proceso) y por último orquesta el evento solicitado y espera la respuesta para transaformarla en un string en formato Json.

4.4.2.1 Diseño detallado del subsistema

Componente Factory

Está integrado por 3 componentes como se muestra en la siguiente imagen: Figura 3: Componente Factory

Figura 4: Interfaces - componente Factory

Componente Service

Está integrado por 3 componentes como se muestra en la siguiente imagen: Figura 5: Componete Service

Figura 6: Interfaces - componente Service

4.4.3 Resolución y Orquestación de Transacciones

El subsistema Resolución y Orquestación de Transacciones tiene dos componentes como se puede observar en la siguiente imagen: Figura 7: Subsistema de Resolución y Orquestación de Transacciones

Componente Connection

Es el componente inicial del subsistema. Es el encargado de realizar las siguientes operaciones:

Componente Transaction

Es el componente principal del subsistema. Es el encargado de realizar las siguientes operaciones:

5 Vista de Deployment

5.1 Introducción

Está sección describe una o más configuraciones físicas sobre las cuales se realiza el deploy de los Servicios SOAP que son generados por el Framework SICOF PBtoWS, así como la infraestructura necesaria para su ejecución.

5.2 Distribución y Deployment

La siguiente imagén presenta el escenario de distribución esperado para el despliegue y ejecución de los componentes generados con el Framework SICOF PBtoWS.

Figura 8: Vista de Despliegue del Framework SICOF PBtoWS

A continuación se describen los nodos presentes en la imagen:

6 Arquitectura General: Componente SICOF ERP

6.1 Introducción

Teniendo presente la arquitectura presentada, se describe a continuación la arquitectura general de los componentes de SICOF ERP (Powerbuilder). Se toma como prototipo y/ó prueba de concepto una definición general de componente asumiendo que todos compartirán la misma estructura de implementación y arquitectura apoyandose en la filosofía SOA (Arquitectura orientada a servicios).

La descripción se organiza repasando las vistas presentadas anteriormente, detallando en cada una de ellas como se resolvió la realización de los componentes definidos, que componentes de infraestructura, tecnologías, herramientas y lenguajes se utilizaron.

6.2 Vista Lógica

La siguiente imagen presenta una vista global de los subsistemas del framework y las herramientas externas que se utilizaron para lograr cumplir los cometidos definidos para cada subsistema.

Figura 9: Vista Lógica general de los componentes SICOF ERP con el framework SICOF PBtoWS

6.2.1 Subsistemas de la arquitectura general

6.2.1.1 Subsistema: Core SICOF ERP

Componente ControllerSicofERP

Contiene la lógica de los procesos del negocio de una funcionalidad de SICOF ERP, está representado en clases (objetos no visuales) que satisfacen funcionalidades para las cuales ha sido construido, este componente es el resultado del proceso de migración del código del Modelo Orientado a Eventos de la Versión 12.5.2.5.0.

Durante la ejecución del proceso, el componente de acuerdo a la orquestación del Subsistema de Resolución y Orquestación de Servicios consume un controlador el cual inicializa y consume métodos de las clases del paquete. Pasa los parametros de sesión y transación y devuelve el objeto de retorno que contiene la información del resultado del proceso ejecutado.

Componente ModelSicofERP

Contiene las definiciones de los modelos de datos (entidades o tablas de la base de datos) que son necesarios para la ejecución de los procesos del componente ControllerSicofERP.

Durante la ejecución del proceso el componente ControllerSicofERP va inicializando los modelos de datos (datawindow) que va necesitando y le asigna la transación identificada que corresponde a un cliente(Empresa). Posteriormente por medio de esos modelos se realiza la persistencia de las modificaciones realizadas a la base de datos.

6.3 Vista Deployment

La Figura 8 visualiza el deployment de los componente SOAP del sistema SICOF ERP basado en el escenario de distribución presentado en la Figura 9

6.3.1 Distribución y Deployment

Figura 10: Deployment Componente WS-SOAP SICOF ERP

A continuación se describen los nodos presentes en la imagen:

6.4 Vista de Implementación

En esta sección se presentan los ejecutables y artefactos construidos para la implementación del Componente WS-SOAP SICOF ERP

El sistema aquí planteado es una implementación del framework SICOF PBtoWS descrito en las secciones anteriores que cumple con la especificación 1.1 y 1.2 de WS-SOAP.

6.4.1 Estructura del Componente WS-SOAP SICOF ERP

La implementación del framework SICOF PBtoWS con el componente de SICOF ERP se empaqueta en un archivo .MSI o .EXE el cual contiene un directorio con la estructura y contenido de los recursos necesarios para operar el WS-SOAP, el nombramiento de esos componentes queda fuera de la definición de la arquitectura pero respetará la siguiente regla ws(codigo aplicación)_(nombre del proyecto powerbuilder) Ej: ws00_login representar el componente Login de SICOF ERP.

La implementación del Componente WS-SOAP SICOF ERP se enmarca en la tecnología .Net version 4.02. cada subsistema esta implementado por un conjunto de clases que realizan tareas concretas y se comunican con otras clases de los demas subsistemas.

Figura 11: Mapeo de subsistemas

6.4.2 Arquitectura de Implementación

Se presenta a continuación un diagrama que muestra las dependencias entre los Componentes que contienen la definición de las interfaces y la implementación concreta del framework.

Figura 12: Dependencia de componentes del sistema

Se presenta a continuación la descripción detallada de los artefactos más importantes del subsistemas Resolución y Orquestación de Servicios desde el punto de vista de su implementación.

6.4.2.1 Resolución y Orquestación de Servicios

Ademas de los componentes antes abordados en la arquitectura este subsistema implementa funciones de generación XML las cuales se crean en el momento de despliegue para soportar la interfaz WSDL generada por la exposición del servicio SOAP.

Como se visualiza en la siguiente imagen la implementación del subsistema presenta una dependnecia al componente Powerbuilder Generate WSDL el cual es el encargado de crear las interfaces de las operaciones expuestas en el servicio SOAP. Este componente hace parte de capa interna de exposición de servicios utilizada por la tecnologia Powerbuilder y se basa en el framework .Net 4.02 Figura 13: Dependencia del subsistema Resolución y Orquestación de Servicios

Se presenta a continuación una plantilla de un wsdl que describe la interfaz de servicio que expone el subsistema de Resolución y orquestación de Servicios.

Ejemplo: Login anónimo (Consumo)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempurl.org">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:ws_anonymous>
         <!--Optional:-->
         <tem:as_config>{"company_code": "UNILLANOS", "user":"SICOF", "password":"sicofERP", "ip":"127.0.0.1", "environment":"TEST"}</tem:as_config>
      </tem:ws_anonymous>
   </soapenv:Body>
</soapenv:Envelope>

Ejemplo: Login anónimo (Respuesta)

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <ws_anonymousResponse xmlns="http://tempurl.org">
         <ws_anonymousResult>{
    "return_code": "1",
    "return_user_message": "sesión autenticada correctamente",
    "return_technical_message": "sesión autenticada correctamente",
    "return_object": {
        "token_session": "557055f98cd0285e319fa27192c3ab2d9f2f77583bbb72b738a693c0cf364dca"
    },
    "return_response_date": "09/07/2019 14:14:30"
}</ws_anonymousResult>
      </ws_anonymousResponse>
   </soap:Body>
</soap:Envelope>
1)
Una API es una interfaz de programación de aplicaciones (del inglés API: Application Programming Interface). Es un conjunto de rutinas que provee acceso a funciones de un determinado software. Web API - Wikipedia, la enciclopedia libre
2)
Powerbuilder Library
4)
Certificación obtenida en Julio de 2017 por la empresa ADA
5)
Módulo inicial Gestión Humana: Nómina
6)
Solo se toma el modelo de repsentación por vistas ya que el framework propobne una dinamica de documentación diferente
7)
Modelo Vista Controlador (MVC) es un estilo de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.Modelo vista controlador (MVC)
8)
En informática, CRUD es el acrónimo de “Crear, Leer, Actualizar y Borrar” (del original en inglés: Create, Read, Update and Delete), que se usa para referirse a las funciones básicas en bases de datos o la capa de persistencia en un software.CRUD - Wikipedia, la enciclopedia libre
9)
PowerBuilder es una herramienta de desarrollo de clase empresarial desarrollada por la empresa PowerSoft. PowerBuilder es orientada a objetos y permite el desarrollo de diferentes tipos de aplicaciones y componentes para ejecutar arquitecturas cliente/servidor, distribuidas y Web.PowerBuilder - Wikipedia, la enciclopedia libre
10)
Framework SICOF PBtoWS
11)
Una red peer-to-peer, red de pares, red entre iguales o red entre pares es una red de ordenadores en la que todos o algunos aspectos funcionan sin clientes ni servidores fijos, sino una serie de nodos que se comportan como iguales entre sí.Peer-to-peer - Wikipedia, la enciclopedia libre
12)
Datasource de la base de datos del cliente