Trabajo grupal 1 taller-prog-distribuida

19
“Año de la Diversificación Productiva y el Fortalecimiento de la Educación” CARRERA: Computación e Informática MÓDULO PROFESIONAL: Desarrollo de Software y Gestión de Base de Datos UNIDAD DIDÁCTICA: Taller de Programación Distribuida SEMESTRE: IV DOCENTE: Ing. Carlos Rios Campos ALUMNOS: INSTITUTO DE EDUCACION SUPERIOR TECNOLOGICO PUBLICO ENRIQUE LOPEZ Ferreñaf

Transcript of Trabajo grupal 1 taller-prog-distribuida

Page 1: Trabajo grupal 1 taller-prog-distribuida

“Año de la Diversificación Productiva y el Fortalecimiento de la Educación”

CARRERA:

Computación e Informática

MÓDULO PROFESIONAL:

Desarrollo de Software y Gestión de Base de Datos

UNIDAD DIDÁCTICA:

Taller de Programación Distribuida

SEMESTRE:

IV

DOCENTE:

Ing. Carlos Rios Campos ALUMNOS:

Antón Paico Mary Carmen

Manayay Chávez, Rommel Joan

Piscoya Olazabal, Gaby Geraldine

Roque Sandoval Mariana

INSTITUTO DE EDUCACION SUPERIOR

TECNOLOGICO PUBLICO

ENRIQUE LOPEZ ALBUJAR

Ferreñafe

Page 2: Trabajo grupal 1 taller-prog-distribuida

SERVIDORES DE ALTO DESEMPEÑO

Las soluciones de computación de alto rendimiento de IBM Power™ Systems lideran la lista Top 10 de supercomputadoras no solo en rendimiento sino también en la eficiencia de energía. Cuando se configuran dentro de los clústeres ampliamente escalables de AIX® y Linux®, las soluciones Power Systems ofrecen alta performance para cargas de trabajo exigentes como la química computacional, modelación de reservorios de petróleo, pronósticos climáticos, modelación climática y analytics.

IBM BLUE GENE (US)

IBM Blue Gene/Q ofrece rendimiento de alto nivel dentro de un entorno de programación estándar y brinda eficiencia en el consumo de energía, enfriamiento y ocupación de espacio. Ampliamente reconocido como el sistema más rápido para computación intensiva y “big data”, Blue Gene permite a las empresas y a la ciencia abordar una amplia gama de problemas complejos, como ayudar a trazar el mapa del genoma humano, investigar terapias médicas, pilotear aviones, detectar tumores, predecir tendencias climáticas y resguardar arsenales nucleares. Hoy, con BlueGene/Q Express, una configuración de medio bastidor, esta tecnología líder está disponible para un conjunto más amplio de usuarios que necesitan una gestión de big data que los mantenga delante de la competencia.

IBM SYSTEMS, SOFTWARE PARA COMPUTACIÓN DE ALTO RENDIMIENTO

GENERAL PARALLEL FILE SYSTEM (GPFS)

GPFS™ es una infraestructura de gestión de archivos en clúster de alto rendimiento para AIX, Linux, Windows® y clústeres combinados que proporciona un alto rendimiento, escalabilidad y disponibilidad para sus datos de archivo.

EXTREME CLOUD ADMINISTRATON TOOLKIT (XCAT) (US)

Una herramienta de suministro y gestión de informática distribuida escalable y de código abierto que presenta una interfaz unificada para el control del hardware, el descubrimiento y el despliegue del sistema operativo.

Page 3: Trabajo grupal 1 taller-prog-distribuida

GESTIÓN DE SISTEMAS DE CLÚSTER (CSM) (US)

Diseñado para minimizar el costo y la complejidad de administrar Sistemas de clúster de IBM basados en IBM System x e IBM Power Systems permitiendo amplia gestión y supervisión de todo el entorno desde un único punto de control.

TIVOLI® WORKLOAD SCHEDULER LOADLEVELER® (US)

Usado para planificar la carga de trabajo dinámica, Tivoli® Workload Scheduler LoadLeveler® es un recurso de gestión de trabajo en toda la red en un entorno distribuido, diseñado para programar dinámicamente el trabajo para maximizar el uso de los recursos y minimizar el tiempo de finalización del trabajo.

ENGINEERING AND SCIENTIFIC SUBROUTINE LIBRARY (ESSL) Y PARALLEL ESSL (US)

Colecciones de modernas subrutinas matemáticas específicamente diseñadas para mejorar el rendimiento de aplicaciones seriales, SMP y SPMD en los servidores basados en procesador de IBM POWER™.

PARALLEL ENVIRONMENT (PE) (US)

Un amplio entorno de desarrollo y ejecución para aplicaciones paralelas (aplicaciones de movimiento de mensajes, memoria distribuida, que se ejecutan en varios nodos).

POWERHA SYSTEMMIRROR FOR AIX

PowerHA SystemMirror Standard Edition y Enterprise Edition fueron diseñados para brindar alta disponibilidad y recuperación de desastres para aplicaciones y datos críticos.

RPC (LLAMADAS DE PROCEDIMIENTO REMOTO)

En la actualidad son bastante comunes y utilizados por lo regular de manera diaria, pero son pocos conocen lo que son, las llamadas de procedimiento remoto o bien, PRC (Remote Procedure Call) por sus siglas en inglés.

Page 4: Trabajo grupal 1 taller-prog-distribuida

Una llamada de procedimiento remoto (RPC) consiste en un protocolo que permite a un software o programa ejecutar código en otra máquina remota sin preocuparse por la comunicación, por lo regular es bastante utilizado en el paradigma cliente y servidor. Existen varios tipos de RPC pero estos son los más comunes:

ONC RPC de Sun DCE/RPC de OSF Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM

Éste último es el más utilizado debido a que, como ya hemos comentado en bastantes ocasiones, es el sistema operativo más utilizado y por tanto, los servicios (la mayoría) que ofrece su empresa creadora también lo son.

OBJETIVOS DE RPC

• Proporcionar un middelware que simplifique el desarrollo de aplicaciones distribuidas

• Evitar que programador tenga que interactuar directamente con el interfaz de Sockets

• Abstraer (ocultar) los detalles relativos a la red

• El Servidor ofrece procedimientos que el cliente llama como si fueran procedimientos locales

EDI

Intercambio electrónico de datos de computadora a computadora entre Socios Comerciales (cadenas), con la finalidad de ahorrar tiempo al eliminar los tradicionales métodos de preparación y envío de documentos a través de mensajería. A la vez, tiene la ventaja de ser un método más seguro y confiable para el manejo de información. Entre las transacciones disponibles actualmente se encuentran entre otras:

REPORTE DE VENTAS E INVENTARIOS ORDENES DE COMPRA CATALOGO DE PRECIOS DE

VENTA AVISO ANTICIPADO DE EMBARQUE (ASN)

Es un Conjunto coherente de datos, estructurados conforme a normas de mensajes acordadas, para la transmisión por medios electrónicos, preparados en un formato capaz de ser leído por el

Page 5: Trabajo grupal 1 taller-prog-distribuida

ordenador y de ser procesado automáticamente y sin ambigüedad. Es aquella parte de un sistema de información capaz de cooperar con otros sistemas de información mediante el intercambio de mensajes EDI.

¿QUÉ FUNCIONALIDAD OFRECE EL EDI?

A través del EDI, las partes involucradas cooperan sobre la base de un entendimiento claro y predefinido acerca de un negocio común, que se lleva a cabo mediante la transmisión de datos electrónicos estructurados. El EDI establece cómo se estructuran, los datos de los documentos electrónicos y define el significado comercial de cada elemento de datos. Para transmitir la información necesita un servicio de transporte adicional (por ejemplo, un sistema de tratamiento de mensajes o de transferencia de ficheros). El EDI respeta la autonomía de las partes involucradas, no impone restricción alguna en el procesamiento interno de la información intercambiada o en los mecanismos de transmisión.

SERVICIOS EDI

Este servicio, a diferencia del correo electrónico, relaciona aplicaciones informáticas que residen en las computadoras de las distintas empresas. Por lo tanto, el intercambio de información se realiza entre aplicaciones informáticas y no entre personas.

PRINCIPALES BENEFICIOS

Agilización de procesos comerciales Importante disminución de errores en los documentos Disminución de stocks, debido a la facilidad de aplicación de técnicas "Just-inTime"Ahorro de costos de administración Mejora de la competitividad de la empresa que lo adopta

Page 6: Trabajo grupal 1 taller-prog-distribuida

CORBA

Common Object Request Broker Architecture (CORBA) es un estándar definido por Object Management Group (OMG) que permite que diversos componentes de software escritos en múltiples lenguajes de programación y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos heterogéneos.

HISTORIA

Su primera versión se lanzó en 1991. En 1995 aparece CORBA 2, con nuevas normas que permiten: que puedan

cooperar implementaciones de diferentes fabricantes, que pueda ser implementado sobre cualquier nivel de transporte y que pueda funcionar en Internet sobre TCP/IP, creando un protocolo: IIOP (Internet IOP).

CORBA 3 se muestra en 2002, como intento de plantar cara a Microsoft y su modelo de programación de objetos distribuidos DCOM. Entre otras cosas, se introdujo el CORBA Component Model (CCM), con el que se pasó de un modelo de objetos distribuidos (EJB, restringido a Java) a un modelo distribuido orientado a componentes.

CARACTERÍSTICAS

Entre las principales características de CORBA nos encontramos con:

Independencia en el lenguaje de programación y sistema operativo: CORBA fue diseñado para liberar a los ingenieros de las limitaciones en cuanto al diseño del software.Actualmente soporta Ada, C, C++, C++11, Lisp, Ruby, Smalltalk, Java, COBOL, PL/I y Python.

Posibilidad de interacción entre diferentes tecnologías: uno de los principales beneficios de la utilización de CORBA es la posibilidad de normalizar las interfaces entre las diversas tecnologías y poder así combinarlas.

Page 7: Trabajo grupal 1 taller-prog-distribuida

Transparencia de distribución: ni cliente ni servidor necesitan saber si la aplicación está distribuida o centralizada, pues el sistema se ocupa de todo eso.

Transparencia de localización: el cliente no necesita saber donde ejecuta el servicio y el servicio no necesita saber donde ejecuta el cliente.

Integración de software existente: se amortiza la inversión previa reutilizando el software con el que se trabaja, incluso con sistemas heredados.

Activación de objetos: los objetos remotos no tienen por qué estar en memoria permanentemente, y se hace de manera invisible para el cliente.

Otras como: el fuerte tipado de datos, la alta capacidad de configuración, libertad de elección los detalles de transferencia de datos, o la compresión de los datos.

Cómo funciona

Todos los componentes CORBA son objetos, cada cual tendrá una interfaz y una identidad única, cada uno de los objetos se podrá implementar en un lenguaje de programación distinto y ejecutarse sobre cualquier sistema operativo.

El servidor crea objetos remotos, hace accesibles referencias a esos objetos remotos y espera a que los clientes invoquen a estos objetos o a sus métodos. Por otro lado el cliente obtiene una referencia de uno o más objetos remotos en el servidor e invoca a sus métodos.

La manera de realizar la invocación por parte del cliente es usando stub, una interfaz de comunicación con el servidor generada a partir del IDL, usando la invocación dinámica para acceder a los objetos del servidor gestionando a su vez las excepciones producidas por su llamada.

Necesita para ello una referencia del objeto remoto o IOR (Interoperable Object References), el tipo del objeto y el nombre de la propia operación que desea invocar. Describiendo las interfaces IDL, un ORB genera automáticamente código en el lenguaje seleccionado para realizar la integración de las aplicaciones distribuidas. Evidentemente, puesto que sólo describe interfaces, todas las tareas complejas relacionadas con los lenguajes de programación, como control de flujo, gestión de memoria, composición funcional, no aparecen en IDL.

El ORB, a partir de la petición del cliente encuentra el código de la implementación apropiada y transmite los parámetros, el control a la implementación de la interfaz a través del skeleton IDL e informa de excepciones en el proceso (como referencias IOR o IDL no válidas).

Para recibir la petición, recibe la invocación de uno de sus métodos como llamadas desde el ORB hacia la implementación de la interfaz, la llamada puede venir de un cliente que haya utilizado los stubs IDL; los esqueletos de la interfaz son específicos de cada interfaz y del

Page 8: Trabajo grupal 1 taller-prog-distribuida

adaptador de objetos que exista en la implementación de CORBA. Una vez completada la invocación el control y los valores de retorno son devueltos al cliente.

Puede utilizar los servicios que proporciona el adaptador de objetos e incluso que proporciona el ORB, mientras es procesada la petición que ha recibido el cliente, para ese caso puede elegir un adaptador de objetos entre un conjunto de ellos, para tomar esa decisión se basa en la clase de servicios que pueda requerir la implementación de la interfaz.

APPC

APPC (avanzadas programa a programa de comunicación, a veces llamado LU 6.2) es una comunicación protocolo estándar y programación de interfaz que opera en la capa de presentación (la capa que asegura que los mensajes están en el formato adecuado para el destinatario) y la capa de sesión ( la capa responsable de la creación y desmontaje de la asociación de los dos puntos extremos de una conexión) de la interconexión de sistemas abiertos (OSI modelo de comunicaciones). Originalmente desarrollado por IBM como un mando a distancia de transacciones herramienta de procesamiento, APPC ahora se utiliza para proporcionar distribuidos servicios dentro de un heterogéneo entorno informático.

Software de APPC permite la comunicación de alta velocidad que tendrá lugar entre los programas que residen en equipos diferentes, y entre estaciones de trabajo y de gama media y mainframes servidores de un ordenador. APPC es un abierto estándar que se admite en la mayoría de plataformas.

APPC se basa en sistemas de arquitectura de red de IBM (SNA).

W3CEl Consorcio World Wide Web (W3C) es un consorcio internacional donde las organizaciones miembro, personal a tiempo completo y el público en general, trabajan conjuntamente para desarrollar estándares Web. La misión del W3C es:

GUIAR LA WEB HACIA SU MÁXIMO POTENCIAL A TRAVÉS DEL DESARROLLO DE PROTOCOLOS Y PAUTAS QUE ASEGUREN EL CRECIMIENTO FUTURO DE LA WEB.

El W3C desarrolla Estándares Web y Pautas

El W3C trata de alcanzar su objetivo principalmente a través de la creación de Estándares Web y Pautas. Desde 1994, el W3C ha publicado más de ciento diez estándares, denominados Recomendaciones del W3C. El W3C también está involucrado en tareas de educación y difusión, y en el desarrollo de software, sirviendo a su vez como foro abierto de discusión sobre la Web. Para que la Web alcance su máximo potencial, las tecnologías Web más importantes deben ser compatibles entre sí y permitir que cualquier hardware y software, utilizado para acceder a la

Page 9: Trabajo grupal 1 taller-prog-distribuida

Web, funcione conjuntamente. El W3C hace referencia a este objetivo como "interoperabilidad Web". Al publicar estándares abiertos (no propietarios) para lenguajes Web y protocolos, el W3C trata de evitar la fragmentación del mercado y, por lo tanto, la fragmentación de la Web.

Tim Berners-Lee y otros, crearon el W3C como un consorcio dedicado a producir consenso en relación a las tecnologías Web. Berners-Lee, que inventó la World Wide Web en 1989, mientras trabajaba en la Organización Europea de Investigación Nuclear (CERN), ha sido el director del W3C desde que se fundó en 1994.

El W3C es un Consorcio Internacional

Diferentes organizaciones, procedentes de diversos puntos del mundo y de campos muy diferentes, forman parte del W3C con intención de participar en un foro neutral para la creación de estándares Web. Los Miembros del W3C y un grupo de expertos técnicos, han hecho posible que el W3C sea reconocido a nivel internacional por su contribución en el desarrollo de la Web. Los Miembros del W3C (testimonios), el personal y los expertos invitados trabajan juntos para diseñar tecnologías, con el objetivo de asegurar que la Web continuará creciendo en el futuro, adaptándose a la creciente diversidad de personas, hardware y software.

Entre las iniciativas globales del W3C se encuentra la de mantener sus asociaciones con organizaciones nacionales, regionales e internacionales en todo el mundo. Estos contactos ayudan al W3C a establecer una cultura de participación global en el desarrollo de la World Wide Web. El W3C ha establecido una colaboración especialmente estrecha con otras organizaciones que están desarrollando estándares para la Web o para Internet con intención de facilitar el progreso. El documento sobre Participación Mundial en el Consorcio World Wide Web resume los esfuerzos del W3C por ampliar su impacto internacional; para obtener más información visite la página principal de relaciones internacionales.

Objetivos

El W3C, para cumplir su misión, ha establecido estos tres objetivos a largo plazo para crear una sola World Wide Web.

Web para todos

El valor social que aporta la Web, es que ésta hace posible la comunicación humana, el comercio y las oportunidades para compartir conocimiento. Uno de los objetivos principales del W3C es hacer que estos beneficios estén disponibles para todo el mundo, independientemente del hardware, software, infraestructura de red, idioma, cultura, localización geográfica, o habilidad física o mental.

El W3C continúa expandiendo su influencia a través de iniciativas que directamente apoyan la difusión de las tecnologías Web y sus beneficios en los países en desarrollo. El trabajo realizado en áreas como accesibilidad Web, internacionalización, independencia de dispositivo, y Web móvil es especialmente importante ya que el W3C trabaja para alcanzar una Web para todos.

Page 10: Trabajo grupal 1 taller-prog-distribuida

Al mismo tiempo, a través de las Oficinas del W3C y, también, a través de otros esfuerzos para aumentar la participación, el W3C se compromete a crear una Web accesible para más gente en el mundo. El documento sobre Participación Mundial en el Consorcio World Wide Web resume los esfuerzos que se han llevado a cabo para aumentar la participación mundial en el trabajo del W3C, y para garantizar que los resultados obtenidos en el Consorcio benefician a una comunidad aún mayor.

Semantic Web

La web semántica (del inglés semantic web) es un conjunto de actividades desarrolladas en el seno de World Wide Web Consortium tendente a la creación de tecnologías para publicar datos legibles por aplicaciones informáticas (máquinas en la terminología de la Web semántica). Se basa en la idea de añadir metadatos semánticos y ontológicos a la World Wide Web. Esas informaciones adicionales —que describen el contenido, el significado y la relación de los datos— se deben proporcionar de manera formal, para que así sea posible evaluarlas automáticamente por máquinas de procesamiento. El objetivo es mejorar Internet ampliando la interoperabilidad entre los sistemas informáticos usando "agentes inteligentes". Agentes inteligentes son programas en las computadoras que buscan información sin operadores humanos.

El precursor de la idea, Tim Berners-Lee, intentó desde el principio incluir información semántica en su creación, la World Wide Web, pero por diferentes causas no fue posible. Por ese motivo introdujo el concepto de semántica con la intención de recuperar dicha omisión.

Componentes de la Web Semántica

Los principales componentes de la Web Semántica son los metalenguajes y los estándares de representación XML,XML Schema, RDF, RDF Schema y OWL, así como el lenguaje SPARQL para la consulta de datos RDF.5 La OWLWeb Ontology Language Overview describe la función y relación de cada uno de estos componentes de la Web Semántica:

XML aporta la sintaxis superficial para los documentos estructurados, pero sin dotarles de ninguna restricción sobre el significado.

XML Schema es un lenguaje para definir la estructura de los documentos XML.

RDF es un modelo de datos para los recursos y las relaciones que se puedan establecer entre ellos. Aporta una semántica básica para este modelo de datos que puede representarse mediante XML.

RDF Schema es un vocabulario para describir las propiedades y las clases de los recursos RDF, con una semántica para establecer jerarquías de generalización entre dichas propiedades y clases.

OWL es un lenguaje para definir ontologías mediante la descripción detallada de propiedades y clases: tales como relaciones entre clases

Page 11: Trabajo grupal 1 taller-prog-distribuida

(p.ej. disyunción), cardinalidad (por ejemplo "únicamente uno"), igualdad, tipologías de propiedades más complejas, caracterización de propiedades (por ejemplo simetría) o clases enumeradas.

SPARQL es un lenguaje de consulta de conjuntos de datos RDF. Además en dicha especificación también se incluye un formato XML que detalla el modo en el que se estructuran los resultados obtenidos.

DIFERENCIA ENTRE LA PROGRAMACIÓN ESTRUCTURADA, ORIENTADA A OBJETOS

PROGRAMACIÓN ESTRUCTURADA PROGRAMACIÓN ORIENTADA A OBJETOS La programación estructurada consta,

como su nombre lo indica, de una estructura donde se va ejecutando paso a paso y este debe de tener una secuencia y una lógica para que su función sea eficiente.

La programación estructurada pretende resolver un problema de principio a fin en una sola estructura de código. La programación orientada a objetos, resuelve el problema identificando los actores que tienen participación en el problema e identificando también sus acciones. Con esta información se crean los objetos (que son una interpretación de algunos de estos actores), estos objetos están compuestos por clases donde se detalla las acciones que realizan y las

La programación orientada a objetos se basa en una nueva forma de pensar los problemas, declarando como variables o los tipos de datos los objetos del problema, y que a su vez, cada objeto tiene anidadas variables que hacen referencia al dato.

La programación orientada a objetos es más moderna, es una evolución de la programación estructurada que plasma en el diseño de una familia de lenguajes conceptos que existían previamente con algunos nuevos.

La programación orientada a objetos se basa en lenguajes que soportan sintáctica y semánticamente la unión entre los tipos abstractos de datos y sus operaciones (a esta unión se la suele llamar clase).

La programación orientada a objetos

Page 12: Trabajo grupal 1 taller-prog-distribuida

propiedades de estos. Al tener creados los objetos solo es ponerlos a interactuar entre ellos.

incorpora en su entorno de ejecución mecanismos tales como el polimorfismo y el envío de mensajes entre objetos.

Clúster

El término clúster (del inglés cluster, "grupo" o "raíz") se aplica a los conjuntos o conglomerados de computadoras unidos entre sí normalmente por una red de alta velocidad y que se comportan como si fuesen una única computadora.

La tecnología de clústeres ha evolucionado en apoyo de actividades que van desde aplicaciones de supercómputo y software para apliaciones críticas, servidores web y comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.

El cómputo con clústeres surge como resultado de la convergencia de varias tendencias actuales que incluyen la disponibilidad de microprocesadores económicos de alto rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para cómputo distribuido de alto rendimiento, así como la creciente necesidad de potencia computacional para aplicaciones que la requieran.

Simplemente, un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto como un único ordenador, más potente que los comunes de escritorio.

Los clústeres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima de la que es provista por un solo computador típicamente siendo más económico que computadores individuales de rapidez y disponibilidad comparables.

De un clúster se espera que presente combinaciones de los siguientes servicios:

1. Alto rendimiento

2. Alta disponibilidad

3. Balanceo de carga

4. Escalabilidad

La construcción de los ordenadores del clúster es más fácil y económica debido a su flexibilidad: pueden tener todos la misma configuración de hardware y sistema operativo (clúster homogéneo), diferente rendimiento pero con arquitecturas y sistemas operativos similares (clúster semihomogéneo), o tener diferente hardware y sistema operativo (clúster heterogéneo), lo que hace más fácil y económica su construcción.

Page 13: Trabajo grupal 1 taller-prog-distribuida

Para que un clúster funcione como tal, no basta solo con conectar entre sí los ordenadores, sino que es necesario proveer un sistema de manejo del clúster, el cual se encargue de interactuar con el usuario y los procesos que corren en él para optimizar el funcionamiento.

4GL

Lenguajes de cuarta generación (4GL) Los lenguajes de cuarta generación son entornos de desarrollo de aplicaciones constituidos por un conjunto de herramientas integradas entre las que se encuentran editores, compiladores, sistemas para el acceso a bases de datos, generadores de informes, generadores de pantallas (modo carácter, interfaces gráficas), etc.

A diferencia de las herramientas CASE, los 4GL se centran fundamentalmente en las fases de construcción e implantación. En este aspecto, una herramienta CASE del tipo L-CASE tendría muchas semejanzas con un 4GL. De hecho, muchas herramientas U-CASE tienen interfaces con un 4GL para completar el ciclo de vida del desarrollo de sistemas.

Los lenguajes que incorporan los 4GL suelen ser mezcla de lenguajes procedurales y no procedurales. La parte procedural se manifiesta en la definición de tipos de constantes, tipos de datos elementales, visibilidad de las variables (locales o globales), sentencias de control de flujo, definición de funciones y procedimientos, etc., mientras que la parte no procedural suele estar basada en el lenguaje SQL (Structured Query Language) o, como mínimo, en lenguajes de consulta de bases de datos relacionales.

Con los 4GL se consigue un aumento de productividad gracias a:

La utilización de funciones preprogramadas. El entorno de desarrollo que facilita la realización de determinadas tareas como diseño de

pantallas o informes.

Tipos de 4GL

Los 4GL, en función de su relación con un determinado gestor de base de datos, se pueden agrupar de la forma siguiente:

Lenguajes que están ligados a una base de datos. La mayoría de los gestores de bases de datos cuentan con un lenguaje de cuarta generación. Son lenguajes propietarios, lo que quiere decir que sirven únicamente para acceder a esa base de datos en particular. El aprovechamiento de los recursos del gestor es muy alto.

Lenguajes que son independientes del gestor de base de datos. Tienen la capacidad de acceder a diferentes bases de datos, generalmente aquéllas que soportan un estándar común. No son lenguajes propietarios y por tanto no ligan al comprador a ninguna base de datos en particular. La necesidad de utilizar el 4GL siguiendo estrictamente el estándar para asegurar la accesibilidad a diferentes bases de datos impide sacar el máximo provecho de cada una de ellas.

Page 14: Trabajo grupal 1 taller-prog-distribuida

Otra forma de agrupar los 4GL es en función de la naturaleza de su sintaxis:

Lenguajes procedurales. El programa se desarrolla como una secuencia de pasos que la computadora ejecuta para llegar al fin deseado. Los desarrolladores deben codificar los flujos de control de las actividades a realizar, además de las actividades en si.

Lenguajes conducidos por eventos. Permiten a los desarrolladores especificar la ejecución de rutinas asociadas a acciones dadas del usuario, tales como apretar un tecla o mover el ratón, sin tener que codificar cada paso dado para ejecutar dicha acción.

Tendencias tecnológicas y del mercado

La evolución de los 4GLs parece dirigirse hacia:

Independencia de plataformas hardware y software. Es importante reseñar la tendencia de algunos 4GLs hacia la generación de lenguaje C, con la ventaja que supone en cuanto a portabilidad.

Independencia de estructuras de datos y acceso a información distribuida.

Acceso a objetos distribuidos, lo que permite independizar los recursos que utilizará la aplicación a desarrollar, de la localización física de los mismos.

Interoperabilidad con herramientas ofimáticas.

Soporte para diferentes interfaces gráficas de usuario.

Soporte para diferentes entornos de red.

La aplicación de forma más extendida del modelo cliente/servidor, tanto en el funcionamiento del propio 4GL como en las aplicaciones generadas.

Soporte para desarrollo de aplicaciones para Internet e Intranet. Es destacable la tendencia actual a modelos de desarrollo en los cuales la base de datos y la lógica de la aplicación residen bien en un servidor común, bien en distintos servidores, mientras que la presentación de la misma en el cliente se realiza mediante un browser a través de una red Intranet.

Page 15: Trabajo grupal 1 taller-prog-distribuida

LINKOGRAFÍA

http://www-03.ibm.com/systems/pe/power/hardware/hpc.html

http://culturacion.com/que-son-los-rpc-llamadas-de-procedimiento-remoto/

http://es.slideshare.net/crack_708/rpc

http://es.slideshare.net/jlc_2006/edi-1241731

http://searchnetworking.techtarget.com/definition/APPC

http://www.w3c.es/Consorcio/about-w3c.html

https://es.wikipedia.org/wiki/Web_sem%C3%A1ntica

http://es.slideshare.net/MichaeldelaCruz6/programacin-orientada-a-objetos-vs-

programacin-estructurada

https://es.wikipedia.org/wiki/Cl%C3%BAster_(inform%C3%A1tica)

http://misclasesvvr.tripod.com/hd/pdf/4GL.pdf