You are on page 1of 24

UNIVERSIDAD POLITÉCNICA DEL VALLE DE TOLUCA

NOMBRE DEL PROGRAMA EDUCATIVO:

INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN

NOMBRE DEL ASIGNATURA:

PROGRAMACIÓN ORIENTADA A OBJETOS

NOMBRE DE LA PRÁCTICA:

PRÁCTICA U4

NOMBRE DE LA UNIDAD DE APRENDIZAJE:

UNIDAD 4: Programación para red

FACILITADOR:

MONSERRATH PONCE CRUZ

INTEGRANTES:

No Matrícula Nombre Firma


1 1321373073 SOLAR CERRITOS JOSE MANUEL

AGOSTO, 2023
Número de Práctica: 1 Duración (horas) 2

Laboratorio de: COMPUTADORA PERSONAL

El alumno codificará algoritmos computacionales de acuerdo al


Resultado de paradigma de programación orientado a objetos para resolver
Aprendizaje: problemas.

El alumno codificara sockets y conexiones a base de datos para el


Justificación: desarrollo de aplicaciones distribuidas.

Concepto de socket:
Marco Teórico:
Un socket es un mecanismo de comunicación que permite el
intercambio de datos entre procesos que se ejecutan en diferentes
dispositivos a través de una red. Es una abstracción que
proporciona una interfaz para enviar y recibir datos entre
aplicaciones, ya sea en la misma máquina o a través de una red. Los
sockets son esenciales para la comunicación en redes de
computadoras y se utilizan ampliamente en la programación de
redes.

Modelos de comunicación de los sockets:

Punto a punto:
En el modelo punto a punto, un socket actúa como un extremo de
una conexión de red. Se establece una comunicación directa entre
dos sockets, donde uno actúa como el cliente y el otro como el
servidor. El cliente inicia la conexión solicitando una conexión al
servidor y el servidor escucha las solicitudes de conexión. Una vez
establecida la conexión, ambos extremos del socket pueden enviar
y recibir datos bidireccionalmente.

Cliente-Servidor:

El modelo cliente-servidor es una variante del modelo punto a


punto. En este caso, el servidor es responsable de escuchar y
aceptar conexiones de múltiples clientes. Los clientes inician la
comunicación solicitando una conexión al servidor. Una vez
establecida la conexión, el servidor puede responder a las
solicitudes del cliente y proporcionar los servicios solicitados. Es
un modelo muy común en aplicaciones de red donde hay una
entidad que proporciona servicios (servidor) y otras entidades que
los consumen (clientes).
Tipos de sockets:

Datagrama:
Los sockets de datagrama se basan en el protocolo de datagramas
de usuario (UDP). Este tipo de socket se utiliza para la
comunicación de datos que no requiere una conexión continua y
fiable entre los extremos. Los datos se envían en forma de
datagramas independientes y no hay garantía de que lleguen en
orden o incluso lleguen al destino. Aunque es menos confiable que
los sockets de flujo, UDP es adecuado para aplicaciones que
necesitan una comunicación rápida y simple, como transmisiones
en vivo o juegos en línea.

Flujo (Stream):
Los sockets de flujo se basan en el protocolo de control de
transmisión (TCP). Este tipo de socket proporciona una conexión
confiable y orientada a la secuencia entre dos extremos. Los datos
enviados a través de sockets de flujo llegan en el mismo orden en
que se envían y se garantiza su entrega sin pérdida. TCP maneja
automáticamente la fragmentación y reensamblaje de datos, así
como la retransmisión de paquetes perdidos, asegurando una
comunicación fiable.

Raw:
Los sockets raw (crudos) permiten un mayor control sobre el
contenido de los paquetes de red. Estos sockets permiten enviar y
recibir paquetes en un nivel inferior al de los protocolos de
transporte como TCP y UDP. Son utilizados principalmente por
aplicaciones que requieren la manipulación directa de los
encabezados de red, como firewalls, sniffers de red o aplicaciones
que implementan protocolos personalizados.

Operaciones entre los sockets:

Apertura:
Para iniciar la comunicación a través de un socket, es necesario
abrirlo. La apertura del socket implica asignar recursos del sistema
y configurar el socket para la comunicación (por ejemplo,
especificar el tipo de socket, dirección y puerto).

Lectura/Escritura:
Una vez que el socket está abierto y la conexión se ha establecido
(en el caso de sockets de flujo), las aplicaciones pueden leer y
escribir datos a través del socket. En el caso de sockets de
datagrama, los datos se envían y reciben en paquetes
independientes sin una conexión establecida previamente.
Cierre:

Cuando la comunicación a través del socket ha terminado o la


aplicación ya no necesita la conexión, el socket se cierra. El cierre
del socket libera los recursos del sistema asignados al mismo y
asegura una finalización adecuada de la comunicación.

Proceso de codificación de sockets:

El proceso de codificación de sockets generalmente involucra los


siguientes pasos:

Crear el socket: El programa crea un socket utilizando una función


específica del lenguaje de programación o API de red. Durante la
creación, se especifican el tipo de socket (datagrama o flujo) y la
familia de direcciones (IPv4 o IPv6).

Configurar el socket: Se asigna una dirección y un puerto al socket,


en el caso de un servidor, para que otros clientes puedan
conectarse a él. Para el cliente, es necesario proporcionar la
dirección y el puerto del servidor al que se va a conectar.

Establecer conexión (solo para sockets de flujo): El cliente intenta


conectarse al servidor utilizando la dirección y el puerto
especificados. El servidor escucha las solicitudes de conexión
entrantes y acepta las conexiones entrantes de los clientes.

Leer/Escribir datos: Una vez establecida la conexión, los datos se


pueden leer desde el socket (en el caso de un cliente que recibe
datos del servidor) o escribir en el socket (para enviar datos al
servidor).

Cerrar el socket: Cuando la comunicación ha terminado, se cierra el


socket para liberar los recursos del sistema.

Es importante destacar que el proceso de codificación de sockets


puede variar según el lenguaje de programación utilizado y la
plataforma de desarrollo, pero en esencia, estos pasos se repiten
en la mayoría de los casos.

Concepto de conexión a base de datos:

La conexión a base de datos es el proceso mediante el cual una


aplicación o programa establece una comunicación y acceso a una
base de datos para realizar operaciones como consultar, insertar,
actualizar o eliminar datos. Es fundamental para que una
aplicación interactúe con la base de datos y pueda realizar
operaciones de lectura y escritura de información almacenada en
ella.

Características de conexión a base de datos:

Autenticación: Para establecer una conexión, el usuario debe


proporcionar credenciales válidas, como nombre de usuario y
contraseña, para acceder a la base de datos.

Seguridad: Las conexiones a base de datos suelen ser encriptadas


para proteger la confidencialidad de los datos durante la
transmisión.

Pool de conexiones: Las aplicaciones utilizan un pool de


conexiones para reutilizar y administrar conexiones ya
establecidas, en lugar de abrir y cerrar una nueva conexión cada
vez que necesitan interactuar con la base de datos.

Administración de recursos: Las conexiones a la base de datos


consumen recursos del sistema, por lo que es importante liberar
adecuadamente las conexiones después de su uso para evitar
problemas de rendimiento.

Conectores de base de datos:

Los conectores de base de datos son librerías o módulos que


proporcionan interfaces específicas para que los programas o
aplicaciones se comuniquen con diferentes tipos de bases de datos.
Estos conectores son desarrollados para trabajar con lenguajes de
programación particulares y para interactuar con distintos
sistemas de gestión de bases de datos (DBMS).

Algunos ejemplos de conectores de base de datos populares


son:

JDBC (Java Database Connectivity): Utilizado para conectar


aplicaciones Java a bases de datos relacionales.

ODBC (Open Database Connectivity): Proporciona una API


estándar para conectar aplicaciones a diversas bases de datos,
independientemente del DBMS utilizado.

ADO.NET (ActiveX Data Objects .NET): Diseñado para conectar


aplicaciones .NET a bases de datos.
psycopg2 (Python PostgreSQL adapter): Conector de base de datos
utilizado para interactuar con bases de datos PostgreSQL en
aplicaciones Python.

mysql.connector (MySQL Python Connector): Permite conectar


aplicaciones Python a bases de datos MySQL.

Proceso de conexión a base de datos:

El proceso de conexión a una base de datos típicamente


implica los siguientes pasos:

Cargar el conector: Antes de establecer una conexión, es necesario


cargar el conector adecuado para el lenguaje de programación y el
DBMS utilizado. Esto se hace importando o incluyendo la librería
correspondiente en el código de la aplicación.

Establecer parámetros de conexión: Se deben proporcionar los


parámetros necesarios para establecer la conexión, como la
dirección IP o el nombre del servidor de la base de datos, el
nombre de usuario y la contraseña.

Abrir la conexión: Una vez que se han establecido los parámetros,


se abre la conexión invocando una función o método específico del
conector.

Realizar operaciones en la base de datos: Con la conexión


establecida, la aplicación puede realizar operaciones de consulta,
inserción, actualización, eliminación, etc., en la base de datos según
sus requisitos.

Cerrar la conexión: Después de realizar todas las operaciones


necesarias, la conexión debe cerrarse adecuadamente para liberar
recursos del sistema. Esto se logra mediante una llamada a la
función o método de cierre proporcionado por el conector.

Es importante asegurarse de que las conexiones a la base de datos


se gestionan correctamente para evitar problemas de seguridad,
rendimiento y consumo excesivo de recursos.

Equipo de Cómputo personal, IDE JAVA


Material, equipo y/o
reactivos:
Desarrollo de la LINK DE EJECUTABLES:
Práctica:
https://drive.google.com/drive/folders/1Q_qiqDuF8lY8x4R
mvaa72iniHE3tE7GE?usp=drive_link

CAPTURAS:

INDEX
INSERTAR
NOMBRES

TABLA
ESTILOS
TABLA ESTILOS

CONEXIÓN A LA BASE
DOCUMENTACIÓN

Descripción del formulario y su propósito:

El formulario de registro para alumnos es una herramienta


web diseñada para capturar de manera segura y eficiente
los datos personales de los estudiantes, incluyendo su
nombre completo y matrícula. Su principal objetivo es
facilitar el proceso de registro y mantener un seguimiento y
administración adecuados de los alumnos inscritos en una
institución educativa o cualquier otro contexto que requiera
el manejo de información estudiantil.

Los usuarios podrán completar el formulario


proporcionando su nombre completo y matrícula, lo que
permitirá identificarlos de manera única en el sistema.
Estos datos serán enviados y almacenados en una base
de datos centralizada, garantizando la integridad y
seguridad de la información. Además, la base de datos
permitirá realizar un seguimiento eficaz de los estudiantes
registrados, facilitando la administración de su progreso
académico, participación en actividades y otra información
relevante.

El formulario de registro para alumnos se convertirá en


una herramienta esencial para mantener un registro
organizado y actualizado de los estudiantes, optimizando
así los procesos administrativos y garantizando una
experiencia fluida tanto para los alumnos como para el
personal encargado de la gestión educativa.

Requisitos del sistema:

Para que el formulario funcione correctamente con las


especificaciones mencionadas en el texto, se requieren los
siguientes requisitos técnicos:

Servidor GlassFish:
Es necesario tener instalado y configurado el servidor
GlassFish en el entorno donde se ejecutará el formulario
web. GlassFish es un servidor de aplicaciones Java EE
que permite desplegar y ejecutar aplicaciones web
desarrolladas con tecnologías Java.

Entorno de desarrollo Java NetBeans:


Se necesita el IDE (Entorno de Desarrollo Integrado) Java
NetBeans para desarrollar y editar el código del formulario
web. NetBeans es una herramienta popular y ampliamente
utilizada para la programación en Java, y en este caso, se
utilizará para crear el formulario y manejar la lógica del
servidor.

Lenguajes de programación:
Para el desarrollo del formulario, se requerirán
conocimientos en Java para la parte del servidor y
JavaScript para la interacción del usuario con el formulario
en el navegador web.

CSS (Hojas de estilo en cascada):


Será necesario el uso de CSS para diseñar y dar estilo al
formulario web. CSS permite controlar la presentación y el
diseño de los elementos HTML, lo que proporcionará una
interfaz visual atractiva y coherente.

Base de datos MySQL:


Debe existir una base de datos MySQL configurada y
accesible para almacenar la información enviada a través
del formulario. MySQL es un sistema de gestión de bases
de datos relacional ampliamente utilizado y compatible con
GlassFish y Java.

Diseño del formulario:


El formulario de registro para alumnos es una interfaz web
diseñada con el propósito de recopilar y almacenar datos
personales de los estudiantes con el fin de realizar un
seguimiento y administración adecuados. A través de esta
herramienta, se permite la captura segura y eficiente de
información relevante proporcionada por los alumnos, que
posteriormente será enviada y almacenada en una base
de datos MySQL.

Campos del formulario:


El formulario consta de campos específicos para capturar
los datos esenciales del alumno, asegurando la
recopilación de información completa y precisa. Los
campos incluidos serán, al menos, los siguientes:
Nombre completo: Un campo donde el estudiante deberá
ingresar su nombre y apellidos.
Matrícula: Un campo numérico destinado a capturar el
número de matrícula único asignado al estudiante.
Datos personales: Si es necesario, se pueden agregar
otros campos para capturar información adicional, como la
fecha de nacimiento, dirección, género, etc.

Validación de datos:
Para garantizar la integridad y precisión de los datos
ingresados por el usuario en cada campo del formulario,
se implementará la validación tanto en el lado del cliente
(usando JavaScript) como en el lado del servidor (usando
Java). A continuación, se describe cómo se realizará la
validación para cada campo:

1. Nombre completo (Nombre, Apellido Paterno y Apellido


Materno):
Validación del lado del cliente:
● Se verificará que los campos de Nombre, Apellido
Paterno y Apellido Materno no estén vacíos.
● Se comprobará que los caracteres ingresados sean
letras válidas (sin números ni caracteres
especiales).
Validación del lado del servidor (Glassfish):
● Se asegurará de que cada campo de Nombre,
Apellido Paterno y Apellido Materno no sea nulo ni
esté vacío.
● Se utilizarán expresiones regulares para garantizar
que solo se ingresen caracteres alfabéticos válidos
en cada campo.
2. Matrícula:
Validación del lado del cliente:
● Se verificará que el campo de matrícula contenga
exactamente diez números.
● Se permitirá únicamente el ingreso de caracteres
numéricos en el campo.
Validación del lado del servidor (Java):
● Se comprobará que el campo de matrícula no sea
nulo, esté presente y tenga una longitud de diez
caracteres.
● Se utilizarán expresiones regulares para asegurar
que solo se ingresen dígitos numéricos en el
campo.
3. Datos personales (Domicilio, Teléfono, Fecha de
nacimiento, etc.):
Validación del lado del cliente:
● Se verificará que los campos obligatorios no estén
vacíos (por ejemplo, domicilio y teléfono).
● Si se ingresan datos opcionales como la fecha de
nacimiento, se comprobará que cumplan con un
formato válido (por ejemplo, una fecha en formato
dd/mm/aaaa).
Validación del lado del servidor (Java):
● Se asegurará de que los campos obligatorios, como
domicilio y teléfono, no sean nulos ni estén vacíos.
● Si se ingresan datos opcionales, como la fecha de
nacimiento, se utilizarán funciones de validación
para confirmar que la fecha es válida y no se
encuentre en el futuro.

Interacción del usuario:

El proceso de interacción del usuario con el formulario de


registro para alumnos se llevará a cabo de la siguiente
manera:
Acceso al formulario:
El usuario podrá acceder al formulario de registro a través
de un enlace o página específica en el sitio web de la
institución educativa o en la plataforma donde se
encuentre alojado el formulario.

Visualización del formulario:


Una vez en la página del formulario, el usuario verá una
interfaz web con campos para ingresar su nombre
completo y matrícula, así como otros posibles datos
personales adicionales que se soliciten.

Ingreso de datos:
El usuario deberá completar los campos obligatorios,
como el nombre completo y la matrícula. También puede
ingresar otros datos personales, como domicilio, teléfono o
fecha de nacimiento, si es requerido.

Validación de datos:
A medida que el usuario vaya completando los campos, se
realizarán validaciones tanto en el lado del cliente (usando
JavaScript) como en el lado del servidor (usando Java).
Estas validaciones se encargarán de asegurar que los
datos ingresados sean válidos antes de enviarlos al
servidor.

Envío de datos:
Una vez que el usuario haya completado todos los campos
obligatorios y opcionalmente los datos personales
adicionales, podrá enviar los datos haciendo clic en un
botón de "Enviar" o "Registrarse".

Procesamiento del formulario:


Al hacer clic en el botón de envío, los datos ingresados se
enviarán al servidor para su procesamiento. La lógica del
servidor (implementada en Java) se encargará de recibir y
validar nuevamente los datos antes de proceder con el
almacenamiento.
Almacenamiento en la base de datos:
Si los datos pasan todas las validaciones, se procederá a
almacenarlos en una base de datos centralizada MySQL.
Cada estudiante registrado tendrá un registro individual en
la tabla de la base de datos.

Confirmación de registro:
Una vez que los datos se hayan almacenado con éxito en
la base de datos, el usuario recibirá una confirmación en la
interfaz web, indicando que su registro se ha realizado
correctamente.

Seguimiento y administración:
Los datos registrados se utilizarán para realizar un
seguimiento eficaz de los estudiantes y facilitar su
administración. El personal encargado podrá acceder a la
información almacenada en la base de datos para
consultar el progreso académico, la participación en
actividades y otra información relevante.
Almacenamiento de datos:

Conexión del formulario a la base de datos: El formulario


web estará diseñado para recopilar los datos requeridos,
en este caso, el nombre completo y la matrícula de los
alumnos. Cuando los usuarios completen el formulario con
sus datos, estos serán enviados al servidor donde se
encuentra alojada la aplicación web.

Validación de datos: Antes de guardar los datos en la base


de datos, es importante realizar una validación para
asegurarse de que los campos estén correctamente
completados y no haya información incorrecta o maliciosa.
Esto ayuda a mantener la integridad de la base de datos.

Almacenamiento en la base de datos: Una vez que los


datos han sido validados, se guardarán en la base de
datos centralizada. Cada registro creado contendrá la
información única de cada estudiante, como su nombre
completo y matrícula, que permitirá identificarlos en el
sistema.
DIAGRAMAS
Conclusiones y/o El uso de CSS permite dar estilo y mejorar la presentación visual
recomendaciones del formulario de registro. Puedes aplicar colores, tipografías,
márgenes, y bordes para hacer que el formulario sea más atractivo
y agradable a la vista de los usuarios.

Consistencia y profesionalismo: Mediante la implementación de un


formato CSS coherente en todo el sitio web, incluido el formulario
de registro, se logra una apariencia consistente y profesional en
toda la plataforma. Esto ayuda a generar confianza en los usuarios
y les proporciona una experiencia más uniforme en el sitio.

Paul J. Deitel, Harvey


Referencias M. Deitel 2012 Cómo programar en Java Mexico Pearson Educaciòn
bibliográficas y/o 9786073211505
Fuentes consultadas
Harvey M. Deitel, Paul
J. Deitel 2013 Còmo Programar en C/C++ y
Java Madrid, España Pearson Educaciòn 9702605318

Manejo y Disposición N/A


de Desechos:

Grupo: ITI6VB Equipo: I Calificació


n:

You might also like