Bienvenidos al nuestro Blog de la materia :D

Equipo 6

• Jonathan Daniel Contreras Vargas ----> Matricula: 1443137

• Juan Martin Rios Gonzalez ----> Matricula: 1491904

• Angelica Zuleima Ramirez ----> Rivera Matricula: 1493139

• Alejandro Flores Vazquez ----> Matricula: 1446219

domingo, 26 de mayo de 2013

Proyecto Final


Proyecto Final


Introducción:

En la actualidad la rapidez forma parte de un factor muy importante, ya que en muchas ocasiones al momento de escoger un servicio o producto nos enfocamos en gran medida a la rapidez de este, así como cuando buscamos una respuesta, lo queremos rápido y confiable. Ahora al imaginar la gran cantidad de datos con las que tienen que trabajar diariamente las empresas internacionales, ahora con saber que el jefe quisiera saber cuantos de sus productos se están vendiendo en este mismo momento y de manera actualizada, solo con pensar en las miles de sucursales que tienen en todo el mundo. Que dolor de cabeza imaginar el contador de la matriz recibiendo datos de todo el mundo y contándolos uno por uno. Pues esto cambia totalmente con los sistemas distribuidos ya que funciona como una gran malla donde donde todas las computadoras trabajan al mismo tiempo para dar el resultado deseado, ya no tiene que sumar todo una sola ni de dato por dato, si no que todas las computadoras de las sucursales y de la matriz trabajan juntas para dar el resultado final de manera rapida


Planeación de la implementación:

Ya hablando de matrices y sucursales comerciales, nos vino la idea de que ademas de manejar datos de muchas sucursales seria una buena aplicación que estos datos recibidos sean de gran cantidad, de aquí nuestra idea de realizar "inventarios" de sucursales. El servidor sera instalado en la computadora que simula ser la matriz, y los demás clientes serán instalados en las sucursales. Los clientes(sucursales) realizaran su inventario simultáneamente y sera recidivo por el servidor(matriz) que este solo se encargara de sumar el total de cada cliente.


Proceso

El servidor les pedirá realizar inventarios simultáneamente a cada cliente, las cantidades con las que trabajaran estarán situadas en un txt, el cliente tiene la responsabilidad de tomar, leer e interpretar los archivos para saber la ganancia neta un año de tal sucursal, después de saber la ganancia, esta sera enviada al servidor, el cual estará a tentó de recibir todas y cada unas de las ganancias de todos sus clientes, estos al final serán sumados y mostrados para conocer la ganancia global



Aplicación

Como se vino contando anteriormente, este sistema distribuido sera aplicado en simulación de una empereza internacional, con sucursales alrededor de todo el mundo, que desean saber las ganancias globales, así que cada sucursal realizara sus operaciones correspondientes simultáneamente cuando la matriz lo desee, y serán enviadas a esta, para que después de realizar las sumas de casa sucursal tener al fin el resultado global.


Evidencia del programa:


1. El proyecto se ve de la siguiente manera, ya que es una aplicación de consola, aquí se observa la consola en los entornos de desarrollo Netbeans y Eclipse.

Figura 1.



2. El proyecto se ve de la siguiente manera, ya que es una aplicación de consola, aquí se observa la consola en los entornos de desarrollo Netbeans y Eclipse.

Figura 1.1



3. Ahora se inicia el servidor (Entorno Eclipse), para esperar a los clientes que quieran conectarse, después de esto se pide el IP correspondiente. El número de clientes puede llegar a ser de “N” cantidad.


Figura 1.2



4. Una vez que llega el cliente, el servidor le envía el archivo que solicitó el cual se va leyendo de número por número desde el archivo .txt, y tales cifras aparecen en la consola.

Figura 1.3



5. Posteriormente, se obtiene la suma total del archivo, Después, si llega otro cliente, se hace la misma operación, y como se observa en la figura 1.4 el servidor recibe la suma total del cliente.

Figura 1.4

Conclucion

Como hemos visto desde la introducción con el ejemplo del contador de la matriz de la empresa contando los datos uno por uno hasta el sistema distribuido donde pone a cada computadora de las sucursales a realizar las operaciones correspondientes para obtener las ganancias y ventas totales de su sucursal de manera simultanea, para que después solo la computadora de la matriz tenga que sumar las cantidades finales, de un ejemplo a otro tiene en comun el resultado, pero una gran diferencia en el tiempo de realización, donde en una se podrían tardar grandes jornadas de trabajo, hasta otra donde se obtienen los resultados de manera instantánea. Con este trabajo obtuvimos granes conocimientos sobre un sistema distribuido, y de la mejor manera que con un ejemplo práctico y llevando en práctica la realización de este, notamos la potencia y la rapidez casi instantánea de sistema distribuido y los grandes beneficios que otorga.

Actividad 10. Final

Resultado Final, Evidencia y Conclusión.


Resultado final

Se obtuvo lo que se esperaba del proyecto, ya que funcionó correctamente, leyendo los archivos y haciendo de forma correcta el inventario, los datos del servidor eran solicitados y enviados al cliente el cual por medio de un proceso los sumaba para conocer el inventario. El archivo, en formato txt, estaba compuesto por cientos de números, lo cual hacia la operación un poco más larga que cualquier otra, pero al final lo lograba.


Evidencia:

 Aquí se muestra un screenshot de cuando e conecta el cliente con el servidor. Posteriormente recibe datos y los envía, y muestra la suma tanto al cliente como al servidor, además de permitir conexiones múltiples:




Conclusión:

El resultado al que se quería llegar, se logró. Todo el equipo, coincidimos en que es un proyecto que nos dejó conocimiento muy útil para posibles trabajos futuros, no solo académicamente hablando sino también al momento de estar trabajando en una empresa, ya que lo sistemas distribuidos forman, hoy en día un papel muy importante en la sociedad y son de gran ayuda en la tecnologías de información de empresas, o lugares donde se manejan un alto número de datos, en las que un sistema paralelo, o un sistema secuencial, no pueden lograr.

Aviso







La entrada correspondiente a esta actividad es la misma que corresponde a la #9, haga clic en este ENLACE para ir a la entrada

Actividad 8. Fases, Planeación e Implementación

Fases, Planeación e implementación:


Las fases de nuestro proyecto fueron:

·         Elección del lenguaje de programación. El lenguaje forma parte importante del desarrollo del problema ya que debe soportar lo que queríamos hacer.
·         Elección de la funcionalidad. Se tenía en mente el trabajo a realizar, sin embargo, no había un
acuerdo en que e realizaría con los archivos.
·         Investigación para complementar con los conocimientos que tenemos. Previamente habíamos visto algo a cerca de los sockets cada quien por su propia cuenta, sin embargo nos fue necesario saber un poco más de lo que ya conocíamos.
·         Codificar. Se realizó la implementación del código en el lenguaje JAVA, por medio de Eclipse y NetBeans.
·         Realizar pruebas. Para revisar que todo estuviese en orden, y presupuestó que funcionara a la perfección


La planeación:

-          La primera planificación que hicimos fue la de estudiar, repasa cada quien a cerca de sockets y buscar una alternativa correcta para implementarlos orientado a nuestro proyecto.
-          Posteriormente, empezamos a revisar lo que sería necesario.
-          Después de saber que teníamos que haces el trabajo se dividió entre los miembros del equipo.
-          Después cada quien realizó la parte del proyecto que se le había asignado, para después de unos días revisarla en equipo, y revisar que todo estuviese en orden.
-          Ahora, el programa fue probado, y sometido a varias pruebas.
-          Después de revisar el programa, nos dimos cuenta que después de un tiempo no había errores así que funcionaba a perfección.


Implementación:

Al terminar todos estos pasos, se tuvo un programa que era capaz de realizar e inventario de una empresa sin necesidad de papeleo, ya que automáticamente tomaba el archivo y  lo procesaba, lo recibía del servidor y una vez que el cliente terminaba, lo enviaba a la respuesta.

sábado, 25 de mayo de 2013

Actividad 7: Presentación del caso de aplicación y detalles.


Presentación del caso, aplicación y detalles


Objetivo del proyecto:

Implementar un programa que sea capaz de realizar inventarios por medio de un sistema distribuido.


Descripción:
Se realizará un programa que sea capaz de realizar un inventario paa N cantidad de clientes con N cantidad de archivos; tales archivos tendrán una extensión .txt. Cada cliente llamará al servidor para realizar la petición del archivo, éste será mandado, y posteriormente recibido con la suma de la sub-empresa en un lapso determinado de tiempo.


Herramientas a utilizar:

·         Entorno de desarrollo para Java (Eclipse o Netbeans).
·         Tres o más computadoras conectadas en red, y una más que será el servidor.


Métodos a utilizar:

Para realizar la conexión entre cliente – servidor se utilizarán sockets, teniendo en cuenta que:




“Un socket (enchufe), es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API, application programming interface).
Un socket es también una dirección de Internet, combinando una dirección IP (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular, como FTP, Gopher, o WWW)”

La conexión se utilizará por medio de la IP, con computadoras conectadas en una misma red de usuarios, para de esta manera hacer más fácil el envío y recepción de los archivos.


 Conclusión:

Es un proyecto muy completo, ya que además de hacer la conexión debida del cliente con el servidor se abren y hacen inventarios de archivos txt, y nos ayuda a aprender un poco más a cerca del comportamiento de los sockets.