Este documento trata sobre aplicaciones orientadas al cliente-servidor. Explica brevemente la historia y filosofía de Java, así como programas orientados a redes y la tecnología de sockets. Luego presenta tres programas de ejemplo de complejidad creciente: un programa sencillo, uno intermedio y un juego de tres en raya.
2. ¿Quién Soy?
Juan Carlos Pérez
perezpardojc@gmail.com
twitter.com/perezpardojc
www.linkedin.com/in/jcperezdoteu
3. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa a.
7. Programa b.
8. Programa c.
¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
4. 1. Aplicaciones Java.
Las aplicaciones Java están típicamente
compiladas en un bytecode, aunque la compilación en
código máquina nativo también es posible. En el tiempo
de ejecución, el bytecode es normalmente interpretado o
compilado a código nativo para la ejecución, aunque la
ejecución directa por hardware del bytecode por un
procesador Java también es posible.
5. 1. Aplicaciones Java.
La implementación original y de referencia del
compilador, la máquina virtual y las bibliotecas de
clases de Java fueron desarrollados por Sun
Microsystems en 1995. Desde entonces, Sun ha
controlado las especificaciones, el desarrollo y
evolución del lenguaje a través del Java Community
Process, si bien otros han desarrollado también
implementaciones alternativas de estas tecnologías de
Sun, algunas incluso bajo licencias de software libre.
6. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa a.
7. Programa b.
8. Programa c.
¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
7. 2. Historia de Java.
Java se creó como una herramienta de programación
para ser usada en un proyecto de set-top-box en una
pequeña operación denominada the Green Project en
Sun Microsystems en el año 1991. El equipo (Green
Team), compuesto por trece personas y dirigido por
James Gosling, trabajó durante 18 meses en Sand Hill
Road en Menlo Park en su desarrollo.
8. 2. Historia de Java.
El lenguaje se denominó inicialmente Oak (por un roble
que había fuera de la oficina de Gosling), luego pasó a
denominarse Green tras descubrir que Oak era ya una
marca comercial registrada para adaptadores de tarjetas
gráficas y finalmente se renombró a Java.
9. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa a.
7. Programa b.
8. Programa c.
¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
10. 3. Filosofía de Java.
El lenguaje Java se creó con cinco objetivos
principales:
•Debería usar la metodología de la programación
orientada a objetos.
•Debería permitir la ejecución de un mismo programa
en múltiples sistemas operativos.
•Debería incluir por defecto soporte para trabajo en red.
•Debería diseñarse para ejecutar código en sistemas
remotos de forma segura.
•Debería ser fácil de usar y tomar lo mejor de otros
lenguajes orientados a objetos, como C++.
11. 3. Filosofía de Java.
Para conseguir la ejecución de código remoto y
el soporte de red, los programadores de Java a veces
recurren a extensiones como CORBA (Common Object
Request Broker Architecture), Internet Communications
Engine o OSGi respectivamente.
Orientado a objetos.
Independencia de la plataforma.
12. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa a.
7. Programa b.
8. Programa c.
¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
13. 4. Programas orientaros a la red.
El modelo cliente - servidor
TCP es un protocolo orientado a conexión. No hay
relaciones maestro/esclavo. Las aplicaciones, sin
embargo, utilizan un modelo cliente/servidor en las
comunicaciones.
Un servidor es una aplicación que ofrece un
servicio a usuarios de Internet; un cliente es el que pide
ese servicio. Una aplicación consta de una parte de
servidor y una de cliente, que se pueden ejecutar en el
mismo o en diferentes sistemas.
15. 4. Programas orientaros a la red.
Los usuarios invocan la parte cliente de la
aplicación, que construye una solicitud para ese
servicio y se la envía al servidor de la aplicación que
usa TCP/IP como transporte.
El servidor es un programa que recibe una
solicitud, realiza el servicio requerido y devuelve los
resultados en forma de una respuesta. Generalmente
un servidor puede tratar múltiples peticiones(múltiples
clientes) al mismo tiempo.
16. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa a.
7. Programa b.
8. Programa c.
¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
17. 5. Tecnología de Sockets.
Socket designa un concepto abstracto por el
cual dos programas (posiblemente situados en
computadoras distintas) pueden intercambiar cualquier
flujo de datos, generalmente de manera fiable y
ordenada.
El término socket es también usado como el
nombre de una interfaz de programación de
aplicaciones (API) para el stack de protocolos de
Internet TCP/IP, provista usualmente por el sistema
operativo.
18. 5. Tecnología de Sockets.
Los sockets de Internet constituyen el
mecanismo para la entrega de paquetes de datos
provenientes de la tarjeta de red a los procesos o hilos
apropiados. Un socket queda definido por un par de
direcciones IP local y remota, un protocolo de
transporte y un par de números de puerto local y
remoto.
Que un programa sea capaz de localizar al otro.
Que ambos programas sean capaces de
intercambiarse cualquier secuencia de octetos, es
decir, datos relevantes a su finalidad.
19. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa Sencillo.
7. Programa Medio.
8. Programa Juego 3 en raya.
9. ¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
20. 6. Programa Sencillo.
Se trata de un pequeño programa que se conecta
en red.
Muestra un aviso.
23. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa Sencillo.
7. Programa Medio.
8. Programa Juego 3 en raya.
9. ¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
27. Agenda
1. Aplicaciones Java.
2. Historia de Java.
3. Filosofía de Java.
4. Programas orientaros a la red.
5. Tecnología de sockets.
6. Programa Sencillo.
7. Programa Medio.
8. Programa Juego 3 en raya.
9. ¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
31. ¿?¿?¿?Ruegos y Preguntas¿?¿?¿?.
“Podéis descargaros el contenido de la presentación y sus códigos
desde mis perfiles en facebook, twiteer y linkedin!!!!!!!”
32. Referencias:
• http://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%
C3%B3n)
• http://es.wikipedia.org/wiki/Socket_de_Internet
• http://es.wikipedia.org/wiki/Cliente-servidor
• http://www.java2s.com/
• http://www.oracle.com/technetwork/java/codeconv-
138413.html
• FUNDAMENTOS DE JAVA Herbert Schildt mcgraw-hill
• Programación en java 2 schaum mcgraw hill
• Programación avanzada en java 2 - schaum mcgraw hill