Chapter 1 – Introduction

Download Report

Transcript Chapter 1 – Introduction

Programación de Aplicaciones Web
COTI 4210 LJ1
• Prof. Elio Lozano
• Web Page: www.uprb.edu/profesor/elozano
• Emails: [email protected]
[email protected]
• Oficina: CC5
• Telef. X. 3305
• Horas de Oficina: LMV 1:30 – 4:30 pm
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Contenido
• Historia del Internet
• Programación en Internet
– Programación en el Cliente
(Client Side)
– Programación en el Servidor
(Server Side)
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Internet
•
Arpanet (DoD)
– http://www.isoc.org/
•
Es una red de comunicaciones a nivel mundial de
miles de redes de comunicación local. Estas
redes usan protocolos de comunicación
estándares.
•
Estas redes a su vez están compuestas de
millones de computadoras de uso comercial,
educacional, de gobierno y personal.
•
Estadísticas
– http://www.internetworldstats.com/
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
1-3
Internet
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
1-4
Historia del Internet
Finales de los 60
• ARPA (Advanced Research Project
Agency) – Department of Defense
– Auspicia investigaciones graduadas
– Conferencia para presentar ideas –
Universidad de Illinois en UrbanaChampaign
• Planes concretos de interconectar una
parte de ellos
• Incrementar velocidad de comunicación
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
Finales de los 60
• ARPAnet
– Daría base inicial al Internet
– Funcionó en septiembre de 1969
– Propósitos
•Comunicación entre investigadores
•Siguiera funcionando aunque parte se
cayera
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
Finales de los 60
– Beneficio inicial: En vez del compartir
de recursos resulto ser la capacidad de
lo que llamarían E-Mail
– Características principales
• Intercambio de información simultáneamente
• Tecnología de packet switching : mezcla de
paquetes a través de las líneas de
comunicación
• Sin tener un control centralizado: no se
cae por pérdida parcial de estaciones o
red
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
Finales de los 60
• ARPAnet: Primera configuración
– 4 estaciones
• Universidad de California en Los Ángeles
• Instituto de Investigación de Stanford
• Universidad de California en Santa Bárbara
• Universidad de Utah
– Protocolo inicial: TCP
• Transmission Control Protocol
• Asegura el direccionamiento adecuado de los
mensajes
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
• TCP/IP
– Surge con el establecimiento de otras
redes como ARPAnet
– IP (Internetworking Protocol) permite
que pueda haber comunicación entre las
distintas redes
– Da paso a la verdadera Red de Redes
INTERNET
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
• Evolución:
– Primero sólo Universidades e Instituciones
de Investigación
– Luego: La milicia
– Finalmente: Gobierno permite acceso al
comercio
• Oposición de investigadores y militares por
probable degradación en tiempo de respuesta
• Ocurrió lo opuesto con la entrada de más y mejores
recurso por la inversión privada
• Aumento dramático en ancho de banda y disminución
en costos
• Efecto directo en la economía nacional
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
1989
• World Wide Web (WWW)
• Desarrollado por Tim Berners-Lee de CERN
(Laboratorio Europeo de Partículas Físicas)
• Permite localizar y ver documentos de
multimedios por medio de programas y
protocolos particulares
• Se monta sobre el Internet tras reconocer
su potencial
• El Internet y el WWW están consideradas en
la lista de las invenciones más importantes
y revolucionarias en toda la existencia
humana
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
1991
• Tim Berners-Lee funda el World Wide
Web Consortium (W3C)
– Se dedica al desarrollo de tecnologías
no propietarias para el Web
– Meta principal: Hacer que el Web este
disponible para todos
– Trabaja la estandarización de
Tecnologías: Recomendaciones
– Emite los estándares (recomendaciones)
principales para el establecimiento de
enlaces entre computadoras
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
1993
• Primer Browser con un Interfaz Gráfico
sencillo
– MOSAIC
– Creado por Marc Andreessen
1994
• Marc Andreessen y Jim Clark
– Fundan Netscape Communications Corporation
– Tirada de Netscape Navigator 1.0
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
1995
• Emerge Java oficialmente como un lenguaje
para el Web
– Lenguaje Orientado a Objetos similar a C++
creado por James Gosling
– Desarrollado por Sun Microsystems
1996
• WebTV
1997
• Microsoft Internet Explorer 4.0 (Los puso
en el mapa)
• 50 millones conectados al Internet
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
1998
• Telecommuting
– Más de 10,000,000 trabajando en remoto desde
sus casas
• Boom del E-Commerce
–
–
–
–
E-Bay
Dell
E*Trade
Amazon.com
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Historia del Internet
1999
• Microsoft Office 2000 ofrece el poder crear
contenido para el Internet directamente pudiendo
publicar sin conversiones ni tener que hacer
procedimientos especializados
• Apache para Linux comienza a ganar terreno como
la mejor opción entre los Web Servers
2000
• Ventas de E-Commerce exceden los $100 billones
2002
• Wireless Internet
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Crecimiento
Hoy: Más de 1 billón de nodos
(350 millones en el 2000)
1984
Más de 1,000 nodos
1969
Cuatro nodos
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Tomado de Discovering Computers
2005, Thomson Learning y de
Internet World Stats 2008
Crecimiento
• Según Datos del Gobierno del año
2000:
– El tráfico del Internet se duplica
cada 100 días
– Crecimiento anual de más de 700%
– Para capturar la atención de 60
millones de personas
• Tomo a la radio 15 años
• Tomo a la televisión 30 años
• Tomo al Internet 3 años
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Programación en Internet
• Muchas tecnologías existentes hoy
• Tecnologías basadas en Objetos
– Object Oriented Programming
• Base inicial en programación Web:
– Java (1995)
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Tecnología Basada en Objetos
• Beneficios: Componentes de
Programación Reutilizables, Más fácil
de Entender, Corregir y Modificar
• Su origen se remonta a un lenguaje de
1967 conocido como Stimula 67
• Este dio base junto a C, a C++ y de hay
a todos los demás lenguajes que usaron
a C++ como base
• Es la base en la programación para el
Internet y el Web
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Programación en Internet
• Dos áreas principales
– Programación en el Cliente (Client
Side)
• HTML, XHTML, CSS, Java, Java Applets,
JavaScript, Dynamic HTML, XML, VBScript
– Programación en el Servidor (Server
Side)
• JavaScript, Web Servers (IIS, Apache), ADO,
WML, VBScript, ASP, XML, Perl, CGI, Python,
PHP, ColdFusion, Java, Java Servlets, JSP
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Programación en el Cliente
(Client Side)
XHTML
Extensible Hypertext Markup Language
• Lenguaje de marcas para identificar los
elementos de un documento del Web que permite
a un Browser el mostrarlo en pantalla.
• Sale directamente de HTML con algunos cambios
provenientes de XML. HTML a su vez surgió de
SGML (Standardized General Markup Language)
que fue un estándar muy utilizado en
aplicaciones industriales poderosas desde el
1986 (en la creación de documentos).
• Surge directamente de una Recomendación del
World Wide Web Consortium (W3C).
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
XHTML
• Está basado en el manejo de tags y
atributos
• Permite:
– incorporar textos, imágenes, líneas y
caracteres especiales
– incorporar enlaces de texto, de imágenes y
mapas de imágenes
– incorporar listas, tablas, formas para la
entrada de datos y frames para la
presentación de varios documentos a la vez
– controlar el estilo que contendrá la
información al ser presentada por un
browser
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
CSS
Cascading Style Sheets
• Desarrollar páginas para el Web
especificando el estilo que tendrán sus
elementos separado de la estructura
interna específica del documento en XHTML.
• Permite manejo más simple de las páginas e
implementar cambios de forma fácil y
rápida, principalmente si son muchas.
• Se pueden implementar estilos sobre
elementos específicos, sobre el contenido
de una página en su totalidad o sobre el
contenido de un Site definiéndolos en un
archivo compartido.
Ejemplo
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Java
• Código similar a C en su base pero mucho
más fácil que C++ en muchos aspectos
– Sin pointers
– No es híbrido, es totalmente Orientado a
Objetos
– Utilidades simples para manejo gráfico y de
eventos
– Manejo automático de memoria
– Capacidad de ¨Multithreading¨
– Multi-Platform con su capacidad de correr
aplicaciones en páginas del Web
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Java
• Permite a los desarrolladores lo
siguiente:
– Crear páginas de Web con contenido dinámico e
interactivo
– Desarrollo de aplicaciones para Internet e
Intranet
– Desarrollar aplicaciones de empresas a gran
escala
– Proveer aplicaciones para unidades electrónicas
de consumo (celulares, PDA´s)
– Otros
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
JavaScript
• Object-Based Scripting para el Web
• Es uno de los lenguajes tipo Script más
utilizado hoy
• Es base principal de programación para el Web
en las aplicaciones actuales desde el punto de
vista del cliente
• Es compatible con los Browsers más utilizados
actualmente
• Permite manipular elementos de una página de
Web mientras ésta se procesa en el Browser
• También permite manipular su contenido
• Puede interactuar con la codificación en
XHTML, los objetos de Dynamic HTML, etc.
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Código
Corrida
Dynamic HTML (DHTML)
• Modelo de Objetos desarrollado por Microsoft
• Convierte los elementos que bajan en una página
de Web en Objetos que pueden ser manipulados con
JavaScript
• Combinados permite el manejo de:
– Eventos, Filtros y Transiciones para animaciones y otros
efectos, Controles para el Manejo de Datos, Gráficas
estructuradas con Active X y Direct Animation que es
parte de Direct X, además de otros controles como el de
Sprite para animaciones
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Dynamic HTML (DHTML)
El modelo de DHTML de Microsoft está
compuesto por varias tecnologías de uso
gratuíto entre las que se incluyen:
• XHTML
• JavaScript
• Cascading Style Sheets
• Dynamic HTML Object Model and Event Model
• Active X controls
• Otros
Netscape cuenta con un modelo similar
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
XML
Extensible Markup Language
• Surge también de SGML pero con utilidades muy
mejoradas en términos de usabilidad.
DTD
• Fue creado por el W3C para describir datos en
un formato portátil. Eso implica que no es en
sí un lenguaje.
XML
• Se ha convertido en un “lenguaje” para crear
otros “lenguajes” tipo markup. Entre los
creados se incluyen: XHTML, MathML (para
matemáticas), VoiceXML (para reconocer voz),
SMIL (para presentaciones con multimedios),
CML (para química) y XBRL (para intercambio de
datos financieros).
• Es una de las tecnologías de mayor importancia
hoy y se utiliza en un sin número de áreas.
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
VBScript
Visual Basic Script
• Desarrollado por Microsoft
• No funciona con todos los Browser aunque
se logra hacer algo con la ayuda de Plugins
• Es el más utilizado para escribir ASP´s
para servidores
• Su uso se circunscribe a aplicaciones de
Internet puras de Microsoft y a Intranets
basados en Microsoft
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Programación en el Servidor
(Server Side)
Web Servers
• Los servidores de Web son considerados una
aplicación multi-nivel (multitiered)
• Ejemplo de 3 niveles:
– nivel de datos (data/bottom tier)
• base de datos de la organización
– nivel intermedio (middle tier)
• recibe un pedido del cliente, accede y maneja
los datos en el servidor y envía lo pedido al
cliente
– nivel de cliente (client/top tier)
• presenta la página y ejecuta las
instrucciones de scripting contenidas en ella
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Web Servers
• Los servidores más
utilizados en la industria:
–Apache Web Server
•Es el más popular de los Web
Servers por su estabilidad,
eficiencia y portabilidad
•Es Open Source (gratis y
modificable)
•Corre en Unix, Linux o Windows
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Web Servers
–Internet Information Server
(IIS)
•Servidor Web a nivel empresa
(enterprise) que es parte de
Windows 2000
•Al configurarlo en cualquier
máquina permite que ésta despache
documentos de Web
•Funciona sólo para Windows
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
ASP
Microsoft Active Server Pages
• Pueden ser programadas en varios lenguajes de los
que el más utilizado es VBScript
• Implementan lógica de negocios a nivel intermedio
• Trabaja con el concepto de dynamic content
generation
– Mediante un lenguaje de Script se generan
documentos en HTML, XHTML, XML u otros
• Permite:
– almacenar archivos de texto
– generar queries para bases de datos en Access o
SQL Server
– utilizar controles de Active X en el lado del
servidor
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Perl/CGI
Practical Extraction and Report Language /
Common Gateway Interface
• Es la tecnología más utilizada en el
desarrollo de programación del lado del
servidor
• A pesar de todas las herramientas
existentes se espera que continúe su
supremacía
• Permite:
– interactuar con bases de datos MySQL
– hacer búsquedas de patrones de caracteres con el
uso de regular expressions
– leer y escribir datos del usuario en cookies
• Compite con ASP como uno de los mejores
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Perl/CGI
Perl
• Lenguaje de programación creado en 1987 por
Larry Wall
• Fue creado para dar seguimiento a proyectos
grandes y generar reportes
• Se supone es más flexible que C
• Es uno de los más usados hoy para programación
en el Web
• Tiene capacidades excelentes para el
procesamiento de textos
• Permite la generación más directa y simple de
tareas comunes de programación
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Perl/CGI
CGI
• Es un protocolo mediante el cual los usuarios
interactúan con las aplicaciones residentes en un
servidor de Web
• Provee a los Browsers mecanismos indirectos para
lograr comunicarse con esas aplicaciones
• Para lograrlo se interactúa mediante un CGI
Script que puede estar escrito en distintos
lenguajes para lo que el más utilizado es Perl
por ser poderoso, flexible y por haber mucho
código existente para lidiar con situaciones
comunes
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Perl/CGI
Funcionamiento similar al de ASP
• Mediante el CGI Script se procesan los datos
sometidos desde una Forma
• Luego se garantiza acceso al ejecutable a
utilizar en el servidor el cual se ejecuta
– Este es por lo general un .cgi o .pl
– Se encuentran en un directorio especial del
servidor conocido como cgi-bin
• Finalmente el ejecutable responde enviando una
página en HTML o XHTML con lo solicitado
– Esta puede contener imágenes, archivos de audio,
archivos de Flash, XML u otros
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Python
• Lenguaje de propósito general que es
interpretado, orientado a objetos y para
distintas plataformas
• Creado por Guido van Rossum
• Permite crear mecanismos de búsqueda a
gran escala, aplicaciones GUI, scripts
de administración, CGI scripts, etc.
• Es gratis y open source
• Su mayor ventaja es que permite el
rápido desarrollo de aplicaciones,
incluyendo las de GUI
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
PHP
Personal Home Page Tools
• Fue creado en 1994 por Rasmus Lerdorf
• En 1997 explotó su popularidad como lenguaje
script
• Excelente para la creación de páginas de Web
dinámicas
• En uso en sobre 6 millones de dominios
• Es Open Source
• Existe para Linux, Unix y Windows y apoya a
bases de datos como MySQL
• Interactúa también con cookies
• Fortaleza: diseñado específicamente para
interactuar con el Web
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Cold Fusion
ColdFusion Markup Language (CFML)
• Diseñado por Allaire y adquirido luego por
Macromedia
• Muy popular en su versión para servidor
• Formato simple basado en tags (al estilo
XHTML)
• Extensión .cfm a la que se llama ColdFusion
template
• Permite desarrollo rápido y dinámico
• Apoya XML, ColdFusion Components y Web
Services
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Java Servlets y JSP
Servlets y Java Server Pages
• Tecnologías del servidor basadas en Java (no
en JavaScript)
• JSPs son extensión de Servlets
• Funcionamiento similar a las tecnologías
descritas con:
– Capacidades excelentes para redes
– Base en Java
• Se fundamentan en el modelo request-response
para su funcionamiento
– El cliente requiere que alguna acción se lleve a
cabo y el servidor la lleva a cabo y le responde al
cliente.
• Están apoyadas por todos los servidores de Web
más importante, incluyendo el de W3C
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Java Servlets y JSP
• JSPs: contenido a enviar al cliente es
casi todo estático y con marcas
• Servlets:
– no siempre producen contenido
– tareas más avanzadas que incluyen el
interactuar con JDBC, con poco o ningún
contenido estático
• Los Servlets son efectivos en el
desarrollo de soluciones para Web que:
– ayuden a proveer acceso seguro a un Sitio Web
– permitan al cliente interactuar con bases de
datos
– generen dinámicamente páginas en XHTML
– mantener información única de la sesión de
cada cliente que este trabajando
Servlet
Prof. Elio Lozano
COTI 4210 KJ1 UPRB
Referencias y Sitios de
Importancia
• Internet & World Wide Web: How to Program, Deitel, Deitel &
Goldberg, Prentice Hall, 2004.
• Programming the Web: An Introduction, McGraw-Hill
Technology Education, 2004.
• Java: How to Program, Deitel & Deitel, Prentice Hall, 2003.
• Discovering Computers 2005, Shelly, Cashman & Vermaat,
Thomson Learning (scsite.com/dc2005).
• Web 101: Making the ‘Net Work for you, Lehnert, Addison
Wesley, 2001.
• World Wide Web Consortium (www.w3c.org)
• www.isoc.org
• www.isocpr.org
• www.xml.com
• www.xbrl.com
• www.apache.org
• www.iisanswers.com
Prof. Elio Lozano
COTI 4210 KJ1 UPRB