sábado, 21 de noviembre de 2020

FILOSOFÍA DE SISTEMAS


Según lo indicado por (Arnold Cathalifaud & Osorio, 1998) donde tuvo en cuenta la definición proporcionada por Bertalanffy, la filosofía de sistemas es una teoría, esta se puede definir como un conjunto de múltiples saberes que buscan establecer los principios generales de organización y orientación del conocimiento de la realidad y de la existencia humana.
Con ello se busca obtener respuestas respecto a las relaciones entre fenómenos naturales, sociales y tecnológicos. Por lo tanto, la filosofía de sistemas no solo se quiere involucrar en un solo campo o ley, sino que busca encarnarse en la mayoría por no decir en todas las leyes y principios.

 

 

La filosofía de sistemas consta de tres áreas:  

  1. La ontología de sistemas: La ontología de sistemas trata de definir a un sistema y entender cómo están plasmados los sistemas en los distintos niveles del mundo de la observación. Trata de distinguir el sistema real de un sistema conceptual; de un sistema real, de uno ideal.
  2. La epistemología de sistemas: Permite identificar los métodos de adquisición del conocimiento más acorde con la realidad. Diferencia la filosofía de sistemas con otros pensamientos filosóficos como: el positivismo, el empirismo lógico y el mecanicismo.
  3. Filosófica de valores de sistema: Busca la relación entre los seres humanos y el mundo, es decir, como llegaremos a ser en el futuro, como nos afecta en el sentido ético de la persona esta nueva forma de pensar, y otros.

Como profesionales en ingeniería, la filosofía de sistemas permite ver, percibir y entender todo como un sistema, lo que permitiría solucionar los diferentes problemas a partir del pensamiento sistémico.

        Referencias
          Arnold Cathalifaud, M., & Osorio, F. (1998). Introducción a los Conceptos Básicos de la         Teoría General de Sistemas. Redalyc.org, 12. Recuperado el 20 de Noviembre de             2020, de https://www.redalyc.org/comocitar.oa?id=10100306

 

lunes, 14 de septiembre de 2020

SISTEMAS DE ARCHIVOS QUE SE UTILIZA PARA EL ALMACENAMIENTO EN LA NUBE


Un sistema de archivos en la nube es un sistema de almacenamiento jerárquico que proporciona acceso compartido a los datos de archivos. Los usuarios pueden crear, eliminar, modificar, leer y escribir archivos, además de organizarlos de manera lógica en árboles de directorios para lograr un acceso intuitivo. Los sistemas de archivos que utilizan los sistemas de almacenamiento en la nube son los siguientes:

1. GlusterFS: Es un sistema de ficheros diseñado para la nube que puede ser escalable y distribuido permitiendo añadir recursos de almacenamiento desde distintos orígenes bajo un mismo espacio de nombres.

GlusterFS empezó siendo un sistema de almacenamiento clásico, basado en archivos. Más tarde pasó a ser orientado a objetos y al hacer el cambio se le dio una especial importancia a que pudiese integrarse adecuadamente en la conocida solución de código abierto OpenStack. En un segundo plano, GlusterFS sigue trabajando con archivos: a cada archivo se le asigna un objeto y la conexión entre ellos se establece mediante hardlinks en el sistema de archivos. De cara al usuario, no se muestra ningún servidor dedicado, sino que él o ella dispone de sus propias interfaces para guardar sus datos en GlusterFS, que se presenta como un único sistema. 

2. HDFS: Hadoop Distributed File System es un sistema distribuido basado en Java que permite obtener una visión de los recursos como una sola unidad. Para ello crea una capa de abstracción como un sistema de ficheros único. HDFS se encarga de almacenar los datos en varios nodos manteniendo sus metadatos. Distribuir los datos en varios nodos de almacenamiento aumenta la velocidad de procesamiento, el paralelismo en las operaciones y permite la replicación de los datos.

Está basado en la idea de que mover el procesamiento es mucho más rápido, fácil y eficiente que mover grandes cantidades de datos, que pueden producir altas latencias y congestión en la red. HDFS proporciona a las aplicaciones la capacidad de acceder a los datos en el lugar en el que se encuentren almacenados. 

3. Ceph – FS: Ceph File System es un sistema de archivos distribuido libre, está diseñado para el uso con gran cantidad de datos, está muy enfocado para el uso con Big Data. Ceph tiene como objetivo ser POSIX-compatible y completamente distribuido sin ningún punto de fallo. Los datos tienen replicación libre de errores, haciéndolo tolerante a fallos. 

Todos los componentes funcionan de manera descentralizada. Todos los OSD (Object Based Storage Device, es decir, los dispositivos de almacenamiento de objetos) tienen los mismos derechos. De esta forma, se pueden conectar entre sí tantos servidores como se quiera, con sus diferentes discos duros, para formar un sistema de almacenamiento unificado. 

4. GooFS: Google File System es un sistema de archivos distribuido que soporta toda su infraestructura informática de procesamiento de información en nube. ​ Está especialmente diseñado para proveer eficiencia, fiabilidad de acceso a datos usando sistemas masivos de clúster de procesamiento en paralelo.

5. MAPR-FS: Es un sistema de archivos distribuido, que es la base de la Plataforma Convergente MapR, con capacidades de almacenamiento distribuido de archivos, una base de datos NoSQL con múltiples APIs, y un sistema de transmisión integrado de mensajes. MAPR-FS está optimizado para la escalabilidad, el rendimiento, la fiabilidad y disponibilidad. Su capacidad de almacenamiento de archivos es compatible con la API de Apache Hadoop Distributed File System (HDFS) pero con varias características de diseño que lo distinguen de HDFS. Entre las diferencias más notables son que MAPR-FS es un sistema de archivos / escritura leído completamente con los metadatos de los archivos y directorios distribuidos en el espacio de nombres, así que no hay NameNode.

6. BeeGFS: Es el sistema de archivos paralelo de alto rendimiento desde el Centro de Competencia de Fraunhofer para la computación de alto rendimiento. La arquitectura de metadatos distribuida de BeeGFS ha sido diseñado para proporcionar la escalabilidad y la flexibilidad necesaria para ejecutar HPC y aplicaciones similares con altas demandas de E/S.

7. PVFS: El sistema de archivos virtual paralelo es un sistema de archivos paralelo de código abierto. Un sistema de archivos paralelo es un tipo de sistema de archivos distribuido que distribuye datos de archivos a través de varios servidores y proporciona acceso simultáneo mediante múltiples tareas de una aplicación paralela.

PVFS consta de 4 componentes principales y varios programas de utilidad. Los componentes son PVFS2-server, pvfslib, PVFS-client-core y el módulo de núcleo PVFS. Las utilidades incluyen la herramienta de administración de karma, utilidades como pvfs-ping, pvfs-ls, pvfs-cp, etc. que operan directamente en el sistema de archivos sin usar el módulo del kernel (principalmente para mantenimiento y pruebas). Otro punto clave del diseño es el protocolo PVFS que describe los mensajes que se pasan entre el cliente y el servidor, aunque esto no es estrictamente un componente. 

8. Lustre-FS: Sistema de archivos de código abierto que ofrece latencias inferiores a milisegundos, hasta cientos de gigabytes por segundo de rendimiento y millones de IOPS. Ofrece múltiples opciones de implementación y tipos de almacenamiento para optimizar el costo y el rendimiento para sus requisitos de carga de trabajo. 

Referencias

·       Andrew, S., & Maarten, V. S. (2006). Distribuidos principios de los sistemas y paradigmas.
·       Aprender BIG DATA. (20 de Julio de 2020). Aprender BIG DATA. Obtenido de https://aprenderbigdata.com/hdfs/
·       IONOS. (28 de Julio de 2020). Digital Guide IONOS. Recuperado el 13 de Septiembre de 2020, de https://www.ionos.es/digitalguide/servidores/know-how/glusterfs-vs-ceph/
·       WIKIPEDIA. (2018). WIKIPEDIA. Recuperado el 13 de Septiembre de 2020, de Enciclopedia Libre: https://es.qwe.wiki/wiki/Distributed_file_system_for_cloud#Google_file_system
·       Zonadam. (2019). Zonadam. Recuperado el 13 de Septiembre de 2020, de https://zonadam.com/glusterfs-sistema-de-almacenamiento-distribuido/

 

viernes, 17 de julio de 2020

FASES DE UN PROGRAMA "Holamundo.java"

A continuación se explicará las fases por las que pasa un programa en java, desde la cabeza del programador, hasta la ejecución en un sistema.  Esta explicación estará basada en un ejemplo similar que propone Deitel en su libro “How to program in Java”.

Las fases de un programa en java son las siguientes:

  • Fase de Creación o Edición
  • Fase de Compilación
  • Fase de Carga del programa en memoria
  • Fase de Verificación de Bytecodes
  • Fase de Ejecución

1.     Fase de creación o edición

Lo primero que hace un programador una vez que ya tiene en mente la aplicación que desea desarrollar es empezar a escribir el código. Esto es lo que se conoce como fase de edición y el resultado de la misma es el código fuente.

Podemos escribir un programa en java usando algo tan simple como el editor de texto en Windows; vi, vim o gedit en GNU/linux; o bien podemos usar una herramienta más orientada al desarrollo, o sea una IDE, como puede ser Eclipse, Netbeans, Sublime, entre otras.

El archivo que contiene el código fuente de un programa en java tendrá la extensión .java.

Un ejemplo simple de una aplicación que imprima algo en consola es la siguiente:

El nombre del archivo .java debe coincidir con el nombre de la clase (class), en este caso Holamundo.java

2.     Fase de compilación

Una vez el programador baja su idea a un código fuente, es hora de compilar el mismo. Este proceso convierte nuestro código fuente en códigos de bytes que más tarde serán interpretados por la JVM.

A diferencia de muchos otros lenguajes, los códigos de bytes compilados, pueden ejecutarse en cualquier sistema (Linux, Windows, MacOS, etc) que tenga la JVM correspondiente. Esto les da la característica de portabilidad a los mismos, lo cual es uno de los puntos fuertes de java.

Para compilar el código fuente, puede hacerse a través de IDE o por consola, con el comando javac (java compiler). Para el ejemplo sería:

javac Holamundo.java

Si todo va bien, la salida de esto es un archivo Holamundo.class, el cual contiene los bytecodes de la aplicación.

3.     Fase de Carga del programa en memoria

Cuando se ejecuta el programa en java con el comando java, entra en juego un componente llamado cargador de clases. Este, carga las clases dinámicamente en la JVM. Cabe recordar que la JVM es como una especie de computadora virtual. Lo primero que hará el cargador de clases es intentar cargar nuestro .class en memoria e ir cargando todos los .class a los que el programa (en el ejemplo Holamundo.class) haga referencia. Las clases a las que la aplicación haga referencia pueden encontrarse localmente en el disco duro o bien remotamente.

Todas las JVMs incluyen un cargador de clases, el cual es conocido como cargador de clases primordial.

4.     Fase de Verificación de Bytecodes

A fin de asegurar que no se violan restricciones de seguridad, a medida que se van cargando las clases en memoria, el verificador de bytecodes examina los bytecodes para asegurar que sean válidos. Esto se realiza por que el sistema Java run-time no confía en el código que se está cargando.

Se realizan pruebas tales como que el formato del fragmento de código sea el correcto, así como también:

  • Que no se forjen punteros
  • Que no haya violaciones de acceso a la memoria
  • Que los objetos sean accedidos por lo que son (Por ejemplo, que un objeto System siempre sea usado como System y nada más)

5.     Fase de Ejecución

Esta es la fase donde la JVM ejecuta las acciones especificadas por los bytecodes cargados en su memoria.

Los archivos .class se cargan en la memoria virtual y es la máquina virtual la que se encarga de traducir estas instrucciones que ella puede entender a instrucciones que entiende el Sistema Operativo y hardware subyacente.

Como se observa en la imagen, la JVM actúa como una capa intermedia entre su lenguaje “máquina” (entendible por la JVM) y el sistema subyacente. Esto hace que el código compilado sea independiente de la plataforma en la cual se va a ejecutar.

A fin de ganar eficiencia en el proceso de interpretar el código que la JVM puede entender a código que sea entendible por la computadora, las JVMs actuales utilizan una técnica conocida como compilación Just in Time o JIT (También se lo conoce como HotSpot compiler). Cuando se detecta que hay bytecodes que se ejecutan con frecuencia el compilador JIT los traduce a lenguaje de máquina, con lo cual la próxima vez que la JVM encuentre estos bytecodes los ejecutará directamente sin necesidad de pasar por el proceso de interpretación, sumando eficiencia a la ejecución del programa en java.

Referencias

  • Deitel, H. M. (2005). Java How to Program in Java. Prentice-Hall.

  • Osorio, V. (23 de Agosto de 2010). Lo Que Andabas Buscando. Recuperado el 15 de Julio de 2020, de http://virginia-ingsystem10.blogspot.com/2010/08/proceso-de-compilacion-en-java.html

  • SITEOWNER. (18 de Julio de 2015). KNOW DIMENSION. Recuperado el 16 de Julio de 2020, de http://knowdimension.com/blog/lenguajes/programando-en-java-de-la-escritura-a-la-ejecucion/#:~:text=Las%20fases%20de%20un%20programa,Carga%20del%20programa%20en%20memoria

  • Un Aprendiz De Programación. (2012). Obtenido de http://unaprendizprogramacion.blogspot.com/2015/08/fases-de-un-programa-en-java.html

 

 

 

 

 

 


sábado, 1 de septiembre de 2018

EL GRAN MISTERIO DE LAS MATEMÁTICAS

ANÁLISIS: “ EL GRAN MISTERIO DE LAS MATEMÁTICAS”

Desde la antigüedad hasta el día de hoy las matemáticas han sido estudiadas por muchos personajes como  Pitágoras, Platón, Arquímedes, Kepler, Fermat, Descartes, Galileo, Newton, Einstein entre otros, que han logrado encontrar en ellas muchas respuestas para poder explicar las diferentes hipótesis sobre los fenómenos presentes en la naturaleza. El hombre se ha servido de las matemáticas, los números y el álgebra para explorar el mundo físico y comprender las reglas de la naturaleza que nos rodea. Las matemáticas también nos han permitido llevar a cabo grandes hazañas tecnológicas y descubrimientos científicos como: el descifrado de las órbitas de los planetas, el descubrimiento del Boson de Higgs, e aterrizaje del Curiosity en Marte, los teoremas y las ecuaciones matemáticas de Pitágoras, la ley de gravitación universal de Newton, el misterioso número Pi, etc. Teorías científicas consideradas la clave del Universo. 

Las matemáticas rigen a todo el mundo y universo, ya que las matemáticas han logrado descubrir de una manera perfecta al mundo natural y gran parte del universo. Pero si las matemáticas rigen el mundo natural entonces ¿las matemáticas forman parte del universo y se descubrieron o son una invención del cerebro?. Es muy claro que, hacer converger a un solo punto este interrogante, de si la matemáticas son o se hace está muy distante, y diría yo, lejos de llegar a ser una verdad absoluta, es que las matemáticas son una relación entre lo que se inventa y se descubre, Todo tiene un principio y una estructura lógica que me permite crear, luego formalizarlo y luego volverlo general, esto hace las matemáticas: descubrir-inventar, estructurar, formalizar, demostrar y generalizar. Para mí hay partes de las matemáticas inventadas y parte de las matemáticas descubiertas y una lleva a la otra.

Las matemáticas es la base de ingeniería de sistemas, estas nos permitirá programar, diseñar, solucionar diferentes problemas utilizando teoremas, formulas, etc.

REFERENCIAS
1.    Docutami (Dirección). (2017). El Gran Misterio de las Matemáticas - Documental - Ciencia. Obtenido de https://www.youtube.com/watch?v=OJRDM9wn-9U&t=4s


miércoles, 29 de agosto de 2018

COMO EL CLIMA DETERMINO LA HISTORIA


ANÁLISIS: "COMO EL CLIMA DETERMINO LA HISTORIA"

Los diversos cambios climáticos jugaron un papel muy importante en la evolución humana. Todos los cambios climáticos obligaron a los seres vivos y en especial a los humanos a adaptarse, desarrollar habilidades y evolucionar ante circunstancias cambiantes. Las especies que no lograban adaptarse se extinguían y daban paso a otros seres más adaptables para que ocupasen su habitad. 
El clima por naturaleza es cambiante. En donde las condiciones climáticas favorables permitían que los seres lleguen a adaptarse y sobrevivir con los recursos que existiesen; así como también daba la posibilidad de formar grandes imperios, promover el comercio, prosperidad y logros artísticos. En cambio en las condiciones climáticas adversas pocos seres podían adaptarse así como por ejemplo el Hombre Neandertal tenían la anatomía perfecta como para poder vivir en la edad de hielo, pero como su dieta era consumir grandes cantidades de carne, un repentino caos climático, empezó a desaparecer a los animales y como seguido a estos hombres porque ya no tenían recursos para llevar una alimentación. Las condiciones climáticas adversas provocaba la escasez de recursos en las civilizaciones, lo cual conllevaba a guerras y otras catástrofes humanas. 
La ingeniería puede ser entendida "como el arte de dirigir la mayor parte de las fuentes de energía de la naturaleza para el uso y la conveniencia del hombre". La evolución fue importante para la carrera de ingeniería de sistema, al estar en este mundo tan cambiante, los humanos tuvieron la necesidad de adaptarse, lo cual impulso a que se innovara, desarrollar sistemas que beneficien a los humanos para una mejor adaptación y sobrevivencia, lo cual indicaría que la evolución ya no sería a nivel físico-mental, ahora la evolución se centraría solo en la mental.
En estos tiempos, donde nosotros fuimos los causantes del calentamiento global, estamos tratando de controlar el clima de la Tierra.
La película “Geostorm: Esta sí es la tormenta perfecta” se puede ver una forma de control del clima a través del trabajo de las diferentes ingenierías, pero la que controla toda esa red son ingenieros de sistemas. La historia de la película dirigida por Dean Devlin, se ubica en un futuro no muy lejano en el que después de una serie de desastres naturales sin precedentes en el planeta Tierra, los líderes del mundo se unieron para crear una intrincada red de satélites que controlan el clima y así mantener la humanidad a salvo de catástrofes. Pero ahora algo ha fallado, y ese sistema construido para proteger la Tierra ahora está atacando el planeta.
El equipo que lucha contrareloj para resolver el fallo y salvar al mundo de la destrucción cuenta con: un científico llamado Jake que, junto con su hermano Max, tienen la difícil tarea de resolver el problema de funcionamiento del programa del satélite. (Devlin, 2017)

REFERENCIAS

1.    Devlin, D. (Dirección). (2017). Geostorm [Película].
2. DOCUMENTALIA (Dirección). (2016). Cómo el clima determinó la historia 1/2 [Documental]. Obtenido de https://www.youtube.com/watch?v=xbQ3jkfkeVw
3. DOCUMENTALIA (Dirección). (2016). Cómo el clima determinó la historia 2/2 [Documental]. Obtenido de https://www.youtube.com/watch?v=GwvXahCBp_4





FILOSOFÍA DE SISTEMAS

Según lo indicado por (Arnold Cathalifaud & Osorio, 1998) donde tuvo en cuenta la definición proporcionada por Bertalanffy, la filoso...