Segunda unidad
Software de Control y Software de Aplicación
El Software es el soporte lógico e inmaterial que permite que la computadora pueda desempeñar tareas inteligentes, dirigiendo a los componentes físicos o hardware con instrucciones y datos a través de diferentes tipos de programas.
El Software son los programas de aplicación y los sistemas operativos, que según las funciones que realizan pueden ser clasificados en:
Software de Sistema
Software de Aplicación
Software de Programación
Software de Sistema
Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el hardware, además de dar soporte a otros programas.
El Software de Sistema se divide en:
Sistema Operativo
Controladores de Dispositivos
Programas Utilitarios
Sistema operativo
El Sistema Operativo es un conjunto de programas que administran los recursos de la computadora y controlan su funcionamiento.
Un Sistema Operativo realiza cinco funciones básicas: Suministro de Interfaz al Usuario, Administración de Recursos, Administración de Archivos, Administración de Tareas y Servicio de Soporte.
1. Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio de interfaces que se basan en comandos, interfaces que utilizan menús, e interfaces gráficas de usuario.
2. Administración de recursos: Administran los recursos del hardware como la CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
3. Administración de archivos: Controla la creación, borrado, copiado y acceso de archivos de datos y de programas.
4. Administración de tareas: Administra la información sobre los programas y procesos que se están ejecutando en la computadora. Puede cambiar la prioridad entre procesos, concluirlos y comprobar el uso de estos en la CPU, así como terminar programas.
5. Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las implementaciones añadidas a este, y pueden consistir en inclusión de utilidades nuevas, actualización de versiones, mejoras de seguridad, controladores de nuevos periféricos, o corrección de errores de software.
Sistemas operativos ejemplos:
Windows Vista
Nuevo sistema operativo de Microsoft, ya en versiones beta y previsto su lanzamiento para primeros del año 2007.Windows XP
Sistema operativo más utilizado en la actualidad, tanto en el campo de la enseñanza, como en la industria y negocios. Su fabricante es Microsoft.Windows 98/ME/2000
Linux
Sistema operativo de software abierto, gratuito y de libre distribución, similar a UNIX, y una gran alternativa a Windows. Muy utilizado actualmente en servidores de aplicaciones para Internet.Mac OS
Sistema operativo de las computadoras Apple Macintosh.DOS y OS/2
Sistemas operativos creados por Microsoft e IBM respectivamente, ya poco utilizados pero que han sido la base de los actuales sistemas operativos.CP/M
Sistema operativo de 8 bits para las primeras microcomputadoras nacidas en la década de los setenta.Symbian
Sistema operativo para teléfonos móviles apoyado fundamentalmente por el fabricante de teléfonos celulares Nokia.PalmOS
Sistema operativo para agendas digitales, PDA; del fabricante Palm.Windows Mobile, CE
Sistema operativo para teléfonos móviles con arquitectura y apariencias similares a Windows XP.Es un sistema operativo que utiliza un núcleo Linux, y su origen está basado en Debian. Ubuntu está orientado en el usuario promedio, con un fuerte enfoque en la facilidad de uso y mejorar la experiencia de usuario. Al igual que otros sistemas operativos GNU/Linux, está compuesto de múltiple software normalmente distribuido bajo una licencia libre o de código abierto.
Unix
(registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy.
Controladores de Dispositivos
Los Controladores de Dispositivos son programas que permiten a otros programa de mayor nivel como un sistema operativo interactuar con un dispositivo de hardware.
Programas Utilitarios
Los Programas Utilitarios realizan diversas funciones para resolver problemas específicos, además de realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema operativo.
Software de Programación
El Software de Programación es el conjunto de herramientas que permiten al desarrollador informático escribir programas usando diferentes alternativas y lenguajes de programación.
Este tipo de software incluye principalmente compiladores, intérpretes, ensambladores, enlazadores, depuradores, editores de texto y un entorno de desarrollo integrado que contiene las herramientas anteriores, y normalmente cuenta una avanzada interfaz gráfica de usuario (GUI).
SOFTWARE DE APLICACIÓN
El software de aplicación ha sido escrito con el fin de realizar casi cualquier tarea imaginable. Esté puede ser utilizado en cualquier instalación informática, independiente del empleo que vayamos a hacer de ella. Existen literalmente miles de estos programas para ser aplicados en diferentes tareas, desde procesamiento de palabras hasta cómo seleccionar una universidad. Como existen muchos programas se dividen en cuatro categorías de software de aplicaciones:
• Aplicaciones de negocios.
• Aplicaciones de Utilería.
• Aplicaciones Personales.
• Aplicaciones de Entretenimiento.
Aplicaciones de negocios:
Las aplicaciones más comunes son procesadores de palabras, software de hojas de cálculo, sistemas de bases de datos y Graficadores
Procesadores de palabras: Estos permiten hacer cambios y correcciones con facilidad, permiten revisar la ortografía e incluso la gramática de un documento, cambiar la apariencia de la letra, agregar gráficos, fusionar listas de direcciones con cartas con envío de correo en grupo, general tablas de contenido, etc. También se puede usar para crear cualquier tipo de documento (carta de negocio, documentos legales).
Hojas de calculo:
Procesadores de palabras: Estos permiten hacer cambios y correcciones con facilidad, permiten revisar la ortografía e incluso la gramática de un documento, cambiar la apariencia de la letra, agregar gráficos, fusionar listas de direcciones con cartas con envío de correo en grupo, general tablas de contenido, etc. También se puede usar para crear cualquier tipo de documento (carta de negocio, documentos legales).
Hojas de calculo:
son procesadores de números tridimensionales. Se pueden crear hojas de trabajo donde puedes colocar textos, números o formulas en las celdas, obteniendo una hoja contable computarizada. También puede crear gráficas y tablas para mostrar gráficamente relaciones entre números.
Graficadores:
Graficadores:
Se utilizan para crear ilustraciones desde cero (0) los; usuarios pueden pintar con dispositivos electrónicos de señalamiento en vez de lápices o brochas. Otro tipo de software para gráfico son las aplicaciones para presentaciones de gráficos con este se crean gráficas y tabla a color y de calidad profesional basados en datos numéricos de otro programa (hoja de calculo).
Manejador de base de datos:
No es una forma de programación, se trata de una herramienta que los analistas de sistemas utilizan para comunicar a los programadores la estructura del programa que van a realizar, de forma de tener una idea bien clara de lo que se necesita programar.
Digamos que el pseudo código es una forma de diagramar un algoritmo para resolver un determinado problema, sin atenerse a ningún lenguaje de programación en especial.
Un algoritmo es un conjunto de procedimientos que permiten resolver un problema.
En vez de escribir el programa directamente en un lenguaje de programación determinado (C, Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que se debe hacer, pasar a la programación propiamente dicha.
No hay que confundirlo con un diagrama de flujo.
En el diagrama de flujo se representa el transcurso del programa, el momento donde se obtienen los datos, cuando se procesan y el momento de presentar los resultados. Si bien son dos herramientas que se utilizan en conjunto, cada una representa dos partes distintas en el diseño de un sistema.
El pseudo código se refiere a crear un código para orientar a los programadores, pero sin la sintaxis ni la estructura propia de ningún lenguaje.
Utilización en la práctica
En el trabajo de un analista de sistemas, una de las partes más trabajosas es la de determinar que es lo que necesitan de un sistema los usuarios finales. Se dedican muchas horas a hacer un relevamiento de los datos que serán necesarios, los tipos de procesamientos, las salidas, etc. Y debe existir una realimentación entre el diseño y el usuario, para garantizar que el sistema cumpla con los requisitos del usuario.
Supongamos que tenemos un sistema para una empresa que utiliza una interfaz gráfica en Visual Basic, algunas aplicaciones específicas en C, y páginasPHP para trabajo vía Internet. Seguramente que crear un diagrama específico para cada lenguaje sería una tarea tediosa.
Gracias a esta herramienta, podemos reunir a todos los programadores, dar las pautas de trabajo, y mediante el pseudo código, cada programador sabrá lo que hace el sistema, y podrá escribir el código correspondiente.
Incluso dos programadores que dominen el mismo lenguaje pueden tener metodologías de trabajo distintas. Un problema puede ser resuelto de muchas maneras, cada una más o menos eficiente que la otra, pero todas cumplen con el objetivo.
El pseudo código elimina estas diferencias, dando libertad a los programadores para que puedan ajustarse a su metodología de trabajo.
Generalmente, este código se escribe con la participación de todos los programadores. Esto representa la ventaja de que muchas opiniones ayudan a elegir la mejor entre todas, logrando una solución efectiva y eficaz al problema planteado.
*Las principales características de este lenguaje son:
Se puede ejecutar en un ordenador
Es una forma de representación sencilla de utilizar y de manipular.
Facilita el paso del programa al lenguaje de programación.
Es independiente del lenguaje de programación que se vaya a utilizar.
Es un método que facilita la programación y solución al algoritmo del programa.
*Todo documento en pseudocódigo debe permitir la descripción de:
Instrucciones primitivas.
Instrucciones de proceso.
Instrucciones de control.
Instrucciones compuestas.
Instrucciones de descripción.
*Estructura a seguir en su realización:
-Cabecera.
Programa.
Modulo.
Tipos de datos.
Constantes.
Variables.
-Cuerpo.
Inicio.
Instrucciones.
Fin.
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:
Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.
Pauta de creación de un compilador: En las primeras épocas de la informática, el software de los compiladores era considerado como uno de los más complejos existentes.
Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador.
Actualmente existen herramientas que facilitan la tarea de escribir compiladores ó intérpretes informáticos. Estas herramientas permiten generar el esqueleto del analizador sintáctico a partir de una definición formal del lenguaje de partida, especificada normalmente mediante una gramática formal y barata, dejando únicamente al programador del compilador la tarea de programar las acciones semánticas asociadas.
En el proceso de compilación, se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina.
El proceso de traducción se compone internamente de varias etapas o fases, que realizan distintas operaciones lógicas. Es útil pensar en estas fases como en piezas separadas dentro del traductor, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la práctica a menudo se integren juntas.
Tipos de programación
Los tipos o técnicas de programación son bastante variados, aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas. En la mayoría de los casos, las técnicas se centran en programación modular y programación estructurada, pero existen otros tipos de programación. Los explicaremos a lo largo del artículo.
Programación estructurada (PE)
La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo.
Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.
Esta técnica incorpora:
Las principales ventajas de la programación estructurada son:
Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.
Programación modular
En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad.
En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros.
A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones.
Programación orientada a objetos (POO)
Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.
El elemento principal de la programación orientada a objetos es el objeto.
El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.
El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.
En DesarrolloWeb.com hemos publicado anteriormente una explicación de lo que es la programación orientada a objetos.
Programación concurrente
Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez.
Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea.
Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.
Programación funcional
Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.
Programación lógica
Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).
*Importancia de las telecomunicaciones
Históricamente el hombre siempre busco una manera de comunicarse, rompiendo la enorme frontera que significo la distancia.
Hasta hace algunos siglos, haciendo alarde de los arcaicos medios de comunicación, la carta fue el el elemento de comunicación mas conocido, a este posteriormente se le conoce hasta nuestro días como correo. Aunque era poco de fiar pues no era muy seguro debido a que con frecuencia se veían amenazados por contingentes asaltos. posteriormente resulto totalmente desfasado debido al desarrollo de la tecnología.
Nos saltamos de los medios de comunicación sus generaciones, y pensamos en Internet, televisión y dentro de ellos redes sociales, boletines informativos, noticieros, arte deporte etc en un mismo lugar.
Las telecomunicaciones en nuestros días son una herramienta indispensable en la vida cotidiana, pues conectan todo el sistema que conforma una empresa, ademas mantienen informados a gran numero de personas sobre lo que sucede en el mundo.
Fundamentos básicos de diseño de una red de área local
Manejador de base de datos:
Se utiliza para organizar los datos guardados en la computadora y permite buscar datos específicos de diferentes maneras. También archivan los datos en orden alfabético esto permite obtener la información que se desean más fácilmente.
Aplicaciones de Utilería:
Las utilerías, que componen la segunda categoría de aplicaciones de software, te ayudan a administrar a darle mantenimiento a tu computadora.
Aplicaciones personales:
Estos programas te permiten mantener una agenda de direcciones y calendario de citas, hacer operaciones bancarias sin tener que salir de tu hogar, enviar correo electrónico a cualquier parte del mundo y además conectarte a servicios informáticos que ofrecen grandes bases de datos de información valiosa.
Aplicaciones de entretenimiento:
Software de entretenimiento:
Videojuegos de galería, simuladores de vuelo, juegos interactivos de misterio y rompecabezas difíciles de solucionar. Muchos programas educativos pueden ser considerados como software de entretenimiento. Estos programas pueden ser excelentes herramientas para la educación.
Aplicaciones de Utilería:
Las utilerías, que componen la segunda categoría de aplicaciones de software, te ayudan a administrar a darle mantenimiento a tu computadora.
Aplicaciones personales:
Estos programas te permiten mantener una agenda de direcciones y calendario de citas, hacer operaciones bancarias sin tener que salir de tu hogar, enviar correo electrónico a cualquier parte del mundo y además conectarte a servicios informáticos que ofrecen grandes bases de datos de información valiosa.
Aplicaciones de entretenimiento:
Software de entretenimiento:
Videojuegos de galería, simuladores de vuelo, juegos interactivos de misterio y rompecabezas difíciles de solucionar. Muchos programas educativos pueden ser considerados como software de entretenimiento. Estos programas pueden ser excelentes herramientas para la educación.
Lenguajes de programación:
Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.
Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.
Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés).
Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto:
A CADA instrucción le corresponde UNA acción de procesador.
El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).
El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo.
El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!
Por lo tanto, un lenguaje de programación tiene varias ventajas:
es mucho más fácil de comprender que un lenguaje máquina:
permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.
Lenguajes de programación imperativos y funcionales
Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
lenguajes imperativos;
lenguajes funcionales.
Lenguaje de programación imperativo
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.
Lenguaje de programación funcional
Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.
Interpretación y compilación
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
lenguajes interpretados
lenguajes compilados
Lenguaje interpretado
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.
Lenguaje compilado
Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).
Lenguajes intermediarios
Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).
Ejemplos de lenguajes amplia-mente usados
ADA Tiempo real
BASIC Programación para fines educativos
C Programación de sistema
C++ Programación de sistema orientado a objeto
Cobol Administración
Fortran Cálculo
Java Programación orientada a Internet
MATLAB Cálculos matemáticos
Cálculos matemáticos Cálculos matemáticos
LISP Inteligencia artificial
Pascal Educación
PHP Desarrollo de sitios web dinámicos
Inteligencia artificial Inteligencia artificial
Perl Procesamiento de cadenas de caracteres
Faces para la creación de un programa
Fases para la elaboración de un programa informático
El desarrollo de un programa o de un conjunto de aplicaciones se basa en un concepto llamado ciclo de vida. Son una serie de etapas o fases que hay que seguir secuencial-mente.
Las fases o etapas son:
Análisis.
Diseño.
Codificación o construcción.
Implantación o explotación.
Mantenimiento.
Paso a explicar las fases:
ANÁLISIS
En esta fase se establece el producto a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear. Debe existir una gran comunicación entre el usuario y el analista para poder conocer todas las necesidades que precisa la aplicación. En el caso de falta de información por parte del usuario se puede recurrir al desarrollo de prototipos para saber con más precisión sus requerimientos.
En el análisis estructurado se pueden emplear varias técnicas como:
Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema mediante representaciones gráficas.
Modelos de datos: Sirven para conocer las estructuras de datos y sus características. (Entidad relación y formas normales)
Diccionario de datos: Sirven para describir todos los objetos utilizados en los gráficos, así como las estructuras de datos.
Definición de los interfaces de usuario: Sirven para determinar la información de entrada y salida de datos.
Al final de esta fase tenemos que tener claro las especificaciones de la aplicación.
DISEÑO
En esta fase se alcanza con mayor precisión una solución optima de la aplicación, teniendo en cuenta los recursos físicos del sistema (tipo de ordenador, periféricos, comunicaciones, etc…) y los recursos lógicos. (sistema operativo., programas de utilidad, bases de datos, etc…)
En el diseño estructurado se pueden definir estas etapas:
Diseño externo: Se especifican los formatos de información de entrada y salida. (pantalla y listados)
Diseño de datos: Establece las estructuras de datos de acuerdo con su soporte físico y lógico. (estructuras en memoria, ficheros y hojas de datos)
Diseño modular: Es una técnica de representación en la que se refleja de forma descendente la división de la aplicación en módulos. Está basado en diagramas de flujo de datos obtenidos en el análisis.
Diseño procedimental: Establece las especificaciones para cada modulo, escribiendo el algoritmo necesario que permita posteriormente una rápida codificación. Se emplean técnicas de programación estructurada, normalmente ordinogramas y pseudocódigo.
Al final de esta etapa se obtiene el denominado cuaderno de carga.
CODIFICACIÓN
Consiste en traducir los resultados obtenidos a un determinado lenguaje de programación, teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa.
Las pruebas se pueden clasificar en:
Pruebas unitarias: Sirven para comprobar que cada módulo realice bien su tarea.
Pruebas de interconexión: Sirven para comprobar en el programa el buen funcionamiento en conjunto de todos sus módulos.
Pruebas de integración: Sirven para comprobar el funcionamiento correcto del conjunto de programas que forman la aplicación. (el funcionamiento de todo el sistema)
EXPLOTACIÓN
En esta fase se realiza la implantación de la aplicación en el sistema o sistemas físicos donde van a funcionar habitualmente y su puesta en marcha para comprobar el buen funcionamiento.
Actividades a tener en cuenta o realizar:
Instalación del/los programa/s.
Pruebas de aceptación al nuevo sistema.
Conversión de la información del antiguo sistema al nuevo (si hay una aplicación antigua)
Eliminación del sistema anterior.
Al final de esta fase se debe de completar la información al usuario respecto al nuevo sistema y su uso. Así como facilitarle toda la documentación necesaria para una correcta explotación del sistema (manual de ayuda, manual de uso, guía de la aplicación, etc.)
MANTENIMIENTO
Esta es la fase que completa el ciclo de vida y en ella nos encargaremos de solventar los posibles errores o deficiencias de la aplicación. Existe la posibilidad de que ciertas aplicaciones necesiten reiniciar el ciclo de vida.
Tipos de mantenimiento:
Mantenimiento correctivo: Consiste en corregir errores no detectados en pruebas anteriores y que aparezcan con el uso normal de la aplicación. Este mantenimiento puede estar incluido en la garantía o mantenimiento de la aplicación.
Mantenimiento adaptativo: Consiste en modificar el programa a causa de cambio de entorno gráfico y lógico en el que estén implantados. (nuevas generaciones de ordenadores, nuevas versiones del sistema operativo, etc.)
Mantenimiento perfectivo: Consiste en una mejora sustancial de la aplicación al recibir por parte de los usuarios propuestas sobre nuevas posibilidades y modificaciones de las existentes.
Los tipos de mantenimiento adaptativo y perfectivo reinician el ciclo de vida, debiendo proceder de nuevo al desarrollo de cada una de sus fases para obtener un nuevo producto.
Metodología de la programación
En este artículo y los sucesivos veremos las herramientas y técnicas que nos ayudan a diseñar algoritmos para la resolución de los problemas en la programación estructurada.
Estructuras de un programa
Un programa se va a dividir en 3 partes claramente diferenciadas:
- procesos de entrada
- proceso de datos
- procesos de salida
Todo programa esta constituido por un conjunto de instrucciones capaces de gestionar un conjunto de datos.
Algoritmos
Un algoritmo es la descripción abstracta de todas las acciones que debe realizar un ordenador, que nos conduce a la solución del problema.
Debe ser conciso y detallado, así como finito, pero sobre todo tiene que ser claro y lo más sencillo posible.
Herramientas y técnicas para el diseño de algoritmos
Para el diseño de algoritmos lo que más se utiliza son los diagramas de flujos.
Diagramas de flujo
Los diagramas de flujo son representaciones gráficas que mediante el uso de símbolos unidos mediante líneas de flujo, muestran la secuencia lógica que se debe suceder para la solución del problema.
Los diagramas de flujo deber ser independientes del lenguaje de programación empleado, deben ser flexibles y sencillos.
Por otro lado tienen que estar normalizados con algún estándar como puede ser el ISO (a nivel mundial), ANSI (a nivel americano) o el IEEE ( a nivel europeo)
Existen 3 tipos de diagramas de flujos:
- Organigramas: Representación gráfica sencilla con los elementos que representas las entradas y salida de datos del programa
- Ordinograma: Representación gráfica con secuencias lógicas y detalladas de todos los pasos a seguir para la resolución del algoritmo.
- Pseudocódigo: Lenguaje intermedio entre el natural y el de programación que representa mediante la palabra la solución del algoritmo.
Dentro de estos tres los más utilizados son los ordinogramas o pseudocódigos, ya que son los que más ayudan a los programadores a la hora de pasar esos algoritmos a los distintos lenguajes de programación.
En los siguientes artículos profundizaremos más en cada uno de ellos y aprenderemos a construirlos y leerlos para su posterior paso al lenguaje de programación requerido.
Pseudocódigo
No es una forma de programación, se trata de una herramienta que los analistas de sistemas utilizan para comunicar a los programadores la estructura del programa que van a realizar, de forma de tener una idea bien clara de lo que se necesita programar.
Digamos que el pseudo código es una forma de diagramar un algoritmo para resolver un determinado problema, sin atenerse a ningún lenguaje de programación en especial.
Un algoritmo es un conjunto de procedimientos que permiten resolver un problema.
En vez de escribir el programa directamente en un lenguaje de programación determinado (C, Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que se debe hacer, pasar a la programación propiamente dicha.
No hay que confundirlo con un diagrama de flujo.
En el diagrama de flujo se representa el transcurso del programa, el momento donde se obtienen los datos, cuando se procesan y el momento de presentar los resultados. Si bien son dos herramientas que se utilizan en conjunto, cada una representa dos partes distintas en el diseño de un sistema.
El pseudo código se refiere a crear un código para orientar a los programadores, pero sin la sintaxis ni la estructura propia de ningún lenguaje.
Utilización en la práctica
En el trabajo de un analista de sistemas, una de las partes más trabajosas es la de determinar que es lo que necesitan de un sistema los usuarios finales. Se dedican muchas horas a hacer un relevamiento de los datos que serán necesarios, los tipos de procesamientos, las salidas, etc. Y debe existir una realimentación entre el diseño y el usuario, para garantizar que el sistema cumpla con los requisitos del usuario.
Supongamos que tenemos un sistema para una empresa que utiliza una interfaz gráfica en Visual Basic, algunas aplicaciones específicas en C, y páginasPHP para trabajo vía Internet. Seguramente que crear un diagrama específico para cada lenguaje sería una tarea tediosa.
Gracias a esta herramienta, podemos reunir a todos los programadores, dar las pautas de trabajo, y mediante el pseudo código, cada programador sabrá lo que hace el sistema, y podrá escribir el código correspondiente.
Incluso dos programadores que dominen el mismo lenguaje pueden tener metodologías de trabajo distintas. Un problema puede ser resuelto de muchas maneras, cada una más o menos eficiente que la otra, pero todas cumplen con el objetivo.
El pseudo código elimina estas diferencias, dando libertad a los programadores para que puedan ajustarse a su metodología de trabajo.
Generalmente, este código se escribe con la participación de todos los programadores. Esto representa la ventaja de que muchas opiniones ayudan a elegir la mejor entre todas, logrando una solución efectiva y eficaz al problema planteado.
*Las principales características de este lenguaje son:
Se puede ejecutar en un ordenador
Es una forma de representación sencilla de utilizar y de manipular.
Facilita el paso del programa al lenguaje de programación.
Es independiente del lenguaje de programación que se vaya a utilizar.
Es un método que facilita la programación y solución al algoritmo del programa.
*Todo documento en pseudocódigo debe permitir la descripción de:
Instrucciones primitivas.
Instrucciones de proceso.
Instrucciones de control.
Instrucciones compuestas.
Instrucciones de descripción.
*Estructura a seguir en su realización:
-Cabecera.
Programa.
Modulo.
Tipos de datos.
Constantes.
Variables.
-Cuerpo.
Inicio.
Instrucciones.
Fin.
Compiladores
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.1
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
Tipos de compiladores
Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:
Compiladores cruzados: generan código para un sistema distinto del que están funcionando.
Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina.
Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.
Pauta de creación de un compilador: En las primeras épocas de la informática, el software de los compiladores era considerado como uno de los más complejos existentes.
Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador.
Actualmente existen herramientas que facilitan la tarea de escribir compiladores ó intérpretes informáticos. Estas herramientas permiten generar el esqueleto del analizador sintáctico a partir de una definición formal del lenguaje de partida, especificada normalmente mediante una gramática formal y barata, dejando únicamente al programador del compilador la tarea de programar las acciones semánticas asociadas.
Proceso de compilación
En el proceso de compilación, se traducen las instrucciones escritas en un determinado lenguaje de programación a lenguaje máquina.
El proceso de traducción se compone internamente de varias etapas o fases, que realizan distintas operaciones lógicas. Es útil pensar en estas fases como en piezas separadas dentro del traductor, y pueden en realidad escribirse como operaciones codificadas separadamente aunque en la práctica a menudo se integren juntas.
Tipos de programación
Los tipos o técnicas de programación son bastante variados, aunque puede que muchos de los lectores sólo conozcan una metodología para realizar programas. En la mayoría de los casos, las técnicas se centran en programación modular y programación estructurada, pero existen otros tipos de programación. Los explicaremos a lo largo del artículo.
Programación estructurada (PE)
La programación estructurada esta compuesta por un conjunto de técnicas que han ido evolucionando aumentando considerablemente la productividad del programa reduciendo el tiempo de depuración y mantenimiento del mismo.
Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así considerablemente los errores.
Esta técnica incorpora:
- Diseño descendente (top-dow): el problema se descompone en etapas o estructuras jerárquicas.
- Recursos abstractos (simplicidad): consiste en descompones las acciones complejas en otras más simples capaces de ser resueltas con mayor facilidad.
- Estructuras básicas: existen tres tipos de estructuras básicas:
- Estructuras secuénciales: cada acción sigue a otra acción secuencialmente. La salida de una acción es la entrada de otra.
- Estructuras selectivas: en estas estructuras se evalúan las condiciones y en función del resultado de las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
- Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de veces.
Las principales ventajas de la programación estructurada son:
- Los programas son mas fáciles de entender
- Se reduce la complejidad de las pruebas
- Aumenta la productividad del programador
- Los programas queden mejor documentados internamente.
Un programa esta estructurado si posee un único punto de entrada y sólo uno de salida, existen de "1 a n" caminos desde el principio hasta el fin del programa y por último, que todas las instrucciones son ejecutables sin que aparezcan bucles infinitos.
Programación modular
En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad.
En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros.
A su vez cada modulo puede contener sus propios datos y llamar a otros módulos o funciones.
Programación orientada a objetos (POO)
Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos.
El elemento principal de la programación orientada a objetos es el objeto.
El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.
Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento.
El polimorfismo y la herencia son unas de sus principales características y por ello dedicaremos más adelante un artículo exclusivamente a tratar estos dos términos.
En DesarrolloWeb.com hemos publicado anteriormente una explicación de lo que es la programación orientada a objetos.
Programación concurrente
Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez.
Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultanea.
Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.
Programación funcional
Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.
Programación lógica
Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).
*Importancia de las telecomunicaciones
Históricamente el hombre siempre busco una manera de comunicarse, rompiendo la enorme frontera que significo la distancia.
Hasta hace algunos siglos, haciendo alarde de los arcaicos medios de comunicación, la carta fue el el elemento de comunicación mas conocido, a este posteriormente se le conoce hasta nuestro días como correo. Aunque era poco de fiar pues no era muy seguro debido a que con frecuencia se veían amenazados por contingentes asaltos. posteriormente resulto totalmente desfasado debido al desarrollo de la tecnología.
Nos saltamos de los medios de comunicación sus generaciones, y pensamos en Internet, televisión y dentro de ellos redes sociales, boletines informativos, noticieros, arte deporte etc en un mismo lugar.
Las telecomunicaciones en nuestros días son una herramienta indispensable en la vida cotidiana, pues conectan todo el sistema que conforma una empresa, ademas mantienen informados a gran numero de personas sobre lo que sucede en el mundo.
CLASIFICACIÓN DE LAS REDES:
LAN (Local Area Network): Redes de Área Local
Es un sistema de comunicación entre computadoras que permite compartir información, con la característica de que la distancia entre las computadoras debe ser pequeña. Estas redes son usadas para la interconexión de computadores personales y estaciones de trabajo. Se caracterizan por: tamaño restringido, tecnología de transmisión (por lo general broadcast), alta velocidad y topología.
Son redes con velocidades entre 10 y 100 Mbps, tiene baja latencia y baja tasa de errores. Cuando se utiliza un medio compartido es necesario un mecanismo dearbitraje para resolver conflictos.
Dentro de este tipo de red podemos nombrar a INTRANET, una red privada que utiliza herramientas tipo internet , pero disponible solamente dentro de laorganización.
Ej.: IEEE 802.3 (Ethernet), IEEE 802.4 (Token Bus), IEEE 802.5 (Token Ring)
MAN (Metropolitan Area Network): Redes de Área Metropolitana
Es una versión de mayor tamaño de la red local. Puede ser pública o privada. Una MAN puede soportar tanto voz como datos. Una MAN tiene uno o dos cables y no tiene elementos de intercambio de paquetes o conmutadores, lo cual simplifica bastante el diseño. La razón principal para distinguirla de otro tipo de redes, es que para las MAN's se ha adoptado un estándar llamado DQDB (Distributed Queue Dual Bus) o IEEE 802.6. Utiliza medios de difusión al igual que las Redes de Área Local.
WAN (Wide Area Network): Redes de Amplia Cobertura
Son redes que cubren una amplia región geográfica, a menudo un país o un continente. Este tipo de redes contiene máquinas que ejecutan programas de usuario llamadas hosts o sistemas finales (end system). Los sistemas finales están conectados a una subred de comunicaciones. La función de la subred es transportar los mensajes de un host a otro.
En la mayoría de las redes de amplia cobertura se pueden distinguir dos componentes: Las líneas de transmisión y los elementos de intercambio (Conmutación). Las líneas de transmisión se conocen como circuitos, canales o truncales. Los elementos de intercambio son computadores especializados utilizados para conectar dos o más líneas de transmisión.
Las redes de área local son diseñadas de tal forma que tienen topologías simétricas, mientras que las redes de amplia cobertura tienen topología irregular. Otra forma de lograr una red de amplia cobertura es a través de satélite o sistemas de radio.
Ej. : X.25, RTC, ISDN, etc.
OTROS TIPOS DE REDES:
RED NOVELL
Novell tiene su propio equipo, el cual permite conectar todos los componentes de la red entregando un servicio completo en el diseño de la misma. Este equipo incluye:
Tarjeta de red.
Servidores para la red.
Unidades de respaldo de cinta.
Discos duros para respaldo de información.
Controladores activos y pasivos.
RED IBM TOKEN-RING
La topología de esta red es un anillo alrededor del cual se distribuyen las estaciones de trabajo.
Las computadoras conectadas a la red se comunican todo el tiempo entre sí mediante un paquete de información (token) que está viajando en todo momento a través de la red.
Esta red posee las siguientes características:
Monitoreo de Red.
Acepta múltiples tipos de cable.
Diseñada para ambientes de oficina en las cuales se requiere una red que tenga amplia capacidad de expansión en el ambiente PC y también hacia otro tipo de ambientes de computadoras, tales como mini-computadoras o macro-computadoras.
RED HEWLETTE-PACKARD
Existen dos modelos de red StarLAN [Red de Area Local tipo Estrella]:
La primera, la simple StarLAN, puede conectar como máximo hasta 50 estaciones en la red con dos niveles de Distribuidor Central (HUB) y la segunda, StarLAN 10, puede conectar hasta 1024 estaciones de trabajo entre diferentes redes de HP, la propia red aislada puede conectar 276 estaciones de trabajo.
Cada una de las redes está pensada en función a las necesidades con diversos equipos de HP, StarLAN 10 tiene capacidad de manejar un mayor número de terminales y mayor capacidad de interconexión con otras redes de la familia HP.
Existen diferencias al usar un servidor basado en una micro computadora PC comparado contra usar como servidor una mini 3000.
En el caso de una micro computadora los periféricos son:
1. Impresoras.
2. Unidades de disco.
3. Graficadores.
En el caso de una mini 3000 los periféricos son:
1. Impresoras.
2. Unidades de disco.
3. Graficadores.
4. Unidades de Cinta.
RED 3+Open
El sistema de Microsoft se apega al standard fijado por OS/2 con respecto al manejo del sistema operativo y la capacidad de manejo multi-tarea del sistema mismo.
3+OPEN es el nombre del producto lanzado al mercado, aprovechando las tarjetas ETHERNET para poder ofrecer una solución de conectividad estandarizada a los equipos de computación, incluyendo computadoras personales (PC compatibles), Macintosh, computadoras en UNIX/XENIX, mini computadoras y macro computadoras.
Esta vez ya podemos conectar cualquier cosa desde una red de computadoras, sin importar si el acceso es local o remoto o vía teléfono usando un modem común, o vía teléfono usando alguna red internacional de datos vía X.25.
La forma de conexión de la red puede ser por cable coaxial, o par telefónico, esto último da una ventaja adicional a la red pues el costo de instalación eléctrica es más barato usando par telefónico en lugar de cable coaxial, todo depende el medio ambiente magnético alrededor de la red.
Red Columna Vertebral (Backbone Network)
También llamada Red de Transporte (Carrier Network). Este tipo de red cubre, por lo general, un país o un continente. Sirve como apoyo a las empresas que poseen redes locales y no pueden costear la inversión en la infraestructura y mantenimiento de una red de área extendida propia.
Red Internacional (INTERNETworking)
También llamada Telaraña de área Mundial (World Wide Web).
Es una enorme red de redes que se enlaza a muchas de las redes científicas, de investigación y educacionales alrededor del mundo así como a un número creciente de redes comerciales.
TOPOLOGÍA DE REDES:
La configuración de una red, recoge tres campos: físico, eléctrico y lógico. El nivel físico y eléctrico se entiende como la configuración del cableado entre máquinas o dispositivos de control o conmutación. Cuando hablamos de la configuración lógica tenemos que pensar en como se trata la información dentro de nuestra red, como se dirige de un sitio a otro o como la recoge cada estación.
Topología en Estrella:
Todos los elementos de la red se encuentran conectados directamente mediante un enlace punto a punto al nodo central de la red, quien se encarga de gestionar las transmisiones de información por toda la estrella. La topología de Estrella es una buena elección siempre que se tenga varias unidades dependientes de un procesador, esta es la situación de una típica mainframe, donde el personal requiere estar accesando frecuentemente esta computadora. En este caso, todos los cables están conectados hacia un solo sitio, esto es, un panel central.
Resulta económico la instalación de un nodo cuando se tiene bien planeado su establecimiento, ya que este requiere de una cable desde el panel central, hasta el lugar donde se desea instalarlo.
Topología en Bus
En esta topología, los elementos que constituyen la red se disponen linealmente, es decir, en serie y conectados por medio de un cable; el
bus. Las tramas de información emitidas por un nodo (terminal o servidor) se propagan por todo el bus(en ambas direcciones), alcanzado a todos los demás nodos. Cada nodo de la red se debe encargar
de reconocer la información que recorre el bus, para así determinar cual es la que le corresponde, la destinada a él.
Es el tipo de instalación más sencillo y un fallo en un nodo no provoca la caída del sistema de la red.
Como ejemplo más conocido de esta topología, encontramos la red Ethernet de Xerox. El método de acceso utilizado es el CSMA/CD, método que gestiona el acceso al bus por parte de los terminales y que por medio de un algoritmo resuelve los conflictos causados en las colisiones de información. Cuando un nodo desea iniciar una transmisión, debe en primer lugar escuchar el medio para saber si está ocupado, debiendo esperar en caso afirmativo hasta que quede libre. Si se llega a producir una colisión, las estaciones reiniciarán cada una su transmisión, pero transcurrido un tiempo aleatorio distinto para cada estación.
Topología en Anillo:
Los nodos de la red se disponen en un anillo cerrado conectados a él mediante enlaces punto a punto. La información describe una trayectoria circular en una única dirección y el nodo principal es quien gestiona conflictos entre nodos al evitar la colisión de tramas de información. En este tipo de topología, un fallo en un nodo afecta a toda la red aunque actualmente hay tecnologías que permiten mediante unos conectores especiales, la desconexión del nodo averiado para que el sistema pueda seguir funcionando. La topología de anillo esta diseñada como una arquitectura circular, con cada nodo conectado directamente a otros dos nodos. Toda la información de la red pasa a través de cada nodo hasta que es tomado por el nodo apropiado. Este esquema de cableado muestra alguna economía respecto al de estrella. El anillo es fácilmente expandido para conectar mas nodos, aunque en este proceso interrumpe la operación de la red mientras se instala el nuevo nodo. Así también, el movimiento físico de un nodo requiere de dos pasos separados: desconectar para remover el nodo y otra vez reinstalar el nodo en su nuevo lugar.
Infraestructura de una red de datos
Infraestructura
Red de Datos
La arquitectura de la red de datos es la que se presenta en la Figura 1, consiste de una dorsal basada en fibra óptica que conecta a todos los edificios del CICESE, y utiliza la tecnología Fast Ethernet para el transporte de la información a 100 Mbps. El equipo central de la dorsal es un switch router de 24 puertos Cisco Catalyst 3750, que interconecta todos los edificios del CICESE, así como algunos de los servidores (Proxy cache, Telefonía IP Nortel, Telefonía IP Cisco (para CPIC), Firewall y Detección de intrusos, servidor de correo, DHCP, tarificador telefónico, contestador telefónico). También se conectan los conmutadores de datos administrables que se localizan en cada uno de los edificios, y de esos conmutadores administrables se derivan las subredes dentro de los edificios mediante conmutadores de datos sencillos con velocidad final de usuarios de 100 Mbps, y en algunos casos de 1000 Mbps.
Hay un total de 2651 puertos de datos instalados en toda la red CICESE, de los cuales se están ocupando 2145.
Se tienen 6 enlaces hacia el exterior, el Enrutador Juniper M5 provee el acceso a Internet2 al CICESE, a la UABC (Campus Ensenada), al Instituto de Astronomía de la UNAM y al Centro de Ciencias de la Materia Condensada de la UNAM. También es donde se conecta el MCU, el cual permite las videoconferencias multipunto entre todos los Centros CONACYT. La conexión a Internet se hace a través de: el enrutador Cisco 2600, con dos enlaces de 2 Mbps cada uno; y el proxy-adsl, con 8 enlaces ADSL de 2 Mbps de bajada cada uno. El acceso por modems es a través del enrutador Cisco 3640, el cual cuenta con 16 modems de hasta 56 Kbps.
El enrutador SmartSwitch Router 8000 permite separar el tráfico de paquetes de la red de datos de CICESE entre Internet e Internet2.Los equipos de Calidad de Servicio Packet Shaper y QoSWorks asignan calidad de servicio para las aplicaciones requeridas, tales como videocoferencias y telefonía IP, y también limitan el tráfico de aplicaciones no permitidas (bajar música y películas, por ejemplo).
En algunos edificios se han instalado puntos de acceso inalámbrico para extender los servicios de red a áreas públicas como auditorios, biblioteca, salas de juntas, y salones de clases. Estos puntos de acceso soportan los protocolos 802.11a, 802.11b y 802.11g.
Se cuenta con un solo proveedor de servicios (Telnor) el cual nos hace llegar por enlaces de fibra óptica utilizando la tecnología SDH los servicios de telefonía (60 troncales digitales), dos enlaces a Internet de 2 Mbps, un enlace a Internet2 de 34 Mbps y 8 lineas ADSL de 2.048 Mbps cada una, además se tiene la capacidad para recibir otros 14 enlaces E1 de 2 Mbps, para aumentar los anchos de banda del acceso a Internet o conectar a otras instituciones a CICESE para acceder la red académica Internet2.
Red de Voz
La red de voz cuentan con 840 extensiones y esta compuesta por dos conmutadores, el equipo principal es un conmutador NORTEL Opción 81C el cual es un PBX robusto con un sistema redundante en CPU y memoria, tiene un banco de baterías que soporta una autonomía de 4 horas en caso de falla eléctrica, provee la conectividad hacia los proveedores de servicios con troncales analógicas y digitales como lo son TELNOR y TELCEL así como los enlaces al PBX secundario ubicado en Física Aplicada y a redes de VoIP como lo es el caso de la red de VoIP de los centros CONACYT y controla 2 equipos remotos los cuales son los que proveen los servicios de telefonía a los edificios de Oceanología y Telemática.
También se cuenta con un conmutador NORTEL Opción 11C para proveer el servicio de telefonía a los edificios de Física Aplicada y Ciencias de la Tierra y esta conectado al conmutador 81C por medio de un enlace de fibra óptica con el cual se logra acceder a los enlaces hacia TELNOR, TELCEL y VoIP y extensiones del resto de los edificios del campus de CICESE.
Cantidad | Descripción | Utilización |
840 | Líneas Telefónicas | Para todo el campus de CICESE el cual provee el servicio a teléfonos analógicos, digitales, fax y módems. |
2 | E1 digital DTI | Proporciona el servicio a 60 troncales digitales (60 canales) hacia TELNOR para llamadas de entrada y salida. |
1 | E1 digital DTI | Permite el acceso a 30 troncales digitales hacia la red de VoIP de los centros CONACYT para hacer y recibir llamadas, con estas troncales se realizan las llamadas hacia el conmutador de CICESE La Paz. |
100 | DID | Números de entrada hacia CICESE proporcionados por TELNOR, asignadas al servicio de operadoras (175-0500), contestador automático (175-0595) acceso remoto por módems (175-0585) así como a distintas extensiones en direcciones, y equipos de fax de todo el centro. |
3 | E1 digital PRI | Utilizados para unir los conmutadores de CICESE y los equipos remotos controlados por el conmutador principal los cuales cuentan con 30 canales cada uno. |
6 | Celulares TELULAR | Equipos que proporcionan acceso a la red celular a través de TELCEL. |
8 | Líneas Telefónicas | Líneas telefónicas de TELNOR utilizadas como troncales de emergencia, distribuidas hacia todas las recepciones de cada uno de los edificios del campus CICESE. |
1 | Contestador Telefónico | Equipo utilizado para recibir llamadas a través de una operadora automática con 8 líneas telefónicas |
Modelo OSI
El modelo de interconexión de sistemas abiertos, también llamado OSI (en inglés open system interconnection) es el modelo de red descriptivo creado por la Organización Internacional para la Estandarización en el año 1984. Es decir, es un marco de referencia para la definición de arquitecturas de interconexión de sistemas de comunicaciones.
Durante los años 60 y 70 se crearon muchas tecnologías de redes, cada una basada en un diseño específico de hardware. Estos sistemas eran construidos de una sola pieza, una arquitectura monolítica. Esto significa que los diseñadores debían ocuparse de todos los elementos involucrados en el proceso, estos elementos forman una cadena de transmisión que tiene diversas partes: Los dispositivos físicos de conexión, los protocolos software y hardware usados en la comunicación.
Los programas de aplicación realizan la comunicación y la interfaz hombre-máquina que permite al humano utilizar la red. Este modelo, que considera la cadena como un todo monolítico, es poco práctico, pues el más pequeño cambio puede implicar alterar todos sus elementos.
El diseño original de Internet del Departamento de Defensa Americano disponía un esquema de cuatro capas, aunque data de los 70 es similar al que se continúa utilizando:
Capa Física o de Acceso de Red: Es la responsable del envío de la información sobre el sistema hardware utilizado en cada caso, se utiliza un protocolo distinto según el tipo de red física.
Capa de Red o Capa Internet: Es la encargada de enviar los datos a través de las distintas redes físicas que pueden conectar una máquina origen con la de destino de la información. Los protocolos de transmisión, como el IP están íntimamente asociados a esta capa.
Capa de Transporte: Controla el establecimiento y fin de la conexión, control de flujo de datos, retransmisión de datos perdidos y otros detalles de la transmisión entre dos sistemas. Los protocolos más importantes a este nivel son TCP y UDP (mutuamente excluyentes).
Capa de Aplicación: Conformada por los protocolos que sirven directamente a los programas de usuario, navegador, e-mail, FTP, TELNET, etc.
Respondiendo a la teoría general imperante el mundo de la computación, de diseñar el hardware por módulos y el software por capas, en 1978 la organización ISO (International Standards Organization), propuso un modelo de comunicaciones para redes al que titularon "The reference model of Open Systems Interconnection", generalmente conocido como MODELO OSI.
Su filosofía se basa en descomponer la funcionalidad de la cadena de transmisión en diversos módulos, cuya interfaz con los adyacentes esté estandarizada. Esta filosofía de diseño presenta una doble ventaja: El cambio de un módulo no afecta necesariamente a la totalidad de la cadena, además, puede existir una cierta inter-operabilidad entre diversos productos y fabricantes hardware/software, dado que los límites y las interfaces están perfectamente definidas.
Esto supone por ejemplo, que dos softwares de comunicación distintos puedan utilizar el mismo medio físico de comunicación.
El modelo OSI tiene dos componentes principales:
Un modelo de red, denominado modelo básico de referencia o capa de servicio.
Una serie de protocolos concretos.
El modelo de red, aunque inspirado en el de Internet no tiene más semejanzas con aquél. Está basado en un modelo de siete (7) capas, mientras que el primitivo de Internet estaba basado en cuatro (4). Actualmente todos los desarrollos se basan en este modelo de 7 niveles que son los siguientes: 1 Físico; 2 de Enlace; 3 de Red; 4 de Transporte; 5 de Sesión; 6 de Presentación y 7 de Aplicación. Cada nivel realiza una función concreta, y está separado de los adyacentes por interfaces conocidas, sin que le incumba ningún otro aspecto del total de la comunicación.
Generalmente los dispositivos utilizados en las redes circunscriben su operación a uno o varios de estos niveles. Por ejemplo, un hub (concentrador) que amplifica y retransmite la señal a través de todos sus puertos está operando exclusivamente en la capa 1, mientras que un conmutador (switch) opera en las capas 1 y 2; un router opera en las capas 1, 2 y 3. Finalmente una estación de trabajo de usuario generalmente maneja las capas 5, 6 y 7.
En lo que respecta al software, hay que señalar que cada capa utiliza un protocolo específico para comunicarse con las capas adyacentes, y que añade a la cabecera del paquete cierta información adicional.
Capas del modelo OSI
La descripción de las diversas capas que componen este modelo es la siguiente:
1. Capa física
Es la encargada de transmitir los bits de información por la línea o medio utilizado para la transmisión. Se ocupa de las propiedades físicas y características eléctricas de los diversos componentes, de la velocidad de transmisión, si esta es unidireccional o bidireccional (simplex, duplex o flull-duplex).
También de aspectos mecánicos de las conexiones y terminales, incluyendo la interpretación de las señales eléctricas.
Como resumen de los cometidos de esta capa, podemos decir que se encarga de transformar un paquete de información binaria en una sucesión de impulsos adecuados al medio físico utilizado en la transmisión. Estos impulsos pueden ser eléctricos (transmisión por cable), electromagnéticos (transmisión Wireless) o luminosos (transmisón óptica). Cuando actúa en modo recepción el trabajo es inverso, se encarga de transformar estos impulsos en paquetes de datos binarios que serán entregados a la capa de enlace.
2. Capa de enlace
Puede decirse que esta capa traslada los mensajes hacia y desde la capa física a la capa de red. Especifica como se organizan los datos cuando se transmiten en un medio particular. Esta capa define como son los cuadros, las direcciones y las sumas de control de los paquetes Ethernet.
Además del direccionamiento local, se ocupa de la detección y control de errores ocurridos en la capa física, del control del acceso a dicha capa y de la integridad de los datos y fiabilidad de la transmisión. Para esto agrupa la información a transmitir en bloques, e incluye a cada uno una suma de control que permitirá al receptor comprobar su integridad. Los datagramas recibidos son comprobados por el receptor. Si algún datagrama se ha corrompido se envía un mensaje de control al remitente solicitando su reenvío.
La capa de enlace puede considerarse dividida en dos subcapas:
Control lógico de enlace LLC: define la forma en que los datos son transferidos sobre el medio físico, proporcionando servicio a las capas superiores.
Control de acceso al medio MAC: Esta subcapa actúa como controladora del hardware subyacente (el adaptador de red). De hecho el controlador de la tarjeta de red es denominado a veces "MAC driver", y la dirección física contenida en el hardware de la tarjeta es conocida como dirección. Su principal consiste en arbitrar la utilización del medio físico para facilitar que varios equipos puedan competir simultáneamente por la utilización de un mismo medio de transporte. El mecanismo CSMA/CD ("Carrier Sense Multiple Access with Collision Detection") utilizado en Ethernet es un típico ejemplo de esta subcapa.
3. Capa de Red
Esta capa se ocupa de la transmisión de los datagramas (paquetes) y de encaminar cada uno en la dirección adecuada tarea esta que puede ser complicada en redes grandes como Internet, pero no se ocupa para nada de los errores o pérdidas de paquetes. Define la estructura de direcciones y rutas de Internet. A este nivel se utilizan dos tipos de paquetes: paquetes de datos y paquetes de actualización de ruta. Como consecuencia esta capa puede considerarse subdividida en dos:
Transporte: Encargada de encapsular los datos a transmitir (de usuario). Utiliza los paquetes de datos. En esta categoría se encuentra el protocolo IP.
Conmutación: Esta parte es la encargada de intercambiar información de conectividad específica de la red. Los routers son dispositivos que trabajan en este nivel y se benefician de estos paquetes de actualización de ruta. En esta categoría se encuentra el protocolo ICMP responsable de generar mensajes cuando ocurren errores en la transmisión y de un modo especial de eco que puede comprobarse mediante ping.
Los protocolos más frecuentemente utilizados en esta capa son dos: X.25 e IP.
4. Capa de Transporte
Esta capa se ocupa de garantizar la fiabilidad del servicio, describe la calidad y naturaleza del envío de datos. Esta capa define cuando y como debe utilizarse la retransmisión para asegurar su llegada. Para ello divide el mensaje recibido de la capa de sesión en trozos (datagramas), los numera correlativamente y los entrega a la capa de red para su envío.
Durante la recepción, si la capa de Red utiliza el protocolo IP, la capa de Transporte es responsable de reordenar los paquetes recibidos fuera de secuencia. También puede funcionar en sentido inverso multiplexando una conexión de transporte entre diversas conexiones de datos. Este permite que los datos provinientes de diversas aplicaciones compartan el mismo flujo hacia la capa de red.
Un ejemplo de protocolo usado en esta capa es TCP, que con su homólogo IP de la capa de Red, configuran la suite TCP/IP utilizada en Internet, aunque existen otros como UDP, que es una capa de transporte utilizada también en Internet por algunos programas de aplicación.
5. Capa de Sesión
Es una extensión de la capa de transporte que ofrece control de diálogo y sincronización, aunque en realidad son pocas las aplicaciones que hacen uso de ella.
6. Capa de Presentación
Esta capa se ocupa de garantizar la fiabilidad del servicio, describe la calidad y naturaleza del envío de datos. Esta capa define cuando y como debe utilizarse la retransmisión para asegurar su llegada. Para ello divide el mensaje recibido de la capa de sesión en trozos (datagramas), los numera correlativamente y los entrega a la capa de red para su envío.
Durante la recepción, si la capa de Red utiliza el protocolo IP, la capa de Transporte es responsable de reordenar los paquetes recibidos fuera de secuencia. También puede funcionar en sentido inverso multiplexando una conexión de transporte entre diversas conexiones de datos. Este permite que los datos provinientes de diversas aplicaciones compartan el mismo flujo hacia la capa de red.
Esta capa se ocupa de los aspectos semánticos de la comunicación, estableciendo los arreglos necesarios para que puedan comunicar máquinas que utilicen diversa representación interna para los datos. Describe como pueden transferirse números de coma flotante entre equipos que utilizan distintos formatos matemáticos.
En teoría esta capa presenta los datos a la capa de aplicación tomando los datos recibidos y transformándolos en formatos como texto imágenes y sonido. En realidad esta capa puede estar ausente, ya que son pocas las aplicaciones que hacen uso de ella.
7. Capa de Aplicación
Esta capa describe como hacen su trabajo los programas de aplicación (navegadores, clientes de correo, terminales remotos, transferencia de ficheros etc). Esta capa implementa la operación con ficheros del sistema. Por un lado interactúan con la capa de presentación y por otro representan la interfaz con el usuario, entregándole la información y recibiendo los comandos que dirigen la comunicación.
Algunos de los protocolos utilizados por los programas de esta capa son HTTP, SMTP, POP, IMAP etc.
En resumen, la función principal de cada capa es:
Aplicación | El nivel de aplicación es el destino final de los datos donde se proporcionan los servicios al usuario. |
Presentación | Se convierten e interpretan los datos que se utilizarán en el nivel de aplicación. |
Sesión | Encargado de ciertos aspectos de la comunicación como el control de los tiempos. |
Transporte | Transporta la información de una manera fiable para que llegue correctamente a su destino. |
Red | Nivel encargado de encaminar los datos hacia su destino eligiendo la ruta más efectiva. |
Enlace | Enlace de datos. Controla el flujo de los mismos, la sincronización y los errores que puedan producirse. |
Físico | Se encarga de los aspectos físicos de la conexión, tales como el medio de transmisión o el hardware. |
IP (Internet Protocol) versión 6:
La nueva versión del protocolo IP recibe el nombre de IPv6, aunque es también conocido comúnmente como IPv6 (Protocolo de Internet de Nueva Generación). El número de versión de este protocolo es el 6 frente a la versión 4 utilizada hasta entonces, puesto que la versión 5 no pasó de la fase experimental. Los cambios que se introducen en esta nueva versión son muchos y de gran importancia, aunque la transición desde la versión 4 no debería ser problemática gracias a las características de compatibilidad que se han incluido en el protocolo. IPv6 se ha diseñado para solucionar todos los problemas que surgen con la versión anterior, y además ofrecer soporte a las nuevas redes de alto rendimiento (como ATM, Gigabit Ethernet y otros)
Una de las características más llamativas es el nuevo sistema de direcciones, en el cual se pasa de los 32 a los 128 bit, eliminando todas las restricciones del sistema actual. Otro de los aspectos mejorados es la seguridad, que en la versión anterior constituía uno de los mayores problemas. Además, el nuevo formato de la cabecera se ha organizado de una manera más efectiva, permitiendo que las opciones se sitúen en extensiones separadas de la cabecera principal.
Formato de la cabecera:
El tamaño de la cabecera que el protocolo IPv6 añade a los datos es de 320 bit, el doble que en la versión 4. Sin embargo, esta nueva cabecera se ha simplificado con respecto a la anterior. Algunos campos se han retirado de la misma, mientras que otros se han convertido en opcionales por medio de las extensiones. De esta manera los routers no tienen que procesar parte de la información de la cabecera, lo que permite aumentar de rendimiento en la transmisión. El formato completo de la cabecera sin las extensiones es el siguiente:
Versión:
Número de versión del protocolo IP, que en este caso contendrá el valor 6. Tamaño: 4 bit.
Prioridad:
Contiene el valor de la prioridad o importancia del paquete que se está enviando con respecto a otros paquetes provenientes de la misma fuente. Tamaño: 4 bit.
Etiqueta de flujo:
Campo que se utiliza para indicar que el paquete requiere un tratamiento especial por parte de los routers que lo soporten.
Tamaño: 24 bit.
Longitud:
Es la longitud en bytes de los datos que se encuentran a continuación de la cabecera. Tamaño: 16 bit.
Siguiente cabecera:
Se utiliza para indicar el protocolo al que corresponde la cabecera que se sitúa a continuación de la actual. El valor de este campo es el mismo que el de protocolo en la versión 4 de IP. Tamaño: 8 bit.
Límite de existencia:
Tiene el mismo propósito que el campo de la versión 4, y es un valor que disminuye en una unidad cada vez que el paquete pasa por un nodo. Tamaño:8 bit.
Dirección de origen:
El número de dirección del host que envía el paquete. Su longitud es cuatro veces mayor que en la versión 4. Tamaño: 128 bit.
Dirección de destino:
Número de dirección de destino, aunque puede no coincidir con la dirección del host final en algunos casos. Su longitud es cuatro veces mayor que en la versión 4 del protocolo IP. Tamaño: 128 bit.
Organización de la cabecera IPv6.
Versión
Prioridad
Etiqueta de flujo
Longitud
Siguiente cabecera
Límite de existencia
Dirección de origen
Dirección de destino
Las extensiones que permite añadir esta versión del protocolo se sitúan inmediatamente después de la cabecera normal, y antes de la cabecera que incluye el protocolo de nivel de transporte.
FUNCIONAMIENTO DE LA IP DENTRO DEL MODELO OSI:
El protocolo de IP es la base fundamental de Internet. Hace posible enviar datos de la fuente al destino. El nivel de transporte parte el flujo de datos en datagramas. Durante su transmisión se puede partir un datagrama en fragmentos que se montan de nuevo en el destino
Fundamentos básicos de diseño de una red de área local
Topología
Es simplemente visualizar el sistema de comunicación en una red es conveniente utilizar el concepto de topología, o estructura física de la red. Las topologías describen la red físicamente y también nos dan información acerca de el método de acceso que se usa (Ethernet, Token Ring, etc.). Entre las topologías conocidas tenemos.
Bus:
En una red en bus, cada nodo supervisa la actividad de la línea. Los mensajes son detectados por todos los nodos, aunque aceptados sólo por el nodo o los nodos hacia los que van dirigidos. Como una red en bus se basa en una "autopista" de datos común, un nodo averiado sencillamente deja de comunicarse; esto no interrumpe la operación, como podría ocurrir en una red en anillo.
Anillo:
Se integra a la Red en forma de anillo o circulo. Este tipo de Red es de poco uso ya que depende solo de la principal, en caso de fallas todas las estaciones sufrirían.
Estrella:
Una red en estrella consta de varios nodos conectados a una computadora central (HUB), en una configuración con forma de estrella. Los mensajes de cada nodo individual pasan directamente a la computadora central, que determinará, en su caso, hacia dónde debe encaminarlos s de fácil instalación y si alguna de las instalaciones fallas las demás no serán afectadas ya que tiene un limitante.
Posibles problemas que presenta una Red a raíz de una mala configuración en los Equipos establecidos.
Perdida de las Datos:
La pérdida de datos es producida por algún virus o por otro tipo de incidencia, los mas comunes son mal manejo por parte del usuario o personas inescrupulosas que acceden al sistema o mediante Internet, estos puede incidentes pueden evitarse de tal manera que en las estaciones de trabajo se instalan códigos para que así tengan acceso solo personal autorizado, en cuanto a Internet hay muchos software en el mercado mejor conocidos como Muros de fuego, que sirve para detener a los intrusos.
Caídas Continuas de la Red:
La caída continua en una Red se debe en la mayoría de los casos a una mala conexión Servidor > Concentrador o la conexión existente con el proveedor de Internet.
En el procesamiento de la información es muy lento:
Cuando el procesamiento de información de una Red es muy lento tenemos que tomar en cuenta el tipo de Equipos que elegimos, (Servidor, Cableado, Concentrador, Estaciones de Trabajo y otros, ya que si tomamos una decisión errónea perderemos tanto tiempo como dinero.
No hay comentarios:
Publicar un comentario