SlideShare una empresa de Scribd logo
1 de 25
Comunicaciones - Java 1
Indice
 Programacion cliente servidor
 Arquitectura Cliente-servidor
 Definicion de socket
 Ejemplo C/S
 Servlets
 Ejemplo Servlets
 Arquitectura C/S de 3 capas
Comunicaciones - Java 2
Java
Programación Cliente-Servidor
 Internet es un sistema Cliente-Servidor
gigante
 La idea primaria es que debe haber un sitio
donde descargar la información bajo
demanda de los clientes
 Aquí surge el problema de Internet, cuando
hay un solo servidor que atiende a muchos
clientes, si se produce un cambio que deba
distribuir,
 El rendimiento general del sistema decrece
exponencial al aumento del número de
clientes
Comunicaciones - Java 3
Programación
Cliente-Servidor(II)
 El funcionamiento del Web sigue este mismo principio
 El navegador fue el primer paso adelante en la
expansión de Internet, permite visualizar un mismo
fichero en plataformas diferentes
 Por contra la interactividad con el usuario, y la
posibilidad de ejecutar programas en la parte del
usuario, esta muy limitada
 Se proporcionó al lenguaje HTML de botones de
entrada de datos, cajas de selección, etc, pero cuando
habían muchos clientes colgando, el colapso del
servidor era casi seguro
 Surgen otras alternativas como los CGI, para
descargar al servidor y que el cliente tambien hiciese
algo
Comunicaciones - Java 4
El Modelo Cliente - Servidor
 Arquitectura de sistema distribuido
- Clientes: que dan acceso a usuarios a los
servicios
- Servidores: contienen información, servicios, ...
 Cliente y Servidor son roles en una aplicación
- Una máquina puede ser cliente en un servicio y
servidor en otro
 Muy extendido en programación distribuida
- Utilizando el interfaz de sockets
Comunicaciones - Java 5
Arquitectura Cliente-Servidor
 Aplicaciones modulares, distribuidas y
personalizadas.
 Java permite la extensión más potente de servidores
de aplicaciones
 ¿Cómo?. Cuando se accede a un applet de otro
ordenador, el navegador carga la clase principal y va
cargando dinámicamente el resto de clases a medida
que son necesarias
 Si alguna clase ya reside en la memoria local, no
debera cargarla, incrementa el rendimiento
Comunicaciones - Java 6
Arquitectura Cliente-Servidor(II)
 Gracias a su rigurosa concepción de orientación a
objetos, es muy fácil programar aplicaciones
modulares
 Las funciones que deben ser accedidas por un
usuario pueden programarse con applets
 Basta instalar los distintos “módulos” de la aplicación,
en un único servidor
 Los usuarios acceden a las aplicaciones a través de
su navegador, personalizarlos y tener interfaces
familiares
 El uso del web en los últimos años perite reducir en
forma considerable el proceso de aprendizaje y
formación en la aplicación
Comunicaciones - Java 7
Arquitectura Cliente-Servidor
Ventajas
 Una aplicación de biblioteca se liberaría de la
preocupación de instalar las aplicaciones localmente
y de actualizar sucesivas versiones
 Los applets se distribuyen fácilmente por la www,
las dificultades de trafico en una red no afectan la
funcionalidad de estos, pues ocupan un tamaño no
más de 10 o 20 Kb según aplicación.
 Como se dijo antes no es necesario cargar los
applets enteros, y
 La facilidad de distribución tiene otra ventaja, como
es el coste de la aplicación en cuanto a
actualizaciones y la de asegurar que todos los
clientes tienen la misma versión software
Comunicaciones - Java 8
Arquitectura Cliente-Servidor
Ventajas (II)
 La independencia de Java con respecto a la
plataforma permite que las aplicaciones, funcionen
igual en todos los ordenadores
 El usuario sólo cargará la utilidad específica de la
aplicación que necesite
 Toda la arquitectura que acabamos de explicar hace
pensar que tan solo se necesita en el ordenador un
navegador sin tener que usar ningún S.O. o
configuración hardware preferente
Comunicaciones - Java 9
Thin clients (Clientes delgados)
 A esta arquitectura se le conoce como “thin clients”
en contra de los fat clients (“Clientes gruesos”) que
utilizan la mayor parte de aplicaciones de gestión
 Los fat clients necesitan trabajar con un S.O
determinado, cantidad de Ram, capacidad de disco,
etc..
 En esta nueva arquitectura, es más fácil optimizar las
presentaciones, ya que los thin clients requieren
estaciones menos potentes
Comunicaciones - Java 10
¿Qué es un socket?
 Un socket es un punto final en un enlace de
comunicación de dos vías entre dos programas
que se ejecutan en la red.
 Las clases Socket son utilizadas para
representar conexiones entre un programa
cliente y otro programa servidor.
 El paquete java.net proporciona dos clases --
Socket y ServerSocket -- que implementan los
lados del cliente y del servidor de una conexión,
respectivamente
Comunicaciones - Java 11
Ejemplo de cliente en Java
 El programa EchoTest, conecta con el Echo
del servidor(en el port7)mediante un socket.
 El cliente lee y escribe a través del socket
 Echotest envía todo el texto tecleado en su
entrada estandar al Echo del servidor,
 El servidor repite todos los caracteres
recibidos en su entrada desde el cliente de
vuelta a través del socket al cliente
Comunicaciones - Java 12
Ejemplo de cliente en Java (II)
Se esteblece la conexión del socket entre el cliente y el
servidor y abre un canal de entrada y un canal de salida
sobre el socket
(Se crea el objeto socket)
echoSocket = new Socket(“slabii", 7);
os = new
DataOutputStream(echoSocket.getOutputStream());
“Abre un canal de entrada el el socket”
is = new DataInputStream(echoSocket.getInputStream());
“Abre un canal de salida el el socket”
Comunicaciones - Java 13
Ejemplo de cliente en Java (III)
 El codigo que sigue lee desde el stream de entrada
estandar de EchoTest(donde el usuario teclea). Escribe
inmediatamente la entada seguida por un carácter de
nueva línea en el stream de salida conectado al socket.
 String userInput;
while ((userInput = stdIn.readLine()) != null) {
os.writeBytes(userInput); os.writeByte('n');
System.out.println("echo: " + is.readLine());}
 La última línea del bucle while lee una línea de
información desde el stream de entrada conectado al
socket. El método readLine() se bloquea hasta que el
servidor haya devuelto la información a EchoTest. Cuando
readline() retorna, EchoTest imprime la información en la
salida estandard.
Comunicaciones - Java 14
Ejemplo de cliente en Java (IV)
 Cuando el usuario teclea un carácter de fin de entrada, el
bucle while termina y el programa continúa ejecutando
las siguientes líneas de código:
 os.close();
is.close();
echoSocket.close();
 Estas tres líneas de código cierran las streams de entrada
y salida conectados al socket, y cierra la conexión del
socket con el servidor. El orden es importante -- debe
cerrar los streams conectados a un socket antes de cerrar
éste.
Comunicaciones - Java 15
Ejemplo de cliente en Java (V)
 Cuando los clientes hablen con servidores más
complicados como un servidor http, el cliente también será
más complicado. Si embargo, las cosas básicas son las
que has visto en este programa:
 1. Abrir un socket.
 2. Abrir un stream de entrada y otro de salida hacia el
socket.
 3. Leer y escribir a través del socket de acuerdo al protocolo
del servidor.
 4. Cerrar los Streams.
 5. Cerrar el socket.
 Sólo el paso 3 será diferente de un cliente a otro,
dependiendo del servidor.Los otros pasos permanecen
inalterables.
Comunicaciones - Java 16
Servlets
 Programa en JAVA que se ejecuta en el marco de un
servicio de red, como por ejemplo un servidor web, y que
recibe y responde a las peticiones de un cliente.
 Los clientes pueden invocarlo utilizando el protocolo
HTTP
Equipo cliente
Servidor Web
Explorador Servlet
Peticion HTTP
Respuesta
HTTP
Comunicaciones - Java 17
Servlets (II) Caracteristicas
 Puede comunicarse con otro sevlet para ayudarle en
su trabajo, o bien facilitar el acceso a bases de datos
 Son seguros y portables debido a que se ejecutan
bajo la máquina virtual de Java, al mecanismo de
excepciones y al uso del administrador de seguridad
de java.
 Java proporciona el soporte necesario para escribir
servlets a través del paquete javax.servlet
 Son independientes de la plataforma
 Son más rápidos que los programas CGI y que los
scrips
Comunicaciones - Java 18
Servlets. Ejemplo
 Un ejemplo sencillo consisté en una página HTML
que contiene un campo de entrada con los
correspondientes botones de Submit y Reset
 A pulsar sobre el botón Submit se producirá la
ejecución del Servlet en el servidor, procesará la
información recibida, y mostrará como resultado una
página HTML con el texto introducido con
anterioridad
Comunicaciones - Java 19
Servlets. Ejemplo (II)
 El codigo html sería muy sencillo sólo destacar que
en el action del form, indica la acción a
desencadenar en el servidor al pulsar el botón
Submit
<html>
<head>
<title>Ejemplo "Mi Primer Servlet"</title>
</head>
<body>
<form action=http://servidor:8080/servlet/MiPrimerServlet
method=POST>
<BR>
<BR>Introduzca un texto en el cuadro y pulse "Submit"<BR>
<BR>
<input type=text name=TEXTO>
<BR>
<BR><input type=submit><input type=reset></form>
</body>
</html>
Comunicaciones - Java 20
Servlets. Ejemplo (III)
 Código Servlet. Destacar principalmente la utilización
de los paquetes javax.servlet.* y javax.servlet.http.*,
y la cláusula extends que define el programa como
una extension de HttpServlet. El fichero que contiene
el Servlet lo llamaremos MiPrimerServlet.java.
// MiPrimerServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class MiPrimerServlet extends HttpServlet
{
public void service(HttpServletRequest req, HttpServletResponse
res)
throws ServletException, IOException
{
PrintStream out = new PrintStream(res.getOutputStream());
res.setContentType("text/html");
String TEXTO = req.getParameter("TEXTO");
out.println("<p>Usted ha escrito : "+TEXTO+"</p>");
}
}
Comunicaciones - Java 21
El ciclo de vida
 1) Cuando el servidor carga el Servlet (solo lo carga
ante la primera petición, después ya no hace falta),
invoca el método init. Todas las peticiones que
lleguen antes de que este método finalice su
ejecución, habrán de esperar para ser atendidas.
 2) Una vez finalizada la ejecución del método init,
todas las peticiones son atendidas por el método
service. Normalmente el servidor puede manejar
varias peticiones simultáneamente y asigna un hilo
propio a cada petición.
 3) Cuando el servidor quiere descargar el Servlet
invoca el método destroy.
Comunicaciones - Java 22
El API de los Servlets
 El API utilizado para la programación de Servlets incluye
dos paquetes
 El paquete javax.servlet, define la interfaz Servlet y su
implementación GenericServlet. Es esta la interfaz que
define los métodos del Ciclo de Vida. También destacan
las interfaces ServletRequest y ServletResponse, que
definen la mecánica de las peticiones y las respuestas.
 El paquete javax.servlet.http, que es una especialización
del paquete anterior para su utilización con el protocolo
http. Este paquete define la clase HttpServlet que es una
extensión de GenericServlet. Asimismo incluye las
interfaces HttpServletRequest y HttpServletResponse,
que son extensiones de ServletRequest y
ServletResponse respectivamente.
Comunicaciones - Java 23
Servlets & JDBC
 La clave del éxito de las mejores páginas Web, reside
en la presentación de la información, de forma
interactiva, práctica y atractiva.
 La interactividad en la presentación de la
información, se basa en la consulta de bases de
datos por parte de un software, que hace de
intermediario entre el cliente y el sistema que
almacena la información.
 A las aplicaciones cliente-servidor que utilizan este
tipo de arquitectura, se las denomina aplicaciones de
tres capas.
Comunicaciones - Java 24
Arquitectura Cliente-Servidor
de tres capas
 En una aplicación cliente-servidor de tres capas, el software
intermediario hace de puente entre la parte cliente y el servidor
de base de datos que posee la información
 Por un lado tendríamos una maquina en la que un browser
ejecuta un Applet ó muestra un formulario HTML. Por el otro
tendríamos una máquina servidora, en la que un software
servidor de Web, recibe las peticiones de los clientes, y
desencadena la ejecución del Servlet. Este Servlet trabajaría
con una base de datos alojada en otro servidor dedicado en
exclusiva a esta función.
Comunicaciones - Java 25
JDBC
 JDBC son las siglas de Java Database Connection, y
se trata de una API JAVA que proporciona una
interfaz similar a ODBC para trabajar con bases de
datos SQL. JDBC se basa en el X/Open SQL CLI, al
igual que el ODBC de Microsoft
 JDBC no es un lenguaje de interrogación, sino que
simplemente es una interfaz basada en JAVA para
trabajar con SQL. Las aplicaciones pueden utilizar
JDBC, por ejemplo, para someter sentencias SQL a
un sistema gestor de bases de datos.
 JDBC se encarga de gestionar aspectos tales como
conexiones a bases de datos, recuperación de
resultados de las interrogaciones, transacciones,
conversiones de tipos SQL a tipos JAVA y viceversa

Más contenido relacionado

Similar a presenjava.ppt

63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-javaGilberto Garcia Zavaleta
 
Introducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaIntroducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaPedro Arteaga
 
Arquitectura tres capas
Arquitectura tres capasArquitectura tres capas
Arquitectura tres capasJenny Gonzalez
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...José Antonio Sandoval Acosta
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosJaziel Torres
 
Examen del segundo parcial (Programacion web 1) - Erick Lozada
Examen del segundo parcial (Programacion web 1) - Erick LozadaExamen del segundo parcial (Programacion web 1) - Erick Lozada
Examen del segundo parcial (Programacion web 1) - Erick LozadaErick Paul Lozada Peñarreta
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebTensor
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)Tensor
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando phpvictdiazm
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamicoJose Luis Crespo
 
Presentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBPresentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBploncan24
 
Patrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones WebPatrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones Webguesta7f40
 
Unidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webUnidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webZacarias Marquez Cruz
 

Similar a presenjava.ppt (20)

Sockets tcp
Sockets tcpSockets tcp
Sockets tcp
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java
 
Introducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaIntroducción a las aplicaciones web con java
Introducción a las aplicaciones web con java
 
Arquitectura tres capas
Arquitectura tres capasArquitectura tres capas
Arquitectura tres capas
 
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
Programación de Base de Datos - Unidad II: Aplicaciones con Arquitectura Clie...
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Web services
Web services Web services
Web services
 
Examen del segundo parcial (Programacion web 1) - Erick Lozada
Examen del segundo parcial (Programacion web 1) - Erick LozadaExamen del segundo parcial (Programacion web 1) - Erick Lozada
Examen del segundo parcial (Programacion web 1) - Erick Lozada
 
20001215 Programación de Servlets y WML
20001215   Programación de Servlets y WML20001215   Programación de Servlets y WML
20001215 Programación de Servlets y WML
 
Sistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la WebSistemas Distribuidos basados en la Web
Sistemas Distribuidos basados en la Web
 
Clase17(introduccion a la web)
Clase17(introduccion a la web)Clase17(introduccion a la web)
Clase17(introduccion a la web)
 
Programacion
ProgramacionProgramacion
Programacion
 
Web service
Web serviceWeb service
Web service
 
Web service
Web serviceWeb service
Web service
 
Generación de web sites dinámicos usando php
Generación de web sites dinámicos usando phpGeneración de web sites dinámicos usando php
Generación de web sites dinámicos usando php
 
Generacion de web sites dinamico
Generacion de web sites dinamicoGeneracion de web sites dinamico
Generacion de web sites dinamico
 
Presentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEBPresentacion sesion01 - Programacion WEB
Presentacion sesion01 - Programacion WEB
 
Patrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones WebPatrones Arquitecturales Para Aplicaciones Web
Patrones Arquitecturales Para Aplicaciones Web
 
Charla
CharlaCharla
Charla
 
Unidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webUnidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones web
 

Último

stellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino morastellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino moraYessicaBrigithArdila
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiatongailustraconcienc
 
Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405rodrimarxim
 
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptxESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptxKatherineFabianLoza1
 
AREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoAREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoSantiagoRodriguezLoz
 
PREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRIL
PREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRILPREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRIL
PREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRILeluniversocom
 
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILPREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfPREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfeluniversocom
 
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdfINTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdfmaryisabelpantojavar
 
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILPREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILeluniversocom
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxYoladsCabarcasTous
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotessald071205mmcnrna9
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería yocelynsanchezerasmo
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOReluniversocom
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptxccordovato
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024eluniversocom
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docxmarthaarroyo16
 

Último (20)

stellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino morastellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino mora
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologia
 
Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405
 
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptxESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
 
AREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf SantiagoAREA TECNOLOGIA E INFORMATICA.pdf Santiago
AREA TECNOLOGIA E INFORMATICA.pdf Santiago
 
PREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRIL
PREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRILPREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRIL
PREGUNTA I DE LA CONSULTA POPULAR DEL 21 DE ABRIL
 
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILPREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
 
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfPREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
 
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdfINTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
 
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILPREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
 
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptx
 
Módulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotesMódulo mapa de riesgos de tienda de abarrotes
Módulo mapa de riesgos de tienda de abarrotes
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
 

presenjava.ppt

  • 1. Comunicaciones - Java 1 Indice  Programacion cliente servidor  Arquitectura Cliente-servidor  Definicion de socket  Ejemplo C/S  Servlets  Ejemplo Servlets  Arquitectura C/S de 3 capas
  • 2. Comunicaciones - Java 2 Java Programación Cliente-Servidor  Internet es un sistema Cliente-Servidor gigante  La idea primaria es que debe haber un sitio donde descargar la información bajo demanda de los clientes  Aquí surge el problema de Internet, cuando hay un solo servidor que atiende a muchos clientes, si se produce un cambio que deba distribuir,  El rendimiento general del sistema decrece exponencial al aumento del número de clientes
  • 3. Comunicaciones - Java 3 Programación Cliente-Servidor(II)  El funcionamiento del Web sigue este mismo principio  El navegador fue el primer paso adelante en la expansión de Internet, permite visualizar un mismo fichero en plataformas diferentes  Por contra la interactividad con el usuario, y la posibilidad de ejecutar programas en la parte del usuario, esta muy limitada  Se proporcionó al lenguaje HTML de botones de entrada de datos, cajas de selección, etc, pero cuando habían muchos clientes colgando, el colapso del servidor era casi seguro  Surgen otras alternativas como los CGI, para descargar al servidor y que el cliente tambien hiciese algo
  • 4. Comunicaciones - Java 4 El Modelo Cliente - Servidor  Arquitectura de sistema distribuido - Clientes: que dan acceso a usuarios a los servicios - Servidores: contienen información, servicios, ...  Cliente y Servidor son roles en una aplicación - Una máquina puede ser cliente en un servicio y servidor en otro  Muy extendido en programación distribuida - Utilizando el interfaz de sockets
  • 5. Comunicaciones - Java 5 Arquitectura Cliente-Servidor  Aplicaciones modulares, distribuidas y personalizadas.  Java permite la extensión más potente de servidores de aplicaciones  ¿Cómo?. Cuando se accede a un applet de otro ordenador, el navegador carga la clase principal y va cargando dinámicamente el resto de clases a medida que son necesarias  Si alguna clase ya reside en la memoria local, no debera cargarla, incrementa el rendimiento
  • 6. Comunicaciones - Java 6 Arquitectura Cliente-Servidor(II)  Gracias a su rigurosa concepción de orientación a objetos, es muy fácil programar aplicaciones modulares  Las funciones que deben ser accedidas por un usuario pueden programarse con applets  Basta instalar los distintos “módulos” de la aplicación, en un único servidor  Los usuarios acceden a las aplicaciones a través de su navegador, personalizarlos y tener interfaces familiares  El uso del web en los últimos años perite reducir en forma considerable el proceso de aprendizaje y formación en la aplicación
  • 7. Comunicaciones - Java 7 Arquitectura Cliente-Servidor Ventajas  Una aplicación de biblioteca se liberaría de la preocupación de instalar las aplicaciones localmente y de actualizar sucesivas versiones  Los applets se distribuyen fácilmente por la www, las dificultades de trafico en una red no afectan la funcionalidad de estos, pues ocupan un tamaño no más de 10 o 20 Kb según aplicación.  Como se dijo antes no es necesario cargar los applets enteros, y  La facilidad de distribución tiene otra ventaja, como es el coste de la aplicación en cuanto a actualizaciones y la de asegurar que todos los clientes tienen la misma versión software
  • 8. Comunicaciones - Java 8 Arquitectura Cliente-Servidor Ventajas (II)  La independencia de Java con respecto a la plataforma permite que las aplicaciones, funcionen igual en todos los ordenadores  El usuario sólo cargará la utilidad específica de la aplicación que necesite  Toda la arquitectura que acabamos de explicar hace pensar que tan solo se necesita en el ordenador un navegador sin tener que usar ningún S.O. o configuración hardware preferente
  • 9. Comunicaciones - Java 9 Thin clients (Clientes delgados)  A esta arquitectura se le conoce como “thin clients” en contra de los fat clients (“Clientes gruesos”) que utilizan la mayor parte de aplicaciones de gestión  Los fat clients necesitan trabajar con un S.O determinado, cantidad de Ram, capacidad de disco, etc..  En esta nueva arquitectura, es más fácil optimizar las presentaciones, ya que los thin clients requieren estaciones menos potentes
  • 10. Comunicaciones - Java 10 ¿Qué es un socket?  Un socket es un punto final en un enlace de comunicación de dos vías entre dos programas que se ejecutan en la red.  Las clases Socket son utilizadas para representar conexiones entre un programa cliente y otro programa servidor.  El paquete java.net proporciona dos clases -- Socket y ServerSocket -- que implementan los lados del cliente y del servidor de una conexión, respectivamente
  • 11. Comunicaciones - Java 11 Ejemplo de cliente en Java  El programa EchoTest, conecta con el Echo del servidor(en el port7)mediante un socket.  El cliente lee y escribe a través del socket  Echotest envía todo el texto tecleado en su entrada estandar al Echo del servidor,  El servidor repite todos los caracteres recibidos en su entrada desde el cliente de vuelta a través del socket al cliente
  • 12. Comunicaciones - Java 12 Ejemplo de cliente en Java (II) Se esteblece la conexión del socket entre el cliente y el servidor y abre un canal de entrada y un canal de salida sobre el socket (Se crea el objeto socket) echoSocket = new Socket(“slabii", 7); os = new DataOutputStream(echoSocket.getOutputStream()); “Abre un canal de entrada el el socket” is = new DataInputStream(echoSocket.getInputStream()); “Abre un canal de salida el el socket”
  • 13. Comunicaciones - Java 13 Ejemplo de cliente en Java (III)  El codigo que sigue lee desde el stream de entrada estandar de EchoTest(donde el usuario teclea). Escribe inmediatamente la entada seguida por un carácter de nueva línea en el stream de salida conectado al socket.  String userInput; while ((userInput = stdIn.readLine()) != null) { os.writeBytes(userInput); os.writeByte('n'); System.out.println("echo: " + is.readLine());}  La última línea del bucle while lee una línea de información desde el stream de entrada conectado al socket. El método readLine() se bloquea hasta que el servidor haya devuelto la información a EchoTest. Cuando readline() retorna, EchoTest imprime la información en la salida estandard.
  • 14. Comunicaciones - Java 14 Ejemplo de cliente en Java (IV)  Cuando el usuario teclea un carácter de fin de entrada, el bucle while termina y el programa continúa ejecutando las siguientes líneas de código:  os.close(); is.close(); echoSocket.close();  Estas tres líneas de código cierran las streams de entrada y salida conectados al socket, y cierra la conexión del socket con el servidor. El orden es importante -- debe cerrar los streams conectados a un socket antes de cerrar éste.
  • 15. Comunicaciones - Java 15 Ejemplo de cliente en Java (V)  Cuando los clientes hablen con servidores más complicados como un servidor http, el cliente también será más complicado. Si embargo, las cosas básicas son las que has visto en este programa:  1. Abrir un socket.  2. Abrir un stream de entrada y otro de salida hacia el socket.  3. Leer y escribir a través del socket de acuerdo al protocolo del servidor.  4. Cerrar los Streams.  5. Cerrar el socket.  Sólo el paso 3 será diferente de un cliente a otro, dependiendo del servidor.Los otros pasos permanecen inalterables.
  • 16. Comunicaciones - Java 16 Servlets  Programa en JAVA que se ejecuta en el marco de un servicio de red, como por ejemplo un servidor web, y que recibe y responde a las peticiones de un cliente.  Los clientes pueden invocarlo utilizando el protocolo HTTP Equipo cliente Servidor Web Explorador Servlet Peticion HTTP Respuesta HTTP
  • 17. Comunicaciones - Java 17 Servlets (II) Caracteristicas  Puede comunicarse con otro sevlet para ayudarle en su trabajo, o bien facilitar el acceso a bases de datos  Son seguros y portables debido a que se ejecutan bajo la máquina virtual de Java, al mecanismo de excepciones y al uso del administrador de seguridad de java.  Java proporciona el soporte necesario para escribir servlets a través del paquete javax.servlet  Son independientes de la plataforma  Son más rápidos que los programas CGI y que los scrips
  • 18. Comunicaciones - Java 18 Servlets. Ejemplo  Un ejemplo sencillo consisté en una página HTML que contiene un campo de entrada con los correspondientes botones de Submit y Reset  A pulsar sobre el botón Submit se producirá la ejecución del Servlet en el servidor, procesará la información recibida, y mostrará como resultado una página HTML con el texto introducido con anterioridad
  • 19. Comunicaciones - Java 19 Servlets. Ejemplo (II)  El codigo html sería muy sencillo sólo destacar que en el action del form, indica la acción a desencadenar en el servidor al pulsar el botón Submit <html> <head> <title>Ejemplo "Mi Primer Servlet"</title> </head> <body> <form action=http://servidor:8080/servlet/MiPrimerServlet method=POST> <BR> <BR>Introduzca un texto en el cuadro y pulse "Submit"<BR> <BR> <input type=text name=TEXTO> <BR> <BR><input type=submit><input type=reset></form> </body> </html>
  • 20. Comunicaciones - Java 20 Servlets. Ejemplo (III)  Código Servlet. Destacar principalmente la utilización de los paquetes javax.servlet.* y javax.servlet.http.*, y la cláusula extends que define el programa como una extension de HttpServlet. El fichero que contiene el Servlet lo llamaremos MiPrimerServlet.java. // MiPrimerServlet.java import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class MiPrimerServlet extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { PrintStream out = new PrintStream(res.getOutputStream()); res.setContentType("text/html"); String TEXTO = req.getParameter("TEXTO"); out.println("<p>Usted ha escrito : "+TEXTO+"</p>"); } }
  • 21. Comunicaciones - Java 21 El ciclo de vida  1) Cuando el servidor carga el Servlet (solo lo carga ante la primera petición, después ya no hace falta), invoca el método init. Todas las peticiones que lleguen antes de que este método finalice su ejecución, habrán de esperar para ser atendidas.  2) Una vez finalizada la ejecución del método init, todas las peticiones son atendidas por el método service. Normalmente el servidor puede manejar varias peticiones simultáneamente y asigna un hilo propio a cada petición.  3) Cuando el servidor quiere descargar el Servlet invoca el método destroy.
  • 22. Comunicaciones - Java 22 El API de los Servlets  El API utilizado para la programación de Servlets incluye dos paquetes  El paquete javax.servlet, define la interfaz Servlet y su implementación GenericServlet. Es esta la interfaz que define los métodos del Ciclo de Vida. También destacan las interfaces ServletRequest y ServletResponse, que definen la mecánica de las peticiones y las respuestas.  El paquete javax.servlet.http, que es una especialización del paquete anterior para su utilización con el protocolo http. Este paquete define la clase HttpServlet que es una extensión de GenericServlet. Asimismo incluye las interfaces HttpServletRequest y HttpServletResponse, que son extensiones de ServletRequest y ServletResponse respectivamente.
  • 23. Comunicaciones - Java 23 Servlets & JDBC  La clave del éxito de las mejores páginas Web, reside en la presentación de la información, de forma interactiva, práctica y atractiva.  La interactividad en la presentación de la información, se basa en la consulta de bases de datos por parte de un software, que hace de intermediario entre el cliente y el sistema que almacena la información.  A las aplicaciones cliente-servidor que utilizan este tipo de arquitectura, se las denomina aplicaciones de tres capas.
  • 24. Comunicaciones - Java 24 Arquitectura Cliente-Servidor de tres capas  En una aplicación cliente-servidor de tres capas, el software intermediario hace de puente entre la parte cliente y el servidor de base de datos que posee la información  Por un lado tendríamos una maquina en la que un browser ejecuta un Applet ó muestra un formulario HTML. Por el otro tendríamos una máquina servidora, en la que un software servidor de Web, recibe las peticiones de los clientes, y desencadena la ejecución del Servlet. Este Servlet trabajaría con una base de datos alojada en otro servidor dedicado en exclusiva a esta función.
  • 25. Comunicaciones - Java 25 JDBC  JDBC son las siglas de Java Database Connection, y se trata de una API JAVA que proporciona una interfaz similar a ODBC para trabajar con bases de datos SQL. JDBC se basa en el X/Open SQL CLI, al igual que el ODBC de Microsoft  JDBC no es un lenguaje de interrogación, sino que simplemente es una interfaz basada en JAVA para trabajar con SQL. Las aplicaciones pueden utilizar JDBC, por ejemplo, para someter sentencias SQL a un sistema gestor de bases de datos.  JDBC se encarga de gestionar aspectos tales como conexiones a bases de datos, recuperación de resultados de las interrogaciones, transacciones, conversiones de tipos SQL a tipos JAVA y viceversa