Objetos del Servidor

Los Objetos de Servidor agrupan diferentes funcionalidades, como las carpetas virtuales, la creación de archivos dinámicamente en el momento de la descarga, la generación de webservices o el acceso vía webdav a los ficheros almacenados en la base de datos.

Sin embargo, todas estas funcionalidades tienen un punto en común: Todas ellas definen una URL "especial" en el servidor, y el acceso a estas funcionalidades se realiza principalmente mediante esta URL. Por ello, la categoría de 'Objetos de servidor' permite crear una estructura de carpetas propia, en la que se pueden añadir los diferentes objetos dinámicos que compartirán el árbol de carpetas.

Podrás encontrar los siguientes botones:
Agrega un Objeto del Servidor.
Crear carpeta nueva.
Mover elementos seleccionados.
Eliminar elementos seleccionados.

Los objetos de servidor que se pueden crear son:
• Archivos dinámicos
• Carpetas virtuales
• Web services
• Carpetas webdav
• >Aplicación web

Archivos Dinámicos

Un Archivo Dinámico es un archivo descargable por el usuario, cuyo contenido se genera dinámicamente en el servidor en el momento de realizar la petición. Esta funcionalidad es útil para realizar exportaciones de una consulta a la base de datos a ficheros CSV, XML, etc... También se puede utilizar para integrar contenido dinámico en archivos Flash, o para realizar otro tipo de integraciones con aplicaciones de diversa índole.

El contenido del archivo se define programando un código eBDML que se ejecutará cuando un usuario intente descargarse el archivo. Se debe tomar en consideración que a menos que se esté creando un archivo de tipo HTML, en la mayoría de los casos no interesará que Kanecode introduzca HTML en el archivo dinámico, con lo que es recomendable el uso de la etiqueta eBDML <eBD:CODE> (véase el Manual de eBDML). Si el archivo dinámico genera un archivo XML, se puede aplicar con posterioridad una plantilla de transformación XSLT de forma que el archivo resultante que recibe el usuario ya sea del tipo que necesite y esté formateado. También se puede utilizar la visibilidad, para limitar los usuarios que pueden descargarse o visualizar el archivo.

  • Editar archivo dinámico
En esta ficha podemos encontrar las siguientes opciones:
Nombre Nombre identificador del archivo.
Nombre del archivo Nombre y extensión del archivo, que se utilizará para invocarlo.
MIME Type Tipo de extensión MIME que será utilizada por el archivo.

Forzar download Si esta opción está activa, al invocar el archivo, este será descargado, no abierto.
Editor Abre al editor eBDML donde se determinará la funcionalidad del archivo dinámico.
Plantilla XSL Selector donde se puede seleccionar la plantilla XSLT para realizar la transformación del archivo.

Carpetas virtuales

Las Carpetas virtuales se utilizan para configurar diferentes URLs que deben acceder a zonas o páginas concretas de la aplicación de forma directa.
Es decir, se pueden configurar carpetas que en realidad no existen en el servidor, pero Kanecode mostrará la zona o página indicada en la carpeta virtual.

  • Opciones de contenido
Podrás encontrar lo siguiente:
Página Se usa para definir una página de Kanecode como destino de este enlace, para indicar cuál es la página se debe hacer clic en el botón que está al lado y se abrirá una ventana con un árbol mostrando toda la estructura de páginas creadas y carpetas que las contienen, basta con hacer clic en la página deseada y guardar (haciendo clic) en el botón que aparece en la barra superior.

Zona Se utiliza para definir una zona como destino de un enlace, es posible además de indicar una zona indicar una página a mostrar en esa zona.

URL Se utiliza para indicar que el destino del enlace es una URL (no una página Kanecode ni una Zona) puede ser una dirección de cualquier Web, o la dirección de algún recurso (por ejemplo un archivo dinámico), etc.
Número de parámetros Permite especificar el número de parámetros que se pasarán en el enlace. Una vez se haya especificado el número de parámetros y se guarden los cambios, se mostrarán unos campos con la etiqueta valor (se mostrarán tantos como número de parámetros se hayan indicado), en estos campos se especificara el valor a pasar con cada parámetro. También es posible utilizar funciones y variables globales de Kanecode, además de literales.
Titulo Aparece el título al pasar con el ratón por encima del enlace.
Destino Target donde apunta el enlace.
Forzar salto Si se activa ignorará si el nombre de la carpeta virtual ha sido escrito en mayúsculas o en minúsculas.
Modificar parámetros Si se activa, se permitirá modifica o añadir parámetros, encriptados, en la url que llame a la carpeta virtual.

Carpetas WebDAV

Las carpetas WebDAV definen un sistema de ficheros "virtual", accesible usando el protocolo webdav. En este sistema de ficheros virtual, tanto los ficheros como las carpetas son en realidad registros de tablas de la base de datos, de forma que cada vez que el usuario crea un nuevo fichero, se está generando un nuevo registro en la tabla.

Al crear la carpeta webdav, se debe seleccionar en qué tabla/campo se almacenan las carpetas y dónde los ficheros. Se puede usar cualquier campo de tipo fichero como origen para los ficheros. Este tipo de carpetas permite extender las funcionalidades ofrecidas por un sistema de archivos común, ya que en los registros de la base de datos se puede almacenar información adicional sobre el fichero, de forma que se mantenga una meta-información de forma automática (se pueden usar eventos, valores por defecto, etc.)

Las carpetas webdav permiten definir visibilidad a nivel global, filtros a nivel de ficheros y carpetas, y funciones para calcular los permisos de lectura y escritura en cada caso, de modo que permite una gran flexibilidad en la personalización de los elementos que puede ver/editar un usuario. Se ha añadido la posibilidad de activar relaciones para usarlas en los filtros, así como la opción de usar campos de tipo imagen como contenedores de los ficheros.
También se pueden definir carpetas webdav que no sean recursivas (es decir, que solo definen 1 nivel de carpetas), y crear nuevas carpetas webdav anidadas. De esta forma, se pueden definir varios niveles de carpetas dentro de una carpeta webdav donde cada nivel utiliza una tabla diferente para almacenar las carpetas y/o los ficheros.

En la botonera podemos observar:
Permite guardar la configuración.
Crea nuevas carpetas anidadas al WebDav.
Borra el WebDav.

Las opciones de una carpeta webdav son:

  • Tabla de ficheros

Permite seleccionar la tabla donde se almacenarán los ficheros.

Una vez seleccionada se seleccionar los campos correspondientes y los permisos:
Campo Fichero Campo de tipo fichero, donde se guardará el fichero real.
Identificador de Carpeta Campo que guardará el identificador de la carpeta donde se encuentra ubicado el fichero.
Metadatos Campo de tipo "texto largo" donde Kanecode almacenará metadatos sobre el fichero (básicamente, bloqueos para permitir editar el fichero).
  • Tabla de carpetas
Observaras lo siguiente:
Nombre de carpeta Campo de tipo "texto corto", donde se guardará el nombre de la carpeta.
Identificador de Carpeta Campo que guardará el identificador de la carpeta.
Identificador de carpeta padre Campo que guardará el identificador de la carpeta donde se encuentra ubicada la carpeta.
Metadatos Campo de tipo "texto largo" donde Kanecode almacenará metadatos sobre el fichero (básicamente bloqueos para permitir editar el fichero).
Valor de la carpeta raíz Valor que se usará en los campos "Identificador de carpeta", tanto de los ficheros como de las carpetas, para identificar a la carpeta raíz. Si los campos Identificador de Carpeta son de tipo "Auto numérico", es recomendable usar el valor 0. Si no, debe buscarse un valor que no pueda aparecer nunca en ninguna carpeta.
En ambas fichas se puede observar las siguientes opciones para otorgar los permisos:
Filtros Permite definir relaciones de la tabla y los filtros.
Permiso lectura Abre un editor eBDML donde se puede programar la función que controla los permisos de lectura.
Permiso escritura Abre un editor eBDML donde se puede programar la función que controla los permisos de escritura.
Crear ficheros/ carpetas Permite crear ficheros o carpetas si se activa.
Editar ficheros/ carpetas Permite editar los ficheros o carpetas si se activa.
Borrar ficheros/ carpetas Permite borrar los ficheros o carpetas si se activa.

WebServices

Los objetos de servidor de tipo WebService representan un conjunto de funciones relacionadas entre sí, que se pueden ejecutar de forma remota usando los protocolos SOAP o HTTP.

La librería usada por Kanecode únicamente soporta rpc/encoded, por lo que puede no funcionar correctamente si consumimos un WebService que use la codificacion document/literal. Al crear un webservice, se debe especificar un namespace único, que permite identificar de forma universal la definición del servicio. De forma automática, Kanecode generará el archivo WSDL para facilitar la integración del servicio con otras aplicaciones. Para cada una de las funciones que se crean en el WebService se deben especificar los parámetros de entrada y de salida, indicando para cada uno el nombre y el tipo de datos que representa. También se pueden especificar tipos de datos propios, como secuencias de n elementos, listas o arrays.

El código de las funciones del WebService se programa en eBDML, usando la instrucción eBD:ARGS para obtener el valor de los parámetros recibidos, y eBD:RETURN para devolver los parámetros de salida. Para ejecutar las funciones del webservice usando HTTP. Estas requests HTTP pueden devolver el resultado en XML, JSON o texto plano. La posibilidad de devolver una estructura de datos en JSON como resultado hace que los webservice sean un aliado muy eficaz de la programación a nivel de cliente (AJAX).

Kanecode permite definir visibilidad a nivel de todo el webservice, o especificar una visibilidad propia para cada función.

En la imagen anterior, en la barra es posible distinguir los siguientes botones:
Guardar los cambios.
Añadir funciones al webservice.
Borrar funciones.
  • Editar WebService
Encontrarás lo siguiente:
Nombre Nombre del webservice.

Namespace Nombre del namespace del webservice.
Tipo Tipo de codificación del webservice, pueden ser:

• RPC/Enconded

• Document/Literal
  • Funciones

En esta ficha se listan las distintas funciones y sus respectivos parámetros de entrada y salida, que se hayan creado para el webservice. Pulsando sobre el nombre de la función se accede a la ficha de edición de la función.

En esta ficha se observa en la barra los siguientes botones:
Guardar los cambios.

Añadir parámetros de entrada/salida al webservice.
Al añadir un parámetro aparece un ficha en la que se debe especificar si el parámetro será de entrada o de salida, tal y como se muestra en la imagen siguiente.
Borrar parámetros.
  • Editar Función

Pulsando sobre el botón que tiene un lapiz, se abre el editor eBDML, donde se debe escribir el código de la función.

  • Parámetros
Las opciones de configuración de los parámetros son las siguientes:
Nombre Nombre del parámetro.
Tipo de datos Selector de los diferentes tipos de datos disponibles.

Los tipos de datos disponibles son:
eBDSessionID, string, boolean, decimal, float, double, time, date, hex y base64

Formato de salida Formato de la salida para la request por HTTP GET/POST.
Puede ser XML, JSON o Texto plano.
Autotyping Activa el método Autotyping de SOAP, para declarar tipos de elementos no declarados.
  • Tipos de datos
    En esta ficha se definen los tipos de datos complejos personalizados que se puedan requerir en la función del webservice.
En la parte superior podemos ver los siguientes botones:
Guardar los cambios.
Añadir tipos de datos.
Borrar tipos de datos.
Nombre Nombre del tipo de datos complejos. Este tipo de datos aparecerá en el selector de tipos de datos al editar la función.
en la imagen + , permite añadir propiedades adicionales al tipo de datos.
Tipo complejo Selección del tipo de dato complejo, estos pueden ser:

• Secuencia de N elementos.
• Lista de alguno de los tipos de datos disponibles.
• Array de tipo de datos disponibles, para uso de SOAP.

Aplicación Web

Los objetos de servidor de tipo Aplicación Web, permiten publicar tanto el contenido estático como una aplicación Java (.war), dentro de un contexto independiente. Cuando se despliega un archivo comprimido, los diversos archivos que lo componen aparecen en como elementos individuales, así como el archivo comprimido.

En la parte superior podemos observar los siguientes botones:
Guardar los cambios.
Desplegar un fichero comprimido en el servidor.

Los formatos soportados son: zip, war, tgz, tar.gz, tar.bz2, tar, par, lzma, jar, gz, bz.
Recarga el contenido.
Añade archivos adicionales.
Añade carpetas.
Mueve carpetas.
Borra elementos seleccionados.
  • Editar WebApp
Encontrarás lo siguiente:
Nombre Nombre de la aplicación web.
Motor de Ejecución Selección entre contenidos estáticos o contenedor de servlets JSR154.