viernes, 29 de noviembre de 2013

Justificación del porque mi proyecto es distribuido

El proyecto Aeroseth es distribuido porque se ejecuta dentro de una red de computadoras que comparten información a través de un protocolo.

Cada computadora puede tener o no la misma hora, y aunque sea distinta, la comunicación entre las mismas no se ve distorsionada, puesto que se sincronizan utilizando mensajes.

Las computadoras envían y reciben información, con el objetivo de satisfacer las necesidades de la empresa Aeromar, entre las cuales están: la falta de un control en la entrada y salida de piezas, un registro de las bitácoras realizadas por los mecánicos, la planeación de las fechas de reparación y de los vuelos y la administración del personal.

Si dentro de la red, alguna computadora falla o presenta un desperfecto, las demás no resultan afectadas por el error.

Se pueden agregar varias computadoras al sistema original sin que haya errores entre las mismas, y pueden poseer distintas características, pero de preferencia deben poseer Windows 7.

Las unidades de procesamiento pueden realizar distintas tareas, como navegar por internet, reproducir música o escribir algún texto, al mismo tiempo que se comunican entre ellas.

miércoles, 20 de noviembre de 2013

Clase ClienteJuego

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ahorcado;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.JOptionPane;

/**
 *
 * @author Alumnos
 */
public class ClienteJuego extends Frame implements ActionListener{
    private TextField letra = new TextField(1);
    private Label palabra = new Label("");
    private Label letras_ocupadas = new Label("");
    private Label ganador = new Label("");
    private Button ok = new Button("Ingresar");
    private Graphics g;
    private int comparador[];
    private String palabra_actual = "";
    private int errores = 0;
    Label turno;
    Label turno2;
    int jugador;
   
    BufferedReader entrada;
     PrintWriter salida;
    public ClienteJuego(){
        super("Juego del Ahorcado");
        Socket socket = new Socket();
        try {
            socket = new Socket("localhost",2250);
            entrada = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            salida = new PrintWriter(socket.getOutputStream(), true);
            Thread lectura = new Thread( new Lector());
            lectura.start();
            System.out.println("Conexion Establecida con Servidor");
           
        } catch (IOException e) {
            System.err.println("No se pudo establecer la conexión");
            System.exit(1);
        }
       
        setLayout(new BorderLayout());
        setBackground(Color.yellow);
        setResizable(false);
        Canvas canvas = new Canvas();
        canvas.setSize(200,300);
        Panel p = new Panel(new GridLayout(5,1));
        Panel p1 = new Panel();
        turno = new Label("Es Turno del jugador 1 : ");
        turno2 = new Label("Es Turno del jugador 1 : ");
       
        p1.add(turno);
        p1.add(letra);
        p1.add(ok);
        Panel p2 = new Panel();
        p2.add(new Label("Palabra : "));
        p2.add(palabra);
        Panel p3 = new Panel();
        p3.add(new Label("Ha ingresado las siguientes Letras : "));
        p.add(p1);p.add(p2);p.add(p3);p.add(letras_ocupadas);p.add(ganador);

        add("West",canvas);
        add("Center",p);
        ok.addActionListener(this);
        addWindowListener(new WindowAdapter(){
        public void windowClosing(WindowEvent w){
        System.exit(0);
        }});

        setSize(500,330);
        show();
        g = canvas.getGraphics();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String l = String.valueOf( letra.getText().charAt(0) );
        System.out.println("La letra a mandar es: " + l);
        salida.println(l.toUpperCase());
        System.out.println("Mandando Letra a salida");
    }
   
    public static void main( String args[] ){
       
        new ClienteJuego();
    }
    private class Lector implements Runnable{
        String cadena;
        @Override
        public void run() {
            try {
                while(true){
                    cadena = entrada.readLine();
                    if( cadena != null ){
                        System.out.println("Recibiendo distinto de nulo en cliente");
                        String caracter = String.valueOf(cadena.charAt(2));
                        System.out.println("Caracter es: " + caracter );
                        if( cadena.charAt(0) == 'N' ){
                           
                            jugador = cadena.charAt(1) - 47;
                            setTitle("JUGADOR " + jugador);
                            palabra_actual = cadena.substring(2).trim();
                            String aux = "";
                            System.out.println(palabra_actual);
                            comparador = new int[ palabra_actual.length() ];
                            System.out.println("llega");
                            for(int i = 0; i < palabra_actual.length(); i++){
                                aux = aux + "_ ";
                                comparador[i] = 0;
                            }
                            System.out.println("el auxiliar es: " + aux);
                            palabra.setText(aux);
                        }else if( cadena.charAt(0) == 'C' ){
                             if( (cadena.charAt(4)-47) == jugador ){
                                 letra.enable(true);
                                turno.setText("Ingresa una letra:");
                            }else{
                                 letra.enable(false);
                                turno.setText("Espera tu turno:");
                            }
                            String aux="";
                            for(int i = 0; i < comparador.length; i++){
                                if(caracter.equals(""+palabra_actual.charAt(i)) ){
                                    comparador[i] = 1;
                                }
                                if(comparador[i]==1)
                                    aux += palabra_actual.charAt(i);
                                else
                                    aux += "_ ";
                            }
                            palabra.setText(aux);

                        }else if( cadena.charAt(0) == 'I'  ){
                            System.out.println("el jugador es: " + jugador );
                            System.out.println("Y el caracter es: " + (cadena.charAt(4)-47) );
                            if( (cadena.charAt(4)-47) == jugador ){
                                letra.enable(true);
                                turno2.setText("Ingresa una letra: ");
                            }else{
                                turno2.setText("Espera tu turno:");
                                letra.enable(false);
                            }
                            turno.setText("");
                            errores++;
                            String aux = letras_ocupadas.getText();
                            if( aux.indexOf(caracter) < 0 )
                                aux += " " + caracter;
                            letras_ocupadas.setText(aux);
                            switch(errores){
                                case 1:
                                    g.setColor(Color.red);
                                    g.fillRect(110,220,30,10);break;
                                case 2:
                                    g.fillRect(120,20,10,200);break;
                                case 3:
                                    g.fillRect(70,20,50,10);break;
                                case 4:
                                    g.fillRect(68,20,5,20);break;
                                case 5:
                                    g.setColor(Color.black);
                                    g.drawOval(50,40,40,40);break;
                                case 6:// Cuerpo
                                    g.drawLine(70,80,70,150);break;
                                case 7:// Brazos
                                    g.drawLine(70,100,40,100);break;
                                case 8:
                                    g.drawLine(70,100,100,100);break;
                                case 9:// Piernas
                                    g.drawLine(70,150,40,190);break;
                                case 10:
                                    g.drawLine(70,150,100,190);
                                    ganador.setText("Perdiste!!!");
                                    palabra.setText(palabra_actual);
                            }
                        }else if(cadena.charAt(0) == 'P' ){
                            String puntos = cadena.substring(1);
                            JOptionPane.showMessageDialog(null, "Has Perdido con " + puntos);
                        }else{
                            String puntos = cadena.substring(1);
                            JOptionPane.showMessageDialog(null, "Has Ganado con " + puntos);
                        }
                    }
                   
                }
            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.println("CONEXIÓN FINALIZADA");
               System.exit(0);
            }
        }
    }
}

Clase ServidorJuego

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ahorcado;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;


/**
 *
 * @author Alumnos
 */
public class ServidorJuego {
    public static final int PUERTO = 2250;
    Socket jugadores[] = new Socket[100];
    int puntos[] = new int[100];
    BufferedReader entrada[] = new BufferedReader[100];
    PrintWriter salida[] = new PrintWriter[100];
    Thread hilos[] = new Thread[100];
    String palabras[] = {"Victor","Francisco","investigacion", "Archivo",
                "Computacion","Astronomia","Ingenieria",
                "Felicidad","Salud","Dinero","Energia",
                "Fuerza","Flojera"};
    public String actual = "lkdjakj";
    String respuesta;
     int contador;
    int errores;
    int turnoActual;
    int numJugadores = 4;
    Random generador = new Random();
    public static void main( String args[] ){
        new ServidorJuego().inicia();
    }
    public ServidorJuego(){
        actual = palabras[generador.nextInt(palabras.length-1)].toUpperCase();
    }
    public void inicia(){
        System.out.println(actual);
        try {
            ServerSocket servidor = new ServerSocket(PUERTO);
           
            for( int i = 0; i < numJugadores; i++ ){
                jugadores[i] = new Socket();
                System.out.println("Esperando jugador " + i+1);
                jugadores[i] = servidor.accept();
                System.out.println("Aceptado ");
                System.out.println("Palabra: " + actual );
                entrada[i] = new BufferedReader( new InputStreamReader( jugadores[i].getInputStream() ) );
                salida[i] = new PrintWriter(jugadores[i].getOutputStream(), true);
                salida[i].println("N" + i + " " + actual);
            }
           
            System.out.println("Palabra: " + actual );  
            System.out.println("Turno Actual " + turnoActual );
            while( contador < actual.length() && errores < 10 ){
                System.out.println(" contador de correctas = " + contador);
                System.out.println("Numero de errores: " + errores );
                String cadena = entrada[turnoActual].readLine();
                if( cadena != null ){
                    System.out.println("Distinto de nulo");
                    char letra = cadena.charAt(0);
                    System.out.println("Letra recibida: "  + letra );
                    if( actual.indexOf(letra) != -1){
                        System.out.println("Letra Encontrada");
                        int temp = 0;
                        for( int i = 0; i < actual.length(); i++ ){
                            if( actual.charAt(i) == letra ){
                                temp++;
                            }
                        }
                        System.out.println("Se encontro " + temp + " veces");
                        contador += temp;
                        System.out.println("El contador es " + contador);
                        puntos[turnoActual] += (temp*10);
                        turnoActual++;
                        if( turnoActual == numJugadores ){
                            turnoActual = 0;
                        }
                        for( int i = 0; i < numJugadores; i++ ){
                            salida[i].println("C " + letra + " " + turnoActual+1);
                        }
                    }else{
                        puntos[turnoActual] -= 2;
                        errores++;
                        System.out.println("No se encontro, hay: " + errores);
                        turnoActual++;
                        if( turnoActual == numJugadores ){
                            turnoActual = 0;
                        }
                        for( int i = 0; i < numJugadores; i++ ){
                            salida[i].println("I " + letra + " " + turnoActual+1);
                        }
                    }
                   
                    System.out.println("Turno ahora es: " + turnoActual );
                }
            }
            if( errores == 10 ){
                for( int i = 0; i < numJugadores; i++ ){
                    salida[i].println("P " + puntos[i] );
                }
            }else{
                int max = -1;
                int posicion = -1;
                for( int i = 0; i < numJugadores; i++ ){
                    if( puntos[i] > max ){
                        max = puntos[i];
                        posicion = i;
                    }
                }
                for( int i = 0; i < numJugadores; i++ ){
                    if( i == posicion ){
                        salida[i].println("G " + puntos[i] );
                    }else{
                        salida[i].println("P " + puntos[i] );
                    }
                }
            }
           
           
        } catch (IOException ex) {
            Logger.getLogger(ServidorJuego.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

domingo, 8 de septiembre de 2013

Modelo OSI

Modelo OSI


Introducción

El propósito de este trabajo es describir lo que es el modelo OSI así como las capas que lo componen, ya que permite entender el funcionamiento de las redes.Además al ser un standard permite la comunicación entre computadoras que poseen distintas características sin ningún problema.

Desarrollo

¿Qué es el modelo OSI?

El modelo OSI (Open System Interconnection) es un esquema creado por la ISO (Organización internacional para la Normalización) que describe la transferencia de datos dentro de una red y que es independiente de las diferencias que pueda haber entre el software y el hardware de los dispositivos que la componen. 

Posee capas que definen la transmisión de datos en la red. Cada capa posee funciones y protocolos que deben de seguir.
Las 7 capas son:
1.       Aplicación
2.       Presentación
3.       Sesión
4.       Transporte
5.       Red
6.       Enlace
7.       Física
La capa de aplicación, presentación y sesión son las que más necesitan de la computadora del usuario. Las de transporte, red, enlace y física, se utilizan en la comunicación de la red.

Descripción de las capas

Capa de aplicación
Proporciona a las aplicaciones usadas por el usuario el acceso a los servicios de la red tales como la transferencia de archivos, la entrada a la base de datos y el correo electrónico. Provee los protocolos para el intercambio de datos, como son FTP (Protocolo de transferencia de archivos) y SMTP (Protocolo Simplificado de Transferencia de Correo).

Capa de presentación
Convierte los datos proporcionados por la capa de aplicación  a un formato común (como el código ASCII y EBCDIC), de tal forma que el receptor pueda leer lo que le envía el emisor. También los comprime y cifra.

Capa se sesión
Establece, administra y termina las sesiones entre los host que se comunican. Además, sincroniza y administra el intercambio de mensajes entre ellos. 

Capa de transporte
Realiza la transmisión de los datos del host a la red. Rompe los datos (segmentos) que envío el emisor y luego los une cuando llegan al receptor.

Capa de red
Encuentra la ruta que han de seguir los paquetes de datos a través de la red para comunicar dos hosts ubicados en lugares distintos. También convierte la dirección lógica (IP) a la dirección física de la computadora.

Capa de enlace
Se encarga de convertir el paquete de datos a una trama de datos. Mueve los datos por el medio físico e identifica la computadora de acuerdo a su dirección de hardware. Además, verifica que las tramas no contengan errores, que estén en el orden correcto y de controlar su tránsito.
Se divide en dos, el LLC (Control Lógico de Enlace) y MAC (Control de Acceso al Medio). El LLC dicta como se transfieren los datos por el medio y el MAC controla el hardware utilizado.

Capa física
Es el medio tangible por el que se envían los datos, como son los cables y los conectores. Convierte las tramas de datos a bits, los cuales son variaciones en el voltaje de la corriente del medio de transmisión. 

Aquí esta un esquema que describe el modelo OSI:



Conclusión

Realizando esta investigación, he comprendido el modelo OSI y las funciones que cada una de sus capas realiza. Opino que este tema es muy importante en el desarrollo de las redes (y por lo tanto, de los sistema distribuidos), puesto que con ello se entiende como se da la transferencia de datos a través de ellas.

Referencias

Colima, U. d. (s.f.). Recuperado el 9 de Septiembre de 2013, de http://docente.ucol.mx/al950441/public_html/osi1hec_B.htm
Feldgen, M. (s.f.). Facultad de Ingeniería de la Universidad de Buenos Aires. Recuperado el 8 de Septiembre de 2013, de http://materias.fi.uba.ar/7574/s1apuntes/s1_modelo_OSI.pdf

Rigotti, G. (s.f.). Facultad de Ciencias Exactas. UNICEN. Recuperado el 9 de Septiembre de 2013, de http://www.exa.unicen.edu.ar/catedras/comdat1/material/ElmodeloOSI.pdf

domingo, 25 de agosto de 2013

Red

Introducción

En este trabajo se trata el tema la red, debido a la importancia que tiene en nuestras vidas, pues permiten la comunicación entre personas que están muy alejadas entre sí, así como su uso en los sistemas distribuidos usados en los negocios, la industria, el gobierno, la educación, etcétera.
Se expone la definición de la red, los tipos de red y las topologías de red.

Desarrollo

Definición

Es un conjunto de computadoras conectadas entre sí utilizando un medio físico y dispositivos para lograr la conexión, con el objetivo de compartir recursos y comunicarse entre ellos.

Conceptos incluidos en la definición
Dispositivo. Son elementos de la red que gestionan el flujo de información entre los ordenadores de esta. (Martin Santiago)
Conexión. Es un enlace entre equipos o sistemas.
Medio. Es lo que permite la transmisión de mensajes entre los componentes de la red. Hay de dos tipos, los guiados y no guiados.
Recurso. Son las aplicaciones, herramientas y dispositivos periféricos con los que cuenta una computadora; los cuales pueden ser utilizados por los ordenadores pertenecientes a la red, como impresoras, archivos, scanner, etcétera. (Alegsa.ar.com, 2010)
Comunicación. Es el intercambio de mensajes entre un emisor y un receptor, usando el mismo canal, el mismo medio y el mismo código, siguiendo un protocolo.

Tipos de redes

LAN (Local Area Network)

Una  LAN conecta a varias computadoras en un área de corta distancia, utilizando como medio de transmisión fibra óptica, cable coaxial o infrarrojo. Puede ser usada en una casa, un edificio o un salón, sin embargo, puede haber varias LAN en alguno de estos lugares.
Comenten pocos errores, y tradicionalmente se ejecutan a una velocidad de 10 Mbps a 100 Mbps.  
Utiliza Ethernet y Token Ring para la conexión; y protocolos como Appeltalk, IPX, DECnet o Banyan Vines. (Martínez, 2007)

MAN (Metropolitan Area Network)

Enlaza varias LAN que están cerca geográficamente (cerca de 50 km) entre sí a alta velocidad, como si estuvieran en la misma área local.
Se extienden sobre ciudades o varias de ellas, e implementadas por los proveedores de internet, utilizando fibra óptica y protocolos como ATM, Ethernet, Token Ring entre otros.  (ITESCO)

WAN (Wide Area Network)

Es una red que provee el servicio a un país o un continente, cubriendo distancias de 100 a 1000 km.  La información que fluye a través de ella es utilizada por muchos usuarios, por lo tanto es de carácter público.
Usa numerosas líneas de transmisión como cables, fibra óptica y enlaces satelitales; y protocolos como Frame Relay, Synchronous Data Link Control, entre otros (Quinodóz, 2009)

Topologías de red

La topología de red es la disposición física en la cual sus componentes están conectados.

Estrella

Todas las estaciones están conectadas a un nodo central (generalmente es un hub o concentrador) por el cual circula toda la información de la red, pero no se establece ninguna conexión entre los demás nodos.  (Pacheco Borja, 2008)
Ventajas
Desventajas
El mal funcionamiento de una de las computadoras, no afecta el funcionamiento de los demás componentes de la red.
El costo del cableado llega a ser alto

Alta seguridad
Si el concentrador no funciona, se interrumpe la comunicación en la red.
Es fácil insertar o quitar ordenadores.


Anillo

Las computadoras se conectan formando un círculo. Cada una está conectada con la anterior  con la siguiente y cada uno posee un repetidor. Cuando un ordenador realiza una solicitud a otro, debe de pasar por los otros elementos que estén entre ellos.  (López, 2005)
Ventajas
Desventajas
Alta velocidad de transmisión

Si uno de los elementos de la red se cae, la comunicación se interrumpe.

Alto rendimiento cuando hay alto tráfico.
Es difícil insertar más ordenadores.
Se evitan las colisiones, por lo que no se pierde información.



Bus

Todos los nodos están conectados a un enlace y no hay conexiones entre ellos.  Cada host está conectado a un mismo cable. En el momento en el que un ordenador realiza una solicitud, todos los demás la “toman” para ver si son el destinatario de esta.  Si esa es la situación, la utilizan, sino, la descartan.  Es la topología más usada en una red LAN. (Barcelo Ordinaz & Inigo Griera)
Ventajas
Desventajas
Todos los componentes de la red pueden obtener información de los demás dispositivos.

Bajo rendimiento cuando el tráfico es demasiado.

Es sencillo el conectar otras estaciones.

Si el enlace entre los nodos se rompe, la comunicación se ve interrumpida.


Múltiple o compleja

En esta topología, cada nodo está conectado a uno o más nodos, de modo que la disponibilidad de enlaces entre los nodos aumenta. Poseen nodos terminales y nodos de paso.
Ventajas
Desventajas
La red es inmune a errores, pues si un componente falla, la comunicación de los demás no se ve interrumpida.

El costo del cableado es muy alto comparado con otras tipologías.

La información enviada puede seguir distintos caminos hasta llegar a su destino.

Su instalación y mantenimiento es difícil de realizar, ya que existen demasiadas conexiones.


Conclusión

Con esta investigación, nos dimos cuenta de la complejidad que posee una red de computadoras, de la cual no nos percatamos ya que las usamos sin ponernos a pensar en los mecanismos y herramientas que utilizan.  

Bibliografía

Alegsa.ar.com. (24 de Junio de 2010). Recuperado el 25 de Agosto de 2013, de http://www.alegsa.com.ar/Dic/recurso.php
Barcelo Ordinaz, J. M., & Inigo Griera, J. (s.f.). SW computación. Recuperado el 25 de Agosto de 2013, de http://www.sw-computacion.f2s.com/Linux/011-Redes_computacionales.pdf
ITESCO. (s.f.). Introducción a la ingeniería en sistemas computacionales. Recuperado el 25 de Agosto de 2013, de http://davedestruction.net84.net/CONECTIVIDAD.pdf
López, D. (Junio de 2005). Universidad de Huelva. Recuperado el 25 de Agosto de 2013, de http://www.uhu.es/diego.lopez/Docs_ppal/Transparencias%20Redes%20tema4%2005-06.pdf
Martin Santiago, M. A. (s.f.). I.E.S. Siete Colinas. Recuperado el 25 de Agosto de 2013, de http://www.sietecolinas.es/materiales/inf/internet.pdf
Martínez, E. (21 de Julio de 2007). eveliux.com. Recuperado el 25 de Agosto de 2013, de http://www.eveliux.com/mx/redes-lan-can-man-y-wan.php
Pacheco Borja, J. (20 de Agosto de 2008). Scribd. Recuperado el 25 de Agosto de 2013, de http://es.scribd.com/doc/4915644/Topologia-en-estrella
Quinodóz, C. (8 de Abril de 2009). Prof. Carolina Quinodóz. Recuperado el 25 de Agosto de 2013, de http://profecarolinaquinodoz.com/principal/?tag=red-wan


domingo, 18 de agosto de 2013

Comunicación

Comunicación

Introducción

Este trabajo aborda el tema de la comunicación, debido a que es un proceso que todos los seres humanos (y en general, los seres vivos) utilizan en todos los ámbitos de su vida, como la tecnología, la política, la educación, los negocios, etcétera.
Se da una definición de lo que es la comunicación, los conceptos incluidos en esta y los pasos que se realizan al comunicarse.

Desarrollo

Definición

Es un proceso mediante el cual un emisor y un receptor realizan un intercambio de mensajes utilizando un canal a través de un medio, además de un mismo código, estableciendo una conexión en un momento y espacio determinado.

Conceptos incluidos en la definición

Emisor. Es quien inicia la comunicación, mediante la elección, codificación y el envío del mensaje.
Mensaje. Es la información que el emisor quiere transmitir al receptor. (Aprendizaje)
Receptor. Analiza y sintetiza la información que recibió del emisor; y se convierte en emisor al responder el mensaje. (Barba Guzmán & Cabrera Parra, 2003)
Canal. Es el conducto físico mediante el cual se transmite el mensaje. (Ministerio de Educación, 2007).
Medio. Dispositivo o equipo que el canal necesita para cumplir su función transmisora (Córica, 2012).
Código. Es un conjunto de símbolos cuyo significado debe ser conocido por el emisor y y el receptor (Córica, 2012).
Conexión. Es un enlace o atadura que une a una cosa con otra.

 Conclusión

La comunicación es vital en la vida del ser humano, desde la que se establece entre un alumno y su maestro, hasta la que se da entre las computadoras de los usuarios de las redes sociales.  Se debería de ahondar más en el tema debido a la importancia que tiene y ha tenido en la sociedad.

Bibliografía


Aprendizaje, C. V. (s.f.). Elementos del Proceso de la Comunicación. Recuperado el 18 de Agosto de 2013, de http://www.cca.org.mx/lideres/cursos/redaccion/comunicacion/cont_elementos.htm
Barba Guzmán, F., & Cabrera Parra, J. A. (2003). La comunicación. Puebla: Universidad de las Américas Puebla.
Córica, J. L. (2012). Concepto de comunicación educativa. Pachuca: Universidad Autonoma del Estado de Hidalgo.

Ministerio de Educación, C. y. (27 de Julio de 2007). Proyecto Cíceros. Recuperado el 17 de Agosto de 2013, de http://recursos.cnice.mec.es/lengua/profesores/eso1/t1/teoria_1.htm

domingo, 11 de agosto de 2013

Sistemas distribuidos

Sistemas distribuidos

Introducción

El objetivo de este trabajo es adquirir la noción y las características de lo que es un sistema distribuido, ya que en la actualidad, algunos programas y páginas web no funcionan en una sola computadora, sino que se necesita que haya dos o varias de ellas para compartir información entre los usuarios, con diversos objetivos, como jugar, realizar una tarea, comunicarse, etc.

Desarrollo


Definición de sistema distribuido

Es una red en la que sus componentes comparten información mediante un  protocolo para lograr un propósito.
Entre sus características se encuentran la concurrencia, tolerancia a errores, carencia de reloj global, apertura, transparencia y  escalabilidad.

Conceptos incluidos en la definición y características.

Red. Es un conjunto de computadoras conectadas entre sí.
Protocolo. Es un conjunto de reglas que se debe respetar para permitir el envío de mensajes en una red. (Protocolos, 2013)
Concurrencia. Los elementos de la red conectados pueden ocupar los recursos de la misma al mismo tiempo. (J. Sosa, 2012)
Tolerancia a errores. El sistema distribuido sigue activo aunque una de las computadoras haya dejado de funcionar o tenga alguna falla.
Carencia de reloj global. Cada uno de los componentes se coordina con el envío de mensajes, sin la necesidad de que sincronicen sus relojes para ello. (Benitez, Cabral, & Caceres, 10)
Apertura. Estos sistemas se desarrollan bajo estándares que permiten el uso de equipos de diferentes características. (Franco Martínez)
Transparencia.  La transparencia consiste en esconder al usuario la arquitectura del sistema. Para el usuario es indiferente usar un sistema distribuido. (Corral)
Escalabilidad. Otro(s) ordenador(es) pueden unirse al sistema sin que la comunicación de los demás se vea afectada.

 Mapa conceptual


Conclusión

Con esta investigación, he comprendido lo que es un sistema distribuido, sus características, las funciones que cumple, su importancia, trascendencia y las ventajas que tiene el diseñar un software en esta clase de sistema.

Bibliografía

Protocolos. (Julio de 2013). Recuperado el 2013 de Agosto de 10, de http://es.kioskea.net/contents/275-protocolos
Benitez, E., Cabral, C., & Caceres, M. O. (2002 de Julio de 10). Caracterización de los sistemas distribuidos. Recuperado el 09 de Agosto de 2013, de http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/CARSD02.htm
Corral, R. (s.f.). Sistemas distribuidos en .NET con remoting (I). Recuperado el 9 de Agosto de 2013, de http://www.dnmplus.net/articulos/sistemas-distribuidos-en-net-con-remoting-i.aspx
Franco Martínez, E. A. (s.f.). Sistemas Operativos II. Recuperado el 9 de Agosto de 2013, de http://computacion.cs.cinvestav.mx/~efranco/docencia/sistemasoperativosii/files/14_15_16_17_Arquitecturas_de_sistemas_distribuidos_y_Tarea_04.pdf

J. Sosa, V. (Enero de 2012). Sistemas distribuidos Panorama. Recuperado el 11 de Agosto de 2013, de http://www.tamps.cinvestav.mx/~vjsosa/clases/sd/sistemas_distribuidos_panorama.pdf