Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ada:tips:sicoferp:general:pbtows:framework:arquitectura:backend [2019/07/09 14:25] administraidor [6.3 Vista Deployment] |
ada:tips:sicoferp:general:pbtows:framework:arquitectura:backend [2019/07/09 19:57] (actual) administraidor |
||
---|---|---|---|
Línea 31: | Línea 31: | ||
* **SOA** - [[https://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios|Arquitectura orientada a servicios - Wikipedia, la enciclopedia libre]]: La Arquitectura Orientada a Servicios (SOA, siglas del inglés Service Oriented Architecture) es un estilo de arquitectura de TI que se apoya en la orientación a servicios. La orientación a servicios es una forma de pensar en servicios, su construcción y sus resultados. Un servicio es una representación lógica de una actividad de negocio que tiene un resultado de negocio específico (ejemplo: comprobar el crédito de un cliente, obtener datos de clima, consolidar reportes de perforación) | * **SOA** - [[https://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios|Arquitectura orientada a servicios - Wikipedia, la enciclopedia libre]]: La Arquitectura Orientada a Servicios (SOA, siglas del inglés Service Oriented Architecture) es un estilo de arquitectura de TI que se apoya en la orientación a servicios. La orientación a servicios es una forma de pensar en servicios, su construcción y sus resultados. Un servicio es una representación lógica de una actividad de negocio que tiene un resultado de negocio específico (ejemplo: comprobar el crédito de un cliente, obtener datos de clima, consolidar reportes de perforación) | ||
* **Datawindow** ((http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc37775.1250/html/dwprgug/CAIDADAJ.htm|Traducción de SyBooks Online)):El control DataWindow de PowerBuilder es un contenedor para objetos DataWindow en una aplicación de PowerBuilder. Puede usarlo en una ventana para presentar una visualización interactiva de datos. El usuario puede ver y cambiar datos y enviar cambios a la base de datos. Además del control DataWindow, el objeto DataStore proporciona un contenedor no visual para aplicaciones de servidor y otras situaciones en las que no es necesario verlas en pantalla. DataWindow admite la recuperación de datos con argumentos de recuperación y actualización de datos. Puede usar estilos de edición, formatos de visualización y reglas de validación para una entrada y visualización de datos coherentes. El DataWindow proporciona muchos métodos para manipular el DataWindow, incluyendo Modificar para cambiar las propiedades del objeto DataWindow. Puede compartir un conjunto de resultados entre varios controles de DataWindow y puede sincronizar los datos entre un cliente y un servidor. | * **Datawindow** ((http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc37775.1250/html/dwprgug/CAIDADAJ.htm|Traducción de SyBooks Online)):El control DataWindow de PowerBuilder es un contenedor para objetos DataWindow en una aplicación de PowerBuilder. Puede usarlo en una ventana para presentar una visualización interactiva de datos. El usuario puede ver y cambiar datos y enviar cambios a la base de datos. Además del control DataWindow, el objeto DataStore proporciona un contenedor no visual para aplicaciones de servidor y otras situaciones en las que no es necesario verlas en pantalla. DataWindow admite la recuperación de datos con argumentos de recuperación y actualización de datos. Puede usar estilos de edición, formatos de visualización y reglas de validación para una entrada y visualización de datos coherentes. El DataWindow proporciona muchos métodos para manipular el DataWindow, incluyendo Modificar para cambiar las propiedades del objeto DataWindow. Puede compartir un conjunto de resultados entre varios controles de DataWindow y puede sincronizar los datos entre un cliente y un servidor. | ||
+ | * **SICOF ERP**: Es el sistema de planificación de recursos empresarial (ERP, por sus siglas en inglés, enterprise resource planning) de la empresa ADA el cual provee los modulos Financiero, Inventarios Activos y Gestión Empresarial. Ademas de un abanico de aplicaciones que abarcan procesos de gestión de recursos hasta aplicaciones móviles. | ||
+ | * **SICOF PBtoWS**: Framework o marco de trabajo que expone el código migrado del modelo orientado a evento al modelo orientado a objetos de los módulos de **SICOF ERP** | ||
+ | * **Componente WS-SOAP SICOF ERP**: Es un componente expuesto en servicio web SOAP (.Net) que contiene un conjunto de funcionalidades que representan procesos de **SICOF ERP** | ||
===== 1.4 Organización del Documento ===== | ===== 1.4 Organización del Documento ===== | ||
Línea 80: | Línea 83: | ||
==== 3.4 Requerimientos Especiales ==== | ==== 3.4 Requerimientos Especiales ==== | ||
=== 3.4.1 Interoperabilidad === | === 3.4.1 Interoperabilidad === | ||
- | * El framework debe soportar la capacidad de interoperar con servicios web externos a nivel de datos y procesos. | + | * El framework debe soportar la capacidad de interoperar con servicios web externos (WS-SOAP) a nivel de datos y procesos. |
===== 4 Vista Lógica ===== | ===== 4 Vista Lógica ===== | ||
Línea 227: | Línea 230: | ||
=== 6.3.1 Distribución y Deployment === | === 6.3.1 Distribución y Deployment === | ||
{{ :ada:tips:sicoferp:general:pbtows:framework:arquitectura:vista_despliegue_arquitectura_general_por_nodos.png?600 |}} | {{ :ada:tips:sicoferp:general:pbtows:framework:arquitectura:vista_despliegue_arquitectura_general_por_nodos.png?600 |}} | ||
+ | **Figura 10: Deployment Componente WS-SOAP SICOF ERP** | ||
+ | A continuación se describen los nodos presentes en la imagen: | ||
+ | |||
+ | * **DBConfig**: Servidor donde estará alojada la base de datos de la configuración de accceso y recursos unificados. El motor utilizado para la base de datos es Oracle 11g R2 o superior. | ||
+ | * **DBClient**: Servidores donde estarán alojadas las base de datos con la información de la empresas (clientes). El motor utilizado para la base de datos es Oracle 11g R2 o superior. | ||
+ | * **IIS ([[https://es.wikipedia.org/wiki/Internet_Information_Services|Internet Information Services]])**: Servidor web donde estarán alojados los servicios SOAP expuesto por el framework **SICOF PBtoWS**. La versión soportada del servidor es la 7.5 y el requiere Framework .NET 4.02 o superior | ||
+ | |||
+ | ==== 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. | ||
+ | |||
+ | {{ :ada:tips:sicoferp:general:pbtows:framework:arquitectura:mapeo_de_subsistemas.png?600 |}} | ||
+ | **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. | ||
+ | |||
+ | {{ :ada:tips:sicoferp:general:pbtows:framework:arquitectura:dependencias_entre_lso_componentes_del_sistema.png?600 |}} | ||
+ | **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 | ||
+ | {{ :ada:tips:sicoferp:general:pbtows:framework:arquitectura:dependencia_subsistema_de_resolucion_y_orquestacion_de_servicios.png?600 |}} | ||
+ | **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)** | ||
+ | <code html> | ||
+ | <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> | ||
+ | </code> | ||
+ | **Ejemplo: Login anónimo (Respuesta)** | ||
+ | <code html> | ||
+ | <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> | ||
+ | </code> |