Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Datos
Katherine Barba, Jose Granados,
Roy León, Jose Ramos, Yeiko Soto,
Andrey Villarreal
Ingeniería en sistemas de
computación, Universidad Fidelitas
San José, Costa Rica
kbarba40144@ufide.ac.cr
jgranados00042@ufide.ac.cr
rleon40117@ufide.ac.cr
jramos10825@ufide.ac.cr
ysoto70199@ufide.ac.cr
avillarreal30809@ufide.ac.cr
Abstract— Now a days most people have the need to store utilizados día a día en el mundo de la informática y son de
and transmit their information between different devices, gran importancia conocerlos; la serialización, el
however, a large segments of the population don’t know the almacenamiento de datos, los tipos de almacenamiento que
methods and types of storage that exist to store their existen, los protocolos de comunicación y los API sockets
information. So, due to this premise, there is a necessity to son los principales temas que se abarcaran en dicho
understand how this information is stored, which methods to documento.
transmit information are, what serialization and API sockets
are, and which transmit protocols are the most used for Data Se sabe que los datos es la información que recibe una
transmission and data reception. In order to get the answers computadora o maquina a través de distintos medios, y que
and through a deep research, the current document is a good
introduction to understand concepts, types and the uses of
es manipulada mediante procesos. Su contenido puede ser
these technologies related to the computer science industry. prácticamente cualquiera: estadísticas, números,
descripciones, archivos, registros etc... que por separado no
tienen relevancia para los usuarios del sistema, pero que en
I. OBJETIVOS conjunto pueden ser interpretados para obtener una
información completa y específica. En muchos casos el
contenido de estos datos es de gran importancia para las
Objetivo general empresas, negocios o personas en general y por eso es de
vital importancia conocer dónde y cómo se almacenan los
Conocer por medio de la investigación, los diferentes datos y como se transmiten los mismos.
tipos de almacenamientos y los medios para la transmisión
de datos en los sistemas operativos.
III. CONCEPTOS BASICOS
Objetivos específicos
• Explicar los conceptos relevantes sobre las En la siguiente parte se procederá a realizar la
tecnologías utilizadas en el almacenamiento y explicación de los conceptos básicos, a continuación, vamos
transmisión de datos. a explicar el concepto de almacenamiento de datos.
• Informar sobre los tipos de almacenamientos
existentes y sus respectivos usos.
Almacenamiento de datos
• Proponer ejemplos de uso relacionados con la
transmisión de datos. El almacenamiento de datos es el proceso tecnológico
donde se graban, archivan y guardan bits de información que
contienen imágenes, texto, video, programas, hojas de
II. INTRODUCCIÓN cálculo, entre otros archivos digitales de múltiples formatos.
Existen diversas arquitecturas y dispositivos de
En la presente investigación se encuentra la almacenamiento para cumplir este propósito. [11]
documentación e información sobre el tema del
almacenamiento y gestión de datos donde se redactará y se Tipos de almacenamiento de datos
darán a conocer ampliamente diferentes conceptos que son
Almacenamiento definido por software:
El software de almacenamiento configurado previamente
Según Redhat el almacenamiento definido por se instala en un sistema de hardware específico llamado NAS
software es una arquitectura que separa el software de box que no es más que un servidor que contiene discos de
almacenamiento del hardware. A diferencia de un sistema de almacenamiento, memoria RAM y procesadores.
almacenamiento conectado a la red (NAS) o una red de área
de almacenamiento (SAN), el almacenamiento definido por Una NAS box está formateada con protocolos de
software (SDS) generalmente está diseñado para ejecutarse transferencia de datos, que son maneras estándar de enviar
en cualquier sistema estándar o x86. por eso el software no datos de un dispositivo a otro. [4]
depende de ningún hardware propietario. [4]
Imagen 2. NAS
Almacenamiento de objetos:
Según Redhat el almacenamiento conectado a la red De acuerdo con Redhat, el almacenamiento de archivos,
(NAS) es un tipo de arquitectura de almacenamiento de también conocido como almacenamiento basado en archivos
archivos que facilita el acceso a los datos almacenados desde o a nivel de archivos, almacena datos en una estructura
dispositivos en red. NAS proporciona a las redes un único jerárquica. Los datos se almacenan en archivos y carpetas y
punto de acceso para el almacenamiento con funciones se presentan tanto al sistema de almacenamiento como al
integradas de seguridad, administración y tolerancia a fallas. sistema que recupera esos datos en el mismo formato.
Los datos almacenados en el archivo se clasifican y
recuperan utilizando una cantidad limitada de metadatos que
le indican a la computadora exactamente dónde buscar. [4]
USOS
TIPOS
Es una tecnología que se utiliza para almacenar archivos La serialización de JSON serializa las propiedades
de datos en redes de área de almacenamiento (SAN) o públicas de un objeto en una cadena, una matriz de bytes o
entornos de almacenamiento basados en la nube, este tipo una secuencia que se ajusta a la especificación de JSON RFC
de almacenamiento divide los datos en bloques y los 8259.
almacena en partes separadas. Cada uno de ellos recibe un
identificador único, lo cual permite que el sistema de Serialización XML y binaria
almacenamiento coloque los conjuntos de datos más
pequeños donde considere más conveniente. Es esencial para La serialización binaria utiliza la codificación binaria
situaciones de cálculo en las que requieren un transporte de para generar una serialización compacta para usos como
datos rápido, eficaz y fiable, también es útil para empresas almacenamiento o secuencias de red basadas en socket. En la
que implementan bases de datos de gran tamaño. Esto según serialización binaria se serializan todos los miembros,
IBM. [9] incluso aquellos que son de solo lectura, y mejora el
rendimiento.
API Sockets
Aunque WebSocket aún no está completamente En esta sección se va a construir una aplicación de
implementado en todos los navegadores, es posible usarlo mensajería en node.js con el objetivo de hacer la
con bibliotecas que usan el sistema alternativo ya que no está demostración de API Socket usando Socket.io ya que La
disponible. Otras soluciones también permiten la integración conexión se establece incluso con proxies, balanceadores de
desde la API HTTP para enviar mensajes WebSocket a los carga, firewalls y software antivirus. Los clientes
clientes. Sin embargo, la solicitud HTTP adicional genera desconectados intentarán volver a conectarse
más gastos generales en comparación con WebSocket puro. indefinidamente hasta que se realice una copia de seguridad
Los paquetes de servidores tradicionales luchan por manejar del servidor. El mecanismo Heartbeat se implementa a nivel
muchas conexiones WebSocket simultáneas, incluso cuando de Engine.IO, lo que permite que el servidor y el cliente
se establecen mediante un ciclo de solicitud y respuesta sepan cuándo el servidor no responde.
HTTP. Para ello, suele desarrollarse una arquitectura capaz
de alta concurrencia, con bajo rendimiento, en hilo o IO no Observemos un modelo o diagrama de cómo funcionará
obstruida. la aplicación:
<script>
var socket = io();
Imagen 6: Diagrama de Sockets IO
var messages = document.getElementById('messages');
Se va a necesitar instalar las dependencias de "express": var form = document.getElementById('form');
"^4.17.1", "socket.io": "^4.1.2" usando NPM, de igual var input = document.getElementById('input');
manera se va a necesitar crear un archivo index.html y un
index.js donde va a realizar la configuración del servidor, el
código de ejemplo está disponible acá: form.addEventListener('submit', function(e) {
https://github.com/socketio/chat-example, es por ello que no e.preventDefault();
se va a realizar hincapié en el código si no a entenderlo, por if (input.value) {
ello se va a explicar los tres tipos de funciones importantes socket.emit('chat message', input.value);
input.value = '';
1. Join: Notifica cuando un usuario ha entrado a la
}
aplicación y lo emite a todos los clientes.
});
2. Message: Notifica cuando un mensaje ha llegado y
lo emite a todos los clientes. socket.on('chat message', function(msg) {
var item = document.createElement('li');
3. Disconnect: Evento reservado por socket.io el cual item.textContent = msg;
notifica cuando un cliente ha salido.
messages.appendChild(item);
Seguido a ello se mostrará la estructura del folder que window.scrollTo(0, document.body.scrollHeight);
debe llevar el código para el buen funcionamiento. });
</script>
Así mismo del lado del index.js, se observa que hay una
importación relevante que es la del express, esta va a servir
Imagen 7 Estructura folders Socket como la lógica del lado del servidor, permitiendo la
comunicación en tiempo real con el http current listener
En la imagen anterior se puede observar que se tiene todas agregado por la librería de socket IO.
las dependencias de node JS dentro del folder modules, un
gitignore que va a servir para el uso dentro de un repositorio const app = require('express')();
de archivos, sin embargo, los archivos más importantes son const http = require('http').Server(app);
el index.html y el index.js ya que dentro de estos va a ir toda const io = require('socket.io')(http);
la estructura y la lógica del programa de ejemplo const port = process.env.PORT || 3000;
app.get('/', (req, res) => { archivos directamente y se pueden asignar a equipos de
res.sendFile(__dirname + '/index.html'); trabajo ejemplo recursos humanos. En el cual pueden
modificar archivos que los equipos desean compartir junto
});
con todo el equipo de trabajo del grupo asignado. Podemos
decir que NAS es un método de transmisión de datos para
io.on('connection', (socket) => { grupos de trabajo en el cual pueden compartir, subir,
socket.on('chat message', msg => { modificar archivos en una dirección de red compartida y
io.emit('chat message', msg); accederlos en tiempo real.
});
SAN asimismo esta centralizado en un equipo lógico en
});
su gran mayoría compuesto por varios equipos físicos en
diferencia con NAS que puede o normalmente en empresas
http.listen(port, () => { pequeñas podrías encontrarlo en un solo equipo físico. SAN
console.log(`Socket.IO server running at podemos rescatar 3 protocolos: FCP- ISCSI – FCoE los
http://localhost:${port}/`); cuales FC es Fibre Channel y FCoE es el mismo protocolo,
});
pero en Ethernet, Estos protocolos todavía son usados por las
compañías y se pueden rescatar todos. Estos protocolos se
utilizan para utilizar un espacio de disco ya sea lógico o
físico de un servidor que soporta FCP- ISCSI- FCoE y se
Para ir finalizando este apartado se muestra un ejemplo en comparte un bloque del disco a otro servidor. En un ejemplo
vivo de como la transmisión de datos en tiempo real por Servidor ISCSI contiene 1TB de datos para compartir se crea
medio de API sockets, donde el Cliente 1 manda un mensaje una partición para poder compartir a otro servidor digamos
y se actualiza en tiempo real del lado del cliente 2 sin 100GB. Este servidor se conecta al servidor ISCSI y pide
necesidad de actualizar la página, todo funcionando de una parte o la totalidad del espacio asignado 100GB y crea un
forma bidireccional viajando la información en ambos disco lógico con esta información el cual se monta y se
sentidos. puede utilizar como un disco normal. Solamente que este
disco o partición fue compartida y está siendo utilizada por
la red. Hay equipos tales como los de Netapp que soportan
ambos métodos y varios protocolos y utilizaran el sharing de
almacenamiento por la red.
TCP
Transmission Control Protocol (TCP) es uno de los
Imagen 9. Muestra del web app de chat live. protocolos centrales o fundamentales de Internet. Es parte de
la Capa de Transporte del Modelo OSI. Está diseñado para
Con ello ya se puede realizar la compresión del código proporcionar una entrega confiable de datos desde un
usando conceptos de JavaScript, esta información fue programa en un dispositivo en la red o Internet a otro
tomada y recapitulada del sitio web pragma.com.co escrita programa en otro dispositivo en la red o Internet. TCP logra
por Cristian Camilo Pérez [3] su confiabilidad porque es un protocolo basado en conexión.
TCP está orientado a la transmisión. Transporta flujos de
Servidores SAN y NAS datos de forma fiable y en orden.
Estos son métodos para manejar el almacenamiento y el
compartimiento de archivos a través de la red. Normalmente TCP establece un enlace de conexión previa entre los
están centralizadas en un equipo lógico que es compuesto de hosts antes de enviar datos. Esto a menudo se conoce como
varios otros o uno solo, pero es lógico y centralizado. Tienen el handshake. Una vez que se establece el enlace, el
varias diferencias una de ellas es el método de transporte. protocolo utiliza comprobaciones para verificar que los datos
NAS utiliza ethernet y SAN utiliza ethernet o fibra. En NAS se transmiten. Si una comprobación de errores falla, los datos
podemos rescatar 3 protocolos que son los más usados se retransmiten. Esto asegura que los datos lleguen al destino
recientemente NFS (Implementación de CIFS en Linux), sin errores y en el orden correcto para que puedan volver a
SMB (Implementación de CIFS en MS) , SFTP (SSH FTP). juntarse en un formato idéntico al que se enviaron.
De los cuales el SMB es el que prevalece y tiene más fuerza
de todos los protocolos. Estos protocolos trabajan en su Algunas aplicaciones que usan TCP son:
mayoría en la siguiente manera. Es un share o un compartido
que se accede por red ejemplo • World Wide Web (HTTP and HTTPS)
\\servidor\compartido1\recursoshumanos\ en el cual se suben • Email (SMTP, POP3, IMAP4)
• Remote administration (RDP) de cada mensaje de la misma manera que lo hace TCP para
• File transfer (FTP) que los datos se puedan volver a ensamblar en el otro
extremo de la transmisión en la secuencia correcta sin que
UDP los datos tengan que llegar en la secuencia correcta.
User Datagram Protocol (UDP) como TCP es uno de los Algunas aplicaciones comunes de SCTP incluyen la
protocolos centrales de Internet y parte de la capa de transmisión compatible de los siguientes protocolos a través
transporte del modelo OSI. UDP está diseñado más para la de redes IP:
velocidad que para la confiabilidad y generalmente se usa
para diferentes aplicaciones que TCP. UDP envía mensajes, • SCTP es importante en redes 3G y 4G/LTE (por
denominados datagramas a través de la red o Internet a otros ejemplo, HomeNodeB = FemtoCells)
hosts sin establecer un enlace de comunicación previo. En • SS7 sobre IP (por ejemplo, para redes móviles 3G)
otras palabras, no hay handshake. • SCTP también se define y utiliza para SIP sobre SCTP
y H.248 sobre SCTP
UDP es un servicio poco confiable ya que los datagramas • Transporte de mensajes de señalización de la Red
pueden llegar desordenados, duplicados o perderse sin Telefónica Pública Conmutada (PSTN) sobre redes IP. [10]
ningún mecanismo para verificarlos. UDP funciona
asumiendo que la aplicación realiza cualquier comprobación Otros protocolos de red que también vamos a repasar los
de errores o que no es necesaria para el funcionamiento de la temas, SMB, FTP, TFTP, que se describen a continuación.
aplicación. De esta forma evita la sobrecarga que se requiere
para verificar la integridad de los datos. SMB
Los usos comunes de UDP son: Es un protocolo de red de Microsoft pensado para
Time (NTP) compartir fácilmente archivos, impresoras y otros muchos
Domain Name Resolution (DNS) recursos dentro de una red local. Es posible conectar
Streaming media (RTSP, RTP and RTCP) ordenadores con Windows sin apenas configuraciones, e
Telephone of the Internet (VoIP) incluso con otros sistemas operativos (como Linux y
File Transfer (TFTP) Android) a través de Samba, la implementación libre de
Logging (SNMP) SMB.
Online games (GTP and OGP)
Versiones de SMB
SCTP SMB 1 / CIFS / SMB: Esta es la versión más
antigua de este protocolo, y data de 1983. A pesar
Stream Control Transmission Protocol (SCTP) es parte de ello, por motivos de compatibilidad, es una de
de la capa de transporte del modelo OSI al igual que TCP y las versiones del protocolo más utilizadas, ya que
UDP y proporciona algunas de las características de ambos los clientes más nuevos pueden conectarse a este
protocolos. Está orientado a mensajes o datagramas como protocolo, pero los clientes antiguos no funcionan
UDP, pero también garantiza un transporte secuencial con los protocolos más modernos.
confiable de datos con control de congestión como TCP. SMB 2.0: Windows Server 2008 fue quien empezó
a utilizar este nuevo estándar de forma masiva,
SCTP brinda los siguientes servicios: aunque ya venía incluido para los usuarios con
• Transferencia reconocida sin errores y sin duplicados
Windows Vista. SMB 2.0 era una versión más
de datos de usuario
segura, mucho más simple y, por supuesto, mucho
• Fragmentación de datos para ajustarse al tamaño MTU
de la ruta descubierta más rápida y con menos latencia. Se introducen
• Entrega secuenciada de mensajes de usuario dentro de algunas características, como los enlaces
múltiples flujos, con una opción para la entrega por simbólicos, mejoras en el cifrado y las sumas de
orden de llegada de mensajes de usuario individuales verificación y muchos otros beneficios.
• Paquete opcional de múltiples mensajes de usuario en SMB 3: Esta versión se estrenó con Windows 8 y
un solo paquete SCTP Windows Server 2012 e introdujo importantes
• Tolerancia a fallas a nivel de red a través del soporte de cambios en la funcionalidad, además de servir para
multi-homing en uno o ambos extremos de una corregir fallos en SMB 2. Algunas de sus
asociación características son:
• Comportamiento para evitar la congestión y resistencia o SMB Multichannel.
a inundaciones y ataques de enmascaramiento
o SMB Transparent Failover.
SCTP utiliza transmisión múltiple para transportar sus o Protocolo SMB Direct.
mensajes, lo que significa que puede haber varios flujos La versión 3.0.2 de este protocolo llegó a los usuarios
independientes de mensajes que viajan en paralelo entre los con Windows 8.1. Y las posteriores versiones de este
puntos de transmisión. Los datos se envían en fragmentos de
protocolo, hasta la actual 3.1.1, se estrenaron las con otras
datos más grandes que los que usa TCP, al igual que UDP,
pero los mensajes incluyen un número de secuencia dentro versiones de Windows (hasta Windows 11) y se centraban en
mejorar el cifrado y la integridad. [12]
FTP
TFTP
Protocolo de transferencia de archivos trivial. Sirve para Ejemplo Serializacion 3. Jose Ramos
el intercambio de información y pequeños archivos entre dos
equipos. Funciona a través de UDP. Destaca especialmente Después de realizar los frames del programa, se
por ser sencillo y simple, por lo que a diferencia de otros procederá a la creación de la lógica, primero se define las
protocolos no cuenta con funciones complejas de variables que se van a utilizar en los programas, dichas
transferencia. [14] variables deben ser estáticas para poder ejecutarse en el
main:
IV. MANUAL DE CONFIGURACION
Servidor Chat
En la siguiente sección se mostrará ejemplos prácticos de
serialización y transmisión de datos usando el protocolo static ServerSocket SS; //Define el puerto del servidor
SMB. static Socket s;//Escucha/Envía los input u output que
lleguen o envíe el servidor
Serializacion static DataOutputStream output;//es la variable que se
encarga de serializar(enviar)
Para la creación de un programa que represente la static DataInputStream input;//es la variable que se
transmisión y almacenamiento de datos con Serialización se encarga de deserializar (escuchar)
va a necesitar solo una computadora con un IDE para correr
y programar aplicaciones de java. Cliente Chat
Se procede a crear un programa en java con 2 JFrame
forms, uno para el Cliente y el otro par el servidor, las static Socket s;//Escucha/Envía los input u output que
mismas serán utilizadas para crear la lógica del programa. lleguen o envíe el cliente
static DataOutputStream output;//es la variable que se
encarga de serializar(enviar)
static DataInputStream input;//es la variable que se
encarga de deserializar (escuchar)
Cliente Chat
try{
s=new Socket("127.0.0.1", 1201);//Se indica el
servidor local, se conecte al puerto del server
input = new
DataInputStream(s.getInputStream());//Se define el
serializador
output=new
DataOutputStream(s.getOutputStream());//Se define el
deserializador
String mensaje="";//se define el mensaje del Text Ejemplo Serializacion 4. Jose Ramos
Area
while(!mensaje.equals("exit")){//Que se ejecute
hasta que se escriba exit
mensaje=input.readUTF();//Deserializa el mensaje
que viene del server
jTextArea1.setText(jTextArea1.getText().trim()+"\n
Servidor\t"+mensaje);//Lo agrega en el Text Area
}
}catch(Exception e){
System.out.println(e);
}
Luego se configura el botón de enviar para serializar y Ejemplo Serializacion 5. Jose Ramos
enviar el mensaje:
Servidor Chat
try{
String
mensajeEnviado2=jTextField1.getText().trim();//Se
obtiene el mensaje del text field y se asigna a mensaje
enviado
output.writeUTF(mensajeEnviado2);//se serializa el
mensaje para enviarlo y se escribe en el UTF
jTextField1.setText("");
jTextArea1.setText(jTextArea1.getText().trim()+"\n
Ejemplo Serializacion 6. Jose Ramos
Servidor\t"+mensajeEnviado2);//Agrega el mensaje
creado por el server al Text Area
}catch(Exception e){
Para la descarga de este ejemplo puede dirigirse al
System.out.println(e);
siguiente enlace.
}
También se puede utilizar la serialización para almacenar
Cliente Chat los datos u objetos en un archivo serializado que nos
try{ permitirá leerlo más adelante usando la deserialización.
String Se crea la clase Persona y se implementa el interface
mensajeEnviado=jTextField1.getText().trim();//Se Serializable con los atributos Nombre, correo y teléfono,
obtiene el mensaje del text field y se asigna a mensaje también se crea los get, set y los constructores.
enviado public class Persona implements Serializable{
output.writeUTF(mensajeEnviado); //se serializa el String nombre;
mensaje para enviarlo y se escribe en el UTF String correo;
jTextField1.setText(""); String telefono;
jTextArea1.setText(jTextArea1.getText().trim()+"\n //Getters and Setters
Cliente\t"+mensajeEnviado); //Agrega el mensaje public String getNombre() {
return nombre; Ejemplo Serializacion 8. Jose Ramos
}
public void setNombre(String nombre) { Ahora se procede a programar la función de los botones
this.nombre = nombre; de Serializar y Deserializar.
}
public String getCorreo() { Serializacion.
return correo;
} private void
public void setCorreo(String correo) { jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
this.correo = correo; ArrayList<Persona> ArrayPersonas = new
} ArrayList<Persona>();//definimos un array por si ya existe
public String getTelefono() { uno llamarlo y poder agregar al nuevo objeto a dicho array
return telefono; try {//Verificamos si existe un archivo, si no existe
} crea uno nuevo con el output
public void setTelefono(String telefono) { FileInputStream miArchivo2;
this.telefono = telefono; miArchivo2 = new
} FileInputStream("Personas.jose");//leemos el archvio
public Persona(String nombre, String correo, String ObjectInputStream input = new
telefono) { //contructor ObjectInputStream(miArchivo2);
this.nombre = nombre; ArrayList<Persona> ArrayDeserializado =
this.correo = correo; (ArrayList<Persona>) input.readObject();//sacamos el array
this.telefono = telefono; input.close();
} ArrayPersonas = ArrayDeserializado;//asignamos
} el array serializado al array que creamos antes
Luego, se crean los Jframes de crear un objeto para miArchivo2.close();
serializar y leer un archivo serializado. } catch (Exception ex) {
Para el Jframe Serializacion se usaron labels, Jtext fields System.out.println("Exception: " +
y un botón. ex.getMessage());
}
Persona personas1=new
Persona(jTextField1.getText(),jTextField2.getText(),jTextFi
eld3.getText());//creamos una persona con la info de los Jtext
fields
ArrayPersonas.add(personas1);//se agrega al array
try {
FileOutputStream miArchivo = new
FileOutputStream("Personas.jose");//defnimos la ruta donde
se van a guardar el array de objetos
ObjectOutputStream output = new
ObjectOutputStream(miArchivo);
Ejemplo Serializacion 7. Jose Ramos output.writeObject(ArrayPersonas);//Lo
sobreescribimos si existe algun dato y sino lo crea
Para el Jframe Deserializacion se usaron un label, un output.close();
botón y una tabla miArchivo.close();
} catch (Exception ex) {
System.out.println("Exception: " +
ex.getMessage());
}
//Limpiamos los Text fields
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
}
Deserializacion
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
ArrayList<Persona> ArrayPersonas = new
ArrayList<Persona>();//definimos un array por si ya existe
uno llamarlo y poder agregar al nuevo objeto a dicho array
try {//Verificamos si existe un archivo, si no existe
crea uno nuevo con el output
FileInputStream miArchivo2;
miArchivo2 = new
FileInputStream("Personas.jose");//leemos el archvio
ObjectInputStream input = new
ObjectInputStream(miArchivo2);
ArrayList ArrayDeserializado =
(ArrayList<Persona>) input.readObject();//sacamos el array
input.close();
ArrayPersonas = ArrayDeserializado;//asignamos
el array serializado al array que creamos antes
Ejemplo Serializacion 9. Jose Ramos
miArchivo2.close();
} catch (Exception ex) {
Se crea un objeto Persona y se serializa.
System.out.println("Exception: " +
ex.getMessage());
}
mostrar(ArrayPersonas);//llama un método para
mostrar el array en la tabla
}
public void mostrar(ArrayList<Persona> P) {
String matriz[][] = new String[P.size()][3];//Se crea
una matriz 2x2 para las columnas filas de la tabla
for (int i = 0; i < P.size(); i++) {//Se agrega cada
valor uno por uno con el for
matriz[i][0] = P.get(i).getNombre();
matriz[i][1] = P.get(i).getCorreo();
matriz[i][2] =P.get(i).getTelefono();
} Ejemplo Serializacion 10. Jose Ramos
jTable1.setModel(new
javax.swing.table.DefaultTableModel(//se asigna los valores Como no existe el archivo lo va a crear el programa.
de la matriz a la tabla y se editan las columnas
matriz,
new String[]{
"Nombre","Correo","Telefono"
}
){
boolean[] canEdit = new boolean[]{
false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int
columnIndex) {
return canEdit[columnIndex]; Ejemplo Serializacion 11. Jose Ramos
}
}); Y en el archivo serializado se puede ver los datos que se
} llenaron en el Frame anterior pero con otros caracteres
especiales para que la computadora lo puede deserializar
Ya con el código del programa el flujo seria ir al Frame después.
de Serializar para crear un objeto de tipo Persona, crear un
ArrayList de Personas, si existe un archivo serializado se
abre se Saca el array del archivo y se sobre escribe al que se
creó anteriormente y está vacío, y se agrega el nuevo objeto Ejemplo Serializacion 12. Jose Ramos
al array, luego se serializa el objeto de nuevo y se sobre
escribe en el archivo serializado. Ahora se procede a crear otro usuario, pero a dado a que
Primero se verifica que no esté el archivo serializado: el archivo ya existe se procede a leerlo sacar el array que ya
tiene una persona y agregar el segundo objeto para tener
ambos objetos.
Ejemplo Serializacion 13. Jose Ramos
V. CONCLUSIONES
Se logra demostrar cómo se almacenan y transmiten los
datos entre los dispositivos, siendo esto un punto clave para
el entendimiento del mundo digital en el que vivimos. El
planeta surge la precisión de que las personas puedan
almacenar y compartir información a través de distintos
dispositivos y así sean capaces de poder manipular dicha
información en diferentes equipos, además de velar por un
almacenamiento y transmisión seguro con minimización de
riesgo de pérdida o corrupción de información, de este modo
se evidencia la importancia de conocer cómo se almacenan y
transmiten los datos.