Estándares de desarrollo del Gobierno de Cantabria » Howtos » Entorno desarrollo plataforma Trewa

Entorno desarrollo plataforma Trewa

Contenidos

Instalación-creación de entorno desarrollo plataforma Trew@

Requisitos previos

Antes de nada es importante tener claro los siguientes puntos como requisitos previos 

  • Se ha de tener JAVA instalado en el equipo. Preferiblemente el JDK6 (que obviamente incluye el propio JRE6)
    Se puede tener varios JDK's instalados pero la variable JAVA_HOME ha de apuntar a un Java6; pero la recomendación es tener un solo JDK = JDK 6 (el que corresponda a la arquitectura y plataforma sobre la que operamos) Véase mas adelante el paso 10
  • Se ha de tener Internet y opcionalmente conexión con la intranet del gobierno de Cantabria
  • Se han de tener permisos de administrador, ser administrador del equipo, poder realizar operaciones de creación modificacion de ficheros, configuración...
     
  • Se han de tener ciertas aplicaciones, en sus versiones y arquitectura-plataforma correspondientes (win_32Bits, win_64Bits, Linux_64,...etc).

En concreto la Plataforma de desarrollo básicamente requerirá los siguientes elementos:

  • Equipo local servidor de desarrollo con Linux-Ubuntu o Windows preinstalado
  • Base de datos Oracle (Versión completa o XE-libre-gratuita)
  • Paquete OpenOffice y gestor documental Alfressco
  • Fichero de empaquetado de la plataforma TREWA
      Nota: se proporciona a continuación el usuario y la contraseña para descargar dicho contenido vía ftp:     
      Usuario: fwamap Contraseña: 1nt3rc4mb10

Definimos los siguientes pasos para la creación de un entorno de desarrollo y pruebas de la plataforma TREWA

Paso 01.- Instalación de la Base de Datos  ORACLE

Instalación de la BD ORACLE en el equipo LOCAL de desarrollo.
Se ha de instalar la versión que corresponda a la plataforma y arquitectura que se tenga (Win_32Bits o Win_64Bits o Linux_64).

Dicha aplicación BD ORACLE puede obtenerse por internet de manera libre-gratuita en su versión XE en el siguiente enlace:
http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html
(Aceptar acuerdo de licencia y obtener-bajar e instalar la versión que corresponda según la plataforma que tengamos)

Es importante tener muy en cuenta las claves de usuario SYS y SYSTEM que se darán durante la instalación (apuntarlas)
(Pero por defecto se recomienda poner como password en minusculas "system")

Paso 02.- Cambio del puerto por defecto HTTP de ORACLE

Por consola de comandos, usando SQL Plus conectado como sysdba
Desde línea de comandos:

Abrimos/ejecutamos -> Run SQL Command Line

 SQL> connect / as sysdba

 SQL> EXEC DBMS_XDB.SETHTTPPORT('7070')

Con esto cambiamos el puerto 8080 que por defecto configura oraclexe para que no entre en conflicto con el puerto HTTP del servidor JBOSS 

Paso 03.- Cambio de encoding de ORACLE

Por consola de comandos, usando SQL Plus conectado como sysdba
Desde línea de comandos:

Abrimos/ejecutamos -> Run SQL Command Line

 SQL> connect / as sysdba

 SQL> SHUT
 SQL> STARTUP RESTRICT
 SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE WE8ISO8859P15
 SQL> SHUT
 SQL> STARTUP

Con esto cambiamos el encoding correspondiente para que sea el adecuado

El encoding de las bases de datos de gobierno de Cantabria están en el encoding WE8ISO8859P15, y esto puede causar algún problema al importar volcados (dumps) desde/hacia el entorno de gobierno, ya que no coincidiría con el encoding predefinido en la versión XE de Oracle.

Se puede comprobar que el encoding esta correctamente configurado con la ejecución de la siguiente instrucción:
SELECT * FROM v$nls_parameters WHERE parameter Like '%CHARACTERSET%';
Cuyo resultado ha de ser el siguiente:
PARAMETER                                                        VALUE                                                          
NLS_CHARACTERSET                                        WE8ISO8859P15                                                    
NLS_NCHAR_CHARACTERSET                          AL16UTF16        

Paso 04.- Instalación de SQL DEVELOPER de ORACLE

Instalación de la aplicacion SQL DEVELOPER de ORACLE en el equipo LOCAL de desarrollo para poder ejecutar scripts y ver los registros de la BD,...etc.

NOTA PREVIA MUY IMPORTANTE A TENER EN CUENTA:
Recomendable instalar el SQL DEVELOPER version v.3.2.20.09.87 pues es el que mas estaria adaptado al entorno Java de la plataforma (ya que requiere JR6) Se instalaría igual que en el paso 1 con el oracleXE la version de SQLDEVELOPER que corresponda a la plataforma y arquitectura que se tenga.
También se puede instalar la última version del SQL DEVELOPER [v4.1.1.19] pero esto requiere instalar previamente el JDK8 (que obviamente incluye el JRE8)Y por tanto se tendrían 2 versiones de posibles de Java en el equipo lo cual no es recomendable, pues se ha de asegurar que se usa principalmente JR6.

Dicha aplicación puede obtenerse por internet:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/sqldev-downloads-v322-2080107.html
(Aceptar acuerdo de licencia y obtener-bajar e instalar la versión que corresponda según la plataforma que tengamos)
NOTA: En caso de tener que bajarse la version de 32 bits de windows existe una opción que incluye un JDK6 pero como si o si se ha de tener instalado un JDK6, es mejor no elegir esta opción, y optar por el que no incluye el JDK6 (para ahorrar espacio)
 
Crear una primera conexión "localhost-SYS" con usuario "sys" contraseña "system" para poder ejecutar y crear los diferentes objetos, esquemas...
En esa primera conexión de tipo ORACLE es importante que en el parámetro Rol se pondrá "SYSDBA"
En tipo de Conexión "Básico".
Se dejan las opciones por defecto
Nombre de Host: localhost (o la IP correspondiente 127.0.0.1)
Puerto: 1521
SID: xe (Nombre de la BD) 

Se prueba que funciona la conexión y se guarda.

Paso 05.- Ejecución de Scripts SQL de creacion de tablespaces y usuarios

En SQL DEVELOPER se conecta a la BD con la conexion creada en el paso anterior 4 y se ejecutan los siguientes scripts

SCRIPT: 00-tablespaces.sql
SCRIPT: 01-usuarios.sql 

NOTA: Estos scripts se encontraran en la carpeta de \Empaquetado\Motor-Trewa-BD

Paso 06.- Importar el dump (fichero .dmp) de la BD de TREWA

Por linea de comandos (CMD) Importar el fichero DUMP "trewa_corp.dmp"

Mediante el comando siguiente: (Suponiendo que el fichero dmp a importar este ubicado en C:/)

imp 'TREWA_CORP/trewa_corp AS SYSDBA' FULL=Y IGNORE=Y FILE=trewa_corp.dmp LOG=trewa_corp.dmp.imp.log

En la ejecución/log saldrá mensajes de aviso del siguiente tipo:

 ........
 . . importing table                "GN_CONSTANTES"          3 rows imported
 . . importing table                 "GN_EMPLEADOS"          0 rows imported
 . . importing table                   "GN_ERRORES"          0 rows imported
 . . importing table               "GN_MOD_INVOCAR"          0 rows imported
 ........
 ........

Hasta que al final se verá el siguiente mensaje...

 "Import terminated successfully without warnings." 

(IMPORTANTE - NO HA DE HABER ERRORES DE NINGÚN TIPO EN LA IMPORTACIÓN)

NOTA: El fichero dmp "trewa_corp.dmp" asi como un  fichero de texto con el comando a ejecutar "trewa_corp_comando_imp.txt"
se encontraran en la carpeta de \Empaquetado\Motor-Trewa-BD.

Paso 07.- Ejecución de Script SQL de Permisos

En SQL DEVELOPER se conecta a la BD (como sysdba mediante sys o system) con la conexión creada en el paso anterior 4 y se ejecuta el siguiente script

SCRIPT: 02-permisos.sql (como sysdba mediante sys o system)

NOTA: Este script se encontrara en la carpeta de \Empaquetado\Motor-Trewa-BD

Paso 08.- Ejecución de Script SQL de Sinónimos

En SQL DEVELOPER se crean las conexiones de los diferentes usuarios/esquemas para ver que los scripts anteriores se han ejecutado correctamente.

Se crean las conexiones dejando en todas ellas en el parámetro Rol la opción "Valor por defecto"

Se crean las siguientes conexiones...

  • TREWA_CORP
  • AGENDA_C
  • OFICINA_C

Se conectara con AGENDA_C y OFICINA_C y se ejecutara en ambas conexiones el siguiente script

SCRIPT: 03-sinonimos.sql (que se ejecutará 2 veces; una ejecucion en cada usuario)

NOTA: Este script se encontrara en la carpeta de \Empaquetado\Motor-Trewa-BD

(Y HASTA AQUÍ LO GENERAL DEL MOTOR DE TRAMITACIÓN DE TREWA ESTO ES LA BD DE ORACLEXE)


(Y A PARTIR DE AQUÍ, ESTO SERIA LO MAS ESPECIFICO PARA LA EJECUCIÓN Y EL DESARROLLO DE PROCEDIMIENTOS DE TREWA)

Paso 09.- Instalación de OpenOffice y Alfresco

Instalación de OpenOffice

NOTA IMPORTANTE: La plataforma Guadaltel tiene que usar una versión concreta de OpenOffice.
No parece que sirvan otras versiones de OpenOffice mas actualizadas pues no se garantiza el buen funcionamiento de la plataforma.
Se recomienda el uso de la versión 3.3.0 (en su paquete de arquitectura-plataforma que corresponda)

Dicha aplicación OpenOffice versión 3.3.0 puede obtenerse por internet en:
http://archive.apache.org/dist/incubator/ooo/stable/3.3.0/
Bajando e instalando el paquete que corresponda según la plataforma donde se vaya a instalar

Para un plataforma windows habría que optar por la opción  "OOo_3.3.0_Win_x86_install_en-US.exe" (2012-04-23 09:50 137M)

También para windows existe otra opción "OOo_3.3.0_Win_x86_install-wJRE_en-US.exe" (2012-04-23 09:50 151M) que incluye un JRE
pero como si o si se ha de tener instalado un JRE, es mejor no elegir esta opción, y optar por la que no incluye el JRE (para ahorrar espacio)

NOTA: Fíjese bien que para sistemas windows en los paquetes de instalación de OpenOffice proporcionados no se diferencia entre 32/64Bits,
Y solo se proporciona un único paquete para ambas plataformas.
 
IMPORTANTE: SE HAN DE AÑADIR CONFIGURAR LAS VARIABLES DE ENTORNO DEL SISTEMA PATH Y UNO_PATH
Que han de apuntar a la ruta-path donde se haya instalado el openOffice
Por ejemplo en un windows por defecto esa ruta suele ser "C:\Program Files\OpenOffice.org 3\program"

Es muy recomendable nada mas instalar el openOffice ejecutarlo por primera vez para pasar por la pantalla de primer inicio
Y configurar así que no se quiere que se actualice en linea ni registrar.
Y abrir algún fichero de tipo odt o documento para verificar que todo se ha instalado y configurado correctamente.

Instalación/Configuración de Alfresco

Instalación de Alfresco

NOTA IMPORTANTE: La plataforma Guadaltel tiene que usar una versión concreta de Alfresco.
No parece que sirvan otras versiones de Alfresco mas actualizadas pues no se garantiza el buen funcionamiento de la plataforma.
Se recomienda el uso de la versión 4.2.b (en su paquete de arquitectura-plataforma que corresponda)

Dicha aplicación Alfresco versión 4.2.b puede obtenerse por internet en:
https://wiki.alfresco.com/wiki/Community_file_list_4.2.b/
Bajando e instalando el paquete que corresponda según la plataforma donde se vaya a instalar

Para un plataforma windows habría que optar por la opción  " alfresco-community-4.2.b-installer-win-x32.exe" (Si es de 32Bits)

NOTA: Fíjese bien que para sistemas windows en los paquetes de instalación de Alfresco proporcionados si que se diferencia entre 32/64Bits, 

Se recomienda bajar e instalar la version completa de instalación de Alfresco (esto es el instalador correspondiente bajo la sección "Complete Installation"). Dicho paquete instalará un tomcat y un postgreSQL de manera automática que deberán ser arrancados para el correcto funcionamiento de la plataforma con el "Manager tool"

En la instalación se ha de elegir como tipo de instalación "Avanzada" para configurar algunos parámetros manualmente, como es el caso de los puertos para que no haya conflictos con otros puertos usados por otras plataformas/aplicaciones.

Marcaremos todos los componentes a instalar. O como minimo los esenciales para la plataforma. [Java+PosgreSQL+Alfresco]
Elegiremos la unidad y carpeta donde se instalará Alfresco Community. Recomendable que sea en la unidad raiz (C:\Alfresco)
A continuación podremos establecer el puerto para la base de datos PostgreSQL, dejando el que viene por defecto 5432
Indicaremos los siguientes datos para configuración del servidor de aplicaciones web Tomcat que instalará Alfresco Community:
Dominio de Servidor Web: dejamos el que viene por defecto 127.0.0.1.
Puerto del servidor Tomcat: cambiamos el que viene por defecto de 8080 a 8888 (para evitar conflicto con el del JBOSS).
Puerto de cierre de Tomcat: dejamos el que viene por defecto 8005.
Puerto SSL de Tomcat: dejamos el que viene por defecto 8443.
Puerto AJP de Tomcat: cambiamos el que viene por defecto de por defecto de 8009 a 8889 (para evitar conflicto con el del JBOSS).
Elegiremos el puerto para el servidor FTP que integra Alfresco (dejamos el valor que viene por defecto el puerto 21)
A continuación elegiremos el puerto por defecto para la conexión de Shell API ( dejamos el valor que viene por defecto 50500)
Introduciremos la contraseña para el usuario "admin" que será el usuario y contraseña con el que podremos administrar Alfresco Community tras su instalación. Recomendable usar para ambos valores la palabra "admin"
Si hemos marcado la opción de instalación del protocolo SharePoint, introduciremos ahora el número de puerto para el protocolo SharePoint (dejando el valor por defecto 7070)  
Si hemos marcado la opción de integración con LibreOffice, especificaremos a continuación el puerto de escucha del servidor LibreOffice (cambiando el valor que viene por defecto de 8100 a 8181 para que no entre en conflicto con el del servidor OpenOffice)
Para el inicio de los servicios de Alfresco (Tomcat+PosgreSQL) como queremos iniciarlos manualmente marcaremos la opcion de "Manual: configura los servidores para que los servicios se inicien de forma manual"
El asistente nos indicará que el programa está listo para iniciar el proceso de instalación de Alfresco Community, pulsaremos "Next".
Tras el proceso de instalación, el asistente nos indicará que ha concluido correctamente, y que entre otras opciones se puede lanzar-arrancar el  Alfresco Community.

Configuración de Alfresco

Si se arranca alfresco, si se inician los servicios de Alfresco, tendremos disponible el gestor de contenidos y para acceder abriremos un navegador web y accederemos a la URL: http://127.0.01:8888/alfresco
Introduciremos usuario y contraseña (usuario "admin" y la contraseña "admin" valores dados durante la instalación de Alfresco)
Se ha de acceder a la administración de Alfresco pulsando en el icono "Consola de administración"
Desde esta consola para crear un nuevo usuario se pulsará en "Administrar usuarios del sistema"+  "Crear usuario"
Introduciremos los datos para el nuevo usuario (nombre, apellidos, email, organización, ubicación, ...) y pulsaremos "Siguiente".
Se ha de crear el usuario "g_trewa" con la contraseña "g_trewa" (Para que coincida con los valores especificados y configurados en el fichero "alfresco.properties" que se encuentra dentro de ruta_servidor_plataforma_guadaltel\server\guadaltel\deploy\EmuladorWarda.war\WEB-INF\classes\)
Para este usuario elegiremos como espacio de inicio el "Espacio de empresa". Se le ha de dar el perfil "CONTRIBUIDOR"
Cerraremos la sesión como administradores y nos conectaremos como dicho usuario g_trewa para probar que todo funciona correctamente y muy importante crearemos la carpeta "trewa".

A continuación se explica cómo se configuran Espacios de Trabajo, Usuarios y Perfiles dentro de Alfresco.

Espacios de Trabajo
-Una vez dentro de la consola de Administración de Alfresco, ir a Espacio de Empresa
            -Pulsar en Crear/Crear espacio
            -Rellenar las propiedades de dicho espacio (Nombre, Título, Descripción, Icono)
            -Pulsar en Crear espacio

Usuarios/Perfiles
-Posicionarse en el espacio en el cual se quiere gestionar los Usuarios/Perfiles
            -Pulsar en Más acciones/Administrar usuarios de espacios
            -Pulsar en Invitar
            -Seleccionar el usuario que se quiere gestionar
            -Pulsar en Buscar
            -Seleccionar el role que se quiere asignar a dicho usuario
            -Pulsar en Añadir a Lista
            -Pulsar en Siguiente y Terminar

Por ultimo es muy importante habilitar el indexado por "Lucene" (y deshabilitar el indexado por Solr); para lo cual se editará el ficehro "alfresco-global.properties" que se encontrará en C:\Alfresco\tomcat\shared\classes\ y comentar la parte de Solr y descomentar/añadir la parte de Lucene

Quedando así:

# Solr indexing #
# Following are properties for SOLR.
#index.subsystem.name=solr
#dir.keystore=${dir.root}/keystore
#solr.port.ssl=8443

# Lucene indexing #
# Following are properties for LUCENE.
# The subsystem type value. Value is either solr or lucene.
index.subsystem.name=lucene
# The location for lucene index files
dir.indexes=C:/Alfresco/alf_indexes/lucene-indexes
# The location for index backups
dir.indexes.backup=C:/Alfresco/alf_indexes/backup-lucene-indexes
# Index recovery types; value can be NONE, VALIDATE, AUTO, FULL.
index.recovery.mode=AUTO

Paso 10.- Instalación/configuración de JDK6

NOTA: como se ha comentado en los requisitos previos la plataforma Guadaltel necesita tener este entorno java instalado
La versión JDK6 concreta y oficial que se ha de instalar sería la jdk1.6.0_20;

(IMPORTANTE)

Se ha incorporado dicha versión de JDK6 dentro del propio empaquetado por lo que YA no sería necesario realizar las operaciones de este paso.


Dicha última versión puede obtenerse por internet en:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u20-oth-JPR
(Aceptar acuerdo de licencia y obtener-bajar e instalar la versión que corresponda según la plataforma que tengamos)

Recordar elegir "Java SE Development Kit 6u20"
Y bajar e instalar la Versión que corresponda a la plataforma donde se vaya a instalar
Por ejemplo para un sistema windows de 32 bits habría que instalar jdk-6u20-windows-i586.exe

NOTA: En sistemas windows es recomendable que exista la variable de entorno JAVA_HOME y que este apuntando a donde se instale dicho JDK6
Por ejemplo para un sistema windows de 32 bits se tendría una variable de entorno JAVA_HOME creada y configurada con la siguiente ruta:
C:\Program Files\Java\jdk1.6.0_20 (Si es que se ha instalado en dicha ruta)
Y también es recomendable editar la variable de entorno PATH y añadir la ruta de ejecución de java, que estaría dentro del directorio "bin"
Esto simplemente se haría añadiendo ";%JAVA_HOME%\bin;" a la linea-contenido de la variable de entorno del PATH.

Paso 11.- Instalación del JBOSS de la plataforma Guadaltel

Descomprimir el fichero con el servidor en ruta adecuada
NOTA: Se recomienda instalar en la ruta por defecto raíz del sistema, que en sistemas windows sería en "C:\" y en linux en "\"
Si se instala en otro directorio o ruta habría que adaptar y cambiar algunas cosas en los EARs de la plataforma para que funcione todo bien.

NOTA: Esta aplicación se encontrara en la carpeta de \Empaquetado\Aplicaciones
Se trata de la aplicación-fichero "Guadaltel_JBoss.zip"

Paso 12.- Ejecución del servidor JBOSS Guadaltel

NOTA: Antes de arrancar-ejecutar el servidor; es recomendable asegurarse de arancarlo por primera vez lo mas vacío posible;
para lo cual, dentro de "deploy" (C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy) por defecto tras su instalación los diferentes componentes con sus correspondientes ficheros de configuración-despliegue (los EAR's y DATASOURCEs-XML's de cada uno de ellos) vienen con un "_" (guion bajo) al final. Esto es así para que no se desplieguen automáticamente por defecto cuando se arranque la primera vez. Así al no desplegarse todo a la vez, no se sobrecargara tanto el primer arranque del servidor, pues se limitara y ampliara poco a poco los diferentes elementos de la plataforma guadaltel. El primer arranque así sera mas rápido y liviano. Luego poco a poco se irá añadiendo mas funcionalidad, mas módulos y conexiones a la plataforma dejándola plenamente operativa con todos los componentes ya desplegados al final. Véase el apartado posterior de "Despliegue de componentes de la plataforma TREWA"

Arranque del servidor JBOSS Guadaltel

 

  • FORMA-METODO 1: [DIRECTA] Lanzandolo-arrancandolo directamente por linea de comandos
     
    Usando el comando correspondiente a la plataforma (usando el run y run.conf que habria dentro de \guadaltel\jboss-5.1.0.GA\bin )
     
    NOTA: Para sistemas windows se ha creado un fichero bat que realiza toda una serie de paso para arrancar la plataforma
    En C:\guadaltel\run-guadaltel.bat
    Si diera error este script y no se llegara a arrancar el servidor jboss entonces se ha de revisar el fichero "run.conf.bat"  que las rutas indicadas sobre JAVA son correctas y no dan problemas.

    Para parar-detener su ejecución bastaría con usar la combinación de teclas "CTRL+C" y detener el proceso.
      
  • FORMA-METODO 2: [INDIRECTA] Lanzandolo-arrancandolo desde un IDE de desarrollo (eclipse+JbossTools)
     
    Tendría que instalarse-configurarse previamente dicho entorno de desarrollo. El IDE con su pluging
    Configurarse el servidor correspondiente correctamente y lanzarlo desde allí con el botón de "play"
     
    NOTA: Recomendamos (pues se han realizado pruebas satisfactorias con la plataforma) el IDE "Eclipse Luna" con el plugin "JBoss Tools" (Version 4.2.3.Final)
     
    El "Eclipse Luna" se puede obtener en:
    https://eclipse.org/downloads/packages/release/Luna/SR2 
    Seleccionando la opcion de "Eclipse IDE for Java EE Developers" (254 MB) en la plataforma que corresponda
     
    El pluging "JBoss Tools" (Version 4.2.3.Final) se puede obtener en:
    http://tools.jboss.org/downloads/jbosstools/luna/4.2.3.Final.html
    Pudiendose igualmente instalar desde el "Eclipse Marketplace"".
     
    Para parar-detener su ejecución bastaría con usar el botón de "stop" y/o cerrar-salir del IDE


ES IMPORTANTE INDICAR QUE PUEDE TARDAR BASTANTE EN ARRANCARSE EL SERVIDOR.
Se ha de tener paciencia pues se demora minutos en el despliegue de todos los componentes.

Despliegue de componentes de la plataforma TREWA


Para el despliegue, esto es, para hacer un "deploy", o digamos la "instalacion-activación" de un componente en la plataforma guadaltel tan solo habra que renombrar los ficheros de los EAR's y DATASOURCEs-XML's que corresponda quitando el "_" final.
Y con este acto automaticamente el servidor JBoss guadaltel detectará los cambios y hará el despliegue "en caliente" de dicho elemento.

Igualmente a la inversa, si se renombra un elemento y se añade al final "_" (guion bajo) se produce un "undeploy", esto es, digamos la "desinstalacion-inactivación" de un componente en la plataforma guadaltel

La plataforma Guadaltel se compone de diferentes elementos, por eso vamos a distinguir diferentes despliegues
- Despliegue Básico =  los elementos que por defecto trae la plataforma (Pagina de Test, Emulador Warda y la Herramienta de Administracion de Trewa [HAT])
- Despliegue del modulo-componente de la Agenda [AG]
- Despliegue del modulo-componente de la OficinaVirtual [OV]
- Despliegue del modulo-componente de pruebas-desarrollo en local amap-trewa-mock [MOCK]
- Despliegues de modulos-componentes de ProcedimientosTrew@ [A001,...]

 

D.BÁSICO - Componentes: "Pagina de test", "Emulador Warda" y "Herramienta de Administración de Trewa" [HAT]

Un despliegue básico, es el despliegue inicial de la plataforma TREWA, vacío, sin la Agenda (AG) ni la oficina virtual (OV) y ningún procedimiento trewa (GONCE, a001,a002,...aXXX). Solo tendrá acceso a la herramienta de administración de Trewa (HAT) y la página de test.
Para desplegar lo basico se tendrán en el directorio C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy
los siguientes recursos: (vienen por defecto)
DATASOURCE => datasource-default-ds.xml
EAR =>  testPage.ear
[Solo contendrá la pagina de Test y lo que se incluye por defecto en el propio servidor de guadaltel que son el emuladorWarda (Webservice)
y la HAT (Herramienta de administracion de trewa)]
NOTA: Como es el despliegue básico y principal por defecto no habrá que hacer nada pues en el empaquetado en el servidor que se instala
ya viene preparado para desplegarse automáticamente.

D.AGENDA - Componente: "Agenda" [AG]

Con el despliegue de la agenda se dispondrá por parte de los gestores de un acceso a la plataforma trewa y a sus diferentes procedimientos.
Para desplegar la agenda se tendrán en el directorio C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy
los siguientes recursos:
DATASOURCE => datasource-AGENDA-ds.xml
EAR =>  AgendaGonce221JBDesa.ear / GonceRecordUtilities.ear (NOTA: Fijese que son 2 elementos - 2 EAR's)
[Contiene los elementos para gestionar expedientes como GESTOR]
NOTA: Para su despliegue habrá que hacer el renombrado de los recursos anteriormente mencionados (quitando el "_" final)
pues en el empaquetado el servidor que se instala viene con este componente así configurado
para evitar el que se despliegue automáticamente en el primer arranque. 

 

D.OFICINA VIRTUAL - Componente: "OficinaVirtual" [OV]

Con el despliegue de la oficina virtual se dispondrá por parte de los ciudadanos de un acceso a la plataforma trewa y a sus diferentes procedimientos.
Para desplegar la oficina virtual se tendrán en el directorio C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy
los siguientes recursos:
DATASOURCE => datasource-OV-ds.xml
EAR =>  OVGonce211JBDesa.ear
[Contiene los elementos para gestionar expedientes como CIUDADANO]
NOTA: Para su despliegue habra que hacer el renombrado de los recursos anteriormente mencionados (quitando el "_" final)
pues en el empaquetado el servidor que se instala viene con este componente asi configurado
para evitar el que se despliegue automaticamente en el primer arranque. 

D.AMAP TREWA MOCK - Componente: "amap-trewa-mock" [MOCK]

Con el despliegue del mock de trewa dispondrá de un funcionamiento de la plataforma trewa en un entorno 100% local. Sin necesidad de tener acceso a la intranet del gobierno de cantabria.
Para desplegar el mock se tendrán en el directorio C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy
los siguientes recursos:
EAR =>  amap-trewa-mock-1.0.0.ear
[Contiene los elementos para poder funcionar sin errores en un entorno 100% local]
NOTA: Para su despliegue habra que hacer el renombrado de los recursos anteriormente mencionados (quitando el "_" final)
pues en el empaquetado el servidor que se instala viene con este componente asi configurado
para evitar el que se despliegue automaticamente en el primer arranque. 

D.PROCEDIMIENTOS TREW@:

El despliegue de un procedimiento de trewa ya sea basado en el arquetipo proporcionado por AMAP del Gobierno de cantabria "aXXX" o en el procedimiento de ejemplo o referencia "GONCE" proporcionado por Guadaltel, se trata de la instalación dentro de la palataforma de trewa de una serie de fases, metafases, transiciones, documentos y operaciones relacionados con un procedimiento administrativo.
Para desplegar un procedimiento Trewa ha de consultarse el siguiente apartado de  "Instalación-despliegue de procedimientos Trew@"


(A PARTIR DE AQUÍ, ESTO SERIA LO ESPECIFICO PARA HACER PRUEBAS)

Con todos los pasos anteriormente descritos YA REALIZADOS correctamente ejecutados y sin que hayan aparecido problemas.
Se procedería a hacer las diferentes pruebas.

Paso 13.- Acceso a las diferentes URLS y componentes de la plataforma

Una vez llegado a este paso y con el servidor arrancado correctamente sin haber dado ningún tipo error;
Se puede acceder a los diferentes componentes de la plataforma desde un navegador.
Se aconseja el Navegador FIREFOX (por el tema de ejecución de los miniapplets).

Los puntos de entrada de cada una de las aplicaciones-componentes que forman parte de la plataforma TREWA desplegada serán:

Para la agenda se pueden usar los usuarios con dni 00000000T o 72068460F(poniendo dicho valor de DNI tanto en la casilla de usuario como en la de contraseña)

Se puede acceder a todos los componentes desde la página inicial (index.hmtl) del servidor: http://localhost:8080

 -En el cliente se debe instalar la versión de java jdk-7u67.
        -La versión de Mozilla Firefox debe ser 31.0.
   Adicionalmente se deben seguir los siguientes pasos:
        -Situarse en la siguiente ruta:
                          Panel de control -> Consola de java -> Seguridad
        -Activar el check "Activar el Contenido java en el explorador"
        -Nivel de seguridad: Medio


(A PARTIR DE AQUI, ESTO SERIA ESPECIFICO PARA EL DESPLIEGUE E INTEGRACION DE PROCEDIMIENTOS DE Trew@)

Despliegue de procedimientos Trewa

NOTA: A partir de este punto se tendría que seguir el MANUAL - DESPLIEGUE PROCEDIMIENTO TREWA. Dicho manual se encontrara en \Empaquetado\Procedimiento como "MANUAL - DESPLIEGUE PROCEDIMIENTO TREWA"

Requisitos Previos

Para el despliegue de un procedimiento Trewa,  son necesarios los siguientes recursos:

  • entorno desarrollo plataforma Trew@
  • usuarios-conexiones a base de datos especificas del procedimiento.
  • fichero .zip con el modelado del procedimiento (que en su interior tendrá el fichero xml de modela y las pantillas-documentos del procedimiento)
  • fichero con la conexión-configuración del DATASOURCE del procedimiento 
  • fichero .ear del procedimiento.

Paso 01.- Usuarios-Conexiones a base de datos especificas del procedimiento

Para aislar e independizar la plataforma de los diferentes esquemas usuarios de los diferentes procedimientos se ha de hacer así
Se ha de tener  2 usuarios independientes de acceso al sistema y con visibilidad exclusiva del procedimiento correspondiente.
Con todos estos datos se han de configurar los DATASOURCEs correspondientes

En SQL DEVELOPER se conecta a la BD con permisos de administracion SYS o SYSTEM y se ejecutan los siguientes scripts:
SCRIPT: usuario-TP_DGOT_AXXX.sql
SCRIPT: usuario-TW_DGOT_AXXX.sql

Dichos scripts se encontraran en \Empaquetado\Procedimiento  o en la carpeta "doc" si se ha optado por seguir los pasos para la Creación de un procedimiento Trew@ a partir del arquetipo AMAP (AXXX = nombre distinto al de referencia "A001" y nótese que se define en el sistema lógico de referencia "DGOT"; si se cambian o definen otros parámetros se usarían dichos valores pasados).

En SQL DEVELOPER se crean las conexiones de los diferentes usuarios/esquemas para ver que los scripts anteriores se han ejecutado correctamente
Dejando en todos en el parámetro Rol la opción "Valor por defecto"
Se crean las siguientes conexiones...

  • TP_DGOT_AXXX
  • TW_DGOT_AXXX

Se conectara con TW_DGOT_AXXX y se ejecutara el siguiente script
SCRIPT: 03-sinonimos.sql

Dicho script se encontrara en \Empaquetado\Motor-Trewa-BD
 

Paso 02.- fichero .zip con el modelado del procedimiento

Se ha de tener en muy en cuenta que todo procedimiento tiene asociado su correspondiente modelado, donde se define graficamente el flujo de trabajo del mismo. El modelado basicamente se trata de un fichero .ZIP en cuyo interior se encuentran diversos elementos, principalmente los siguientes:

  • el fichero .xml con la definición-configuración del procedimiento
  • las diferentes plantillas y documentos del procedimiento (documentos openofficce *.odt's y pdf's)

Importante: Cada uno de los ficheros ODT de las diferentes plantillas tienen configuradas una serie de variables y éstas siempre han de ser editadas para adaptar su nombre que incluirán una cadena XXXX y que deberá ser cambiada por artifactId, esto es el identificador del procedimiento que se haya indicado en la generación.

Dicho fichero se encontrara en \Empaquetado\Procedimiento o en la carpeta "doc" donde tendrá que ser creado manualmente si se opta por seguir los pasos para la Creación de un procedimiento Trew@ a partir del arquetipo AMAP 

Este fichero puede ser editado-visualizado-generado con la herramienta de guadaltel "MODELA".

Este fichero .zip ha de ser siempre importado en la plataforma de trewa mediante la HAT, desde la que además han de realizarse una serie de operaciones-ajustes para el correcto despliegue del procedimiento.

 Importacion de fichero ZIP de modela

Todo despliegue de un procedimiento trewa lleva consigo la operación de importacion de fichero ZIP de modela.
Que básicamente se resume en....teniendo arrancado el servidor JBOSS de Trew@ acceder a la HAT = la herramienta de administración de Trewa =  http://localhost:8080/TrewaAdm   (Usando "default" - usuario: TREWA_CORP - contraseña: trewa_corp) e ir al menú  de procedimientos y dar al icono de importación de procedimientos.
Es muy importante esta operación, y que se lleve acabo y se finalice sin que se dé ningun tipo de error pues sino la integración del procedimiento en la plataforma no será correcta y no funcionará adecuadamente.

 Ajustes de configuracion del procedimiento en la HAT

Tras la importación de un ZIP de modelado de un procedimiento de trewa se han de realizar tambien siempre una serie de revisiones-ajustes en la configuración de dicho procedimiento. Tanto si se trata del primer despliegue como de una re-instalacion tras cambios en el mismo se han de comprobar-verificar y ajustar (si procede) una serie de elementos desde la HAT.
Basicamente se refiere al tipo de expediente, versión del procedimiento, variables, parametros, constantes, documentos, tareas,...etc, etc que han de haber sido correctamente creadas-importadas segun el fichero de modela del punto anterior.

Paso 03.- fichero conexión-configuración DATASOURCES del procedimiento

Se trata de configurar y desplegar el fichero xml de configuracion de datasources.

Configurar JNDI-Datasources

Primero se ha de configurar correctamente el fichero datasource del procedimiento para que se conecte bien con la BD, y siempre han de coincidir los datos con los especificados segun el paso 01. En la etiqueta <no-tx-datasource> irian los datos del JNDI del usuario-conexion tw_dgot_axxx. Y en la etiqueta <local-tx-datasource> irian los datos del JNDI del usuario-conexión de dgot_axxx

Editando el fichero xml de configuración de los datasources tendremos que ver algo similar a esto...

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
        <no-tx-datasource>
  <jndi-name>jdbc/tw_dgot_axxx</jndi-name>
  .......
 </no-tx-datasource>
 <local-tx-datasource>
  <jndi-name>jdbc/dgot_axxx</jndi-name>
                ........
 </local-tx-datasource>
</datasources>

Dicho fichero de configuracion se encontrara en \Empaquetado\Procedimiento o en la carpeta "doc" si se ha optado por seguir los pasos para la Creación de un procedimiento Trew@ a partir del arquetipo AMAP (aXXX = nombre distinto al de referencia "a001").

Desplegar JNDI-Datasources

Despues de tener bien configurado el fichero de datasources se ha de desplegar; que basicamente se trata de arrastar el fichero xml correspondiente en nuestro caso el "datasource-AXXX-ds.xml_" dentro de C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy
Y renombrarlo (quitando el "_" final) para que la plataforma detecte el cambio y lo despliegue automaticamente "en caliente"

Estando arrancado el servidor se verán mensajes similares a....

 16:07 INFO  [WrapperDataSourceService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=jdbc/tw_dgot_axxx' to JNDI name 'jdbc/tw_dgot_axxx'
 16:07 INFO  [WrapperDataSourceService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=jdbc/dgot_axxx' to JNDI name 'jdbc/dgot_axxx'

Con lo que se notifica que se ha desplegado correctamente el DATASOURCE del procedimiento
 

Paso 04.- fichero EAR del procedimiento

Se trata de desplegar el fichero EAR del procedimiento; que simplemente consiste en arrastar el fichero .ear correspondiente en nuestro caso "axxx.ear_" dentro de la carpeta deploy del servidor, esto es, dentro de C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy
Y renombrarlo (quitando el "_" final al nombre del fichero) para que la plataforma detecte el cambio y lo despliegue automaticamente "en caliente"

NOTA: El fichero EAR puede encontrarse en \Empaquetado\Procedimiento o en la carpeta de target correspondiente dentro del modulo EAR si se opto por la creacion de un proyecto basado en el arquetipo de trewa con maven con otro nombre.

Estando arrancado el servidor se verán mensajes similares a....

 2015-10-05 16:10:24,229 INFO  [org.jboss.ejb3.deployers.Ejb3DependenciesDeployer] (HDScanner) Encountered deployment AbstractVFSDeploymentContext@16812674{vfszip:/C:/guadaltel/aplicaciones/jboss-5.1.0.GA/server/guadaltel/deploy/axxx.ear/GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar/}
 2015-10-05 16:10:24,229 INFO  [org.jboss.ejb3.deployers.Ejb3DependenciesDeployer] (HDScanner) Encountered deployment AbstractVFSDeploymentContext@16812674{vfszip:/C:/guadaltel/aplicaciones/jboss-5.1.0.GA/server/guadaltel/deploy/a001.ear/GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar/}
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner) Created KernelDeployment for: GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner) installing bean: jboss.j2ee:ear=axxx.ear,jar=GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar,name=GonceEnvironmentIntegrationBean,service=EJB3
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)   with dependencies:
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)   and demands:
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jboss.ejb:service=EJBTimerService
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)   and supplies:
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  Class:es.guadaltel.gonce.integration.GonceEnvironmentIntegration
 2015-10-05 16:10:29,309 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jndi:axxx/GonceEnvironmentIntegrationBean/remote-es.guadaltel.gonce.integration.GonceEnvironmentIntegration
 2015-10-05 16:10:29,323 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner)  jndi:axxx/GonceEnvironmentIntegrationBean/remote
 2015-10-05 16:10:29,323 INFO  [org.jboss.ejb3.deployers.JBossASKernel] (HDScanner) Added bean(jboss.j2ee:ear=axxx.ear,jar=GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar,name=GonceEnvironmentIntegrationBean,service=EJB3) to KernelDeployment of: GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar
 2015-10-05 16:10:29,337 INFO  [org.jboss.ejb3.endpoint.deployers.EJB3EndpointDeployer] (HDScanner) Deploy AbstractBeanMetaData@10ce4d2{name=jboss.j2ee:ear=axxx.ear,jar=GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar,name=GonceEnvironmentIntegrationBean,service=EJB3_endpoint bean=org.jboss.ejb3.endpoint.deployers.impl.EndpointImpl properties=[container] constructor=null autowireCandidate=true}
 2015-10-05 16:10:29,462 INFO  [org.jboss.ejb3.session.SessionSpecContainer] (HDScanner) Starting jboss.j2ee:ear=axxx.ear,jar=GonceEnvironmentIntegrationEJB-cluster-1.0.2.jar,name=GonceEnvironmentIntegrationBean,service=EJB3
 2015-10-05 16:10:29,518 INFO  [org.jboss.ejb3.EJBContainer] (HDScanner) STARTED EJB: es.guadaltel.gonce.integration.GonceEnvironmentIntegrationBean ejbName: GonceEnvironmentIntegrationBean
 2015-10-05 16:10:30,590 INFO  [org.jboss.ejb3.proxy.impl.jndiregistrar.JndiSessionRegistrarBase] (HDScanner) Binding the following Entries in Global JNDI:

  axxx/GonceEnvironmentIntegrationBean/remote - EJB3.x Default Remote Business Interface
  axxx/GonceEnvironmentIntegrationBean/remote-es.guadaltel.gonce.integration.GonceEnvironmentIntegration - EJB3.x Remote Business Interface

 2015-10-05 16:10:41,219 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) deploy, ctxPath=/axxx
 .....
 .....
 .....
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for '/other_action'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'error'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'success'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for '/requerimiento_subsanacion'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'error'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'newTask'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'readOnlyTask'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'updateTask'
 2015-10-05 16:10:58,627 INFO  [STDOUT] (HDScanner) [16:10:58,627] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for '/analisis_solicitud'
 2015-10-05 16:10:58,646 INFO  [STDOUT] (HDScanner) [16:10:58,646] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'error'
 2015-10-05 16:10:58,646 INFO  [STDOUT] (HDScanner) [16:10:58,646] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'newTask'
 2015-10-05 16:10:58,646 INFO  [STDOUT] (HDScanner) [16:10:58,646] org.apache.struts.action.ActionServlet DEBUG: Processing extensions for 'updateTask'
 2015-10-05 16:10:58,646 INFO  [STDOUT] (HDScanner) [16:10:58,646] org.apache.struts.config.ActionConfigMatcher DEBUG: Compiling action config path 'error-*' 

Con lo que se habrá desplegado correctamente el EAR del procedimiento y ya se podrá accder al mismo tanto desde la Oficina virtual (OV) como desde la Agenda (AG) mediante la URL dirección correspondiente.

Llegados a este punto ya se podrían hacer pruebas tanto en la AGENDA [AG] como en la OFICINA VIRTUAL [OV]
Entrando en cada una de ellas mediante la URL que corresponda.

Ejemplo despliegue del PROCEDIMIENTO ARQUETIPO - A001

Para desplegar un procedimiento de trewa basado en arquetipo A001 dentro del sistema lógico de referencia DGOT o bien se tendrá que generar el procedimiento y sus recursos asociados mediante los siguientes pasos definidos en Creación de un proyecto a partir del arquetipo Trew@ AMAP , o bien tomar el procedimiento y sus recursos asociados directamente del empaquetado y copiarlos dentro del directorio C:\guadaltel\jboss-5.1.0.GA\server\guadaltel\deploy

Recursos necesarios para el despliegue:

  • SCRIPTS Usuarios-Conexiones BBDD => usuario-TP_DGOT_A001.sql y usuario-TW_DGOT_A001.sql
  • ZIP => A001.zip
  • CONSTANTES => Constantes.txt 
  • DATASOURCE => datasource-A001-ds.xml_
  • EAR =>  A001.ear_

Y se encontraran en \Empaquetado\Procedimiento si se opta por tomarlos-cogerlos directamente del empaquetado.
O se encontraran dentro de la carpeta \doc dentro del proyecto generado si se opta por la generacion con maven del procedimiento a partir del arquetipo trewa.

NOTA1: Si se toman del empaquetado, para su despliegue habrá que hacer el renombrado de los recursos DATASOURCE y EAR (quitando el "_" final) pues en el empaquetado vienen asi configurados para evitar el que el procedimiento se despliegue automáticamente nada mas copiarlos dentro del directorio deploy del servidor indicado anteriormente.

NOTA2: Si se toman de la carpeta doc del proyecto generado con maven a partir del arquetipo trewa, el fichero ZIP se ha de crear manualmente antes para poder importarlo después desde la HAT incluyendo dentro de dicho fichero zip, el fichero xml de modela y las plantillas-documentos del procedimiento manualmente.

Secuencia de operaciones a realizar para el desligue del procedimiento "a001":

[en la BBDD]

  • Ejecutar los SCRIPTS Usuarios-Conexiones BBDD: usuario-TP_DGOT_A001.sql y usuario-TW_DGOT_A001.sql
  • Crear conexion TW_DGOT_A001 y conectarse y ejecutar el script 03-sinonimos.sql para dar los permisos adecuados

[en la HAT]

  • Importar el fichero  A001.zip comprobando que no se producen  errores y desbloquearlo
  • Crear tipo de expediente del arquetipo de trewa para asociarlo al procedimiento
  • Crear versión  del arquetipo de trewa
  • Crear constantes de procedimiento del arquetipo de trewa (vease apartado 1.8 del manual de despliegue)
  • Dar permiso a los firmantes en los tipos de documentos con registro y firma definidas (vease apartado 1.9 del manual de despliegue)

[en la carpeta DEPLOY del servidor]

  • Desplegar el fichero con los JNDI's del datasource: datasource-A001-ds.xml
  • Desplegar el fichero A001.ear

[en un navegador]

  • Hacer las pruebas correspondientes accediendo a la url de la Agenda (AG) o la OficinaVirtual (OV) y probando el procedimiento A001

NOTA: FIRMANTES DE DOCUMENTOS

Actualmente la opción de "Firmantes de Documentos" desde la Agenda no está disponible en un el entorno local, la configuración del componente de "PORT@FIRMAS" está soportada únicamente para un portafirmas del Gobierno de Cantabria.
Etiquetas:
Creado por Administrator el 2014/01/16 12:51
© 2014 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS