Programación al Extremo

Buscar en este blog

miércoles, 30 de noviembre de 2016

Sistemas Operativos y Sistemas de Archivos - Administrador de Bases de Datos Capitulo 2

Programación al Extremo : base datos

Introducción
La administración de bases de datos exige un conocimiento aplicado en Hardware y Software. En temáticas de software, el conocimiento en el manejo y operación de los diferentes sistemas operativos es vital para la implementación y configuración del sistema manejador de base de datos acorde a las políticas y criterios de una organización.

En el mercado de TI encontramos diferentes opciones de sistemas operativos, no obstante la implementación de un sistema manejador de base de datos, se debe hacer en una plataforma que soporte los acuerdos de nivel de servicio entre los interesados de un proyecto específico, al tiempo que se debe propender en seleccionar el software producto de los análisis y estudios previos que soporten cualquier decisión.

Mapa conceptual Sistemas Operativos y Sistemas de Archivos


Sistemas Operativos

Cuando un programa desea acceder a un recurso, no necesita enviar información específica a los dispositivos periféricos; simplemente envía la información al sistema operativo, y este a su vez transmite a los periféricos correspondientes a través de su controlador o driver. 



Sistema de archivos
Es la estructura subyacente que un sistema operativo usa para organizar los datos de un disco duro.

Interprete de Comandos
Facilita la comunicación con el sistema operativo a través de un lenguaje de control. 

Núcleo
Provee las funciones básicas del S.O.: gestión de memoria, de los procesos, de los archivos, de las E/S principales y de las funciones de comunicación.

Componentes de un Sistema Operativo

Componentes de un Sistema Operativo


Núcleo
Incorpora las funciones básicas del sistema operativo, como por ejemplo, la gestión de la memoria, de los procesos, de los archivos, de las input/output principales y de las funciones de comunicación.

Interprete de Comandos
Facilita la comunicación con el sistema operativo a través de un lenguaje de control.  Un usuario puede introducir órdenes mediante un conjunto de instrucciones directamente al núcleo y al conjunto de herramientas que hacen parte del sistema operativo.

Sistema de archivos
Un sistema de archivos es la estructura subyacente que un sistema operativo usa para organizar los datos de un disco duro. Si está instalando un disco duro nuevo, tiene que realizar las particiones y formatearlo empleando un sistema de archivos para poder comenzar a almacenar datos o programas.  La mayoría de los sistemas operativos manejan su propio sistema de archivos. 
Entre los principales sistemas de archivos podemos mencionar: FAT, HPFS, NTFS, EXT3, XFS.

FAT (File Allocation Table) es el sistema de archivos más sencillo compatible con Windows NT. El sistema de archivos FAT se caracteriza por la tabla de asignación de archivos (FAT), que en realidad es una tabla en la que reside la parte "superior" del volumen. Para proteger el volumen, se conservan dos copias de la FAT por si una de ellas resulta dañada. Además, las tablas de FAT y el directorio raíz deben almacenarse en una ubicación fija para que se puedan encontrar correctamente los archivos de inicio del sistema.

Un disco formateado con FAT se asigna en clústeres, cuyo tamaño está determinado por el tamaño del volumen. Cuando se crea un archivo, se crea una entrada en el directorio y se establece el primer número de clúster que contiene datos. Esta entrada de la tabla FAT indica que éste es el último clúster del archivo o señala al clúster siguiente. (Consultar: http://support.microsoft.com/kb/100108/es ).

FAT (File Allocation Table)




El sistema de archivos HPFS (High Performance File System) se presentó para permitir un mejor acceso a los discos duros mayores que estaban apareciendo en el mercado. Además, era necesario que un nuevo sistema de archivos extendiera el sistema de nomenclatura, la organización y la seguridad para las crecientes demandas del mercado de servidores de red. HPFS mantiene la organización de directorio de FAT, pero agrega la ordenación automática del directorio basada en nombres de archivo. Los nombres de archivo se extienden hasta 254 caracteres de doble byte. HPFS también permite crear un archivo de "datos" y atributos especiales para permitir una mayor flexibilidad en lo que se refiere a admitir otras convenciones de nomenclatura y seguridad. Además, la unidad de asignación cambia de clústeres a sectores físicos (512 bytes), lo que reduce el espacio en disco perdido.

El sistema de archivos HPFS (High Performance File System)


NTFS (New Technology File System) a diferencia de FAT o de HPFS, no hay ningún objeto "especial" en el disco y no hay ninguna dependencia del hardware subyacente, como sectores de 512 bytes. Además, no hay ninguna ubicación especial en el disco, como las tablas de FAT o los Bloques súper de HPFS. 
Algunos objetivos de NTFS son: 

Confiabilidad, que es especialmente deseable para los sistemas    avanzados y los servidores de archivos • Una plataforma para tener mayor funcionalidad 
Eliminación de las limitaciones de los sistemas de archivos FAT y HPFS

NTFS (New Technology File System)

EXT3 / EXT4
Un extent es un conjunto de bloques físicos contiguos, mejorando el rendimiento al trabajar con ficheros de gran tamaño y reduciendo la fragmentación. Un extent simple en ext4 es capaz de mapear hasta 128MiB de espacio contiguo con un tamaño de bloque igual a 4KiB.
El sistema de archivos ext3 es compatible adelante con ext4, siendo posible montar un sistema de archivos ext3 como ext4 y usarlo transparentemente.  Este sistema de archivos es utilizado por sistemas operativos como Linux.

EXT3 / EXT4



XFS es un sistema de archivos concebido inicialmente para la plataforma UNIX, siendo posteriormente utilizado en Irix y diferentes distribuciones de linux. XFS soporta un sistema de archivos de hasta 9 exabytes, aunque esto puede variar dependiendo de los límites impuestos por el sistema operativo.

XFS
Funciones del Sistema Operativo

Funciones del Sistema Operativo



Gestión de Procesos
En este escenario el sistema operativo se encarga de iniciar y finalizar los procesos entendiendo que un proceso es un programa en ejecución que necesita recursos para realizar su tarea: Memoria, tiempo de CPU, dispositivos de I/O.
Un proceso se manifiesta en el S.O como un bloque de control de proceso (PCB.  Cada proceso es representado por su PCB. El PCB es una estructura de datos que contiene información importante acerca del proceso como: Estado actual del proceso, Id del proceso, prioridad, apuntadores de localización, áreas para salvar registros.
El PCB es un almacenamiento central de información que permite al S.O localizar toda la información clave sobre el proceso.

Gestión de la memoria
El SO es el responsable de: conocer qué partes de la memoria están siendo utilizadas, definir qué procesos se cargarán en memoria cuando haya espacio disponible, asignar y reclamar espacio de memoria cuando sea necesario.

Gestión de E/S
Para realizar procesos de entrada-salida (I/O), las aplicaciones utilizan dispositivos diversos con formas de operación secuencial, con transferencia de datos síncrona o asíncronamente; pueden ser de lectura/escritura o sólo lectura.  El sistema operativo permite que las aplicaciones puedan hacer uso de estos dispositivos, A través de una interfaz que los expone de una manera más simple, de igual forma concentra su función en manejar y controlar las tareas de los dispositivos.

Gestión de archivos
Los archivos o ficheros son unas unidades lógicas de almacenamiento que define el propio sistema operativo.  Se estructuran como una serie de bits cuyo significado está definido por su creador.  Un sistema de gestión de archivos facilita a los usuarios y aplicaciones servicios para el uso y control de accesos a directorios y archivos.
El sistema operativo proporciona una vista lógica uniforme del almacenamiento de la información, haciendo una abstracción de las propiedades físicas de los dispositivos de almacenamiento para definir una unidad de almacenamiento lógico.  El sistema operativo hace un mapa de los archivos en los medios físicos y accede a estos archivos a través de los dispositivos de almacenamiento.
El sistema operativo es responsable de las siguientes tareas relacionadas con la administración de archivos:
 

Gestión de comunicaciones
La comunicación entre diferentes sistemas se genera a través de interfaces que son controladas por el sistema operativo. De igual manera se deben crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, creando y manteniendo conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

Gestión de recursos
Las computadoras modernas constan de procesadores, memorias,  discos, ratones, interfaces de red, impresoras y una amplia gama de dispositivos. El sistema operativo asegura un reparto ordenado y controlado de los procesadores, memorias y dispositivos de E/S, entre las diversas aplicaciones que requieren de los mismos.
Cuando una computadora(o red de computadoras) tiene múltiples usuarios, la necesidad de administrar y proteger la memoria, los dispositivos de E/S y los demás recursos es aún mayor, ya que en otro caso los usuarios podrían interferirse entre sí. Es común que los usuarios tengan que compartir no solo el hardware, sino también la información (ficheros, bases de datos, etcétera). En pocas palabras, esta perspectiva del sistema operativo centra su tarea en mantenerse al tanto de quién está utilizando cada recurso, conceder recursos solicitados, contabilizar el uso de los recursos y resolver los conflictos que se presenten entre las solicitudes de las diferentes aplicaciones y usuarios.

Clasificación de los Sistemas Operativos

Clasificación de los Sistemas Operativos

Administración  de tareas
Monotarea
Aquel sistema operativo que solo puede ejecutar un proceso a la vez se denomina monotarea.
 
Multitarea
Es aquel sistema operativo que permite la ejecución de varios procesos al mismo tiempo haciendo uso de uno o más procesadores.  En contextos de programación de computadoras  puede estar modificando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background.  Las interfaces gráficas elevan la usabilidad de las aplicaciones y permite un rápido intercambio entre las tareas para los usuarios.

Administración de Usuarios
Monousuario
Son aquellos S.O que Soportan a un usuario a la vez.  En este escenario no importa el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón. 
Los sistemas monousuarios pueden atender a un solo usuario, normalmente por las limitaciones de hardware, los programas o el tipo de aplicación que se esté ejecutando.  En esta clasificación encontramos algunas versiones domésticas del S.O Windows y el MS-DOS.

Multiusuario
En esta categoría se encuentran todos los sistemas operativos que cumplen simultáneamente las necesidades de dos o más usuarios compartiendo los mismos recursos. Este tipo de sistemas se emplean especialmente en redes. 
En esta categoría encontramos sistemas operativos como: Windows, Mac OS X, Solaris, Linux, Unix entre otros.

Manejo de recursos
En esta categoría los sistemas operativos pueden ser centralizados o distribuidos, dependiendo si permite usar los recursos de una sola computadora o la utilización de recursos como memoria, cpu, discos de varias computadoras al mismo tiempo.

Sistemas operativos para dispositivos móviles
Este tipo de sistema operativo es el que controla un dispositivo móvil, al igual que las computadoras utilizan Windows o Linux u otros, pero son más simples y están más orientados a la conectividad inalámbrica, los formatos multimedia para móviles y las diferentes maneras de introducir información en ellos.
Entre los sistemas operativos para móviles se destacan: Android, Windows Mobile, iOS, Symbian OS, Blackberry OS.

Sistemas operativos de red
Son aquellos sistemas operativos que mantienen a dos o más computadoras unidas a través de algún medio de comunicación (físico o no), con el objetivo de poder compartir los diferentes recursos y la información del sistema.
Los sistemas operativos de red más usados son: Windows Server, Linux, Novell NetWare,  Unix.

Microsoft Windows Server

Microsoft Windows Server

 
En abril de 2003, Microsoft introdujo Windows Server 2003, reemplazando a la línea de productos de servidor de Windows 2000 incluyendo nuevas características y un fuerte enfoque en la seguridad. La familia Windows Server ofrece una base sólida para toda la carga de trabajo del servidor en una red de computadoras incluyendo herramientas que facilitan su implementación y administración. Las nuevas versiones como Windows server 2008 r2 involucran herramientas mejoradas para procesos  de virtualización, recursos Web, enfocándose en proveer una plataforma para un centro de datos dinámico y administrado de manera eficiente.


Directorio Activo

El Directorio Activo es un componente central de la plataforma Windows que proporciona los medios para gestionar las identidades y relaciones que organizan los entornos de red. Microsoft a partir de su versión de S.O Windows Server 2003 hace el Directorio Activo más sencillo y fácil de administrar, y facilita la migración y la instalación.

GNU/ Linux
 
GNU/ Linux
GNU/Linux es un sistema operativo libre tipo Unix.  Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo.
El núcleo GNU/Linux fue desarrollado en el año de 1991 por el entonces estudiante de ciencias de la computación finlandés, Linus Torvalds.  GNU/Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para su uso en el nuevo sistema operativo. El núcleo Linux ha recibido contribuciones de miles de programadores.
Normalmente GNU/Linux se utiliza junto a un empaquetado de software, llamado distribución Linux.Una distribución GNU/Linux es una versión de software basada en el núcleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, y es así como se da origen a ediciones domésticas, empresariales y para servidores.  Hoy en día es común encontrar distribuciones de GNU/Linux posicionadas en el mercado con nombres como: Red Hat, Fedora, Debian, Suse, Conectiva, Mandrake, Slackware entre otras.
Una de las razones de la versatilidad del S.O GNU/Linux radica en la estructura y funcionamiento del sistema de ficheros, conocido como Virtual File System (VFS).  El VFS oculta las particularidades de cada sistema de ficheros y unifica el manejo a través de una API común.

Novell NetWare
 
Es una de las plataformas de servicio más fiable para ofrecer acceso seguro y continuado a la red y los recursos de información, especialmente a servidores de archivos.  Netware fue impulsado por Novell bajo la presidencia (1983 a 1995) de Ray Noorda, quien falleció en octubre de 2006.  Novell creció de 17 a 12.000 empleados y se convirtió en una de las compañías más importantes de tecnología que aparecieron en la década de 1980.

Unix
 
Es un sistema operativo multiusuario y multitarea de tiempo compartido, controla los recursos de una computadora y los asigna entre los diferentes usuarios. Permite a los usuarios correr sus programas. 
Controla los dispositivos de periféricos conectados a la máquina.  
 
GLOSARIO
 
API: Interfaz de programación de aplicaciones, es utilizada en procesos de programación orientada a objetos.

EXT3: (third extended filesystem o "tercer sistema de archivos extendido"), es el sistema de archivo más usado en distribuciones Linux, aunque en la actualidad está siendo remplazado por su sucesor, ext4.

FAT: Comúnmente conocido como FAT (del inglés file allocation table), es un sistema de archivos desarrollado para MS-DOS, así como el sistema de archivos principal de las ediciones no empresariales de Microsoft Windows hasta Windows Me.

HPFS: High Performance File System, o sistema de archivos de altas prestaciones, fue creado específicamente para el sistema operativo OS/2 para mejorar las limitaciones del sistema de archivos FAT.

KERNEL: Software que constituye la parte más importante del sistema operativo
KiB: kibibyte es una unidad de información o almacenamiento de datos. Corresponde a 210 bytes, es decir 1024 bytes. Se representa con el símbolo KiB con K mayúscula.
MiB: Mebibyte en su forma abreviada, MiB, es una unidad de información o memoria cuyo valor es de 220, equivalente a 1.048.576 bytes.

NOVELL: Proveedor líder de software de infraestructura

NTFS: New Technology File System es un sistema de archivos de Windows NT incluido en las versiones de Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista y Windows 7.

PCB: Bloque de control de proceso.

XFS: Sistema de archivos de 64 bits con journaling de alto rendimiento creado por SGI (antiguamente Silicon Graphics Inc.) para su implementación de UNIX llamada IRIX

RECURSOS BIBLIOGRÁFICOS
 
Dione, M. D. (s.f.). GrULiC. Recuperado el 11 de Abril de 2012, de Grupo de 
Usuarios de Software Libre de Córdoba: 
http://www.grulic.org.ar/~mdione/www-grulic/trunk/linux.html
Microsoft. (19 de Agosto de 2005). Soporte Microsoft. Recuperado el 11 de Abril de 2012, de Introducción a los sistemas de archivos FAT, HPFS y NTFS: http://support.microsoft.com/kb/100108/es
Tanenbaum, A. S. (2009). Sistemas Operativos / Diseño E Implementación (Tercera Edición ed.). Prentice Hall.
Tanenbaum, A. S. (2003). Sistemas Operativos Modernos. Prentice Hall.

Desarrollador de contenido -Experto temático- Fernelly Carvajal Silva 

Asesor pedagógico Rafael Neftalí Lizcano Reyes

Producción Multimedia Eulises Orduz Amézquita - Victor Hugo Tabares Carreño

Programador       Daniel Eduardo Martínez

Líder expertos temáticos Ana Yaqueline Chavarro Parra


Creative Commons

lunes, 28 de noviembre de 2016

Aspectos legales y Éticos del Ejercicio de la Ingeniería de Sistemas en Colombia

Programación al Extremo : legal , seguridad
En el siguiente articulo veremos cual es la normas que debe tener en cuenta un Ingeniero de Sistemas al momento de ejercer la profesión en Colombia, me imagino que en los demás países aplicaría una normatividad diferente.

Ley 527 de 1999- Comercio Electrónico : Por medio de la cual se define y reglamenta el acceso y uso de los mensajes de datos, del comercio electrónico y de las firmas digitales, y se establecen las entidades de certificación y se dictan otras disposiciones.

Ley 734 de 2002 - Código único disciplinario : Aplica para servidores públicos.

Ley 842 de 2003 - Ejercicio de la Ingeniería y código de ética : Por la cual se modifica la reglamentación del ejercicio de la ingeniería, de sus profesiones afines y de sus profesiones auxiliares, se adopta el Código de Ética Profesional y se dictan otras disposiciones.

Ley 1273 de 2009 - Delitos Informáticos: Por medio de la cual se modifica el Código Penal, se crea un nuevo bien jurídico tutelado - denominado "de la protección de la información y de los datos"- y se preservan integralmente los sistemas que utilicen las tecnologías de la información y las comunicaciones, entre otras disposiciones.

Ley 1581 de 2012 - Protección de datos personales: Por la cual se dictan disposiciones generales para la protección de datos personales.

Ley 1712 de 2014 - Acceso a la información pública : Por medio de la cual se crea la Ley de Transparencia y del Derecho de Acceso a la Información Pública Nacional y se dictan otras disposiciones.

Así que como dicen en mi tierrita pilas pelaos al momento de Desarrollar Software y prestar sus servicios como ingenieros.
Lean muy bien esas normas para ver a que se exponen.

Cual es la de tu país?

domingo, 27 de noviembre de 2016

Arquitectura de red para servicios de base de datos - Administrador de Bases de Datos Capitulo 1

Programación al Extremo : base datos

ARQUITECTURA DE RED PARA SERVICIOS  DE BASE DE DATOS


Mapa Conceptual Arquitectura de Red para Servicios de Bases de Datos

Mapa Conceptual Arquitectura de Red para Servicios de Bases de Datos

INTRODUCCIÓN
El marco general de la infraestructura de Hardware y Software, da inicio al proceso de alfabetización tecnológica en aspectos relacionados con el hardware de servidores y de las arquitecturas de red para servicios de base de datos: conceptos, clases, características y ventajas.

Estas temáticas ofrecen la base conceptual respecto a la infraestructura de hardware disponible, información que posteriormente va a ser utilizada en el planteamiento de los diseños de la arquitectura de servicios de base de datos a ser implementadas en las organizaciones.

ARQUITECTURA DE RED

La palabra arquitectura proviene del griego αρχ (arch, cuyo significado es ‘jefe’, ‘quien tiene el mando’), y τεκτων (tekton, es decir, ‘constructor’ o ‘carpintero’). Arquitectura de red es la técnica de diseñar y construir redes de computadores de forma optima en el uso de recursos informáticos y los servicios prestados.

Una red es un conjunto de computadores conectados entre sí por medio de dispositivos físicos con la finalidad de compartir servicios, información y recursos.


Una red se clasifica por su topología:

Tipo Bus: Cuando un computador envía un mensaje viaja a todo el resto de computadores de la red para determinar el destinatario del mensaje, entre las ventajas que podemos encontrar es la facilidad de implementar, es muy económica y requiere menos cableado y es ideal para empresa pequeña. Las desventajas que presenta esta topología es pasiva, es decir el mensaje se puede perder y porque no regenera la señal, otra desventaja es, si se rompe el cable de conexión o un computador se desconecta, se abre el circuito de red y se interrumpe la comunicación.

Topología - Tipo Bus
Tipo estrella: Es similar a la topología tipo bus pero con la diferencia es que los computadores envían el mensaje hacia un concentrador y este los reenvía por todos los puertos hasta encontrar el destinatario, el cual lo puede leer. Ventajas: Si un computador se desconecta la red o su cable, la red mantiene su funcionamiento.

Topología - Tipo Estrella



Tipo anillo o doble anillo: Es similar a la topología en bus pero con la diferencia es que los extremos de la red esta conectados entre si, formando un anillo; también es conocida como Token Ring(anillo de señales), este tipo de tipología es poco usada en la actualidad porque presenta los mismos problemas que la topología en bus, si se rompe el cable de conexión o un computador se desconecta, se habre el circuito de red y se interrumpe la comunicación.
Topología - Tipo Doble Anillo
La red de doble anillo consta de dos anillos que aumentan la fiabilidad y flexibilidad de la red, uno de los anillo es utilizado para la transmisión y el otro para respaldo, garantizando que si un cable de red se desconecta el otro anillo permite la transmisión.
Topología - Tipo Doble Anillo

Tipo malla o totalmente conexa: Cada dispositivo se conecta punto a punto con los demás miembros de la malla.
Topología - Tipo Malla

Tipo en arbol: Conocida como topología jerárquica, conformada por un conjunto de redes de tipo estrella ordenadas jerárquicamente, si falla se rompe su conexión, solo este nodo queda aislado y la red sigue funcionando.
Topología - Tipo Arbol

Tipo Mixta:Es la utilización de varias topologías.
Topología - Tipo Mixta
EL MODELO OSI

El modelo de interconexión de sistemas abiertos (OSI), es un estándar creado en 1984 por la organización internacional de estandarización (ISO), que definieron una serie de reglas aplicables a todas las redes que ayudan a ser compatibles con cualquier red disponibles en el mercado.

Este modelo consta de siete niveles:
Modelo OSI

Nivel de aplicación: Permite a las aplicaciones acceder a los servicios prestados por los otros niveles para intercambiar datos, utilizando diversos protocolos como TCPIP, SMTP, FTP, etc.

Nivel de presentación: Permite que la información manejada en diferentes formatos por los dispositivos sea convertida en un formato estándar para ser leída por otros dispositivos,

Nivel de sesión: Utilizado para sincronizar la comunicación entre el emisor y el receptor, permitiendo que cualquier programa pueda usar la red.

Nivel de transporte: Realiza un puente entre los tres niveles(Transmisor -Red - Receptor) en comunicación y en procesamiento.

Nivel de red: Define el nivel de enrutamiento y el envío de mensajes a través de la red, establece y finaliza la transmisión.

Nivel de enlace de datos: Facilita la transmisión de bloques de datos para detectar errores en el nivel físico, en la retransmisión o reconfiguración de la red, enviar bloque de datos de control para la sincronización de la red; todo esto para garantizar una transmisión libre de errores.

Nivel físico: Establece el medio de comunicación a establecerse, disponiendo controles mediante bits para definir: aspectos mecánicos, eléctricos, funcionales, técnicos, codificación y velocidad de ésta.
ELEMENTOS DE UNA RED

HUB (Concentrador): Dispositivo electrónico que une el cableado de una red, dentro del modelo OSI, actual sobre la capa física.

SWITCH (conmutador): Dispositivo electrónico que une redes de computadores, funcionan como un filtro, mejorando el rendimiento y la seguridad.

PUENTE DE RED (Bridge): Dispositivo electrónico que une dos segmentos de red uniéndolas como si fuera una sola, y trabaja sobre la capa 2 del modelo OSI, funcionando a través de una tabla de direcciones físicas de tarjetas de red (MAC), detectadas en cada segmento.
 PUENTE DE RED

ENRUTADOR COMPUTADOR

PUERTA DE ENLACE (GATEWAY): Dispositivo que permite conectar redes con protocolos y arquitecturas diferentes traduciendo la información del protocolo de las redes.

ENRUTADOR (Router): Dispositivo electrónico que une redes de computadores y opera en la capa 3 del modelo OSI(Nivel de red), permitiendo el enrutamiento de paquetes entre redes y determinar la ruta que debe tomar el paquete. ·

REPETIDOR: Dispositivo electrónico que recibe una señal débil y la retransmite a una potencia más alta.
Por su Modo de transmisión

Unidireccionales (Simplex): Donde una estación transmite y la otra recibe, donde la comunicación se hace en solo un sentido.

Full-Duplex (Bidireccionales): Cuando en una LAN, dos nodos se comunican, la información viaja en una sola dirección y dada que esta red utiliza en banda, eso significa que pueden transmitir en los dos sentidos simultáneamente.

Half-Duplex (Bidireccionales): Significa que pueden transmitir en los dos sentidos pero no simultáneamente.
ENRUTADOR COMPUTADOR
Por su Tamaño

Red de área local (LAN): Es una red que se pueden conectar computadores, servicios y periféricos, en un área relativamente pequeña, máximo a 200 metros de distancia. Una de las características especiales son: Transmisión por difusión (Broadcast); capacidad de transmisión de 1MB a 1GB dependiendo del medio y dispositivo de transmisión; es utilizada como medio de transmisión privada; se puede utilizar repetidores para aumentar su cobertura de transmisión.

Red de area amplia (WAN): Es el conjunto de redes LAN interconectadas entre si.
Red de area amplia (WAN)
Por su Uso

Cliente Servidor: Agrupa conjunto de elementos y dispositivos que efectuan procesos distribuidos y computo distribuido, conformado por muchos cliente y un servidor que atiende peticiones y las resuelve para sus clientes, los clientes mantienen el dialogo con su servidor. Algunas ventajas de la arquitectura son: reducen el trafico de red, opera bajo sistemas abiertos, distribución de procesos.
Cliente Servidor

Pares (P2P): Utilizada para unir de forma directa dos computadores para compartir e intercambiar archivos, se utilizan generalmente para voz sobre IP (VoIP) para hacer mas eficiente la transmisión.
Pares (P2P)
SERVIDORES

Los servidores son dispositivos que contienen un conjunto de Software y Hardware que cumplen funciones complejas y se clasifican:

Para Grupos de Trabajo: Servidores de propósito general

Servidores Empresariales: Servidores de propósito general orientados a la organización.

Servidores de Misión critica: Potentes y escalables, utilizados para bodegas de datos (DataWareHouse), Minería de datos (Data Mining), granjas de servidores y otras aplicaciones de misión critica.
Tipos de servidores
Servidor de archivo: manejan archivos para ser consumidos o utilizados por los usuarios.
Servidor de impresiones: Maneja una o varias impresoras.
Servidor de correo: Encargado del intercambio de correos electrónicos, utilizando un servidor smtp (Simple Mail Transfer Protocol).
Servidor Proxy: Parte de la seguridad de red, permitiendo administrar el servicio de acceso a Internet.
•Servidor WEB: Manejo de los servicios WEB como HTML y son utilizados para implementar Intranet y Extranet .

SISTEMAS DE ALMACENAMIENTO

Para lograr un alto nivel de servicio, seguridad y disponibilidad, es necesario contar con dispositivos de almacenamiento con tecnologías como: arreglo de discos, sistemas de almacenamiento, redundancia de componentes, memoria dinámicas (Cache), e ILM (Administración del ciclo de vida de la información).

Tipos de almacenamientos:
Storage Area Network (SAN): Sistema de almacenamiento de gran capacidad y rendimiento.

Storage Area Network (SAN)

Network Attached Storage (NAS): Sistema de almacenamiento conectados directamente a la red LAN.
Network Attached Storage (NAS)
Information Lifecycle Management (ILM): Administración del ciclo de vida de la información: Consiste en aplicar criterios de almacenamiento de acuerdo al tipo, tiempo y oportunidad de la información de una organización, estos criterios son:
Utilidad de los datos.
Seguridad.
Oportunidad y consulta con respecto al dato.
Tiempo de acceso al dato.
Costos de almacenamiento.

Information Lifecycle Management (ILM)



BIBLIOGRAFÍA
Hancock, M. A. (2002). Arquitectura de red y el modelo de referencia OSI. En M. A. Hancock, Comunicación entre las computadoras y tecnología de redes (pág. Capítulo 2.7). Thomson editores S.A.




Wetherall, A. S. (2003). Computer Networks. 5th Edition: Prentice Hall.

GLOSARIO

Cache: Conjunto de datos duplicados de otros originales.

HTML: H yperText Markup Language (lenguaje de marcado de hipertexto), para la elaboración de páginas WEB.

OSI: El modelo de interconexión de sistemas abiertos

Proxy: Programa o dispositivo que realiza una tarea acceso a Internet en lugar de otro computador.

Creative Commons

jueves, 24 de noviembre de 2016

Como registrar tu dominio de Blogger y Configurarlo en GoDaddy (Paso a Paso)

Programación al Extremo : blogger
En este tutorial vamos a ver como registrar tu Blogger y como configurarlo en GoDaddy.

Empecemos lo primero que debemos de hacer después de haber comprado o adquirido nuestro dominio, es dirigirnos a nuestro Blogger e ingresar a la configuración como se muestra en la figura:



Luego seleccionamos básica 



Luego seleccionamos configurar una url para terceros



Le picamos en guardar y Blogger nos arrojara un error que nuestro dominio no esta registrado


Error generado por blogger



Entramos a GoDaddy para registrar nuestro dominio



El siguiente paso es darle en Administrar DNS como se muestra a continuación:




Luego procedemos a registrar nuestro Blog con los registros CNAME



Agregamos cada una de los registros como se muestra a continuación:



Debe quedar algo como lo siguiente:



Por ultimo y para terminar nos dirigimos a nuestro Blog y seleccionamos redireccionar nuestro blog.




Vídeo explicativo



Espero que les sea de utilidad este tutorial.



sábado, 19 de noviembre de 2016

Implantación de un balanceador de carga NGINX

Programación al Extremo : sistemas
Las nuevas tecnologías de arquitectura de software, han evolucionado hasta un punto que le permiten realizar tareas que antes eran imposibles de realizar tanto por el hombre como las maquinas que existían en ese momento.

En este trabajo trataremos de explicar el funcionamiento de un balanceador de carga y lo importante que este sería implementarlo dentro de la organización.

¿Qué es un balanceador de carga?
Para contextualizar un balanceador de carga no es más que aquel que se encarga de distribuir las peticiones de diferentes nodos dentro del servidor de clúster, con el objetivo de optimizar el rendimiento del sistema, lo cual da como resultado alta disponibilidad y escalabilidad.

Implantación del balanceador de carga NGINX

Lo primero que debemos de hacer es descargar de la página oficial de NGINX el software es esta ocasión utilizaremos el siguiente http://nginx.org/download/nginx-1.10.2.zip.

Después de haber descargado el software lo descomprimimos y ejecutamos el siguiente comando para verificar que este se encuentra corriendo:


E:\nginx-1.10.2>start nginx.exe


Luego verificamos que los procesos estén corriendo con el siguiente comando:


E:\nginx-1.10.2>tasklist /fi "imagename eq nginx.exe"


Nos debe aparecer algo como lo siguiente verificando que se encuentra corriendo el servicio:

imagename eq nginx.exe

Nginx es un software capaz de realizar el balanceo de carga entre diversos servidores de aplicación.

Este posee tres estrategias para balancear la carga entre los diferentes clúster que son:

Round-robin: Cada petición que llega del usuario a un servidor es distribuida cíclicamente peticiones son distribuidas entre los servidores de forma cíclica

Least-connected: La petición que llegue de un usuario al servidor es atendida por el que tenga menos conexiones activas.

Ip-hash: En esta se atienden las peticiones en base a algún dato como por ejemplo la IP donde se está realizando la petición.

Para el caso de nuestro ejercicio utilizaremos la estrategia Round-robin.

¿Configuración necesaria?


Configurar el archivo nginx.conf en el cual se agregaran los diferentes servidores a los cuales se realizara el balanceo:

En mi caso utilizare Windows como el servidor maestro y los nodos donde se encuentran alojadas las aplicaciones son Debian en las cuales se encuentra instalado Apache HTTP como servidor de aplicaciones.

La configuración es la siguiente:

http {

include mime.types;

default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '

# '$status $body_bytes_sent "$http_referer" '

# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream MiAplicacion {
server 192.168.0.3;
server 192.168.0.5;
server 192.168.0.7;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://MiAplicacion;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}

La primera máquina Debían quedo con la siguiente dirección IP:


Terminal Debían


La segunda máquina Debían quedo con la siguiente dirección IP:

Terminal Debían

La tercera máquina Debían quedo con la siguiente dirección IP:

Terminal Debían

Para verificar el tráfico se utilizara la herramienta WireShark.

En la primera petición se fue por el servidor de aplicación numero dos como se evidencia en el navegador.

localhost

El WireShark capturo el siguiente tráfico

WireShark
Como vemos en la imagen primero se le envía un acuse de recibido al servidor para establecer la conexión, el cual le contesta con un mensaje 200 con una petición correcta y después le avisa al servidor que este ya no tiene más peticiones para enviar

En la segunda petición se fue por el servidor de aplicación numero dos como se evidencia en el navegador y solicita el cierre de la conexión que se está llevando a cabo.

localhost
El WireShark capturo el siguiente tráfico

WireShark
Como vemos en la imagen primero se le envía un acuse de recibido al servidor para establecer la conexión, el cual le contesta con un mensaje 200 con una petición correcta y después le avisa al servidor que este ya no tiene más peticiones para enviar.

En la segunda petición se fue por el servidor de aplicación número tres como se evidencia en el navegador y solicita el cierre de la conexión que se está llevando a cabo.
En la tercera petición se fue por el servidor de aplicación numero dos como se evidencia en el navegador.

localhost


El WireShark capturo el siguiente tráfico

WireShark

Como vemos en la imagen primero se le envía un acuse de recibido al servidor para establecer la conexión, el cual le contesta con un mensaje 200 con una petición correcta y después le avisa al servidor que este ya no tiene más peticiones para enviar.

En la segunda petición se fue por el servidor de aplicación número uno como se evidencia en el navegador y solicita el cierre de la conexión que se está llevando a cabo.

Como conclusión se puede apreciar que la estrategia Round-robin va asignando una petición a cada servidor a medida que va llegando, es decir va llamando uno a la vez en un orden ya establecido.

WireShark

Realizamos la prueba apagando el servidor numero dos identificado con ip: 192.168.0.5, y vemos que Wireshark no los marca de color rojo porque este no responde, después de pasado un tiempo Nginx le asigna la conexión a otro servidor que si este disponible para que este responda la petición.

Como podemos observar la conexión ha sido interrumpida y no se puede establecer la conexión con el servidor identificado con la IP 192.168.0.5 y después de pasados varios segundos Nginx se encarga de entregarle la conexión a otro servidor para que la atienda.

Bibliografía

Nginx. (n.d.). Nginx Documentation. Retrieved 11 01, 2016, from http://nginx.org/en

O'REILLY. (n.d.). Load Balancing Web Applications. Retrieved 10 31, 2016, from Cornell University Department of Computer Science: http://www.cs.cornell.edu/courses/cs530/2004sp/papers/V01.pdf