Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

39
Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano

Transcript of Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Page 1: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Capitulo 2

Plataformas de Desarrollo de Software

Miguel Ángel Niño Zambrano

Page 2: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Agenda• Introducción• Desarrollo del lado del cliente

– HTML, DHTML, Scripts Cliente, Componentes Multimediales.• Desarrollo del lado del Servidor

– CGI, FastCGI, ISAPI, ASP.– Linux / Apache / MySQL / PHP (LAMP).– Windows / IIS / SQL Server / ASP (WISA)– Framework de Desarrollo Web

• J2EE y JSF• .NET

– Entornos de Desarrollo Integrado Web• JAVA BEANS, ECLIPSE, VELNEO, etc.• Visual Studio .NET (VSNET).

• Comparación de Plataformas de Desarrollo.

Page 3: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Introducción

Programación del Cliente:

•HTML•DHTML•SCRIPTS•COMPONENTES

•COM•ACTIVEX

Programación del Servidor:

•CGI•FastCGI & ISAPI•PHP & ASP•FRAMEWORK

•J2EE•.NET

ENTORNOS DE DESARROLLO INTEGRADO DE APILACIONES WEBJAVA BEANS, ECLIPSE, VELNEO, etc.

Visual Studio .NET (VSNET).

Page 4: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Programación del lado del Cliente

HTML, DHTML, Scripts, Cookies, Componentes.

Page 5: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Lenguaje HTML

• Es el lenguaje de creación de páginas Web de las páginas “estáticas”.

• Era imprescindible que la misma información se pudiese ver en diferentes plataformas. Por tanto, Berners-Lee diseñó un lenguaje de estructuración de documentos, no de presentación (ésta se dejaba al programa cliente).

• Como tal, tiene unas reglas que deben ser cumplidas, esto es, una sintaxis, una gramática... igual que el español o cualquier otro lenguaje informático.

• Es además un lenguaje informático, para ser procesado por ordenadores; pero no es un lenguaje de programación.

Page 6: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Ejemplo HTML<html> <head> <title>Curso de Arquitectura y Desarrollo

Web</title> </head> <body bgcolor="lightBlue" text="blue" link="red"

vlink="white"> <h1>Desarrollo de aplicaciones Web</h1> <p>Lista de enlaces</p> <ul> <li><a

href="http://www.aulaclic.es/html/t_1_1.htm">Curso de HTML</a></li>

<li><a href="http://www.dhtmlya.com.ar/">Tutorial de DHTML</a></li>

<li><a href="#Contacto">Contacto</a></li> <ul> <h2><a name="Contacto">Contacto</a></h2> <p><font color="red">Dirección:</font>C/ Tulcan

- Popayán - Unicauca</p> <p><font color="red">Teléfono:</font>8209800

Ext: 2119</p> </body></html>

Cabecera

Cuerpo

Lista

Enlaces

Detalles de Presentación

Page 7: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Estructura y Elementos del HTML

• DTD es la Declaración de tipo de documento.

• Un elemento contiene:– Una etiqueta inicial

(nombre entre signos < y > ): <etiqueta>

– La etiqueta inicial puede contener atributos: <etiqueta atributo=“valor”>

• El elemento debe acabar con una etiqueta final con el mismo nombre, anteponiendo un /.

• El contenido del elemento es todo lo que hay entre la etiqueta inicial y la final

• El contenido pueden ser otros elementos

• En caso de un elemento vacío puede usarse la sintaxis:<etiqueta/>

Page 8: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Cabecera, Texto, Listas HTML

Page 9: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Enlaces, Imágenes, Formateo de texto y Tablas HTML

Page 10: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Objetos, Imágenes, Marcos y Formularios HTML

Page 11: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Scripts -HTML

Page 12: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

DHTML – HTML Dinámico• El DOM (Document Object Model - Modelo

Objeto Documento), es importante para trabajar DHTML.

• Con el DOM, todos los elementos HTML se insertan en un árbol cuyos nodos son las marcas HTML y las hojas, los valores propiamente dichos de las marcas

Page 13: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Mantenimiento de la Sesión

• HTTP es un protocolo sin estado.• Algunas de las alternativas son:

– Usar el objeto Session (o similar) provisto por los entornos de programación como ASP o J2EE (Servlets, JSP...).

– Almacenar toda la información de la sesión, a mano, en una cookie (por ejemplo, mediante JavaScript).

– Una combinación de cookie (para guardar un ID de usuario) y bases de datos

– “URL rewriting”, entre otras.

Page 14: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Funcionamiento de las Cookies

La cookie es enviada al navegador desde el servidor y si este la acepta permanece en él.

Las páginas piden la cookie al navegador...

El navegador las envía, permitiendola identificación del usuario por partedel servidor

Las cookies son pequeñas porciones datos que son almacenados localmente por el Navegador en forma de pequeños ficheros detexto

Page 15: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Ventajas del Uso de Cookies• Menor uso de los recursos del servidor: Los

servidores “sin estado” no necesitan reservar y mantener recursos para guardar el estado de la sesión

• Fácil escalabilidad y uso de clusters: Al no tener estado, cualquier servidor puede atender a cualquier cliente. No hace falta que un cliente siempre sea atendido por el mismo servidor, ni ningún tipo de distribución del estado entre servidores.

• La sesión del cliente podría sobrevivir a una caída del servidor: Un reintento por parte del cliente con el mismo URL suele funcionar.

Page 16: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Inconvenientes del Uso de Cookies• Privacidad: Otros servidores podrían leer información

almacenada en las cookies del cliente no son válidas para guardar números de tarjeta, contraseñas y cosas por el estilo.

• Los datos pueden ser alterados: Un usuario podría modificar el fichero de una cookie. Lo mismo ocurre con otros mecanismos de cliente: URL, formularios, etc.

• Aumenta el tráfico por la red: El estado se transmite con cada petición al servidor

• Implementación compleja: Mantener “a mano” el estado en el cliente puede ser realmente complicado si queremos hacerlo de manera robusta.

• Tamaño de datos limitado: Tanto el tamaño máximo permitido por las cookies como la longitud máxima de un URL pueden darnos problemas para almacenar sesiones complejas.

Page 17: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Funcionamiento de un Componente Activex

• ActiveX es un término que hace referencia a un conjunto de tecnologías independientes del lenguaje, que permiten que los componentes de software escritos en diferentes lenguajes funcionen juntos en entornos de red. Los componentes desarrollados bajo esta tecnología se denominan ActiveX.

• ¿Qué son los controles ActiveX?Se trata de pequeñas aplicaciones capaces de interactuar

con el usuario, realizar cálculos o representar datos, y que se insertan en páginas web a través de las etiquetas <OBJECT> y <PARAM>, que se corresponden a las operaciones de inserción del componente y paso de sus parámetros de ejecución.

Page 18: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Componentes Activex

• Los componentes ActiveX: Son piezas de software que el cliente puede programar por su cuenta o comprar a terceros.

• Pueden ser creados con casi todas las herramientas tradicionales de desarrollo. Entre las más conocidas están los lenguajes C++ o Visual Basic. Si tiene algo de experiencia en programación de aplicaciones, puede que le resulte interesante desarrollar sus propios componentes para temas específicos.

• Se ejecutan en el servidor y se utilizan para complementar la funcionalidad de las páginas ASP, Scripts,HTML.

• Ejemplo: http://club.idecnet.com/~ccastano/femepa/160106.htm.

Page 19: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Programación del lado del Servidor

CGI, PHP, Scripts, ASP, Framework (J2EE, .NET).

Page 20: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

CGI: Common Gateway Interface

• CGI no es un lenguaje. Es un protocolo simple para comunicar una página Web con un programa. Por lo anterior el Script CGI puede ser escrito casi en cualquier lenguaje que acepte el servidor de aplicaciones que utilicen las variables de entorno (GET, POST) y los flujos STDIN para leer y STDOUT para escribir. Ejemplos (C, Perl, o script del Shell).

• Estructura de un script CGI– Lee las entradas del Formulario– Procesa las entradas y los datos. – Escribe una respuesta HTML al flujo STDOUT.

Page 21: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Funcionamiento de un CGI

Forma de acceso a la Información:

Page 22: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Practica ejecutar un CGI en ISS 7• Activar características de Windows. En Internet Information

Services, en características de desarrollo de aplicaciones, se habilita CGI. Que por defecto esta deshabilitado.

• En el administrador ISS, en el nombre del PC, se escoge “Restricciones de ISAPI y CGI”. Seleccionar Modificar configuración de característica y habilitar permitir módulos CGI e ISAPI no especificados.

• Habilitar los permisos de ejecución al módulo de CGI en la sección de Asignaciones de controlador.

• Crear un programa en C, compilarlo.• Almacenar el ejecutable en el directorio Web.• Llamarlo desde el navegador.

– Ejemplo de Escritura Simple en una página Web– Ejemplo de Envío y Recepción de Datos GET y POST.

Page 23: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

PHP

• El lenguaje PHP es un lenguaje de programación de estilo clásico, parecido al lenguaje C. PHP

• Se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el servidor como por ejemplo podría ser una base de datos.

• Ejemplo instalación PHP en ISS y ejecución en un programa sencillo.

Page 24: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

MySQL

• MySQL es un sistema de gestión de bases de datos relacionales.

• MySQL software es Open Source.• El servidor de base de datos MySQL es muy

rápido, fiable y fácil de usar.• MySQL Server trabaja en entornos

cliente/servidor o incrustados.• Una gran cantidad de software de

contribuciones está disponible para MySQL.• Ejemplo Uso MySQL y PHP.

Page 25: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

ASP – Active Server Pages• ASP es una tecnología desarrollada

por MS para crear páginas web de contenido dinámico apoyándose en scripts ejecutados en el servidor. Básicamente una página ASP es una mezcla entre una página HTML y un programa que da como resultado una página HTML que es enviada al cliente (navegador).

• Estos scripts o programas pueden en ASP ser escritos en uno de estos dos lenguajes de programación VBScript o JavaScript, pero el más extendido es VBScript, por eso centraremos todo este manual en VBScript y todas las posibilidades que él tiene.

Page 26: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Framework de Desarrollo – J2EE

ProgramaciónEficiente

ExtensibilidadFrente a la demandaDel Negocio.

Integración

applets, aplicaciones Java

servlets, páginas JSP

Contenedores Estándar: Servlet/JSP, EJBDescriptores de Despliegue.APIs acceso Servicios.

Page 27: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

J2EE – Capas de la Arquitectura• Capas:

– Cliente– Web– Enterprise Java

Beans.– Sistemas de

Información Empresarial.

Page 28: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Tipos de Aplicaciones J2EE

• Vista desde un browser utilizando todas las capas.

• Vista desde una aplicación Stan-Alone.

Page 29: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Tipos de Aplicaciones J2EE

• Utilizando una misma capa Web con la lógica de la aplicación.

Page 30: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Framework de Desarrollo – .NET

• .NET es el modelo de desarrollo de Microsoft que hace que el software sea independiente de la plataforma y de los dispositivos, y hace que los datos estén disponibles a través de Internet. El .NET Framework es la infraestructura básica subyacente de .NET.

Page 31: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Características de .NET

• .NET ha sido implementado desde el principio pensando en una arquitectura abierta.

• El objetivo de la plataforma .NET de Microsoft es simplificar el desarrollo Web. Está formada por las siguientes tecnologías principales:– .NET Framework

• El Common Language Runtime (CLR).• Biblioteca de clases.

– Windows Server System– Servicios building block fundamentales– Visual Studio .NET

Page 32: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Componentes del .NET Framework

• Substrato de la plataforma.

• Servicios de aplicaciones.

• Biblioteca de clases del .NET Framework.

• Common Language Runtime.

• Microsoft ADO.NET• ASP.NET• Servicios Web XML• Interfaces de Usuario.• Lenguajes.

Page 33: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Ventajas del .NET Framework

• Basado en estándares y prácticas Web.– HTML (Hypertext Markup Language), HTTP, XML,– SOAP (Simple Object Access Protocol), XSLT (Extensible

Stylesheet– Language Transformation), XPath (XML Path Language)

• Diseñado utilizando modelos de aplicación unificados.• Fácil de utilizar para los desarrolladores: En el .NET

Framework, el código está organizado en espacios de nombres jerárquicos y en clases

• Clases extensibles: La jerarquía del .NET Framework no queda oculta al desarrollador. Podemos acceder y extender las clases

Page 34: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Arquitectura de una Aplicación .NET1. Controles que presentan la

información a los usuarios.2. En un gran número de casos, la

interactuación del usuario con el sistema se realiza de acuerdo a un proceso predecible.

3. Una vez que el proceso de usuario ha recopilado los datos necesarios, éstos se pueden utilizar para realizar un proceso empresarial.

4. Los componentes empresariales implementan la lógica empresarial de la aplicación.

5. Cuando un componente empresarial requiere el uso de la funcionalidad proporcionada por un servicio externo

Page 35: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Arquitectura de una Aplicación .NET6. Para exponer lógica

empresarial como un servicio, es necesario crear interfaces de servicios que admitan los contratos de comunicación (comunicación basada en mensajes, formatos, protocolos, seguridad y excepciones, entre otros) que requieren los clientes.

7. Punto único para organizar el acceso a las diferentes Bases de Datos.

8. Paso de datos entre distintos componentes.

9. Administrar excepciones, autorización, comunicación.

Page 36: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Entornos de Desarrollo Integrado Web – Visual Studio .NET

Page 37: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Entornos de Desarrollo Integrado Web – NETBEANS

•  El NetBeans IDE es un modular, basado en normas, entorno de desarrollo integrado (IDE) escrito en el lenguaje de programación Java. NetBeans El proyecto consiste en una IDE de fuente abierta y una plataforma de aplicaciones, que puede ser usado como un marco genérico para construir cualquier tipo de aplicación.

• Características:– Easy-To-Use Java GUI Builder– Visual Mobile Development.– Ruby and Rails Support.– Visual Web and Java EE Development.– Visual UML Modeling.– C and C++ Development.

Page 38: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

LAMP vs. WISA

• LAMP (Linux, Apache, MySQL, PHP):– Open Source.– Soporte de

comunidad.– Programación

parecida a C, Perl.– Puede utilizar Java.– Se puede ejecutar en

otros S.O.– Programación Visual

con NETBEANS.

• WISA (Windows, IIS, SQL, ASP):– Propietario

– Amplio soporte MSDN, Comunidades.

– Variados Lenguajes de Programación.

– Separa la Lógica y la presentación.

– Programación Visual con VSNET.

Page 39: Capitulo 2 Plataformas de Desarrollo de Software Miguel Ángel Niño Zambrano.

Bibliografía• http://www.webestilo.com/php/.

Programación de PHP.• http://dev.mysql.com/doc/refman/5.0/es/what-is.html.

Manual de MySQL.• Curso práctico de CGI.

http://www.jmarshall.com/easy/cgi/. • Curso de J2EE.

http://www.di.uniovi.es/~dflanvin/docencia/dasdi/teoria/. • Activex.

http://www.arsys.es/ayuda/directorio/productos/hosting/componentes-activex.htm.

• Arquitectura J2EE. http://www.proactiva-calidad.com/java/principal.html.