Desarrollo Web: Ficheros, Servicios Web, Validación y Tecnologías del Lado del Servidor
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 20,32 KB
Manejo de Ficheros
Se pueden trabajar con ficheros: CSV, XML y ficheros de texto.
Ficheros CSV
Los ficheros CSV son documentos de formato abierto para representar datos en forma de tabla y que pueden ser procesados en Excel. En estos ficheros se separan las filas por saltos de línea y las columnas por un separador (en general suele utilizarse “,”).
Ficheros XML
Los ficheros XML se utilizan hoy en día para el intercambio de información estructurada y está basado en un lenguaje de etiquetas.
Funciones en PHP para trabajar con ficheros
fopen
: abre un fichero.fclose
: cierra un fichero.fread
: lee un fichero.fwrite
: escribe en un fichero.feof
: indica el final del fichero.fgetcsv
: lee un fichero CSV.fputcsv
: escribe un fichero CSV.
Trabajar en JSP con ficheros
- Para trabajar con ficheros de texto hay que crear un fichero si este no existe (
File
), un objetoPrintWriter
para escribir en él y/o un objetoBufferedReader
si lo que queremos es leer la información que este contiene. - Para trabajar con ficheros CSV hay que crear un objeto
CsvWriter
para escribir en ellos yCsvReader
para leerlos. - Existen también métodos para facilitar el trabajo con ficheros en JSP.
Otro tipo de ficheros son los XML, para trabajar con ellos se convierte este en un objeto DOM que permite recorrer la estructura en forma de árbol. Existen métodos para trabajar con objetos DOM.
Servicios Web
Un servicio Web es un conjunto de protocolos y estándares que permiten comunicar dos sistemas a través de una red. Habitualmente los servicios Web actúan para intercambiar datos (comunicarse), entre dos aplicaciones. Estas aplicaciones suelen estar desarrolladas en lenguajes de programación distintos. Además, pueden estar en plataformas (sistemas operativos o arquitecturas) diferentes.
Mecanismos y Protocolos Implicados
Estos protocolos se consideran independientes. El objetivo es dinamizar las posibilidades de comunicación, seleccionando el protocolo adecuado a cada caso particular. Al conjunto de servicios y protocolos de un servicio Web, se le llama Web Services Protocol Stack (pila de protocolos de servicios Web). Sirven para definir, implementar, localizar y hacer que un servicio Web interactúe con un cliente. La pila de protocolos se divide en cuatro partes que podemos denominar servicios:
- Servicio de transporte.
- Servicio de mensajería.
- Servicio de descripción.
- Servicio de publicación.
- Servicio de descubrimiento.
Servicio de Transporte
Es el responsable del envío de mensajes entre las aplicaciones a través de la red. Trabaja en el nivel más bajo, encargándose de cómo se codifica la información, sin preocuparse de su formato. Establecer la conexión y el puerto que se va a usar. Generalmente se utiliza el protocolo HTTP. Puede utilizar otros protocolos como, SMTP (protocolo de correo electrónico), FTP (protocolo de transferencia de ficheros) o BEEP (protocolo específico para servicios Web).
Servicio de Mensajería
Es responsable de la codificación de los mensajes. En él se especifica qué contienen los datos que se intercambian entre las máquinas. El lenguaje utilizado para los mensajes es XML. Existen varios protocolos para este servicio, que interactúan con el lenguaje XML para ofrecer el servicio de mensajería:
- SOAP.
- XML-RPC (Remote Procedure Call mediante XML) que utilizan el servicio de transporte HTTP exclusivamente.
- REST (Representational State Transfer), una técnica de arquitecturas software para sistemas, que maneja tipos de datos distribuidos en la Web.
- La forma más simple de implementar el protocolo es enviar páginas XML directamente sobre el protocolo HTTP.
Servicio de Mensajería (XML-RPC)
Es un protocolo que hace una llamada a un procedimiento remoto (RPC), que codifica las llamadas utilizando el lenguaje XML. Creado en el año 1998 por Dave Winer. Para la comunicación de los mensajes en la red utiliza HTTP.
Servicio de Mensajería (SOAP)
Es la evolución del protocolo XML-RPC. Utiliza XML como lenguaje de comunicación. Es independiente al protocolo de transporte. Permite la ejecución de métodos, que actúan sobre diferentes objetos, en diferentes plataformas, para que estos puedan comunicarse entre sí.
Servicio de Descripción
Para comunicarse el cliente de un servicio Web y el propio servicio Web, tienen que llegar a un acuerdo. Se debe decidir los detalles del transporte de los mensajes y el contenido de los mismos a través de un documento (descripción del servicio). La descripción del servicio se usa para describir la interfaz pública de un servicio Web. Para describir un servicio se puede utilizar:
- XML-RPC:
- Se necesita conocer de antemano las funciones y los métodos que proporciona el servidor y el lenguaje en el que están escritos.
- Es más limitado en comparación con WSDL y no existe una metodología para descubrir servicios en una red, como ocurre con su predecesor.
- La implementación del mismo es mucho más sencilla, aunque menos escalable.
- WSDL:
- Se encarga de publicar la interfaz pública de un servicio Web, es decir, especificar la sintaxis y los mecanismos para el intercambio de mensajes.
- Está basado en XML y define los requisitos del protocolo y el formato de los mensajes, para interactuar con el listado de operaciones que proporciona el servidor.
- Las operaciones que soporta, se describen de una forma abstracta. Una vez descritas se casan con el protocolo de red elegido (servicio de transporte) y el formato del mensaje (servicio de mensajería).
- Un cliente que se va a conectar, puede leer el WSDL y visualizar qué funciones están disponibles para el servicio y cómo puede utilizarlas.
- Se compone de los siguientes elementos: tipos de datos, mensajes, tipos de puerto, bindings (protocolo de comunicación usado), servicios (conjunto de puertos y direcciones).
Servicio de Descubrimiento
§EselquecentralizaunregistrocomúndeserviciosWeb,demaneraquelasempresasquegeneranserviciosWeb,puedanpublicarsulocalizaciónydescripción.§OASISsufragaelprincipalcatalogodenegociosdeinternet,alcualseledenominaUDDI.
§UDDIesunserviciodedirectoriodondelasempresaspuedenregistrarybuscarserviciosWeb.§Características:oEsundirectorioparaalmacenarinformacióndeserviciosWeb.oEsundirectoriodeinterfacesdeservicioquesedescribeatravésdelprotocoloWSDL.
oUDDIsecomunicaatravésdeSOAP.oUtilizalosestándaresdelaW3CydeOASIS.oSiguelasrecomendacionesdelaIETF(InternetEngineeringTaskForce),grupoespecialsobreingenieríadeInternet.
§Ventajas:oDescubreserviciosWebenlíneadeunáreadenegocio.oDaaconocerladefinicióndecomohabilitarelcomerciounavezdescubiertoeláreadenegocio.oLocalizanuevosclientesydaaccesoalosactuales.oAmplialaofertayextiendeelalcancedelmercado.
oEliminabarreras,permitiendolaparticipacióndeclientesatravésdeinternet.oLadescripcióndelosserviciosyprocesosdenegocio,enentornodeprogramaciónúnico,estándar,escalableyseguro.§AlosdocumentosalmacenadosensistemasUDDIselosdenominaficherosderegistroyconstandelassiguientespartes:oPaginasblancas:especificalosdatospersonalesdelaempresapropietariadelserviciocomoladirección,contactos,identificacióndelaempresayotrosidentificadoresconocidos.
oPáginasamarillas:seespecificalacategoríaindustrial.oPáginasverdes.describelainformacióntécnicadelservicioWeb.Generación de un Servicio Web§Habitualmenteseusanentornosdedesarrollointegradoscomo:oEclipse:entornodecódigoabiertoymultiplataforma.ParagenerarserviciosWebsenecesitainstalarunaversióndeJDKyunservidordeaplicaciones(ejemplo:Tomcatyelusodelibreríasparasuimplementación.TambiénsepuedendesarrollarconellenguajePHP.oNetBeans:entornodedesarrollolibrequeconstademuchosmódulosparaextenderlo.UnodelosmódulosrelacionadosconlosserviciosWeb,NetBeansEnterprisePack,proveedesoporteparalacreacióndeaplicacionesorientadasaservicios(SOA),incluyendoherramientasdeesquemasXML,uneditorWSDLyuneditorBPELparaserviciosWeb.PermiteutilizarmásdeunservidordeaplicacionescomoGlassFishoApacheTomcat.
oMicrosoftVisualStudio:entornodedesarrolloparasistemasoperativosWindows.SoportavarioslenguajescomoVisualC++,VisualC#,VisualJ#,ASP.NETyVisualBasic.NET.PermitedesarrollarserviciosWebencualquieradelosentornosquesoportalaplataforma.NET.Descripción de un servicio Web§EsteservicioeselencargadodedescribirlosserviciosWebydecómoaccederaellos.§EstábasadoenXML.§WSDLesellenguajequelaorganizaciónW3CrecomiendaparaladescribirunservicioWeb.EstelenguajeseutilizaparadescribirserviciosWebytambiénparalocalizarlos.
LoselementosprincipalesdeunWSDLysudefiniciónson:§NetBeans cuando genera un servicio Web, también crea la descripción del servicio (WSDL).O Una de las formas acceder a la descripción del servicio WSDL es a través del enlace que mostrábamos en el punto anterior.o Otra es de las formas es cuando pulsamos con el botón derecho del ratón sobre el servicio Web y se muestra el menú. Hay que pulsar sobre “Test Web Service”. En la parte superior aparecerá un enlace en el que indica “WSDL File”. Al pulsar en él se abrirá el fichero de descripción.§Si se introduce la URL situada en schema Location en una ventana del navegador ,se muestran los tipos de datos asociados.Interfaz de un servicio Web§Para consumir un servicio un cliente debe ser capaz de interpretar el documento de descripción (WSDL) e invocar a los métodos implementados.§Netbeans tiene un asistente para crear la interfaz de un servicio Web a partir de su WSDL.Servicios§El WSDL es un lenguaje basado en XML que se utiliza para describir servicios Web. También se encarga de como acceder a ellos.§Consta de los siguientes tipos de operaciones:§SOAPesunprotocolobasadoenXMLparapermitirelintercambiodeinformaciónatravésdeunprotocolodecomunicacionescomoHTTP.
Validación con JSP§Para validar campos JSP cuenta con:O Clases que permiten comprobar si una variable cumple con una serie de condiciones.O Beans que son componentes de softwarere utilizables.O JSF o Struts que implementan el modelo vista controlador y facilitan las labores de validación.§El usuario enviara y recibirá los datos a través de un formulario generado en un JSP. Las peticiones en cambio se enviaran aun servlet que será el encargado de validarlos.Modificación de la estructura de la página Web§Con la estructura de árbol DOM que propone laorganización estandarizadora W3C ,es posible modificarla estructura de una página Web sin que el código tenga que salir del propio navegador.§Ventaja:o La flexibilidad que supone a la hora de generar páginas interactivas tanto a nivel visual como funcional.§Inconveniente:O Al ejecutar se el código en el navegador del cliente, la fiabilidad de que ciertos procesos se realizan de una forma correcta es nula.§PROBLEMA: al recuperar los valores no se puede garantizar que el tipo de dato coincida con el que se espera obtener.§SOLUCIÓN: deben comprobarse previamente los valores que llegan desde el navegador.Validación con ASP§Para validar campos ASP puede utilizar:O Código ASP embebido en el HTML.O Controles de validación de ASP.NET. que se utilizan para validar los datos de entrada del usuario. En el caso de que el control de entrada no pase la validación, se muestra un mensaje de error al usuario.§Añadir una restricción:oNOT NULL (campo obligatorio y que no puede contener un valor nulo):oUNIQUE (campo cuyo valor debe ser único):oPRIMARY KEY(clave primaria de una tabla):oFOREIGN KEY(clave ajena de una tabla):oDEFAULT (campo con valor por defecto):oCHECK (establece la condición que debe cumplir un campo):oAUTO_INCREMENT (crear índice que se autoincrementa):Página Web interactiva § Es una página que permite variar el aspecto y comportamiento en función de decisiones que toma el usuario a través de la interfaz gráfica de la página. § Se puede utilizar: o Código de script que se ejecuta en el navegador. o Enviar una petición al servidor. Se ejecuta el código en el servidor y genera una nueva página Web que envía al navegador. Al tratarse de una página Web dinámica, en función de los datosintroducidos por el usuario, la página se verá modificada mostrando información definida en la programación. §Se ejecuta código en:O Clienteà navegador Web.O Servidorà motor que interprete el código.§Tipos de código que se ejecutan en el cliente:O HTML: es la base de las páginas Web, este lenguaje describe la estructura y el contenido. La forma en que se interpreta el código por el navegador, es de principio a fin.O JavaScript: permite configurar la interactividad y el dinamismo de la página Web. A través de los eventos de la página, las acciones programadas en este lenguaje, modificaran el aspecto, estructura o visualización de la página. Es interpretado por el navegador y el orden en el que lo hace viene fijado por las llamadas a cada función del código. El código JavaScript, se ejecuta cada vez que ocurre un evento que tenga asociada una función JavaScript.O CSS: es el encargado de definir la presentación de los datos que se indican en el código HTML. El navegador interpreta las características CSS.O XML: es un lenguaje de marcas extensible que permite definir la gramática. El navegador es el encargado de interpretar el código y la forma que tiene de hacerlo es similar a HTML. Este lenguaje necesita de CSS para mostrar los datos. En el caso de no utilizar estilos CSS, el navegador muestra la estructura igual que el código original.O Otros: applets de Java, VBScript,etc.§Tipos de código que se ejecutan en el servidor:O CGI: es un programa que se ejecuta en el servidor para enviar datos al navegador.O Perl: es un lenguaje de programación interpretado. El código se ejecuta einterpreta directamente en el servidor. Este lenguaje permite realizar llamadas a otros subprogramas.O ASP (ActiveServerPages): es la tecnología que Microsoft ha creado para generar páginas Web dinámicas en el servidor. Este lenguaje se ha comercializado como un anexo al Internet Information Services(IIS). Para poder ejecutar el código ASP en el servidor, es necesario que este sea compatible con el lenguaje. El IIS soporta código ASP. El código se embebe entre las sentencias HTML.o PHP: es un lenguaje de programación interpretado, que se ejecuta en el lado del servidor. Este lenguaje tiene las siguientes características:•Tiene una licencia de software libre y de código abierto•Es independiente de la plataforma.•Cuenta con una gran liberaría de funciones y abundante documentación.•Se embebe el código en elHTML.•ElcódigoPHPseinterpretaenelservidoryseenvíaalnavegadorenformadeHTML.oJSPerverPages):lenguajequepermitecrearpáginasconprogramaciónJava.Javaesunlenguajemultiplataforma,portanto,estasaplicacionessepuedenejecutarentodoslosservidoresquetenganlamaquinavirtualinstalada.Librerías§Es un conjunto de subprogramas que sirven para programar una aplicación.§Contienen código y datos que pueden ser llamados desde otro programa principal.§Al incluir el código de librería, este pasa a formar parte del programa principal.API§Es un conjunto defunciones y procedimientos que proveen de bibliotecas(librerías) para ser utilizado por otro programa.§La diferencia con la librería es que las funciones de una API accedenhabitualmente a programas diferentes, permitiendo así generar transparencia al programador.FrameworkEs un conjunto estándar de conceptos y tecnologías con un soporte definido.Se suelen emplear una serie de módulos concretos que facilitan la organización y desarrollo del nuevo software.La mayoría incluyen soporte para programas, bibliotecas y uno o más lenguajes que son interpretados por los programas base del framework para facilitar el desarrollo, agrupar y organizar los componentes del proyecto.ASPASP es capaz de:O Dinamizar, editar, cambiar, añadir, cualquier contenido de una página Web.O Responder a las consultas de los usuarios y a los datos de los formularios HTML que se han enviado.O Acceder a datos y abases de datos, devolviendo resultados al navegador.O Personalizar las aplicaciones Web para que sean más útiles para usuarios individuales.O Es una tecnología veloz y sencilla. Además garantiza la seguridad, ya que el códigono se ve en el navegador. Si se programa de una forma correcta minimiza el tráfico de la red.Librerías y tecnologías ASP§Crearpáginas Web dinámicas:O Introduciendo código embebido con las etiquetas HTML.O Con controles de servidor que son objetos de las páginas Web que se ejecutan cuando el usuario solicita una página. Las características son las siguientes:•Representan el formato en el navegador.•Proporcionan elementos HTML y otros más complejos, como calendarios, o conexiones a bases de datos.•El framework que Microsoft ha facilitado para hacer uso de estos controles es ASP.NET.•Permiten manejar eventos en el servidor dependiendo de la iteración del usuario. Debido a que estos eventos son manejados desde el servidor, es necesario acceder a las propiedades, métodoso eventos de los elementos en el código de servidor.§Existen varios controles de servidor en ASP.Net:O HTML Server Controls: son los mismos que los de HTML pero a nivel de servidor.o ASP.NetWebFormsControls:soncomolosdeHTMLenelladodelservidor.Ejemplo:TextBox,Buttons,etc.O ASP.Net List Controls:permite mostrar el contenido de las bases de datos.O ASP.Net Mobile Controls:tienen la misma funcionalidad que dos anteriores.La diferenciar es ide en que se aplican a los dispositivos cliente,como por ejemplo un dispositivo móvil.O ASP.Net Validation Controls: son los controles de validación. Permiten en el servidor,validar entradas a través de la iteración que el usuario tiene con la aplicación.§Las librerías permiten reducir la redundancia de código y fomenta la reutilización de código.§Para crear una librería se crea una página ASP con las funciones comunes.§Para utilizar el código común, solo hay que llamar a la función correspondiente de la librería.PHP§Funciona en diferentes plataformas (Windows,Linux,Unix,etc.).§Es compatible con casi todos los servidores que se utilizan en la actualidad (Apache,IIS,etc.).§Se puede descargar gratis desde los recursos oficiales de PHP.§Es fácil de aprender y se ejecuta de manera eficiente en el lado del servidor.JSP y Servlets§En Java existen dos tipos de fichero principales que se ejecutan en el servidor:O JSP: facilita la presentación de los documentos. Su objetivo es estructurar la interfaz de usuario ,de una forma clara y ordenada.O Servlet: son programas que se ejecutan en el lado del servidor para generar páginas Web. Provee de una mayor flexibilidad en la programación de la lógica de negocio.Páginas interactivas§Ejecutar scripts de navegador para solicitar otra página al servidor con un cuadro de diálogo es una de las tareas más comunes para establecer una comunicación con el usuario.§La respuesta al evento capturado es la redirección a otra página.§En la petición de la nueva página se puede enviar variables a través de la URL para controlar desde que evento o página viene el usuario.Obtención remota de información§Para recuperar campos en el servidor, se utilizan los formularios de HTML.§Se enviara el formulario desde el cliente al servidor.