domingo, 27 de agosto de 2017

Redes de Cómputo

Redes de Cómputo



Introducción



Las redes de computadoras es una definición que muchos usamos hablando sobre empresas, escuelas o alguna otra ocupación, pero casi nadie sabe a que se refiere o que significa. Es por eso por lo que hablare de ello para darnos cuenta de su significado y nos quede claro. En este tema redes de computo hablare de que trata, cuál es su significado y que ventajas trae esto. Se estructurara empezando con su definición, siguiendo como puede funcionar y terminando los beneficios que esto trae.


Desarrollo



Una red de computadoras (también llamada red de ordenadores o red informática) es un conjunto equipos (computadoras y dispositivos), conectados por medio de cables, señales, ondas o cualquier otro método de transporte de datos, para compartir información (archivos), recursos (discos, impresoras, programas, etc.) y servicios (acceso a una base de datos, internet, correo electrónico, chat, juegos, etc.). A cada una de las computadoras conectadas a la red se le denomina un nodo.

Clasificación



Cobertura

  • PAN
  • LAN
  • MAN
  • WAN




Topología

  • Estrella
  • Anillo
  • Bus
  • Híbridas
  • Jerárquicas




Relación Funcional

  • Cliente-Servidor
  • Igual a igual






Según su cobertura



PAN (red de área Personal)


Es una red de ordenadores usada para la comunicación entre los dispositivos de la computadora (teléfonos incluyendo las ayudantes digitales personales) cerca de una persona.
El alcance de una PAN es de algunos metros. Se pueden conectar con cables alos USB y FireWire de la computadora . Una red personal sin hilos del área (WPAN) se puede también hacer posible con tecnologías de red tales como IrDA y Bluetooth.




LAN (red de área local)


Una red que se limita a un área tal como un cuarto, un solo edificio o una nave. Una LAN grande se divide generalmente en segmentos lógicos más pequeños llamados grupos de trabajo.




MAN (red de área metropolitana)


Una red que conecta las redes de dos o más locales pero no se extiende más allá de los límites de la una ciudad.




WAN (red de área mundial)


Es una red que cubre un área geográfica amplia y en gran parte de su estructura utiliza instalaciones de transmisión telefónicas.




Según su topología



La topología o forma lógica de una red se define como la forma de tender el cable a estaciones de trabajo individuales.

Estrella


La red se une en un único punto; un concentrador de cableado o HUB que a través de él los bloques de información son dirigidos hacia las estaciones.
Su ventaja es que el concentrador monitorea el tráfico y evita las colisiones y una conexión interrumpida no afecta al resto de la red.
La desventaja es que los mensajes son enviados a todas las estaciones, aunque vaya dirigido a una.




Anillo


Las estaciones están unidas unas con otras formando un círculo por medio de un cable común. Las señales circulan en un solo sentido alrededor del círculo, regenerándose en cada nodo. Cada nodo examina la información que es enviada a través del anillo, si no está dirigida a él la pasa al siguiente nodo.
La desventaja es que si se rompe una conexión, se cae la red completa.




Bus


Las estaciones están conectadas por un único segmento de cable. A diferencia del anillo, el bus es pasivo, no se produce regeneración de las señales en cada nodo. Los nodos en una red de "bus" transmiten la información y esperan que ésta no vaya a chocar con otra información transmitida por otro de los nodos. Si esto ocurre, cada nodo espera una pequeña cantidad de tiempo al azar, después intenta retransmitir la información.




Jerárquica


Los nodos están colocados en forma de árbol. Es parecida a una serie de redes en estrella interconectadas, con la diferencia que no tiene un nodo central sino un nodo de enlace troncal, generalmente ocupado por un hub o switch, desde el que se ramifican los demás nodos. Es una variación de la red en bus, la falla de un nodo no implica interrupción en las comunicaciones porque se comparte el mismo canal de comunicaciones.




Híbridas


El bus, la estrella y el anillo se combinan algunas veces para formar redes híbridas.
*Anillo en estrella: se utiliza con el fin de facilitar la administración de la red. Físicamente, la red es una estrella centralizada en un concentrador, mientras que a nivel lógico, la red es un anillo.
* Bus en estrella: el fin es igual a la topología anterior. En este caso la red es un "bus" que se cablea físicamente como una estrella por medio de concentradores.
* Estrella jerárquica: esta estructura de cableado se utiliza en la mayor parte de las redes locales actuales, por medio de concentradores dispuestos en cascada para formar una red jerárquica.




Según su relación funcional



Cliente-Servidor


En este caso el servidor es una máquina específica que usa un sistema operativo desarrollado especialmente para este tipo de red. Las estaciones de trabajo comparten recursos disponibles a partir de este servidor.
La ejecución de las tareas está dividida entre el cliente (o estación) y el servidor. Este tipo de red proporciona un mejor rendimiento y niveles de seguridad más adecuados para el trabajo profesional en red.




Par a par


Es un tipo de red donde todos los equipos conectados pueden desempeñar el papel de servidor y de estación de trabajo al mismo tiempo. En este caso, si alguien quisiera compartir un recurso podría ofrecerlo a los demás. Este es un tipo de red para trabajos simples, donde el volumen de información intercambiado es pequeño y la seguridad no es un factor crítico.




Conclusión



Las redes de computadoras nos ayudan a establecer la comunicación de una manera más fácil ypermiten transportar información de una manera más rápida sin necesidad alguna de cables.

En la sociedad gracias a las redes, las personas en lugares apartados pueden infromarse sobre cosas del mundo con sus redes locales e informarse como va su municipio a nivel nacional.

Las redes de datos cumplen una función muy importante, y es que facilitan la comunicación ya que permiten conectarnos de forma global con nuestra familia, amigos etc. Todo esto por medio de los diferentes procedimientos que utilizan estas redes, haciendo que la comunicación llegue al destino y a tiempo.

Con la implementación de la tecnología tenemos como organizarnos laboralmente, profesionalmente y personalmente, por cuanto la tecnología nos da las herramientas necesarias para la realización de los diferentes procesos e actividades que requerimos.

Con la implementación de las redes y cada herramienta que nos aportan hacen que podamos tener una comunicación constante donde el costo nos es favorable.

Referencias:



Mansilla,CM. (2012). Redes de Computadoras. agosto 27,2017, de FCA-UNL Sitio web: http://www.fca.unl.edu.ar/informaticabasica/Redes.pdf

Ingeniería de Pruebas

Ingeniería de Pruebas



Introducción



En un proceso de pruebas formal, suelen confundirse con mucha facilidad, los niveles de pruebas con los tipos de prueba, y a pesar de que se encuentren íntimamente relacionadas, tienen connotaciones diferentes en el proceso. Para entender un poco más, vamos a partir del hecho de que las pruebas pueden ejecutarse en cualquier punto del proceso de desarrollo de software, y es aquí donde los niveles de prueba nos permiten entender con claridad los diferentes puntos o etapas en donde pueden ejecutarse ciertos tipos de prueba. Por lo anterior, es común que algunas personas se refieran a los niveles de pruebas o intenten clasificarlos como: pruebas de desarrollador, pruebas funcionales y pruebas de usuario final.


Desarrollo



Para poder hablar de la ingeniería de pruebas es necesario hacer referencia a tres términos que es común ver como algunas personas utilizan de manera indistinta,los términos Defecto, Falla y Error.

  1. Error: Es una equivocación realizada por una persona al desarrollar una actividad de desarrollo de software.
  2. Defecto: Se produce cuando una persona comete un error.
  3. Falla: Es un desvió respecto del comportamiento esperado del sistema, puede producirse en cualquier etapa.

Notas:Defecto es una vista interna, lo ven los desarrolladores. Falla es una vista externa, la ven los usuarios.



Justificación


  1. La realización de tareas de pruebas conlleva un costo asociado que puede inducir a tomar decisiones de no realizarlas.
  2. No realizarlas también conlleva un costo asociado.


También es importante diferenciar entre dos conceptos, validación y verificación.

Muchas veces se confunde “verificación” con validación”. Barry W. Boehm (1979) puso en claro con pocas palabras la diferencia:
  1. Validación: ¿Estamos construyendo el producto correcto? Se ocupa de controlar si el producto satisface los requerimientos del usuario
  2. Verificación: ¿Estamos construyendo correctamente el producto? implica controlar que el producto conforma su especificación inicial.

    En la Validación el resultado final del desarrollo software se debe ajustar a lo que el usuario quería (sus necesidades). En la mayoría de las ocasiones el producto desarrollado no cumple con la ideas del cliente, normalmente porque a éste suele faltarle capacidad técnica de expresión.
    En la Verificación el código que estamos construyendo debe estar en armonía con la especificación que hemos tomado del usuario. El resultado final del desarrollo software debe concordar con la especificación (requisitos) del sistema, por lo que debemos asegurarnos que el desarrollo final coincida con dicha especificación
    Un sistema puede pasar la validación, sin embargo, no pasa la verificación. Cumple con la especificación del usuario, con lo que él quería, cubre sus necesidades pero internamente puede adolecer de graves detalles como: un precario diseño en la base de datos; uso de un excesivo e innecesario número de líneas de código, por desconocer las potencialidades del lenguaje de desarrollo o de técnicas avanzadas de programación como la POO y uso incorrecto en la BD de instrucciones propias del lenguaje de desarrollo, en lugar de las sentencias adecuadas de SQL.



    Los objetivos de las pruebas son:
    • Menores costos.
    • Menores tiempos de desarrollo.
    • Mayor satisfacción del cliente.




    En las pruebas de sistema existen siete principios fundamentales que son:

    Principio 1


    "Las pruebas revelan la presencia de bugs, no la ausencia de ellos"

    Probar reduce la probabilidad de que existan bugs pero nunca se puede asegurar que no quede ninguno oculto.
    Además, cada tipo de pruebas que realicemos (de sistema, de integración, añadir auditorías de código…) son más efectivas para detectar un tipo de bug.

    Principio 2


    "Es imposible probarlo todo"

    El flujo de control de un sistema software no trivial como los que acostumbramos a utilizar en el día a día contiene miles de decisiones.
    Estas decisiones se pueden combinar entre ellas para dar lugar a una infinidad de posibles caminos. De entrada, probar todos los caminos es un problema inabordable.
    Y eso si no tenemos en cuenta la prueba de requisitos no funcionales, como el rendimiento de un sistema ante una exigente carga de usuarios, o requisitos específicos de seguridad (por ejemplo, en un sistema bancario) para protegerse de usuarios malintencionados.
    Todo esto hace necesaria una estrategia de pruebas (un plan) y priorizar a partir de una gestión de riesgos de calidad y de proyecto, y como reza el siguiente principio…

    Principio 3


    "Cuanto antes se comience a probar…mejor"

    Corregir un bug con una revisión en la fase de captura de requisitos o en una prueba unitaria tiene un coste mucho menor a lo que costará corregir este bug cuando se detecte en una prueba de sistema, o peor aún, en una prueba de aceptación por el cliente.

    Principio 4


    "Las aglomeración de defectos. ¡Los bugs siempre van en pandilla!"

    Entender esto es muy importante para plantear una buena estrategia de pruebas: los bugs suelen ir en grupo. Se concentran en determinados puntos de un sistema software, no manteniendo una distribución uniforme a lo largo del mismo.
    Conclusión: si encuentras un bug en un componente, es muy probable que hayan más. Con lo que una posible estrategia sería centrarse en mejorar las pruebas de aquellos componentes para los que se han reportado un número mayor de bugs, para ser más eficaces a la hora de cazarlos en fases tempranas.

    Principio 5


    "La paradoja del pesticida"

    O la necesidad de ajustar continuamente tu plan de pruebas… porque según este principio un plan de pruebas va perdiendo efectividad conforme se ejecuta sucesivas veces. Con lo que cada vez tenderá a encontrar menos bugs… ¡lo que no significa que no hayan! (vuelve a leer el primer principio). Se habla de paradoja del pesticida ya que estos matabichos usualmente sirven para un tipo de bichos, pero una vez no queda ninguno del tipo específico que mata el pesticida… ¡nadie te dice que no hayan otros bichos campando a sus anchas!.

    Principio 6


    "Las pruebas se deben adaptar a necesidades específicas"

    Esto viene a enlazar con lo que he comentado antes. Si tu producto se centra en el ámbito de la seguridad deberás adaptar tus casos de prueba para intentar forzar situaciones o posibles escenarios no amistosos. Si quieres probar una intranet donde los servicios más vitales son los de imputación de horas y el de vacaciones, es lógico centrarse en estos servicios y no invertir tiempo en otros componentes infrautilizados.
    Además, hay que tener en cuenta que los recursos en los proyectos son siempre escasos, con lo que en el inicio del proyecto hay que preguntarse… qué estrategia debemos seguir para encontrar y corregir lo antes posible los bugs en las funcionalidades de mayor valor para nuestros usuarios.

    Principio 7


    "La falacia de la ausencia de errores"

    Para terminar, nos encontramos con la satisfacción del usuario y con el hecho de que los usuarios elijan tu software para resolver sus necesidades.Que hayas corregido muchos bugs no significa que finalmente tu software sea un éxito. En ocasiones hay que primar un buen time to market, para luego corregir los problemas de calidad que quedaron por el camino. Y esto si se hace de manera consciente y con una buena estrategia, a priori, no debe ser un problema.



    Conclusión



    La Importancia que tienen las pruebas del software de calidad del mismo son de gran utilidad para ver las fallas que presenta el sistema y poder analizar las futuras fallas además de esto también sirven para que cuando entreguemos nuestro software ya finalizado este software este culminado , tenga altos estándares de calidad y esté listo para entregar.

    Los Productos Software, sistemas y/o aplicaciones son creadas, desarrolladas e implementadas por seres humanos y por ende en cualquiera de sus etapas de creación se puede presentar una equivocación, al generarse esa “Equivocación” se puede conllevar a un defecto en el software, por ejemplo mala digitación, distracción al codificar, mala elaboración de un documento entre otras. Si no se ha identificado ese defecto y el software o la aplicación se ejecuta, hay un alto riesgo de que la aplicación no haga lo que debería hacer o el objeto para lo cual fue creada, es decir se genera un fallo o desperfecto, lo que podría generar una catástrofe , es importante conocer que los fallos también se pueden presentar por situaciones del entorno, como la radiación, descarga eléctrica, contaminación, inundaciones, Húmeda, Fuego, etc.

    Los Ingenieros de sistemas entonces deben estar en la capacidad de conocer y aplicar las diferentes normas, procesos y procedimientos para garantizar la calidad de los productos software, aplicando las pruebas de calidad de software necesarias para que con ellas se pueda ayudar a reducir los riesgos en las aplicaciones, logrando que se identifiquen los defectos antes de que se ejecuten, así de forma proactiva tomar decisiones que permitan hacer las actividades necesarias para mejorar las condiciones del software y ofertar un producto que satisfaga las necesidades del cliente.​

    Referencias:



    Mentor,I. (2013). Prubas de Dostware. agosto 27, 2017, de it-Mentor Sitio web: http://materias.fi.uba.ar/7548/PruebasSoftware.pdf

    Oriente,J. (2013). Los siete principios de las pruebas software. agosto 27, 2017, de JOR Sitio web: http://joaquinoriente.com/2013/07/20/los-siete-principios-de-las-pruebas-software/

domingo, 20 de agosto de 2017

Modelo Cliente-Servidor

Modelo Cliente-Servidor



Introducción



En el siguiente ensayo se detallara y documentara la importancia del modelo cliente-servidor que en este momento es uno de los más importantes y utilizados en el ámbito de enviar y recibir información. Así como la función que tiene para guardar datos o información en una base de datos.

Desarrollo



En el modelo cliente-servidor, el dispositivo que solicita información se denomina “cliente”, y el dispositivo que responde a la solicitud se denomina “servidor”. Los procesos de cliente y servidor se consideran parte de la capa de aplicación. El cliente comienza el intercambio solicitando los datos al servidor, quien responde enviando uno o más streams de datos al cliente. Los protocolos de la capa de aplicación describen el formato de las solicitudes y respuestas entre clientes y servidores. Además de la transferencia real de datos, este intercambio también puede requerir la autenticación del usuario y la identificación de un archivo de datos que se vaya a transferir.

Principalmente en el modelo cliente-servidor hay dos tipos de arquitectura:

Arquitectura en dos niveles



En este tipo de arquitectura el cliente manda una solicitud y el servidor responde a ella directamente con sus propios recursos, por lo tanto se puede decir que no necesita de ninguna otra aplicación para brindar el servicio.



Arquitectura en tres niveles



En esta estructura aparece un nuevo nivel llamado servidor de aplicaciones que se encarga de proporcionar los recursos solicitados por el cliente, aunque necesita de otro servidor( Servidor de bases de datos) para poder realizar su función.



Si comparamos estos dos niveles podemos concluir que la arquitectura de 3 niveles muestra:

  • Un mayor grado de flexibilidad
  • Mayor seguridad
  • Mejor rendimiento

    Conclusión



    En conclusión el modelo cliente servidor es un modelo flexible y adaptable al servicio que se quiera implementar lo que nos permite aumentar el rendimiento, el modelo cliente servidor puede envolver varias plataformas, bases de datos, redes y sistemas operativos que pueden ser de diferentes distribuidores, diferentes arquitecturas y funcionando todos al mismo tiempo.

    Ademas de ser un sistema ventajoso en cuanto a seguridad, ya que el servidor controla el acceso a sus datos, se necesita que el servidor nos autorice a acceder a él.

    Referencias:



    Cristy,T. (2014). ¿Qué es el modelo cliente servidor?. agosto 20,2017, de CodeJobs Sitio web: https://www.codejobs.biz/es/blog/2014/11/05/que-es-el-modelo-cliente-servidor-networking

    Gil,J & Villamor, J. (2014). El modelo cliente/Servidor. agosto 20,2017, de Terra Sitio web: http://www.it.uc3m.es/mcfp/docencia/si/material/1_cli-ser_mcfp.pdf
  • Seguridad Informática

    Seguridad Informática



    Introducción



    Junto al avance de la tecnología informática y su influencia en casi todas las áreas de la vida social, ha surgido una serie de comportamientos ilícitos denominados delitos informáticos.

    La presencia constante de gusanos de internet, virus y otras amenazas para los equipos es la causa de que la seguridad de la red constituya la preocupación número uno de los propietarios de equipos tanto a nivel empresarial como en el hogar.

    A medida que el internet nos va mostrando nuevas formas de uso de la tecnología, los cyberdelincuentes también aprovechan el desconocimiento de sus víctimas para hacer de las suyas.

    La seguridad en la red no se trata solo de ver los peligros tras cada archivo, pero tampoco actuar como si en el internet nada pudiera pasarnos.

    En el siguiente ensayo se detallara y documentara la importancia de la seguridad informática en nuestras vidas cotidianas para evitar futuros problemas.

    Desarrollo



    La seguridad informática protege de amenazas por infiltración a bases de datos, software y archivos importantes en las empresas.

    Para hablar de la seguridad informática antes se tiene que definir que es un amenaza,Se conoce como amenaza al peligro inminente, que surge, de un hecho o acontecimiento que aun no ha sucedido, pero que de concretarse aquello que se dijo que iba a ocurrir, dicha circunstancia o hecho perjudicará a una o varias personas en particular.

    Como sabemos, la seguridad informática se enfoca en proteger la infraestructura computacional y todo lo relacionado con ésta (también incluye la información contenida). Para este fin existen una serie de herramientas, métodos, estándares, protocolos, reglas, y leyes concebidas para minimizar los posibles riesgos para la infraestructura o información.

    La seguridad informática abarca software, bases de datos, metadatos (datos acerca de los datos), archivos y todo lo que signifique un riesgo si llegara a manos de otras personas; pues este tipo de información puede ser privilegiada o confidencial.



    El enemigo de la seguridad informática principalmente son los ataques informáticos que se definen como un intento organizado e intencionado causado por una o más personas para causar daño o problemas a un sistema informático o red. Los ataques en grupo suelen ser hechos por bandas llamados "piratas informáticos" que suelen atacar para causar daño, por buenas intenciones, por espionaje, para ganar dinero, entre otras.

    Un ataque informático consiste en aprovechar alguna debilidad o falla en el software, en el hardware, e incluso, en las personas que forman parte de un ambiente informático; para obtener un beneficio, por lo general de condición económica, causando un efecto negativo en la seguridad del sistema, que luego pasa directamente en los activos de la organización.



    Algunos de los tipos de ataques informáticos más frecuentes son:

    Trashing (cartoneo)



    Este ocurre generalmente cuando un usuario anota su login y password en un papelito y luego, cuando lo recuerda, lo arroja a la basura. Esto por más inocente que parezca es el que puede aprovechar un atacante para hacerse de una llave para entrar al sistema.

    Monitorización



    Este tipo de ataque se realiza para observar a la victima y su sistema, con el objetivo de establecer sus vulnerabilidades y posibles formas de acceso futuro.

    Ataques de autenticación



    Este tipo de ataque tiene como objetivo engañar al sistema de la víctima para ingresar al mismo. Generalmente este engaño se realiza tomando las sesiones ya establecidas por la víctima u obteniendo su nombre de usuario y password.

    Denial of Service(DoS)



    Los protocolos existentes actualmente fueron diseñados para ser hechos en una comunidad abierta y con una relación de confianza mutua. La realidad indica que es más fácil desorganizar el funcionamiento de un sistema que acceder al mismo; así los ataques de Negación de Servicio tienen como objetivo saturar los recursos de la víctima de forma tal que se inhabilita los servicios brindados por la misma.

    Modificación (daño)



    Esta categoría se refiere a la modificación desautorizada de los datos o el software instalado en el sistema víctima (incluyendo borrado de archivos). Borrado de Huellas: El borrado de huellas es una de las tareas más importantes que debe realizar el intruso después de ingresar en un sistema, ya que, si se detecta su ingreso, el administrador buscará como conseguir "tapar el hueco" de seguridad, evitar ataques futuros e incluso rastrear al atacante.

    Para evitar los ataques informáticos se han creado varios mecanismos de seguridad que evitan los problemas que estos causan algunos de ellos son:

    Mecanismos Preventivos



    Son aquellos cuya finalidad consiste en prevenir la ocurrencia de un ataque informático. Básicamente se concentran en el monitoreo de la información y de los bienes, registro de las actividades que se realizan en la organización y control de todos los activos y de quienes acceden a ellos.

    Mecanismos detectores



    Son aquellos que tienen como objetivo detectar todo aquello que pueda ser una amenaza para los bienes. Ejemplos de éstos son las personas y equipos de monitoreo, quienes pueden detectar cualquier intruso u anomalía en la organización.

    Mecanismos correctivos



    Los mecanismos correctivos se encargan de reparar los errores cometidos o daños causados una vez que se ha cometido un ataque, o en otras palabras, modifican el estado del sistema de modo que vuelva a su estado original y adecuado.

    Mecanismos disuasivos



    Se encargan de desalentar a los perpetradores de que cometan su ataque para minimizar los daños que puedan tener los bienes.

    Conclusión



    Debido a la constantes amenazas en que se encuentran los sistemas, es necesario que los usuarios y las empresas enfoquen su atención en el grado de vulnerabilidad y en las herramientas de seguridad con las que cuentan para hacerle frente a posibles ataques informáticos que luego se pueden traducir en grandes pérdidas.

    Es necesario mantener un estado de alerta y actualización permanente: la seguridad es un proceso continuo que exige aprender sobre las propias experiencias.

    Los ataques están teniendo el mayor éxito en el eslabón mas débil y difícil de proteger, en este caso es la gente, se trata de uno de los factores que han incentivado el número de ataques internos. No importando los procesos y la tecnología, finalmente el evitar los ataques queda en manos de los usuarios.

    Referencias:



    Borja,V. (2017). Seguridad informática. agosto 20, 2017, de Wikilibros Sitio web: https://es.wikibooks.org/wiki/Seguridad_inform%C3%A1tica

    López,E. (2015). Seguridad Informática. agosto 20, 2017, de UNAM Sitio web: http://redyseguridad.fi-p.unam.mx/proyectos/seguridad/Creditos.php