Vistas

Configuración de componentes

De MorfeoWiki

Tabla de contenidos

Introducción

La plataforma MyMobileWeb está compuesta por tres paquetes. El primero de ellos dispone generación de las Presentaciones y extracción de literales (MyMobileWeb_JSPGenerators), el segundo proporciona la gestión de dispositivos y contiene la base de datos de los mismos (MyMobileWeb_DeviceManager) y finalmente el MyMobileWeb_WasComponents que implementa el framework Modelo-Vista-Control del lado servidor.
A continuación se explica de forma exhaustiva los elementos que componen cada uno de los diferentes componentes.

MyMobileWeb_JSPGenerators

Remitirse al manual del generador, donde esta componente está descrito con todo detalle.

MyMobileWeb_DeviceManager

El DeviceManager MyMobileWeb se enmarca dentro de la Arquitectura MyMobileWeb como herramienta para la gestión de dispositivos. Para la instalación y configuración del DeviceManager se han de seguir los siguientes pasos.

Desempaquetado del componente

El archivo entregado ha de ser desempaquetado en un directorio a elección del instalador. Para el desarrollo de este manual, se supondrá que se desempaqueta en el directorio D:/MyMobileWeb MyMobileWeb_DeviceManager

Figura 3-1: Directorio del DeviceManager

Imagen:DirectorioDeviceManager.png

Desempaquetado el archivo, son cuatro los directorios del DeviceManager descomprimidos:

Directorio config

Configuración del DeviceManager, tanto en sus aspectos generales como en las trazas LOG4J. Incluye 2 módulos de configuración:

  • template/MyMobileWeb.DevMgt.xml
Configuración general del gestor de dispositivos.
  • template/logs/traces.xml
Configuración de las trazas.

Directorio doc

La documentación generada del código fuente por la herramienta JavaDoc integrada en el SDK de Java.

Directorio lib

Librerías JAVA de la aplicación:

  • mymw-devicemanager.jar
Clases del gestor de dispositivos
  • mymw-common.jar
Clases comunes de MyMobileWeb
  • mf-commons.jar
Clases de MORFEO Commons
  • log4j-1.2.9.jar
Librería de trazas LOG4J
  • jep-2.3.0.jar
Evaluador y parseador de expresiones matemáticas.
  • xom-1.0a3.jar
Parser XML que usa internamente el API de WURFL.
  • wurfltags.jar
Clases que conforman el api de WURFL.

Directorio resources

Contiene los ficheros de configuración WURFL, los cuales poseen información sobre las capacidades que soportan multitud de dispositivos inalámbricos y navegadores. Además aparecen otros XML’s de configuración de familias abstractas.

  • wurfl.xml
Información sobre las capacidades que soportan multitud de dispositivos inalámbricos y navegadores
  • wurfl_patch.xml
Información que completa el anterior XML, en caso de coincidencia, éste sobrescribe la información del primero. Este fichero puede ser manipulado por el desarrollador.
  • wurfl_patch_1.xml
Información que completa el wurfl_patch.xml, en caso de coincidencia, éste sobrescribe la información del wurfl_patch.xml
  • wurfl_patch_2.xml
Información de las capacidades que soportan los distintos navegadores.
Como antes, éste sobrescribe al wurfl_patch_1.xml.
  • wurfl_ext_abstract.xml
Características de familias abstractas.
  • wurfl_ext_abstract_1.xml
Patch del fichero wurfl_ext_abstract.xml
Como norma general la redefinición de capacidades de dispositivos se aplica comenzando por el wurfl_patch_n.xml....,wurfl_patch_2.xml, wurfl_patch_1.xml y wurfl_patch.xml. En consecuencia, el fichero 1 redefine al 2, el 2 al 3 y así sucesivamente.

Configuración del gestor de dispositivos

En este apartado se verá exhaustivamente la configuración del gestor de dispositivos.

MyMobileWeb.DevMgt

La configuración del gestor de dispositivos recae sobre el fichero template/MyMobileWeb.DevMgt.xml. Este fichero está formado por un único módulo principal llamado ‘devmgt’, el cual está compuesto a su vez por 5 submódulos:

  1. Módulo ‘log4j’
    Ruta del fichero de configuración de trazas.
  2. Módulo ‘cache’
    Intervalo de refresco de la caché interna.
  3. Módulo ‘directories’
    Ruta del directorio donde se aloja los ficheros con la información de las capacidades de dispositivos.
  4. Módulo ‘driver’
    Indica el tipo de driver, local o remoto.
  5. Módulo ‘rules’
    Ficheros con reglas nemotécnicas para reconocimiento de dispositivo si

éste no se encuentra en WURFL.

Módulo ‘log4j’

Apunta al archivo de configuración de las trazas del gestor de dispositivos, relativo a la ruta de instalación. El archivo especifica, bajo el esquema que LOG4j impone para su configuración, las especificaciones de funcionamiento del logger que el gestor de dispositivos usa para volcar las trazas. El DeviceManager vuelca por cada operación realizada las trazas correspondientes, configurables en el archivo configurado bajo esta propiedad.


Ejemplo Modulo log4j

  <property name="file" value="config/logs/traces.xml" />

Módulo ‘cache’

Indica el intervalo de refresco de la caché interna que usa el MyMobileWeb framework.

Ejemplo Modulo cache

  <property name="refreshInterval" value="1" />

Módulo ‘directories’

Apunta al directorio donde se ubican los ficheros relativos a la información de capacidades de los dispositivos inalámbricos y navegadores Web. En esta misma localización se hallan los ficheros descriptores de familias abstractas.

Ejemplo Modulo directiries

  <property name = "dataBaseDirectory" value="resource"/>

Módulo ‘wurfl’

Fichero WURFL y patch que redefine capacidades del anterior.

Propiedad ‘xml’

Fichero que contiene toda la información relativa a las capacidades que soportan los navegadores Web y los dispositivos inalámbricos.

Ejemplo Propiedad xml

 <property name = "xml" value = "wurfl.xml"/>


Propiedad ‘patch’

Fichero que redefine la información del anterior.

Ejemplo Propiedad patch

 <property name = "patch" value = "wurfl_patch.xml"/>

Módulo ‘driver’

El tipo de driver indicar si su valor es:

  • 0, el acceso a la base de datos de dispositivos se hace en local.
  • 1, el acceso a la base de datos de dispositivos se hace remotamente (no implementado actualmente).

Ejemplo Modulo driver

 <property name = "type" value = "0"/>

Módulo ‘rules’

Indica los ficheros que contienen las reglas con las que se reconocerán los dispositivos si éstos no aparecen en la base de datos de dispositivos WURFL.

Propiedad ‘acceptXml’

Fichero descriptor XML de las reglas antes citadas. Fichero que redefine la información del anterior.

Ejemplo Propiedad acceptXml

 <property name = "acceptXml" value = "acceptRules.xml"/>

Propiedad ‘acceptXsl’

Fichero XSL que indica la precedencia y prioridad a la hora de aplicar las anteriores reglas. Fichero que redefine la información del anterior.

Ejemplo Propiedad patch

 <property name = "acceptXsl" value = "acceptRules.xsl"/>

Ejemplo de fichero MyMobileWeb_DevMgt

Ejemplo MyMobileWeb_DevMgt.xml

 <configuration name = "root">
   <module name="devmgt">
     <module name="log4j">
     <property name="file" value="config/logs/traces.xml" />
   </module>
   <module name="cache">
     <property name="refreshInterval" value="1" />
   </module>
   <module name="directories">
     <property name = "dataBaseDirectory" value="resource"/>
   </module>
   <module name = "wurfl">
     <property name = "xml" value = "wurfl.xml"/>
     <property name = "patch" value = "wurfl_patch.xml"/>
   </module>
   <module name = "driver">
     <property name = "type" value = "0"/>
   </module>
   <module name = "rules">
     <property name = "acceptXml" value = "acceptRules.xml"/>
     <property name = "acceptXsl" value = "acceptRules.xsl"/>
   </module>
   </module>
 </configuration>

MyMobileWeb_WasComponents

Este componente se enmarca dentro de la Arquitectura MyMobileWeb como herramienta para resolver la interacción Cliente-Servidor. Para la instalación y configuración del WasComponents se han de seguir los siguientes pasos.

Desempaquetado del componente

El archivo entregado ha de ser desempaquetado en un directorio a elección del instalador. Para el desarrollo de este manual, se supondrá que se desempaqueta en el directorio D:/MyMobileWeb MyMobileWeb_WasComponents

Figura 3-2: Directorio del WasComponents

Imagen:DirectoryWasComonents.png

Desempaquetado el archivo, son cuatro los directorios del WasComponents descomprimidos:

Directorio config

Configuración del WasComponents, tanto en sus aspectos generales como en las trazas LOG4J. Incluye 6 módulos de configuración:

  • template/MyMobileWeb.Global.xml
Configuración general del componente servidor Web.
  • template/MyMobileWeb.PropMng.xml
Configuración del gestor de propiedades.
  • template/ContentCatalog.xml
Configuración del catálogo de recursos.
  • template/OAConfig.xml
Configuración de las operaciones de la aplicación.
  • template/MyApplication.xml
Configuración adicional de la aplicación de desarrollo.
  • template/logs/traces.xml
Configuración de las trazas.

Directorio doc

La documentación generada del código fuente por la herramienta JavaDoc integrada en el SDK de Java.

Directorio lib

Librerías JAVA de la aplicación:
  • mymw-common.jar
Clases comunes de MyMobileWeb
  • mymw-propertymanager.jar
Gestor de Propiedades de MyMobileWeb
  • mf-commons.jar
Clases de MORFEO Commons
  • log4j-1.2.9.jar
Librería de trazas LOG4J
  • jdom.jar
Implementación de JDOM
  • xercesImpl.jar
Implementación XERCES

xml-apis.jar

Api de acceso a parseadores XML
  • xalan.jar
Transformador XSLT
  • sac.jar
Interfaz de gestor de estilos SAC
  • batik-css.jar
Implementación SAC
  • batik-util.jar
Librería de utilidades SAC
  • mymw-el.jar
Implementación de Apache para tratamiento de Expression Language
  • mymw-presengine.jar
Motor de presentación.
  • mymw-wascomponents.jar
Clases de servidor Web
  • jsp-el.jar
Clases del API de Expression Language
  • mf-ldap-api.jar
API Java de acceso a LDAP basado en JNDI

Directorio resources

Contiene ficheros descriptores de literales y mensajes en diferentes idiomas:

  • Literales manejados por la plataforma.
  • Mensajes de error, de aviso, de información o bien planos que usa el framework MyMobileWeb.

Figura 3-3: Directorio resources

Imagen:DirectorioResources.png

  • literals/All/generic/MyMobileWeb_literals_es_ES.xml
Literales de MyMobileWeb en Castellano.
  • literals/All/generic/MyMobileWeb_literals_eng_US.xml
Literales de MyMobileWeb en Inglés.
  • messages/MyMobileWeb_messages_es_ES.xml
Mensajes de MyMobileWeb en Castellano.
  • messages/MyMobileWeb_messages_eng_US.xml
Mensajes de MyMobileWeb en Inglés.

Configuración del servidor Web

En este apartado se verá exhaustivamente la configuración del servidor Web.

MyMobileWeb.Global

La configuración global del MyMobileWeb framework se encuentra definida en el fichero de configuración MyMobileWeb_Global. Éste esta compuesto por diferentes módulos que a continuación serán descritos brevemente.

  1. Propiedad ‘LOG4J_Config’
    Ruta del fichero de configuración de trazas
  2. Propiedad ‘Working_Mode’
    Indica si el modo de trabajo es en desarrollo o producción.
  3. Módulo ‘Global’
    Configuración global de la aplicación.
  4. Módulo ‘LoginManager’
    Configuración del mecanismo de login
  5. Módulo ‘FlowEngine’
    Configuración de la clase que actuará como entrada del flujo.
  6. Módulo ‘PresentationAdapter’
    Ruta relativa a la localización de las presentaciones.
  7. Módulo ‘OAController’
    Ruta relativa al fichero de configuración de operaciones de aplicación.
  8. Módulo ‘URLManager’
    Definición del contexto y PATH de la aplicación.
  9. Módulo ‘MessageManager’
    Ruta relativa de los ficheros XML’s que almacenan los mensajes.
  10. Módulo ‘LiteralManager’
    Localización de los ficheros XML’s que almacena los literales, tanto de aplicación como de plataforma.
  11. Módulo ‘ContentAdapter’
    Fichero de configuración de recursos.
  12. Módulo ‘Validator’
    Componente de validación.
  13. Módulo ‘ContentManagementSystems’
    Configuración del gestor de contenidos.

Propiedad ‘LOG4J_Config’

Apunta al archivo de configuración de las trazas del servidor Web, relativo a la ruta de instalación. El archivo especifica, bajo el esquema que LOG4J impone para su configuración, las especificaciones de funcionamiento del logger que el WasComponents usa para volcar las trazas. El WasComponents vuelca por cada operación realizada las trazas correspondientes, configurables en el archivo configurado bajo esta propiedad.

Ejemplo Propiedad ‘LOG4J_Config’

 <property name="LOG4J_Config" value="logs/traces.xml" />

Propiedad ‘Working_Mode’

Indica el modo de trabajo.Los valores se encuentran definidos en la clase org.morfeo.tidmobile.server.ServerConstants

  • Desarrollo: DEVL (Constante S_WMODE_DEV)
No cachea las páginas JSP y cada vez que se hace una petición se compila.
  • Producción PROD (Contante S_WMODE_PROD)
Cachea páginas JSP.

Ejemplo Propiedad ‘Working_Mode’

 <property name="Working_Mode" value="DEVL" />

Módulo ‘Global’

Configuración general de la aplicación.

Propiedad ‘Appl_Config’

Especifica el fichero de configuración específico de la aplicación en desarrollo.

Ejemplo Propiedad ‘Appl_Config’

 <property name="Appl_Config" value="MyApplication.xml" />


Propiedad ‘Appl_Initializer’

Las aplicaciones pueden definir una clase inicializadora, la cual se encargará de llevar a cabo las tareas de inicialización de los componentes que cada aplicación use internamente. Por ejemplo, la inicialización de un pool de conexiones, la obtención de stubs, etc. El inicializador de la aplicación es una clase Java ordinaria que debe implementar la interfaz org.morfeo.tidmobile.servlet.ApplInitializer

Ejemplo Propiedad ‘Appl_Initializer’

 <property name="Appl_Initializer" value="org.morfeo.tidmobile.examples.MyApplInitializer" />

Propiedad ‘Profile_Manager’

Especifica la clase que implementa la interfaz org.morfeo.tidmobile.server.IProfileManager la cual publica los métodos que permiten a la aplicación especificar las acciones a ejecutar en orden para obtener el perfil de usuario. El Gestor de Perfil es el encargado de calcular el perfil del usuario cada vez que se crea una nueva sesión de usuario. El perfil del usuario puede ser cualquier objeto y así lo refleja el único método publicado por esta interfaz. MyMobileWeb es responsable de almacenar el perfil del usuario en el contexto de sesión del usuario. Para recuperarlo basta con que la aplicación llame a: org.morfeo.tidmobile.server.util.ContextUtil.getUserProfile, pasando el Contexto.

Ejemplo Propiedad ‘Profile_Manager’

 <property name="Profile_Manager" value="org.morfeo.tidmobile.examples.MyProfileManager" />

Propiedad ‘First_Application_OP’

Especifica la primera operación de aplicación (OP), que se aplicará automáticamente una vez superada la etapa de Login.

Ejemplo ropiedad ‘First_Application_OP’

 <property name="First_Application_OP" value="InitialMenu" />

Propiedad ‘Default_Language’

La plataforma de Canal de Movilidad proporciona soporte a la internacionalización de aplicaciones. Aun cuando las aplicaciones no dispongan


de la capacidad de multiidioma, siempre deben proporcionar un idioma por defecto, tal y como se indica en el siguiente ejemplo.

Ejemplo Propiedad ‘Default_Language’

 <property name="Default_Language" value="es_ES" />

Propiedad ‘Installed_Languages’

Especifica la lista de lenguajes naturales instalados en la aplicación separador por el carácter “,”.

Ejemplo Propiedad ‘Installed_Languages’

 <property name="Installed_Languages" value="eng_US,es_ES" />

Módulo ‘LoginManager’

El framework proporciona distintos gestores de Login que permiten manejar distintos mecanismos de autenticación en las aplicaciones. Un Gestor de Login debe implementar la interfaz IloginManager, con los métodos:

  • getLogin
  • getPass
  • login( user, pass )

La plataforma proporciona algunos Gestores de Login para ser usados por la aplicación.

  • NoLogin

Si la aplicación no requiere autenticación

Ejemplo NoLogin

 <property name="Login_Manager" value="org.morfeo.tidmobile.server.login.NoLogin" />

  • RemoteUserLogin

La autenticación se realiza por un “elemento externo” que propaga un RemoteUser

Ejemplo RemoteUserLogin

 <property name="Login_Manager" value="org.morfeo.tidmobile.server.login.RemoteUserLogin" />

  • CustomLogin

Toma el usuario y contraseña de la request http

Ejemplo CustomLogin

 <property name="Login_Manager" value="org.morfeo.tidmobile.server.login.CustomLogin" />

  • CustomLoginLDAP

Toma el usuario y contraseña de la request HTTP y lo valida contra un servidor LDAP

Ejemplo

 <property name="Login_Manager" value="org.morfeo.tidmobile.server.login.CustomLoginLDAP" />
 <property name="LDAP_Api_Config" value="directory.properties" />
 <property name="Login_Header_Id" value="My-Header"/>
 <property name="Login_Param_Id" value="USER_VAL" />
 <property name="Pass_Param_Id" value="PASS_VAL" />

Módulo ‘FlowEngine’

El Gestor de Flujo o Gestor de Dialogo es el componente fundamental que debe proporcionar la aplicación. Se trata de un componente que en todo momento debe decidir en el lado servidor que acciones ejecutar ante un evento provocado por el usuario. Las acciones a ejecutar dependerán del control, del evento, de la OP actual, de la presentación actual y en general de datos presentes en el contexto. Las posibles acciones a ejecutar son:

  • Navegar hacia otra presentación (dentro de la misma OP).. La presentación se especifica mediante un nombre que es igual al nombre del fichero XML origen de la presentación. Esta será una acción terminal dentro del flujo.
  • Ejecutar una OA, cuyo nombre será el especificado en el fichero de configuración de OAs.
  • Llamar a otra OP. Esta será una acción terminal dentro del flujo.
  • Mostrar un mensaje. Esta será una acción terminal dentro del flujo.

Para facilitar a las aplicaciones la ejecución de estas acciones, MyMobileWeb proporciona una interfaz denominada ActionExecutor, la cual proporciona métodos para ejecutar dichas acciones. Un Gestor de Flujo para la aplicación debe implementar la clase org.morfeo.tidmobile.server.flow.IFlowEngine.. Dicha interfaz publica un único método el cual es invocado automáticamente por MyMobileWeb cuando se requiera. Cuando se implementa el Gestor de Flujo debe tenerse en cuenta la clase RequestData, la cual proporciona acceso al contexto, al control, event, etc, y la clase ContextUtil que permite recuperar datos bien conocidos del Contexto. Gestor de flujo basado en manejadores de eventos Para facilitar la construcción de flujos más o menos complejos MyMobileWeb proporciona un Gestor de Flujo basado en manejadores de eventos. Este gestor delega en determinadas clases especificadas por el programador las cuales contienen en métodos bien conocidos el código necesario para responder a los eventos ocasionados por el usuario en el lado cliente. Estas clases deben residir en una estructura de paquetes bien conocida. La forma de especificar este Gestor de Flujo es especificando como Gestor de Flujo a la clase: org.morfeo.tidmobile.server.flow.TidMobileFlowEngine y sobre la propiedad Handler_Package_Base el paquete a partir del cual van a residir las clases manejadoras de eventos.

Propiedad ‘Flow_Handler’

Aquí el programador especifica la clase que actúa como punto de entrada al flujo que debe implementar la aplicación.

Ejemplo Propiedad ‘Flow_Handler’

 <property name="Flow_Handler" value="org.morfeo.tidmobile.server.flow.TidMobileFlowEngine" />

Propiedad ‘Handler_Package_Base’

Especifica el paquete base que almacena los manejadores de eventos.

Ejemplo Propiedad ‘Handler_Package_Base’

 <property name="Handler_Package_Base" value="org.morfeo.tidmobile.examples.testf" />

Módulo ‘PresentationAdapter’

Indica la ruta relativa del directorio donde están alojadas las presentaciones generadas por la herramienta Generador JSP.

Ejemplo Módulo ‘PresentationAdapter’

<property name="Presentations_Directory" value="jsp" />

Módulo ‘OAController’

Indica la ruta relativa del fichero de configuración de las OA’s de la aplicación.

Ejemplo Módulo ‘OAController’

 <property name="OA_Descriptor_File" value="OAConfig.xml" />

Módulo ‘URLManager’

La plataforma incorpora internamente un Gestor de URLs, el cual se encarga de generar las URLs que contienen las presentaciones y las bases de rutas relativas. Para poder generar dichas URLs se necesita conocer cual es el contexto sobre el cual se instaló la aplicación y como se ha mapeado el Servlet DriverHTTP ( Fichero web.xml).

Propiedad ‘Context_Name’

Especifica el nombre de contexto donde la aplicación está instalada.

Ejemplo Propiedad ‘Context_Name’

 <property name="Context_Name" value="testmc" />

Propiedad ‘Navigate_Path’

Es el PATH de navegación que será especificado por todas las presentaciones.

Ejemplo Propiedad ‘Navigate_Path’

 <property name="Navigate_Path" value="DH" />

Debe ser creado el correspondiente mapeo en el fichero web.xml.

Módulo ‘MessageManager’

Localización de los ficheros de mensajes.

Ejemplo Módulo ‘MessageManager’

 <property name="Messages_Directory" value="i18N/messages" />

Módulo ‘LiteralManager’

Configuración del módulo de manejo de literales. Los literales serán tanto los proporcionados por el framework, como los obtenidos al aplicar la extracción de literales sobre las presentaciones con la herramienta LiteralExtractor.

Propiedad ‘Literals_Directory’

Ruta donde se almacenan los descriptores de literales.

Ejemplo Propiedad ‘Literals_Directory’

 <property name="Literals_Directory" value="i18N/literals" />

Propiedad ‘Global_Literals_Subdirectory’

Subdirectorio que contiene los ficheros XML’s de literales para toda la aplicación.

Ejemplo Propiedad ‘Global_Literals_Subdirectory’

 <property name="Global_Literals_Subdirectory" value="All" />

Módulo ‘ContentAdapter’

Configuración del módulo manejador de recursos. Existen recursos en las aplicaciones, típicamente imágenes, los cuales dependen en gran medida de las capacidades de los dispositivos. Para satisfacer el requisito de mostrar el recurso más adecuado para cada terminal, se maneja el concepto abstracto de identificador de recurso que dispone de distintas instancias. Ejemplo: un recurso img1, el cual está disponible en jpg, gif y wbmp y con distintos tamaños. Es responsabilidad del desarrollador definir en el sistema de ficheros de recursos estas instancias, para que el MyMobileWeb framework se encargue de enviar la mejor instancia a cada terminal

Propiedad ‘Images_Path’

Directorio relativo al fichero que contiene la descripción de los recursos (imágenes).

Ejemplo Propiedad ‘Images_Path’

 <property name="Images_Path" value="resource/images" />

Módulo ‘Validator’

La plataforma incorpora un Gestor de Validaciones, el cual permite realizar validaciones automáticas a las aplicaciones, sin necesidad de codificarlas. Es posible especificar en el validador una máscara de fecha y hora por defecto.

Propiedad ‘Default_Date_Mask’

Máscara Java para representar fechas.

Ejemplo Propiedad ‘Default_Date_Mask’

 <property name="Default_Date_Mask" value="dd/MM/yyyy" />

Propiedad ‘Default_Time_Mask’

Formato por defecto de hora.

Ejemplo Propiedad ‘Default_Time_Mask’

 <property name="Default_Time_Mask" value="hh:mm:ss" />

Módulo ‘ContentManagementSystems’

Declaración y configuración del gestor de contenidos (CMS).
MyMobileWeb contempla la integración con gestores de contenidos, permitiendo asociar contenidos a los controles visuales definidos en las presentaciones. Además especifica una interfaz genérica de acceso a los repositorios de contenidos, la cual deberá ser implementada por distintos plugins asociados a distintos CMS, cuyo punto de partida será los conceptos que maneja JSR-170. Para facilitar el trabajo existe desarrollado un plugin genérico de acceso a repositorios de contenidos que soporten JSR-170. En el caso de que un CMS no sea compatible con este estándar, se deberá implementar un plugin específico. Indicar que la única diferencia entre distintos repositorios está en la forma de localizar el objeto ‘Repository’. En la configuración del módulo se debe indicar cual es el repositorio de contenidos por defecto, propiedad ‘Default_CMS’. Posteriormente se abre una sección distinta para cada uno de los repositorios de contenidos (que pueden estar vinculados a CMS de vendedores distintos).

Propiedad ‘Default_CMS’

Repositorio de contenidos por defecto.

Ejemplo Propiedad ‘Default_CMS’

 <property name="Default_CMS" value="DayRI" />

Propiedad ‘Plugin_Class’

Clase que implementa el plugin de acceso al repositorio. Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘Plugin_Class’

 <property name="Plugin_Class" value="org.morfeo.tidmobile.cms.DayCrxPlugin" />

Propiedad ‘Repository_Location’

URL de localización del repositorio. Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘Repository_Location’

 <property name="Repository_Location" value="//epi:1234/crx" />

Propiedad ‘Default_Workspace’

Nombre del workspace que se tomará por defecto. Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘Default_Workspace’

 <property name="Default_Workspace" value="default" />

Propiedad ‘User’

Login de usuario. Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘User’

 <property name="User" value="admin" />

Propiedad ‘Pass’

Contraseña del usuario. Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘Pass’

 <property name="Pass" value="admin" />

Propiedad ‘URL_Base_Path’

Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘URL_Base_Path’

 <property name="URL_Base_Path" value="DI?p=" />

Propiedad ‘URL_Path’

Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘URL_Path’

 <property name="URL_Path" value="cmspath:DayRI:{0}{1}" />

Propiedad ‘URL_Base_UUID’

Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘URL_Base_UUID’

 <property name="URL_Base_UUID" value="DI?u=" />

Propiedad ‘URL_UUID’

Dentro de la sección específica de cada repositorio.

Ejemplo Propiedad ‘URL_UUID’

 <property name="URL_UUID" value="cmsuuid:DayRI:{0}/{1}" />

Ejemplo de fichero MyMobileWeb.Global

Ejemplo MyMobileWeb.Global.xml

 <?xml version="1.0" encoding="iso-8859-1" ?>
 <configuration name = "root">
   <property name="LOG4J_Config" value="logs/traces.xml" />
   <property name="Working_Mode" value="DEVL" />
   <module name="Global">
     <property name="Appl_Config" value="MyApplication.xml" />
     <property name="Appl_Initializer" value="org.morfeo.tidmobile.examples.MyApplInitializer" />
     <property name="Profile_Manager" value="org.morfeo.tidmobile.examples.MyProfileManager" />
     <property name="First_Application_OP" value="InitialMenu" />
     <property name="Default_Language" value="es_ES" />
     <property name="Installed_Languages" value="eng_US,es_ES" />
   </module>
   <module name="LoginManager">
     <property name="Login_Manager" value="org.morfeo.tidmobile.server.login.CustomLogin" />
   </module>
   <module name="FlowEngine">
     <property name="Flow_Handler" value="org.morfeo.tidmobile.server.flow.TidMobileFlowEngine" />
     <property name="Handler_Package_Base" value="org.morfeo.tidmobile.examples.testf" />
   </module>
   <module name="PresentationAdapter">
     <property name="Presentations_Directory" value="jsp" />
   </module>
   <module name="OAController">
     <property name="OA_Descriptor_File" value="OAConfig.xml" />
   </module>
   <module name="URLManager">
     <property name="Context_Name" value="testmc" />
     <property name="Navigate_Path" value="DH" />
   </module>
   <module name="MessageManager">
     <property name="Messages_Directory" value="i18N/messages" />
   <module name="LiteralManager">
     <property name="Literals_Directory" value="i18N/literals" />
     <property name="Global_Literals_Subdirectory" value="All" />
   </module>
   <module name="ContentAdapter">
     <property name="Images_Path" value="resource/images" />
   </module>
   <module name="Validator">
     <property name="Default_Date_Mask" value="dd/MM/yyyy" />
    <property name="Default_Time_Mask" value="hh:mm:ss" />
   </module>
   <module name="ContentManagementSystems">
     <property name="Default_CMS" value="DayRI" />
     <module name="DayRI">
       <property name="Plugin_Class" value="org.morfeo.tidmobile.cms.DayCrxPlugin" />
       <property name="Repository_Location" value="//epi:1234/crx" />
       <property name="Default_Workspace" value="default" />
       <property name="User" value="admin" />
       <property name="Pass" value="admin" />
       <property name="URL_Base_Path" value="DI?p=" />
       <property name="URL_Path" value="cmspath:DayRI:{0}{1}" />
       <property name="URL_Base_UUID" value="DI?u=" />
       <property name="URL_UUID" value="cmsuuid:DayRI:{0}/{1}" />
     </module>
     <module name="Alfresco">
       ............
     </module>
   </module>
 </configuration>

Configuración del gestor de propiedades

Remitirse a la guía del generador para conocer el modo de configuración del gestor de propiedades.

Configuración del catálogo de recursos

Existen recursos en las aplicaciones, típicamente imágenes, los cuales dependen en gran medida de las capacidades de los dispositivos. Para satisfacer el requisito de mostrar el recurso más adecuado para cada terminal, se maneja el concepto abstracto de identificador de recurso que dispone de distintas instancias. Ejemplo: un recurso img1, el cual está disponible en jpg, gif y wbmp y con distintos tamaños. Es responsabilidad del desarrollador definir en el sistema de ficheros de recursos estas instancias, para que el MyMobileWeb framework se encargue de enviar la mejor instancia a cada terminal

Estructura

Las instancias aplicables a todos los dispositivos se colocarán bajo el directorio del recurso o bien en la subcarpeta generic. Para aquellas instancias específicas de una determinada familia de dispositivos o bien una determinada tecnología se alojarán en una subcarpeta cuyo nombre será el de la familia o tecnología indicada. Por ejemplo, una instancia aplicable tan solo para dispositivos wml_1 se colocará bajo la subcarpeta wml_1.

La plataforma en el momento de decidir la instancia a enviar a cada dispositivo, tomará aquella que por sus características mejor se visualice en el dispositivo. Esta instancia será tomada de aquella subcarpeta que corresponda con su familia o bien tecnología en el caso de que se encuentre definida. Si por el contrario no aparece, buscará la mejor instancia entre todas las definidas para el recurso.

Figura 3-4: Estructura de directorio de un recurso

Imagen:DirectoryStruct.png

Además de lo anterior, hay que tener en cuenta que los recursos soportan multiidioma. Para ello, se ha de insertar un nivel de carpeta con el código del país, por ejemplo para España es_ES. La forma de obtención de la mejor instancia es la siguiente:

  • Si existe definición de familia o tecnología.
  • Si dentro de esta subcarpeta están definidas instancias para el lenguaje

actual, el sistema sólo seleccionará entre éstas.

  • Si no, tan sólo se elegirán las que cuelgan directamente de la familia y

no de otro lenguaje.

  • Si no existe definición de familia o tecnología.
  • Con definición de lenguaje (carpeta con código de país) bajo la

carpeta generic se opta sólo por estas instancias.

  • Sin definición de lenguaje seleccionará entre todas las instancias

menos las definidas para otros lenguajes.

Configuración de las Operaciones de Aplicación

Se definen mediante un fichero XML, en el cual se indica la clase que implementa dicha OA Se garantiza que por cada OA sólo existe una instancia en toda la aplicación accedida a la vez por n hilos de ejecución. La OA debe implementar la interfaz ApplicationOperation

  • Init, ejecutado una única vez en toda la aplicación
  • Execute, se coloca el código de la OA o Recibe como parámetro el contexto
  • LA OA toma datos del contexto y deja datos en el contexto Estructura

El fichero OAConfig que define las operaciones de la aplicación tiene la siguiente estructura:

OAConfig.xml

 <?xml version="1.0" encoding="iso-8859-1" ?>
 <OAConfiguration>
   <OA id="PSTypes" class="org.morfeo.tidmobile.examples.oa.TypesPS"/>
   <OA id="Nationalities" class="org.morfeo.tidmobile.examples.oa.Nationalities"/>
   <OA id="Sex" class="org.morfeo.tidmobile.examples.oa.Sex"/>
   <OA id="Chmenu1_traductor" class="org.morfeo.tidmobile.examples.oa.Chmenu1_traductor"/>
   <OA id="Clients" class="org.morfeo.tidmobile.examples.oa.Clients"/>
   <OA id="chmenu1_m1_OA" class="org.morfeo.tidmobile.examples.oa.Chmenu1_m1_OA"/>
 </OAConfiguration>

Etiquetas y atributos

Cada OA se define mediante la etiqueta OA, la cual tiene dos atributos.

  • id, identificador unívoco de operación de aplicación.
  • Class, clase que implementa dicha operación de aplicación.

Configuración de la aplicación

Este fichero contiene la configuración específica de la aplicación, la que el desarrollador necesite añadir para su desarrollo.

Estructura

La estructura que debe tener este documento de configuración es la siguiente:

MyApplication.xml

 <?xml version="1.0" encoding="iso-8859-1" ?>
   <configuration name = "root">
     <property name="DataSource_Name" value="SalesForce" />
   </configuration>

Etiquetas y atributos

El nodo raíz del documento debe ser la etiqueta configuration. Esta etiqueta posee el atributo:

  • name.nombre de la configuración.

Los nodos hijos de esta etiqueta son property y module, donde name y value son los atributos de property y name de la etiqueta module. A su vez, module puede contener como etiquetas hijas a property.