Software Colaborativo

21
Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor SOFTWARE COLABORATIVO O GROUPWARE Software colaborativo o groupware se refiere al conjunto de programas informáticos que integran el trabajo en un sólo proyecto, con muchos usuarios concurrentes, que se encuentran en diversas estaciones de trabajo, conectadas a través de una red (internet o intranet). DEFINICIÓN En su función más básica, las organizaciones establecen equipos tanto para responder a problemas que hayan ocurrido como para prevenir que en primer lugar ocurran. Carstensen and Schmidt(1993) exponen cuatro actividades generales que realizan los equipos: recomendar, hacer, inventar o poner en movimiento. El término groupware hace referencia a los métodos y herramientas de software que facilitan el trabajo en grupo, mejorando su rendimiento, y contribuyen a que personas que están localizadas en puntos geográficos diferentes puedan trabajar a la vez, ya sea directamente o de forma anónima, a través de las redes. Muchos expertos coinciden en que los equipos son la unidad primaria de rendimiento en cualquier organización. Hoy en día existe un nuevo tipo de equipo "virtual", equipo formado por personas que se comunican electrónicamente. La colaboración se está convirtiendo en un elemento cada vez más importante en la economía de hoy, el compartir información y conocimiento son componentes vitales de una verdadera relación de colaboración. El groupware busca apoyar el trabajo que se realiza por grupos y equipos, teniendo en cuenta los aspectos de la colaboración que son necesarios para cosechar el máximo de ventajas. Es una herramienta tecnológica muy útil en nuestros tiempos ya que podemos integrar nuestros conocimientos teóricos con la tecnología. Cada vez más los grupos y las organizaciones tienen que adaptar sus procesos a los cambios rápidos que traen las nuevas tecnologías, las nuevas demandas del cliente, o los nuevos competidores. Como alternativa, muchas organizaciones utilizan sistemas de ayuda a las comunicaciones o Groupware para apoyar sus procesos rápidamente cambiantes y no rutinarios. Pero estos sistemas requieren típicamente que los usuarios realicen mucho trabajo por ellos mismos para no perder de vista y entender los procesos en curso. Algunos autores definen groupware de manera poco precisa, como cualquier aplicación que trabaje en red y que permita que los individuos compartan datos puede caer en la categoría del groupware. Otros autores como Robert Johansen define groupware como "herramientas computacionales especializadas diseñadas para el uso de grupos de trabajo colaborativos." HISTORIA En su forma moderna, el concepto ha sido propuesto por el programa informático de Lotus con la aplicación popular Lotus Notes relacionado con un servidor Lotus Domino (Lotus Domino Server); algunas revisiones históricas argumentan que el concepto fue anticipado antes por sistemas monolíticos como el NLS. El programa informático que utiliza Wikipedia es un ejemplo de un programa informático 1

description

sdsdsdsd

Transcript of Software Colaborativo

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

SOFTWARE COLABORATIVO   O   GROUPWARE

Software colaborativo o groupware se refiere al conjunto de programas informáticos que integran el trabajo en un sólo proyecto, con muchos usuarios concurrentes, que se encuentran en diversas estaciones de trabajo, conectadas a través de una red (internet o intranet).

DEFINICIÓN

En su función más básica, las organizaciones establecen equipos tanto para responder a problemas que hayan ocurrido como para prevenir que en primer lugar ocurran. Carstensen and Schmidt(1993) exponen cuatro actividades generales que realizan los equipos: recomendar, hacer, inventar o poner en movimiento.

El término groupware hace referencia a los métodos y herramientas de software que facilitan el trabajo en grupo, mejorando su rendimiento, y contribuyen a que personas que están localizadas en puntos geográficos diferentes puedan trabajar a la vez, ya sea directamente o de forma anónima, a través de las redes. Muchos expertos coinciden en que los equipos son la unidad primaria de rendimiento en cualquier organización. Hoy en día existe un nuevo tipo de equipo "virtual", equipo formado por personas que se comunican electrónicamente.

La colaboración se está convirtiendo en un elemento cada vez más importante en la economía de hoy, el compartir información y conocimiento son componentes vitales de una verdadera relación de colaboración. El groupware busca apoyar el trabajo que se realiza por grupos y equipos, teniendo en cuenta los aspectos de la colaboración que son necesarios para cosechar el máximo de ventajas. Es una herramienta tecnológica muy útil en nuestros tiempos ya que podemos integrar nuestros conocimientos teóricos con la tecnología. Cada vez más los grupos y las organizaciones tienen que adaptar sus procesos a los cambios rápidos que traen las nuevas tecnologías, las nuevas demandas del cliente, o los nuevos competidores. Como alternativa, muchas organizaciones utilizan sistemas de ayuda a las comunicaciones o Groupware para apoyar sus procesos rápidamente cambiantes y no rutinarios. Pero estos sistemas requieren típicamente que los usuarios realicen mucho trabajo por ellos mismos para no perder de vista y entender los procesos en curso. Algunos autores definen groupware de manera poco precisa, como cualquier aplicación que trabaje en red y que permita que los individuos compartan datos puede caer en la categoría del groupware. Otros autores como Robert Johansen define groupware como "herramientas computacionales especializadas diseñadas para el uso de grupos de trabajo colaborativos."

HISTORIA

En su forma moderna, el concepto ha sido propuesto por el programa informático de Lotus con la aplicación popular Lotus Notes relacionado con un servidor Lotus Domino (Lotus Domino Server); algunas revisiones históricas argumentan que el concepto fue anticipado antes por sistemas monolíticos como el NLS. El programa informático que utiliza Wikipedia es un ejemplo de un programa informático colaborativo, que además es software libre, por lo que ha sido diseñado sin las limitaciones de los programas informáticos propietarios en cuanto a tratos, y sin las limitaciones de jerarquización social.

Tipos de colaboración

El software colaborativo se puede dividir en tres categorías : herramientas de colaboración-comunicación, herramientas de conferencia y herramientas de gestión colaborativa o en grupo.

Herramientas de comunicación electrónica que envían mensajes, archivos, datos o documentos entre personas y facilitan la compartición de información (colaboración asíncrona), como por ejemplo:

Correo electrónico.

Correo de voz.

Publicación en web.

1

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

Herramientas de conferencia que facilitan la compartición de información, de forma interactiva (colaboración síncrona), como por ejemplo:

Conferencia de datos - PC en red que comparten un espacio de presentación compartido que cada usuario puede modificar.

Conferencias de voz - teléfonos que permiten interactuar a los participantes.

Conferencias de video (o audio conferencia) - PC en red que comparten señales de audio o video.

Salas de chat o mensajería instantánea - una plataforma de discusión que facilita el intercambio inmediato de mensajes.

Sistemas para facilitar reuniones - un sistema de conferencias integrado en una sala. Estas salas suelen disponer de un avanzado sistema de sonido y presentación que permite una mejor interacción entre participantes en una misma sala o entre salas separadas. Ejemplos de ello son los sistemas de soporte a decisiones.

Herramientas de gestión colaborativa que facilitan las actividades del grupo, como por ejemplo:

Calendarios electrónicos - para acordar fechas de eventos automáticamente y enviar notificaciones y recordatorios a los participantes.

Sistemas de gestión de proyectos - para organizar y hacer seguimiento de las acciones en un proyecto hasta que se finaliza.

Sistemas de control de flujo de actividad - para gestionar tareas y documentos en un proceso organizado de forma estructurada (burocracia).

Sistemas de gestión del conocimiento - para recoger, organizar, gestionar y compartir varios tipos de información.

Sistemas de soporte a redes sociales - para organizar las relaciones de colectivos.

BENEFICIOS

Groupware se puede utilizar para comunicarse, para cooperar y para coordinar. Las actividades de comunicación y coordinación de los miembros del equipo son facilitadas por las tecnologías que tienden un puente sobre las diferencias de tiempo, espacio, y el nivel de ayuda del grupo.

Algunos beneficios que se buscan al implementar groupware para el trabajo en proyectos son: el groupware estimula la cooperación dentro de una organización y ayuda a las personas a comunicarse y colaborar en proyectos comunes; el groupware coordina gente y procesos; el groupware ayuda a definir el flujo de documentos y después definen el trabajo que se debe hacer para terminar un proyecto; el groupware proporciona los usuarios una manera única para compartir información, construyéndola en documentos estructurados. El documento se convierte entonces en el lugar central en donde se almacena la información compartida.

Idealmente, el groupware debe poder ayudar a cada persona en un proyecto de colaboración a realizar su trabajo en específico de una manera más eficiente. La carencia de una "estructuración explícita de la organización " es al mismo tiempo tanto una desventaja como una ventaja. Es desventajosa porque el groupware tradicional no tiene ningún “gancho” para integrar la información de los procesos de negocio, lo cual es importante para integrar los recursos y los procesos. La ventaja de la carencia de la información explícita de la estructura de organización es por un lado, el hecho de que tales sistemas se pueden utilizar en todos los ajustes de organización sin muchos esfuerzos anteriores de configuración y en segundo lugar éste conduce a incrementar la flexibilidad del personal, como lo demuestra la proliferación del uso de los sistemas de correo electrónico en trabajo en equipo.

2

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

TRABAJAR DESDE CASA

Para algunas personas, que trabajan solos en casa es una opción excelente. Otros encuentran la idea un poco solitaria y en cierto modo desconcertante. Sin embargo se sienten acerca de los equipos virtuales, hay más y más de ellos, y ofrecen algunos beneficios definidos. Revisar casos de estudio de Morgan (2012).

Por un lado, no hay necesidad de una oficina o espacio de estacionamiento. Por otro lado, más gente puede ser incluida en el grupo de trabajo. La contaminación del aire y la congestión se reducen cuando la gente no se desplaza. Lo Virtual ofrece trabajo en equipo más flexibilidad para los trabajadores y las organizaciones.

APLICACIONES

Brainstorming electrónico

Brainstorming o lluvia de ideas, tiene como finalidad la de potenciar la creatividad intentando eliminar posibles limitaciones cognitivas y sociales. El brainstorming electrónico es una variante del brainstorming tradicional (cara a cara). El procedimiento del brainstorming electrónico consiste en tener al grupo conectado por tecnologías telemáticas, teniendo un facilitador que coordine la interacción. El brainstorming electrónico destaca frente al tradicional (ya que éste en ocasiones perjudica el rendimiento del grupo), en que no se produce el bloqueo en la producción de ideas, ya que los participantes pueden intervenir en el momento en que lo crean oportuno sin tener que guardar turno. Tampoco se produce la interferencia cognitiva, puesto que las ideas van quedando almacenadas y no se interrumpe la línea de pensamiento. Pero la velocidad de expresión es más reducida al tener que comunicarse por escrito en vez de oralmente. Las aportaciones que hagan los miembros pueden ser o no anónimas (produciéndose en el anónimo una reducción en la aprensión a la evaluación, aunque esto puede elevar la holgazanería social) y a tiempo real o no.

Grupos de discusión online

Debido al desarrollo de la tecnología de las comunicaciones cada vez se emplea de forma más habitual los grupos de discusión on-line, ya que facilita el reunir expertos que se encuentren a grandes distancias, además de contar con ventajas como el ahorro y la rapidez. Para el desarrollo de este tipo de discusiones hay que seguir una serie de fases como la selección del grupo de discusión y la elaboración del programa de chat que permita una fácil comunicación. El procedimiento a seguir es el mismo que en una discusión en vivo: 1. Se concierta el momento para realizar la comunicación y se cuenta con un moderador que vaya dando las indicaciones pertinentes. 2. El uso de este método cuenta con grandes ventajas como la reducción de presupuesto destinado al proyecto, permite utilizar muestras geográficas más amplias, o el hecho de poder almacenar la información. 3. Pese a las similitudes, gran cantidad de autores consideran que este tipo de comunicación supone ya una forma nueva de comunicarse, cuyo objetivo es crear un medio rico que facilite la comunicación apoyándose en el empleo de las nuevas tecnologías.

Técnica delphi online

La técnica Delphi (cuyo nombre proviene del Oráculo de Delfos) es una metodología de investigación multidisciplinar que sirve para realizar pronósticos. El objetivo de esta técnica es el de conseguir un consenso basado en la discusión entre expertos mediante la realización de cuestionarios. Estos contestan un primer cuestionario y sus resultados sirven como retroalimentación para rellenar una serie de cuestionarios posteriores hasta que se llega a un consenso. Tras este proceso, el responsable del estudio elabora de forma estadística los resultados obtenidos.

Workflow

El término "Workflow", que se traduce literalmente como "flujo de trabajo", hace referencia a la gestión modelada y computarizada de todas las tareas que deben llevarse a cabo y de los distintos protagonistas involucrados en realizar elproceso de negocios (también llamado proceso operativo). También puede traducirse el término Workflow como gestión electrónica de procesos de negocios. Un proceso de negocios representa interacciones bajo la forma de un intercambio de información entre los distintos protagonistas,

3

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

por ejemplo: • Personas • Aplicaciones o servicios • Procesos de terceros En la práctica, un Workflow puede describir: • El circuito de validación. • Las tareas que deben realizarse entre los distintos participantes de un proceso. • Los plazos que deben respetarse. • Los modos de validación

SISTEMAS DISTRIBUIDOS

DEFINICIÓN:

“Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema cliente-servidor”.

CARACTERÍSTICAS:

Concurrencia.- Esta característica de los sistemas distribuidos permite que los recursos disponibles en la red puedan ser utilizados simultáneamente por los usuarios y/o agentes que interactúan en la red.

Carencia de reloj global.- Las coordinaciones para la transferencia de mensajes entre los diferentes componentes para la realización de una tarea, no tienen una temporización general, está más bien distribuida a los componentes.

Fallos independientes de los componentes.- Cada componente del sistema puede fallar independientemente, con lo cual los demás pueden continuar ejecutando sus acciones. Esto permite el logro de las tareas con mayor efectividad, pues el sistema en su conjunto continua trabajando.

EVOLUCIÓN:

Procesamiento central (Host).- Uno de los primeros modelos de ordenadores interconectados, llamados centralizados, donde todo el procesamiento de la organización se llevaba a cabo en una sola computadora, normalmente un Mainframe, y los usuarios empleaban sencillos ordenadores personales.

Los problemas de este modelo son:

Cuando la carga de procesamiento aumentaba se tenía que cambiar el hardware del Mainframe, lo cual es más costoso que añadir más computadores personales clientes o servidores que aumenten las capacidades.

El otro problema que surgió son las modernas interfases gráficas de usuario, las cuales podían conllevar a un gran aumento de tráfico en los medios de comunicación y por consiguiente podían colapsar.

Grupo de Servidores.- Otro modelo que entró a competir con el anterior, también un tanto centralizado, son un grupo de ordenadores actuando como servidores, normalmente de archivos o de impresión, poco inteligentes para un número de Minicomputadores que hacen el procesamiento conectados a una red de área local.

Los problemas de este modelo son:

Podría generarse una saturación de los medios de comunicación entre los servidores poco inteligentes y los minicomputadores, por ejemplo cuando se solicitan archivos grades por varios clientes a la vez, podían disminuir en gran medida la velocidad de transmisión de información.

La Computación Cliente Servidor.- Este modelo, que predomina en la actualidad, permite descentralizar el procesamiento y recursos, sobre todo, de cada uno de los servicios y de la visualización de la Interfaz

4

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

Gráfica de Usuario. Esto hace que ciertos servidores estén dedicados solo a una aplicación determinada y por lo tanto ejecutarla en forma eficiente.

OBJETOS DISTRIBUIDOS

DEFINICIÓN:

En los sistemas Cliente/Servidor, un objeto distribuido es aquel que está gestionado por un servidor y sus clientes invocan sus métodos utilizando un “método de invocación remota”. El cliente invoca el método mediante un mensaje al servidor que gestiona el objeto, se ejecuta el método del objeto en el servidor y el resultado se devuelve al cliente en otro mensaje.

TECNOLOGÍAS ORIENTADAS A LOS OBJETOS DISTRIBUIDOS:

Las tres tecnologías importantes y más usadas en este ámbito son:

1. RMI.- Remote Invocation Method.- Fue el primer fremework para crear sistemas distribuidos de Java. El sistema de Invocación Remota de Métodos (RMI) de Java permite, a un objeto que se está ejecutando en una Máquina Virtual Java (VM), llamar a métodos de otro objeto que está en otra VM diferente. Esta tecnología está asociada al lenguaje de programación Java, es decir, que permite la comunicación entre objetos creados en este lenguaje.

2. DCOM.- Distributed Component Object Model.- El Modelo de Objeto Componente Distribuido, esta incluido en los sistemas operativos de Microsoft. Es un juego de conceptos e interfaces de programa, en el cual los objetos de programa del cliente, pueden solicitar servicios de objetos de programa servidores en otros ordenadores dentro de una red. Esta tecnología esta asociada a la plataforma de productos Microsoft.

3. CORBA.- Common Object Request Broker Architecture.- Tecnología introducida por el Grupo de Administración de Objetos OMG, creada para establecer una plataforma para la gestión de objetos remotos independiente del lenguaje de programación.

BASE DE DATOS DISTRIBUIDA

DEFINICIÓN:

Es una colección de datos (base de datos) construida sobre una red y que pertenecen, lógicamente, a un solo sistema distribuido, la cual cumple las siguientes condiciones:

La información de la base de datos esta almacenada físicamente en diferentes sitios de la red.

En cada sitio de la red, la parte de la información, se constituye como una base de datos en sí misma.

Las bases de datos locales tienen sus propios usuarios locales, sus propios DBMS y programas para la administración de transacciones, y su propio administrador local de comunicación de datos.

Estas base de datos locales deben de tener una extensión, que gestione las funciones de sociedad necesarias; la combinación de estos componentes con los sistemas de administración de base de datos locales, es lo que se conoce como Sistema Administrador de Base de Datos Distribuidas.

Este gestor global permite que usuarios puedan acceder a los datos desde cualquier punto de la red, como si lo hicieran con los datos de su base de datos local, es decir, para el usuario, no debe existir diferencia en trabajar con datos locales o datos de otros sitios de la red.

En consecuencia, la base de datos distribuida, es como una unidad virtual, cuyas partes se almacenan físicamente en varias bases de datos “reales” distintas, ubicadas en diferentes sitios.

5

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

EJEMPLO DE BASE DE DATOS DISTRIBUIDA:

Considere un banco que tiene tres sucursales, en cada sucursal, un ordenador controla las terminales de la misma y el sistema de cuentas. Cada computador con su sistema de cuentas local en cada sucursal constituye un "sitio" de la BDD; las computadoras están conectadas por la red. Durante las operaciones normales, las aplicaciones en las terminales de la sucursal necesitan sólo acceder la base de datos de la misma. Como sólo acceden a la misma red local, se les llaman aplicaciones locales.

Desde el punto de vista tecnológico, aparentemente lo importante es la existencia de algunas transacciones que acceden a información en más de una sucursal. Estas transacciones son llamadas transacciones globales o transacciones distribuidas.

La existencia de transacciones globales será considerada como una característica que nos ayude a discriminar entre las BDD y un conjunto de base de datos locales.

Una típica transacción global sería una transferencia de fondos de una sucursal a otra. Esta aplicación requiere de actualizar datos en dos diferentes sucursales y asegurarse de la real actualización en ambos sitios o en ninguno. Asegurar el buen funcionamiento de aplicaciones globales es una tarea difícil.

VENTAJAS DE LAS BASE DE DATOS DISTRIBUIDAS

Descentralización.- En un sistema centralizado/distribuido, existe un administrador que controla toda la base de datos, por el contrario en un sistema distribuido existe un administrador global que lleva una política general y delega algunas funciones a administradores de cada localidad para que establezcan políticas locales y así un trabajo eficiente.

Economía: Existen dos aspectos a tener en cuenta.

o El primero son los costes de comunicación; si las bases de datos están muy dispersas y

las aplicaciones hacen amplio uso de los datos puede resultar más económico dividir la aplicación y realizarla localmente.

o El segundo aspecto es que cuesta menos crear un sistema de pequeños ordenadores

con la misma potencia que un único ordenador.

Mejora de rendimiento: Pues los datos serán almacenados y usados donde son generados, lo cual permitirá distribuir la complejidad del sistema en los diferentes sitios de la red, optimizando la labor.

Mejora de fiabilidad y disponibilidad: La falla de uno o varios lugares o el de un enlace de comunicación no implica la inoperatividad total del sistema, incluso si tenemos datos duplicados puede que exista una disponibilidad total de los servicios.

Crecimiento: Es más fácil acomodar el incremento del tamaño en un sistema distribuido, porque la expansión se lleva a cabo añadiendo poder de procesamiento y almacenamiento en la red, al añadir un nuevo nodo.

Flexibilidad: Permite acceso local y remoto de forma transparente.

Disponibilidad: Pueden estar los datos duplicados con lo que varias personas pueden acceder simultáneamente de forma eficiente. El inconveniente, el sistema administrador de base de datos debe preocuparse de la consistencia de los mismos.

Control de Concurrencia: El sistema administrador de base de datos local se encarga de manejar la concurrencia de manera eficiente.

INCONVENIENTES DE LAS BASE DE DATOS DISTRIBUIDAS

6

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

El rendimiento que es una ventaja podría verse contradicho, por la naturaleza de la carga de trabajo, pues un nodo puede verse abrumado, por las estrategias utilizadas de concurrencia y de fallos, y el acceso local a los datos. Se puede dar esta situación cuando la carga de trabajo requiere un gran número de actualizaciones concurrentes sobre datos duplicados y que deben estar distribuidos.

La confiabilidad de los sistemas distribuidos, esta entre dicha, puesto que, en este tipo de base de datos existen muchos factores a tomar en cuanta como: La confiabilidad de los ordenadores, de la red, del sistema de gestión de base de datos distribuida, de las transacciones y de las tazas de error de la carga de trabajo.

La mayor complejidad, juega en contra de este tipo de sistemas, pues muchas veces se traduce en altos gastos de construcción y mantenimiento. Esto se da por la gran cantidad de componentes Hardware, muchas cosas que aprender, y muchas aplicaciones susceptibles de fallar. Por ejemplo, el control de concurrencia y recuperación de fallos, requiere de personal muy especializado y por tal costoso.

El procesamiento de base de datos distribuida es difícil de controlar, pues estos procesos muchas veces se llevan a cabo en las áreas de trabajo de los usuarios, e incluso el acceso físico no es controlado, lo que genera una falta de seguridad de los datos.

TECNOLOGÍAS BÁSICAS DE LA WEB

7

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

Lenguajes del lado servidor o cliente

El navegador es una especie de aplicación capaz de interpretar las órdenes recibidas en forma de código HTML fundamentalmente y convertirlas en las páginas que son el resultado de dicha orden.

Cuando nosotros pinchamos sobre un enlace hipertexto, en realidad lo que pasa es que establecemos una petición de un archivo HTML residente en el servidor (un ordenador que se encuentra continuamente conectado a la red) el cual es enviado e interpretado por nuestro navegador (el cliente). 

Así pues, podemos hablar de lenguajes de lado servidor que son aquellos lenguajes que son reconocidos, ejecutados e interpretados por el propio servidor y que se envían al cliente en un formato comprensible para él. Por otro lado, los lenguajes de lado cliente (entre los cuales no sólo se encuentra el HTML sino también el Java y el JavaScript los cuales son simplemente incluidos en el código HTML) son aquellos que pueden ser directamente "digeridos" por el navegador y no necesitan un pretratamiento.

8

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

 

Cada uno de estos tipos tiene por supuesto sus ventajas y sus inconvenientes. Así, por ejemplo, un lenguaje de lado cliente es totalmente independiente del servidor, lo cual permite que la página pueda ser albergada en cualquier sitio sin necesidad de pagar más ya que, por regla general, los servidores que aceptan páginas con scripts de lado servidor son en su mayoría de pago o sus prestaciones son muy limitadas. Inversamente, un lenguaje de lado servidor es independiente del cliente por lo que es mucho menos rígido respecto al cambio de un navegador a otro o respecto a las versiones del mismo.

LENGUAJES DEL LADO CLIENTE

HTML

El lenguaje llamado HTML indica al navegador donde colocar cada texto, cada imagen o cada video y la forma que tendrán estos al ser colocados en la página.

Elel lenguaje consta de etiquetas que tienen esta forma <B> o <P>. Cada etiqueta significa una cosa, por ejemplo <B> significa que se escriba en negrita (bold) o <P> significa un párrafo, <A> es un enlace, etc. Casi todas las etiquetas tienen su correspondiente etiqueta de cierre, que indica que a partir de ese punto no debe de afectar la etiqueta. Por ejemplo </B> se utiliza para indicar que se deje de escribir en negrita. Así que el HTML no es más que una serie de etiquetas que se utilizan para definir la forma o estilo que queremos aplicar a nuestro documento. <B>Esto está en negrita</B>.

Esta página es un claro ejemplo de uso del HTML.

JAVASCRIPT

Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página web. Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Su uso se basa

9

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

fundamentalmente en la creación de efectos especiales en las páginas y la definición de interactividades con el usuario.

Las sentencias escritas en javascript se encapsulan entre las etiquetas <script> y </script>. por ejemplo, si en el código de una página Web incluimos la sentencia

<script> window.alert("Bienvenido a mi sitio web. Gracias...") </script>

Al abrir la página con el navegador se nos mostrará una ventana de bienvenida

APPLETS DE JAVA

Es otra manera de incluir código a ejecutar en los clientes que visualizan una página web. Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador ejecuta en el espacio de la página.

Los applets de Java están programados en Java y precompilados, es por ello que la manera de trabajar de éstos varía un poco con respecto a los lenguajes de script como Javascript. Los applets son más difíciles de programar que los scripts en Javascript y requerirán unos conocimientos básicos o medios del lenguaje Java.

La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, incluso independientes del sistema operativo del ordenador donde se ejecutan. Además, Java es más potente que Javascript, por lo que el número de aplicaciones de los applets podrá ser mayor.

Como desventajas en relación con Javascript cabe señalar que los applets son más lentos de procesar y que tienen espacio muy delimitado en la página donde se ejecutan, es decir, no se mezclan con todos los componentes de la página ni tienen acceso a ellos. Es por ello que con los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc. 

VISUAL BASIC SCRIPT

Es un lenguaje de programación de scripts del lado del cliente, pero sólo compatible con Internet Explorer. Es por ello que su utilización está desaconsejada a favor de Javascript. 

Está basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows. Tanto su sintaxis como la manera de trabajar están muy inspirados en él. Sin embargo, no todo lo que se puede hacer en Visual Basic lo podremos hacer en Visual Basic Script, pues este último es una versión reducida del primero. 

El modo de funcionamiento de Visual Basic Script para construir efectos especiales en páginas web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder también son los mismos: el navegador.

10

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

FLASH

Flash es una tecnología, y un programa, para crear efectos especiales en páginas web. Con Flash también conseguimos hacer páginas dinámicas del lado del cliente. Flash en realidad no es un lenguaje; Sin embargo, si tuviéramos que catalogarlo en algún sitio quedaría dentro del ámbito de las páginas dinámicas de cliente.

Para visualizar las "películas" Flash, nuestro navegador debe tener instalado un programita (plug-in) que le permita visualizarlas.

CSS

CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra, fondos, colores... Incluso podemos definir nuestros propios estilos en un archivo externo a nuestras páginas; así, si en algún momento queremos cambiar alguno de ellos, automáticamente se nos actualizarán todas las páginas vinculadas de nuestro sitio. 

CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada.

LENGUAJES DEL LADO SERVIDOR

CGI

Es el sistema más antiguo que existe para la programación de las páginas dinámicas de servidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que destaca la dificultad con la que se desarrollan los programas y la pesada carga que supone para el servidor que los ejecuta. 

Los CGI se escriben habitualmente en el lenguaje Perl, sin embargo, otros lenguajes como C, C++ o Visual Basic pueden ser también empleados para construirlos.

PERL

Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el código de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito. Además es extensible a partir de otros lenguajes, ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. También desde otros lenguajes podremos ejecutar código Perl.

ASP

ASP (Active Server Pages) es la tecnología desarrollada por Microsoft para la creación de páginas dinámicas del servidor. ASP se escribe en la misma página web, utilizando el lenguaje Visual Basic Script o Jscript (Javascript de Microsoft).

11

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

PHP

PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación.

JSP

JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con programación en Java.

Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de múltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual. 

LENGUAJES DEL LADO CLIENTE-SERVIDOR

DHTML

DHTML no es precisamente un lenguaje de programación. Más bien se trata de una nueva capacidad de la que disponen los navegadores modernos, por la cual se puede tener un mayor control sobre la página que antes. 

Cualquier página que responde a las actividades del usuario y realiza efectos y funcionalidades se puede englobar dentro del DHTML, pero en este caso nos referimos más a efectos en el navegador por los cuales se pueden mostrar y ocultar elementos de la página, se puede modificar su posición, dimensiones, color, etc. 

DHTML nos da más control sobre la página, gracias a que los navegadores modernos incluyen una nueva estructura para visualizar en páginas web denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc. 

Para realizar las acciones sobre la página, como modificar la apariencia de una capa, seguimos necesitando un lenguaje de programación del lado del cliente como Javascript o VBScript.

En la actualidad, DHTML también puede englobar la programación en el servidor.

Dentro del concepto de DHTML se engloban también las Hojas de Estilo en Cascada o CSS (Cascade Style Sheets), que veremos a continuación.

XML

XML es una tecnología en realidad muy sencilla que tiene a su alrededor otras tecnologías que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores.

XML, con todas las tecnologías relacionadas, representa una manera distinta de hacer las cosas, más avanzada, cuya principal novedad consiste en permitir compartir los datos con los que se trabaja a todos los niveles, por todas las aplicaciones y soportes.

12

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

Programación Distribuida

La programación distribuida es un paradigma de programación enfocado en desarrollar sistemas distribuidos, abiertos, escalables, transparentes y tolerantes a fallos. Este paradigma es el resultado natural del uso de las computadoras y las redes.

Casi cualquier lenguaje de programación que tenga acceso al máximo al hardware del sistema puede manejar la programación distribuida, considerando una buena cantidad de tiempo y código.

La programación distribuida típicamente cae en alguna de las varias arquitecturas básicas o arquitecturas: cliente-servidor, 3-tier, n-tier, objetos distribuidos, entre otras además de ser base para la pragmatisidad. Los lenguajes específicamente diseñados para programación distribuida son: Ada, Alef, E, Erlang, Limbo y Oz.

Programación Cliente/Servidor

Una aplicación cliente servidor requiere básicamente tres elementos: un programa servidor que atiende las peticiones de los clientes; un programa cliente que se conecta al servidor y; un protocolo de comunicaciones que indica la secuencia de mensajes que se pasan un cliente y un servidor.

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

Con respecto a Sistemas Centralizados:

Una de las ventajas de los sistemas distribuidos es la economía, pues es mucho más barato, añadir servidores y clientes cuando se requiere aumentar la potencia de procesamiento.

El trabajo en conjunto. Por ejemplo: en una fábrica de ensamblado, los robots tienen sus CPUs diferentes y realizan acciones en conjunto, dirigidos por un sistema distribuido.

Tienen una mayor confiabilidad. Al estar distribuida la carga de trabajo en muchas máquinas la falla de una de ellas no afecta a las demás, el sistema sobrevive como un todo.

Capacidad de crecimiento incremental. Se puede añadir procesadores al sistema incrementando su potencia en forma gradual según sus necesidades.

Con respecto a PCs Independientes:

Se pueden compartir recursos, como programas y periféricos, muy costosos. Ejemplo: Impresora Láser, dispositivos de almacenamiento masivo, etc.

Al compartir recursos, satisfacen las necesidades de muchos usuarios a la vez. Ejemplo: Sistemas de reservas de aerolíneas.

Se logra una mejor comunicación entre las personas. Ejemplo: el correo electrónico.

Tienen mayor flexibilidad, la carga de trabajo se puede distribuir entre diferentes ordenadores.

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS

El principal problema es el software, es el diseño, implantación y uso del software distribuido, pues presenta numerosos inconvenientes. Los principales interrogantes son los siguientes:

- ¿Qué tipo de S. O., lenguaje de programación y aplicaciones son adecuados para estos sistemas?.

- ¿Cuánto deben saber los usuarios de la distribución?.

- ¿Qué tanto debe hacer el sistema y qué tanto deben hacer los usuarios?.

13

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto.

Otro problema tiene que ver con las redes de comunicación. Por ejemplo: -Perdida de mensajes, saturación en el tráfico, etc.

Un problema que puede surgir al compartir datos es la seguridad de los mismos.

En general se considera que las ventajas superan a las desventajas, si estas últimas se administran seriamente.

DESAFÍOS

Heterogeneidad de los componentes.- La interconexión, sobre todo cuando se usa Internet, se da sobre una gran variedad de elementos hardware y software, por lo cual necesitan de ciertos estándares que permitan esta comunicación. Los Middleware, son elementos software que permiten una abstracción de la programación y el enmascaramiento de la heterogeneidad subyacente sobre las redes. También el middleware proporciona un modelo computacional uniforme.

Extensibilidad.- Determina si el sistema puede extenderse y reimplementado en diversos aspectos (añadir y quitar componentes). La integración de componentes escritos por diferentes programadores es un autentico reto.

Seguridad.- Reviste gran importancia por el valor intrínseco para los usuarios. Tiene tres componentes:

o Confidencialidad.- Protección contra individuos no autorizados.

o Integridad.- Protección contra la alteración o corrupción.

o Disponibilidad.- Protección contra la interferencia con los procedimientos de acceso a los

recursos.

Escalabilidad.- El sistema es escalable si conserva su efectividad al ocurrir un incremento considerable en el número de recursos y en el número de usuarios.

Tratamiento de Fallos.- La posibilidad que tiene el sistema para seguir funcionando ante fallos de algún componente en forma independiente, pero para esto se tiene que tener alguna alternativa de solución. Técnicas para tratar fallos:

o Detección de fallos. Algunos fallos son detectables, con comprobaciones por ejemplo.

o Enmascaramiento de fallos. Algunos fallos detectados pueden ocultarse o atenuarse.

o Tolerancia de fallos. Sobre todo en Internet se dan muchos fallos y no es muy conveniente

ocultarlos, es mejor tolerarlos y continuar. Ej: Tiempo de vida de una búsqueda.

o Recuperación frente a fallos. Tras un fallo se deberá tener la capacidad de volver a un

estado anterior.

o Redundancia. Se puede usar para tolerar ciertos fallos (DNS, BD, etc.)

Concurrencia. Compartir recursos por parte de los clientes a la vez.

Transparencia. Es la ocultación al usuario y al programador de aplicaciones de la separación de los componentes en un sistema distribuido. Se identifican 8 formas de transparencia:

o De Acceso. Se accede a recursos locales y remotos de forma idéntica.

14

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

o De ubicación. Permite acceder a los recursos sin conocer su ubicación.

o De concurrencia. Usar un recurso compartido sin interferencia.

o De replicación. Permite utilizar varios ejemplares de cada recurso.

o Frente a fallos. Permite ocultar los fallos.

o De movilidad. Permite la reubicación de recursos y clientes sin afectar al sistema.

o De prestaciones. Permite reconfigurar el sistema para mejorar las prestaciones según su

carga.

o Al escalado. Permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la

estructura del sistema o los algoritmos de aplicación.

APLICACIONES

Sistemas Comerciales.- Inicialmente fueron construidos con hardware dedicado y entornos centralizados, son, por sus características de distribución geográfica y necesidad de acceso a sistemas distintos, ideales para implementarse en sistemas distribuidos. Requieren ciertas características de fiabilidad, seguridad y protección. Algunos ejemplos son:

o Sistemas de reservas de líneas aéreas.

o Aplicaciones bancarias.

o Cajas y gestión de grandes almacenes.

Redes WAN.- Debido al gran crecimiento de este tipo de redes (Internet), ha tomado gran importancia el intercambio de información a través de la red. Y para esto tenemos los siguientes ejemplos:

o Los servicios comunes que brinda Internet: Correo electrónico, servicio de noticias,

transferencia de archivos, la Wrld Wide Web, etc.

Aplicaciones Multimedia.- Son las últimas incorporaciones a los sistemas distribuidos. Estas aplicaciones imponen ciertas necesidades de hardware para poder tener una velocidad y regularidad de transferencia de una gran cantidad de datos. Los ejemplos de estos sistemas son:

o Videoconferencia.

o Televigilancia.

o Juegos multiusuarios.

o Enseñanza asistida por ordenador.

Áreas de la informática aplicada a los Sistemas Distribuidos.- En este punto se tienen en cuenta toda la variedad de aplicaciones de los sistemas distribuidos, pues su diseño involucra a muchas áreas, por ejemplo:

o Comunicaciones.

o Sistemas operativos distribuidos.

o Base de datos distribuidas.

o Servidores distribuidos de ficheros.

15

Universidad Nacional de Trujillo – Carrera Profesional de Ingeniería de Sistemas – Tecnologías Cliente – Servidor

o Lenguajes de programación distribuidos.

o Sistemas de tolerancia de fallos.

16