viernes, 12 de abril de 2013

UNIDAD II: LAS APLICACIONES TRADICIONALES DE INTERNET


 2.1    EL DISEÑO  DE SISTEMAS  CLIENTE/SERVIDOR


El concepto de cliente/servidor proporciona una forma eficiente de utilizar todos estos recursos de máquina de tal forma que la seguridad y fiabilidad que proporcionan los entornos mainframe se traspasa a la red de área local. A esto hay que añadir la ventaja de la potencia y simplicidad de los ordenadores personales. 

La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de información en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. 

Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que responde a las solicitudes. En este modelo las aplicaciones se dividen de forma que el servidor contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece sólo lo particular de cada usuario. Los clientes realizan generalmente funciones como: Manejo de la interfaz de usuario. Captura y validación de los datos de entrada. Generación de consultas e informes sobre las bases de datos. 

Por su parte los servidores realizan, entre otras, las siguientes funciones: Gestión de periféricos compartidos. Control de accesos concurrentes a bases de datos compartidas. Enlaces de comunicaciones con otras redes de área local o extensa. 
Siempre que un cliente requiere un servicio lo solicita al servidor correspondiente y éste le responde proporcionándolo. Normalmente, pero no necesariamente, el cliente y el servidor están ubicados en distintos procesadores. 

Los clientes se suelen situar en ordenadores personales y/o estaciones de trabajo y los servidores en procesadores departamentales o de grupo. 

Entre las principales características de la arquitectura cliente/servidor se pueden destacar las siguientes: 

       El servidor presenta a todos sus clientes una interfaz única y bien definida. 
       El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa. 
       El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo. 
       Los cambios en el servidor implican pocos o ningún cambio en el cliente.



2.2    DEPENDENCIA  ENTE EL SISTEMA  UNIX  Y LAS APLICACIONES DE INTERNET




UNIX: Se trata de un sistema operativo de los más utilizados y con más futuro debido a que son muchos organismos oficiales y particulares los que defienden su utilización, así como muchas firmas de fabricación y comercialización de computadoras que lo incorporan en sus productos. Podemos citar el ejemplo de la Comunidad Económica Europea, que impone el sistema operativo UNIX en todas las aplicaciones que se desarrollan bajo sus auspicios.
Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina. Esta formado por una serie de elementos que pueden representarse en forma de capas concéntricas donde, en primer lugar alrededor del hardware, aislando a este de los usuarios, además de adaptar el resto del sistema operativo a la maquina debido a la portabilidad que existe en el mismo.
El sistema operativo UNIX como ya dije es un sistema operativo de tiempo compartido y por lo tanto, multiusuario, en el que existe la portabilidad para la implementación de distintas computadoras.
UNICS: En las décadas de 1940 y 1950 todas las computadoras eran personales, al menos en el sentido de que el modo de usar una computadora era reservar una hora y apoderarse de toda la maquina en ese tiempo. Esas maquinas eran enormes y solo una persona podía usarla en un momento dado.
ESTANDAR UNIX: Es un sistema de intercambio de segmentos de un proceso entre memoria principal y memoria secundaria, llamado swapping lo que significa que se debe mover la imagen de un proceso al disco si éste excede la capacidad de la memoria principal, y copiar el proceso completo a memoria secundaria. Es decir, durante su ejecución, los procesos son cambiados de y hacia memoria secundaria conforme se requiera.
UNIX PD-11, BERKELEY: Las primeras distribuciones de Unix de los laboratorios Bell en los años 70 incluían el código fuente del sistema operativo, permitiendo a los desarrolladores de las universidades modificar y extender Unix. El primer sistema Unix en Berkeley fue el PDP-11, que fue instalado en 1974, y fue utilizado desde entonces por el departamento de ciencia computacional para sus investigaciones.
Otras universidades empezaron a interesarse en el software de Berkeley, y por ello en 1977 Bill Joy, entonces un estudiante de grado en Berkeley, construyó y envió cintas del primer Berkeley Software Distribución (BSD).
SHEL DE UNIX: También llamado Núcleo, es un programa escrito casi en su totalidad en lenguaje C, con excepción de una parte del manejo de interrupciones, expresada en el lenguaje ensamblador del procesador en el que opera. Proporciona una interfaz entre el núcleo y el usuario, el shell controla recursos como los periféricos (pantalla, impresora, etc.), además recursos del computador como el procesador, tarjetas (sonido, vídeo, etc.).
También controla las utilidades (programas de aplicación) que son los programas utilizados por los usuarios Word, Excel, juegos, etc., además controla la forma en la cual se almacena y se organiza la información (archivos).
CARACTERISTICAS UNIX:
                     Es un sistema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.
                     Está escrito en un lenguaje de alto nivel: C.
                     Dispone de un lenguaje de control programable llamado SHELL
                     Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software.
                     Emplea manejo dinámico de memoria por intercambio o paginación.
                     Tiene capacidad de interconexión de procesos.
                     Permite comunicación entre procesos.
                     Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos.
                     Tiene facilidad para re direccionamiento de Entradas/Salidas.
                     Garantiza un alto grado de portabilidad.
SISTEMA DE ARCHIVO UNIX: la estructura básica del sistema de archivos es jerárquica, lo que significa que los archivos están almacenados en varios niveles. Se puede tener acceso a cualquier archivo mediante su trayectoria, que especifica su posición absoluta en la jerarquía, y los usuarios pueden cambiar su directorio actual a la posición deseada. Existe también un mecanismo de protección para evitar accesos no autorizados.

Los directorios contienen información para cada archivo, que consiste en su nombre y en un número que el Kernel utiliza para manejar la estructura interna del sistema de archivos, conocido como el nodo-i. Hay un nodo-i para cada archivo, que contiene información de su directorio en el disco, su longitud, los modos y las fechas de acceso, el autor, etc. Existe, además, una tabla de descriptores de archivo, que es una estructura de datos residente en el disco magnético, a la que se tiene acceso mediante el sistema mencionado de E/S por bloques.
ADMINISTRACION DE PROCESOS Y SUB PROCESOS UNIX: Si congelamos el estado del procesador y del proceso que esta en ejecución en un determinado momento, obtendríamos lo que se conoce como imagen estática del programa. En caso de producirse una interrupción o cambio en el proceso, se almacena la imagen del que esta en ejecución en ese mismo instante.
Cada proceso se reconoce dentro del sistema por un numero que lo identifica unívocamente y que se conoce como identificador del proceso (PID).
Todos los procesos excepto el proceso 0, son creados por otro proceso, es decir, el sistema de creación y gestión de procesos en el sistema operativo UNIX es jerárquico.
ADMINISTRACION DE MEMORIA UNIX: La gestión de memoria en el sistema operativo UNIX se basa en el intercambio (swapping) y paginación. La paginación de la memoria se lleva a cabo si el hardware de la computadora la soporta. La política de carga y descarga de un proceso en la memoria depende del tiempo que lleve en la misma, de su actividad y del tamaño. Dependiendo de la computadora en la que se ejecute, UNIX utiliza dos técnicas de manejo de memoria: swapping y memoria virtual.
ADMINISTRACION DE SISTEMA UNIX: En computadoras que funcionan bajo el sistema operativo UNIX, existe un usuario que se distingue de los demás por ser el encargado de realizar la administración del sistema. Las funciones propias del administrador del sistema son:
                     Actualización y mantenimiento del sistema:
                     Mantenimiento del sistema de archivos.
                     Determinación de altas y bajas de archivos.
                     Control de periféricos.
                     Realización periódica de copias de seguridad (Backups)
                     Suministros de soporte técnico al resto de los usuarios.
                     Gestión de los recursos de la computadora Etc.
En el sistema operativo UNIX existe un directorio de uso exclusivo del administrador del sistema donde se encuentran una serie de comandos para la realización de dichas funciones, que no pueden ser utilizadas por el resto de los usuarios.
CALENDARIZACIÓN EN UNIX: Unix siempre ha sido un sistema multiprogramado, su algoritmo de calendarización se desarrollo desde un principio de modo que respondiera bien a procesos interactivos. El algoritmo tiene 2 niveles, el nivel bajo escoge entre los procesos que están en la memoria y listo para ejecutarse, el proceso que se ejecutara a continuación. El algoritmo de nivel mas alto traslada procesos entre la memoria y el disco para que todos tengan oportunidad de estar en la memoria y ejecutarse
LINUX: Linux fue creado originalmente por Linus Torvald en la Universidad de Helsinki en Finlandia, siendo él estudiante de informática. Pero ha continuado su desarrollado con la ayuda de muchos otros programadores a través de Internet.
Linux originalmente inicio el desarrollo del núcleo como su proyecto favorito, inspirado por su interés en Minix, un pequeño sistema Unix desarrollado por Andy Tannenbaum. Él se propuso a crear lo que en sus propias palabras seria un “mejor Minix que el Minix”.
El 5 de octubre de 1991, Linux anuncio su primera versión oficial de Linux, versión 0.02. Desde entonces, muchos programadores han respondido a su llamada, y han ayudado a construir Linux como el sistema operativo completamente funcional que es hoy.
SISTEMA MULTITAREA: En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecución de cada aplicación.
SISTEMA MULTIUSUARIO: Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea).
SHELLS PROGRAMABLES: Un shell conecta las ordenes de un usuario con el Kernel de Linux (el núcleo del sistema), y al ser programables se puede modificar para adaptarlo a tus necesidades. Por ejemplo, es muy útil para realizar procesos en segundo plano.
INDEPENDENCIA DE DISPOSITIVOS: Linux admite cualquier tipo de dispositivo (módems, impresoras) gracias a que cada una vez instalado uno nuevo, se añade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos.
COMUNICACIONES: Linux es el sistema más flexible para poder conectarse a cualquier ordenador del mundo. Internet se creó y desarrollo dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prácticamente idénticos. Con linux podrá montar un servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas.
APAGADO DE SISTEMA EN LINUX: Un sistema Linux nunca se puede apagar por las buenas. Antes le hemos de advertir al S.O. de que vamos a apagarlo o reiniciarlo. La razón de que esto deba ser así es para que al sistema le dé tiempo de escribir en disco todos los datos que tuviera pendientes de escribir, salir ordenadamente de todas las aplicaciones que tuviera arrancadas y desmontar todas las unidades que tuviera montadas
CALENDARIZACIÓN EN LINUX: La calendarización es una de las pocas áreas en la que linux en la que linux emplea un algoritmo distinto al de unix. Los subprocesos de linux son subprocesos del kernel, así la calendarización se basa en subprocesos no en procesos.
Linux describe 3 clases de subprocesos para fines de calendarización:
                     Fifo en tiempo real
                     Turno circular en tiempo real
                     Tiempo compartido


2.3    PROCESOS CONCURRENTES   EN UN ENTORNO  DE RED







En UNIX, la unidad de concurrencia es el proceso y para especificar la ejecución concurrente se utilizan las sentencias \fork” y \join”, cuyo formato se verá más adelante.
Procesos
Un proceso, como ya se ha dicho anteriormente, es la ejecución de un programa secuencial. En UNIX, un proceso consiste en un conjunto de bytes que un procesador interpreta como código, datos o pila. Todas las operaciones que están relacionadas con los procesos están controladas por una porción del sistema operativo que se llama el núcleo.
El núcleo planifica la ejecución de los procesos de forma que parece que hay más de un proceso que se ejecuta al mismo tiempo, cada proceso puede ser la ejecución de un programa diferente o diferentes ejecuciones del mismo programa. Cada proceso ejecuta las instrucciones de su propio código y no puede acceder a las de otros procesos, aunque sean instancias del mismo programa; para comunicarse, los procesos tienen que utilizar llamadas al sistema.
Cada proceso se ejecuta dentro de su contexto. Cuando el núcleo decide que debe ejecutar otro proceso, realiza un cambio de contexto, de forma que el nuevo proceso se ejecutara dentro de su propio contexto. Cuando se realiza un cambio de contexto, el núcleo guarda toda la información necesaria para volver más tarde al estado del primer proceso y continuar a su ejecución.
Como ya se ha explicado en el capitulo anterior, durante la vida de un proceso, este pasa por diversos estados. La siguiente lista enumera los posibles estados de un proceso en el sistema UNIX:
1. El proceso se ejecuta en modo usuario.
2. El proceso se ejecuta en modo núcleo.
3. El proceso no se está ejecutando pero está listo para ejecutarse.
El proceso está dormido en memoria principal.
5. El proceso está listo para ser ejecutado, pero el proceso 0 debe llevarlo a memoria principal antes que el núcleo pueda preparar su ejecución.
Para ejecutar una llamada \fork”, el núcleo realiza la secuencia de operaciones que  se especifica a continuación:
1. Asigna una posición de la tabla de procesos al nuevo proceso.
2. Asigna un identificador (PID) al proceso hijo, este PID es único para cada proceso.
3. Hace una copia \lógica” del contexto del proceso padre para el proceso hijo.
4. Incrementa el contador de ¯cheros y la tabla de descriptores para los ficheros asociados al proceso.
5. Devuelve el número de PID del proceso hijo al padre y devuelve 0 al proceso hijo.
Terminación de procesos
El UNIX, todos los procesos para terminar ejecutan la llamada del sistema ext. Un proceso que ejecuta esta llamada pasa al estado zombie liberando todos sus recursos y solo mantiene su posición en la tabla de procesos. La sintaxis de la llamada \exit” es: exit (estado); El valor de \estado” se devuelve al proceso padre para que este pueda examinarlo ya que su valor puede servir al padre para saber cómo termino el hijo, el valor de \estado” indica de que manera termino el proceso, por convenio se considera que si un proceso termina correctamente el valor de \estado” es 0 y si su valor es distinto de 0 entonces el proceso termino de forma anómala. Un proceso puede realizar la llamada \exit” explícitamente o hacerlo implícitamente del programa. Por otra parte, el nucleo puede ejecutar internamente un \exit” en un proceso como respuesta a una señal de interrupción que no ha sido captada; en este caso, el valor de \estado” es el numero de la señal que causa la interrupción.
Sincronización de procesos
Un proceso puede sincronizar su ejecución con la terminación de un proceso hijo a través de la llamada del sistema wait. La sintaxis de la llamada es: pid = wait (dir_est); El valor de \pid” es el PID de un hijo \zombie”, de esta forma el proceso padre sabe cuál de sus hijos ha muerto y \dir est” contiene una dirección en la memoria del Usuario donde está almacenado el código \estado” de la llamada \exit” del hijo, para que el padre pueda saber la causa de la muerte de su hijo. Cuando se ejecuta un \wait”, el nucleo busca un hijo \zombie” del proceso; si no hay hijos, devuelve un error; si por el contrario encuentra un hijo \zombie”, saca su PID y el parámetro de la llamada \exit” del hijo y los devuelve como resultado de la llamada. Si elproceso que ejecuta la llamada \wait” tiene hijos pero ninguno de estos es \zombie”, el proceso queda dormido hasta que le llega una señal indicando que ha muerto un hijo.


2.4    LA MODELACION DE SISTEMAS DE LOS SISTEMAS  DE COMPUTO EN INTERNET




El cambio desde una visión funcional a una visión de proceso plantea nuevos requerimientos respecto a la forma en que se especifican y diseñan Sistemas. Ya no será suficiente con descomponer funcionalmente la lógica de una aplicación, manteniéndola separada de los datos sobre los que actúa. Lo que se necesita es un enfoque en la creación de modelos que pueda ser utilizado tanto para la conversión desde el soporte de una función comercial a soportar un flujo de trabajo o workflow a lo largo de un proceso comercial. Los sistemas workflow convencionales, que intentan orquestar el trabajo entre aplicaciones monolíticas y tareas manuales, no podrán en última instancia ofrecer la flexibilidad que requieren las iniciativas BPR. En contraste, los Sistemas creados utilizando objetos están fundados inherentemente en un modelo workflow explícito que anima a los diseñadores de Sistemas a distribuir el trabajo entre múltiples objetos que actúan en cooperación.
La tecnología de orientación a objetos ofrece técnicas de modelización que permiten definir objetos y relacionarlos de manera que puedan desarrollarse tanto procesos comerciales como Sistemas de información. Como existe un lenguaje uniforme para expresar procesos comerciales y procesos de información es posible establecer una relación entre ambos.
Así, los procesos comerciales pueden actuar interactivamente con objetos software, y el modelo de workflow puede establecerse explícitamente de manera que muestre los cambios entre tareas manuales y automáticas.
La utilización de técnicas de modelización para describir empresas y actividades comerciales no es nueva, y ya se han utilizado técnicas de modelización de datos tradicionales para crear modelos de empresa. Sin embargo, a diferencia de los enfoques tradicionales, las técnicas orientadas a objetos no obligan a quienes crean los modelos de procesos comerciales a dividir sus modelos artificialmente en datos y procesos, sino que los objetos contienen todos los aspectos de los datos y de su comportamiento, y pueden utilizarse para representar entidades comerciales estáticas, como departamentos, tareas comerciales como aprobaciones de créditos, y subprocesos como tramitación de pedidos. Una consecuencia importante de esta aproximación de modelado uniforme es que, con el tiempo, el ajuste entre el funcionamiento comercial y los Sistemas de Información se mejorará. Es este aspecto de reconfigurabilidad el que está posicionando a los proyectos BPR como una ventaja comercial progresiva, en lugar de como los puntos de revolución aislados que eran percibidos hasta ahora.



2.5    LAS APLICACIONES  TRADICIONALES DE INTERNET: CORREO ELECTRONICO , TRANSFERENCIA DE ARCHIVOS, SERVICIOS DE LOS SISTEMAS OPERATIVOS.




Web application, webapp). Una aplicación web es cualquier aplicación que es accedida vía web por una red como internet o una intranet.

En general, el término también se utiliza para designar aquellos programas informáticos que son ejecutados en el entorno del 
navegador (por ejemplo, un applet de Java) o codificado con algún lenguaje soportado por el navegador (como JavaScript, combinado con HTML); confiándose en el navegador web para que reproduzca (renderice) la aplicación.


Características de las aplicaciones web

* El usuario puede acceder fácilmente a estas aplicaciones empleando un 
navegador web (cliente) o similar.

* Si es por internet, el usuario puede entrar desde cualquier lugar del mundo donde tenga un 
acceso a internet.

* Pueden existir miles de usuarios pero una única aplicación instalada en un 
servidor, por lo tanto se puede actualizar y mantener una única aplicación y todos sus usuarios verán los resultados inmediatamente.
* Emplean tecnologías como JavaJavaFXJavaScriptDHTMLFlashAjaxque dan gran potencia a la interfaz de usuario.
Interfaz gráfica de las aplicaciones web
La 
interfaz gráfica de una aplicación web puede ser sumamente completa y funcional, gracias a las variadas tecnologías web que existen: JavaJavaScriptDHTMLFlashSilverlightAjax, entre otras.

Prácticamente no hay limitaciones, las aplicaciones web pueden hacer casi todo lo que está disponible para aplicaciones tradicionales: acceder al mouse, al teclado, ejecutar audio o video, mostrar animaciones, soporte para arrastrar y soltar, y otros tipos de tecnologías de interacción usuario-aplicación.


CORREO ELECTRONICO
Correo electrónico (correo-e, conocido también como e-mail), es un servicio de red que permite a los usuarios enviar y recibir mensajes y archivos rápidamente (también denominados mensajes electrónicos o cartas electrónicas) mediante sistemas de comunicación electrónicos. Principalmente se usa este nombre para denominar al sistema que provee este servicio en Internet, mediante el protocolo SMTP, aunque por extensión también puede verse aplicado a sistemas análogos que usen otras tecnologías. Por medio de mensajes de correo electrónico se puede enviar, no solamente texto, sino todo tipo de documentos digitales.

TRANSFERENCIAS DE ARCHIVOS
Protocolo para la transferencia de archivos o de protocolo de transferencia de archivos es una convención o una norma que controla o permite la transferencia de archivos entre dos computadoras.
Hay 2 tipos de transferencias de archivos:
                     Transferencia de archivos “Pull-based”: El receptor inicia una solicitud de transmisión de ficheros.
                     Transferencia de archivos “Push-based”:El emisor inicia una solicitud de transmisión de ficheros.
La transferencia de archivos puede tener lugar sobre una variedad de niveles:
                     Transferencias de archivos transparentes a través sistemas de archivos de red.
                     Transferencia de archivos explícitos desde servicios de transferencia de archivos dedicados como FTP o HTTP.
                     Transferencia de archivos distribuidas entre redes punto a punto.
                     Transferencia de archivos en los sistemas de mensajería instantánea.
                     Transferencia de archivos entre ordenadores y dispositivos periféricos.
                     Transferencia de archivos sobre vínculos directos módem o serie (null modem), como XMODEM, YMODEM y ZMODEM.

SERVICIO DE LOS SITEMAS OPERATIVOS
                     Registro de sucesos   Este servicio permite ver en el Visor de sucesos los mensajes de registros emitidos por los servicios de Exchange y otros programas y componentes de Windows. Este servicio no puede detenerse.
                     Proveedor de compatibilidad con seguridad LM de Windows NT  Este servicio proporciona seguridad a los programas que utilizan llamadas a procedimiento remoto (RPC) y transportes distintos a canalizaciones con nombre para iniciar sesión en la red mediante el protocolo de autenticación NTLM.
                     Llamada a procedimiento remoto (RPC)   Este servicio permite al asignador de puntos finales RPC admitir conexiones RPC con el servidor. Este servicio sirve también como Modelo de objetos componentes (COM).


RPC y las llamadas a procedimiento remoto ligeras (LRPC) son mecanismos de comunicación entre procesos importantes. Las LRPC son versiones locales de las RPC. Las LRPC se utilizan entre el almacén de Exchange y los componentes de servidor que dependen de MAPI y sus API relacionadas para las comunicaciones, como por ejemplo conectores de mensajería para sistemas de mensajería que no son de Exchange. Las RPC normales, en cambio, se utilizan cuando los clientes deben comunicarse con los servicios de servidor a través de la red
Es importante comprender que las RPC son un mecanismo de comunicación de capa de aplicación, lo que significa que las RPC utilizan otros mecanismos de comunicación de red, como NetBIOS, canalizaciones con nombre o Windows Sockets, para establecer la ruta de comunicación. Para crear una conexión, es necesario el asignador de puntos finales RPC, ya que el cliente debe determinar en primer lugar el punto final que se tiene que usar. De manera predeterminada, los servicios de servidor RPC utilizan puntos finales de conexión dinámica. En una red TCP/IP, el cliente se conecta al asignador de puntos finales RPC a través del puerto TCP número 135, consulta el puerto TCP actual de un servicio concreto (por ejemplo, el puerto de Interfaz de proveedor de servicios con nombre (NSPI) de Active Directory), obtiene este puerto TCP del asignador de puntos finales, y finalmente utiliza el puerto para establecer la conexión RPC con el servidor RPC real. La figura siguiente ilustra la función del asignador de puntos finales RPC.



No hay comentarios:

Publicar un comentario