Historia del Internet

viraginitysplashInternet and Web Development

Nov 10, 2013 (3 years and 5 months ago)

86 views

Introducción a

la
Programación para Internet

Prof. Miguel Vélez Rubio


Agosto de 2009

Contenido


Historia del Internet


Programación en Internet


Programación en el Cliente

(
Client Side)


Programación en el Servidor

(Server Side)


Referencias y Sitios de Importancia


Resumen y Preguntas

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 Urbana
-
Champaign


Planes concretos de interconectar una parte
de ellos


Incrementar velocidad de comunicación

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

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

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



Historia del Internet


TCP/IP


Surje 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

Historia del Internet


Evolución:


Primero sólo Universidades e Instituciones de
Investigación


Luego: La milicia


Finalmente: Gobierno permite acceso a 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

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

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

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

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

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

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


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

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


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)

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

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


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.


Surje directamente de una Recomendación del World
Wide Web Consortium (W3C).

XHTML


Está basado en el manejo de
tags
y atributos


Permite:


incorporar textos, imágenes, líneas y caractéres
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

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

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

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

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.

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

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

XML

Extensible Markup Language


Surje también de SGML pero con utilidades muy
mejoradas en términos de usabilidad.


Fue creado por el W3C para describir datos en un
formato portátil. Eso implica que no es en sí un
lenguaje.


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 sinnúmero de áreas.

XML

DTD

VBScript

Visual Basic Script


Desarrollado por Microsoft


No funciona con todos los
Browser

aunque
se logra hacer algo con la ayuda de
Plug
-
ins


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

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)


recive un pedido del cliente, accesa 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

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

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


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

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 continue su supremacía


Permite:


interactuar con bases de datos MySQL


hacer busquedas de patrones de caracteres con el uso de
regular expressions


leer y escribir datos del usuario en
cookies


Compite con ASP como uno de las mejores

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

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

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

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

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

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

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

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

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