Proyecto. Estudio de la plataforma.net. Alumno Francisco Carpe García Facultad de Informática Universidad de Murcia

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Proyecto. Estudio de la plataforma.net. Alumno Francisco Carpe García pcarpe@eurociber.es Facultad de Informática Universidad de Murcia"

Transcripción

1 Proyecto Estudio de la plataforma.net Alumno Francisco Carpe García Facultad de Informática Universidad de Murcia Director Diego Sevilla Ruiz Facultad de Informática Universidad de Murcia 11 de Diciembre de 2001

2

3 ÍNDICE Índice 1. ABSTRACT INTRODUCCIÓN Y REFERENCIAS HISTÓRICAS OBJETIVOS Y METODOLOGÍA DESCRIPCIÓN GENERAL DE LA PLATAFORMA.NET QUÉ ES.NET? EL LENGUAJE COMÚN EN TIEMPO DE EJECUCIÓN (CLR) Sistema de tipos común (CTS) Clasificación de tipos Definición de tipos Tipos Valor Tipos Referencia Metadatos Estructura de los metadatos Atributos Sistema de ejecución Lenguaje intermedio MSIL Compilación JIT Recolector de basura Seguridad LIBRERÍA DE CLASES BASE (BCL) ESPECIFICACIÓN DEL LENGUAJE COMÚN (CLS) Código conforme con CLS Herramientas conformes con CLS ENSAMBLADOS (ASSEMBLIES) INTRODUCCIÓN ESTRUCTURA DE UN ENSAMBLADO Ensamblados de un solo fichero Ensamblados multifichero Las dos vistas de un ensamblado: física y lógica MANIFIESTO DE UN ENSAMBLADO CLASES DE ENSAMBLADOS Ensamblados privados Nombrado Política de versiones Aspectos de despliegue Localización de los ensamblados Ensamblados compartidos Nombrado Política de versiones...37 Información de la versión...38 Políticas Aspectos de despliegue Localización de los ensamblados EJECUCIÓN DE MÚLTIPLES VERSIONES SIMULTÁNEAMENTE

4 ÍNDICE 5.6. DESPLIEGUE Empaquetamiento Distribución ADO.NET NIVEL CONECTADO NIVEL DESCONECTADO INTEGRACIÓN CON XML ASP.NET APLICACIONES WEB WebForms Controles servidor Controles predefinidos Controles a medida SERVICIOS WEB Características Escenarios de uso Infraestructura de los servicios Web Servicio de directorio Servicio de localización (DISCO) Descripción de los servicios Web Formatos de transmisión Servicios Web ASP.NET OTROS ASPECTOS DE ASP.NET Servicio de caching Seguridad Autenticación Autorización Suplantación (Impersonation) Depuración y seguimiento (tracing) Configuración y despliegue WINFORMS LÍMITES DE LAS APLICACIONES (APPLICATION BOUNDARY) DOMINIOS DE APLICACIÓN (APPLICATION DOMAINS) CONTEXTOS Características de los contextos ARQUITECTURA DE LOS CONTEXTOS Atributos de contexto Propiedades de contexto Interceptores de mensajes Propiedades e interceptores dinámicos FRAMEWORK REMOTO MODELO DE OBJETOS Objetos no remotos Objetos remotos Objetos pasados por valor (marshal by value) Objetos pasados por referencia (marshal by reference)

5 ÍNDICE Objetos ligados a un contexto (context bound) ARQUITECTURA DEL FRAMEWORK Objetos referencia (ObjRef) Objetos proxy Canales MODELOS DE ACTIVACIÓN Objetos activados por el servidor Objetos SingleCall Objetos Singleton Objetos activados por el cliente Objetos activados de forma automática CICLO DE VIDA BASADO EN LEASING HOSPEDAJE DE LOS OBJETOS REMOTOS UTILIZACIÓN DE ENSAMBLADOS COMPARTIDOS Objetos pasador por valor Objetos pasados por referencia Objetos activados por el servidor Objetos activados por el cliente INTEROPERABILIDAD CON CÓDIGO NO GESTIONADO (LEGACY) INTEROPERABILIDAD CON DLLS TRADICIONALES INTEROPERABILIDAD CON EL MODELO COM Invocación de componentes COM desde.net Invocación de componentes.net desde COM INTEROPERABILIDAD CON LOS SERVICIOS DE COM Hospedaje de componentes.net en COM Despliegue y registro Política de versiones Configuración Servicios COM+ disponibles OTROS ASPECTOS DE INTERÉS ANÁLISIS COMPARATIVO ANÁLISIS DE LA PLATAFORMA CLR Ensamblados ADO.NET WinForms Aplicaciones ASP.NET Servicios Web Contextos Framework remoto NET FRENTE A OTRAS TECNOLOGÍAS COM COM J2EE CORBA/CCM...99 CCM ANÁLISIS DE LAS HERRAMIENTAS UTILIZADAS CONCLUSIÓN Y VÍAS FUTURAS

6 ÍNDICE 15. BIBLIOGRAFÍA BIBLIOGRAFÍA GENERAL ENSAMBLADOS ADO.NET ASP.NET SERVICIOS WEB WINFORMS CONTEXTOS FRAMEWORK REMOTO INTEROPERABILIDAD CON CÓDIGO LEGACY ANÁLISIS COMPARATIVO

7 ABSTRACT 1. Abstract El trabajo realizado en este proyecto ha consistido en realizar un estudio de la plataforma.net que permitiese obtener una visión general de la misma. Evidentemente, hay ciertos aspectos de dicha plataforma que merecen una mayor atención, como el modelo de componentes, los servicios Web, y el framework de objetos remotos. En primer lugar se ha realizado un estudio de las características generales de.net, su modelo de objetos, el sistema de metainformación, etc. A continuación se han presentado las unidades de construcción de aplicaciones en la plataforma.net, los ensamblados. La capa de acceso a datos de la plataforma viene dada por ADO.NET, del cual se han destacado sus características más importantes. La capa de presentación queda dividida en dos bloques, en función de si se trata de aplicaciones Web, en las cuales se utiliza ASP.NET, o de aplicaciones de escritorio, que utilizan los denominados WinForms. He centrado el estudio en la parte relativa a ASP.NET, pues posee una serie de características novedosas, mientras que los WinForms, no constituyen en sí mismos ninguna novedad. Dentro de la sección relativa ASP.NET he expuesto las características de los servicios Web, detallando las tecnologías sobre las que se basan, como SOAP, UDDI y WSDL. Otro punto tratado que es de interés es el de los contextos, que representan un concepto similar al de los contenedores de los modelos de componentes tradicionales. También se ha tratado el framework de objetos remotos de.net, y por último se ha estudiado la interoperabilidad con el código existente o heredado (legacy), tales como DLLs, COM y COM+. Finalmente se ha realizado un análisis de la plataforma, y se ha comparado con otras tecnologías similares, como J2EE, CORBA y el Modelo de Componentes de CORBA (CCM). Junto con la descripción de la plataforma contenida en este documento se han proporcionado una serie de anexos los cuales introducen a través de ejemplos de código las características de la plataforma que se han considerado de mayor relevancia; tales ejemplos se han realizado principalmente en C#, aunque también se ha utilizado VisualBasic.NET. La parte sobre la que se ha prestado una mayor atención en dichos anexos ha sido en lo relativo a ASP.NET, que incluye el desarrollo de aplicaciones y servicios Web con C# y VisualStudio.NET, así como con Perl y las librerías SOAPLite bajo UNIX. También es tratado con especial detalle el framework de objetos remotos y el mecanismo de contextos. 5

8 INTRODUCCIÓN 2. Introducción y referencias históricas En la actualidad, los sistemas distribuidos gozan cada vez más de una mayor importancia., probablemente debido al auge de Internet. El hecho de que Internet esté formado por un gran número de sistemas heterogéneos conectados entre sí, dota de gran importancia la capacidad de interoperabilidad de dichos sistemas, de forma que, éstos puedan comunicarse entre sí. Actualmente existen varios sistemas distribuidos, tales como CORBA, RMI o DCOM, pero son demasiado rígidos, quedando ligados a un modelo de objetos en concreto, a un lenguaje, o a una plataforma, lo que hace que el objetivo de la interoperabilidad sea difícil de conseguir. Microsoft, consciente de este hecho y de la importancia que tendrán dichos sistemas en el futuro gracias a Internet, ha decidido lanzar una nueva plataforma, denominada.net, para el desarrollo de aplicaciones Web y sistemas software distribuidos, los cuales tendrán en los servicios Web su piedra angular. Microsoft ha puesto toda su maquinaria de marketing en apoyo de esta idea, en lo que se conoce como su estrategia.net. Así, Microsoft nos ofrece la visión de un mundo en el cual todos los dispositivos, desde el teléfono a la lavadora, estarán conectados a Internet e interactuarán entre sí, trabajando en perfecta armonía. En este proyecto se intentará dar una visión de la plataforma.net, así como mostrar qué es lo que hay, desde un punto de vista técnico, detrás de dichos servicios Web. La materia tratada por este proyecto podría enmarcarse como un complemento a lo estudiado en dos asignaturas de quinto curso: Ingeniería de Sistemas Informáticos, en la cual se tratan los sistemas distribuidos (RMI y CORBA) y el desarrollo de aplicaciones Web con Java (Servlets y JSP), y Metodologías de Desarrollo de Software, en la cual se proporciona una visión general sobre los componentes software. De hecho, la plataforma.net es el resultado de la confluencia de dos proyectos, uno relacionado con el desarrollo de aplicaciones Web y de aplicaciones distribuidas, y otro relacionado con los componentes. Las principales referencias bibliográficas utilizadas son la documentación que acompaña al SDK (Software Development Kit) de.net, y dos libros, C# and the.net Platform ([25]) e Introducing.NET ([2]). Mediante dicha bibliografía he podido adquirir una visión general de la plataforma.net, de forma que para entrar con un mayor nivel de detalle sobre aspectos concretos se han utilizado artículos específicos, los cuales han sido obtenidos enteramente de Internet. 6

9 OBJETIVOS Y METODOLOGÍA 3. Objetivos y Metodología El objetivo de este proyecto es el de realizar un estudio sobre la plataforma.net, proporcionando una visión general de ésta, así como realizar un análisis crítico de la misma y compararla con otras de las tecnologías existentes. Se hará un especial hincapié en ciertos aspectos de.net, como en su modelo de componentes, en la parte relativa al desarrollo de servicios Web, y en el framework de objetos distribuidos. Debido a la enorme amplitud de la plataforma.net, este proyecto no persigue realizar un análisis detallado de cada uno de los elementos de la misma, aunque sí se abordarán con un mayor nivel de detalle en aquellas cuestiones que sean consideradas de interés. Queda fuera del objetivo de este proyecto el estudio de la gama de servidores denominados.net Enterprise Servers que, junto con el framework en sí, forman parte de la denominada estrategia.net de Microsoft. Tampoco pertenece al ámbito de este proyecto el conjunto de servicios Web lanzados por Microsoft y agrupados bajo la denominación MyServices, conocidos anteriormente bajo la denominación de Microsoft Passport. El esquema seguido en la elaboración de este proyecto ha sido el de, en primer lugar, realizar un estudio teórico de la plataforma.net, en el que se exponen las características de la misma, quedando recogido dicho estudio en el presente documento. A continuación se ha realizado un análisis crítico de la plataforma, comparándole con otras tecnologías actuales de desarrollo de aplicaciones Web y de aplicaciones distribuidas basadas en componentes. Finalmente, en los anexos, se han incluido ejemplos de códigos que muestran los conceptos de mayor relevancia presentados en el estudio teórico. La relación de materias tratadas en cada uno de los apartados contenidos en el estudio teórico es la siguiente: Descripción general de la plataforma.net. En este apartado se presenta el runtime de.net, su modelo de objetos, su sistema de metainformación, y su sistema de seguridad. Ensamblados. Se presentan los bloques constructivos básicos de aplicaciones en la plataforma.net. ADO.NET. Trata la capa de acceso a las fuentes de datos proporcionada por.net. ASP.NET. En este apartado se presenta el farmework para el desarrollo de aplicaciones y servicios Web, detallándose las características de los éstos. WinForms. Se expone el farmework para el desarrollo de interfaces de usuario de escritorio. Limites de las aplicaciones. Trata fundamentalmente del mecanismo de contextos, explicando su infraestructura y la funcionalidad de los mismos. Framework de objetos remotos. Detalla la infraestructura remota de.net, junto con su modelo de objetos y su mecanismo de gestión del ciclo de vida. Interoperabilidad con código heredado (legacy). En este apartado se explican los mecanismos de interoperabilidad con los que se ha dotado a.net para el acceso a la tecnología anterior de Microsoft, como las DLLs, y a los modelos COM y COM+. Otros aspectos de interés. Se exponen una serie de elementos de interés que forman parte de la plataforma.net, pero que no han sido tratados por este proyecto. Análisis. En este apartado se realiza un análisis crítico de cada uno de los elementos de la plataforma estudiados en este proyecto, exponiendo sus fortalezas y sus debilidades. Tras 7

10 OBJETIVOS Y METODOLOGÍA esto, se realiza un análisis comparativo con las tecnologías actuales que se sitúan en el mismo ámbito que.net. La relación de materias tratadas en los diferentes anexos es la siguiente: Anexo sobre cuestiones generales. Se centra en mostrar el funcionamiento de los delegados y de los eventos, mostrándose otras características como la herencia entre distintos lenguajes y la política de versiones de los ensamblados. Anexo sobre ASP.NET. Este anexo queda dividido en dos bloques: por un lado, el bloque de desarrollo de aplicaciones Web, en el cual se muestran los conceptos del desarrollo basado en controles Web, implementando un control a medida, y por otro, el bloque relativo a los servicios Web, en el cual se construye un servicio Web de una tienda virtual. Anexo sobre WinForms. Muestra un ejemplo del desarrollo de un control, de forma que puedan observarse las similitudes con ASP.NET. Anexo sobre Contextos. Aquí se muestra el funcionamiento del mecanismo de contextos, indicándose la forma mediante la cual es posible proporcionar servicios a los componentes. Anexo sobre el farmework remoto. Expone las características del funcionamiento del farmework remoto, mostrándose como es realizada la activación de los objetos y la forma de controlar su ciclo de vida. Anexo sobre la interoperabilidad con el código heredado (legacy). Contiene varios ejemplos de interoperabilidad entre componentes.net con el denominado código no gestionado. La principal herramienta utilizada para el desarrollo de este proyecto ha sido VisualStudio.NET en su versión Beta 2, así como las distintas herramientas de líneas de comandos que acompañan al SDK. Como sistema operativo se ha utilizado Windows 2000 bajo una configuración con un procesador Athlon 800, dotado de 256 MB de memoria RAM. Asimismo, para la parte en la cual se estudia la interoperabilidad con el código no gestionado se ha empleado la herramienta VisualStudio 6.0. También se ha intentado el acceso a un servicio Web desarrollado con VisualStudio.NET mediante Perl, para lo cual se ha hecho uso de las librerías SOAPLite. 8

11 DESCRIPCIÓN GENERAL 4. Descripción general de la plataforma.net 4.1. Qué es.net?.net es una nueva plataforma de Microsoft para el desarrollo, despliegue y ejecución de aplicaciones orientadas a servicios sobre entornos altamente distribuidos, tal y como lo es Internet. El framework.net es el resultado de la confluencia de dos proyectos; el primero de ellos tenía como objetivo la mejora del desarrollo sobre las plataformas Windows, prestando una especial atención a la mejora del modelo COM, mientras que el segundo proyecto, conocido como NGWS (Next Generation Windows Services), tenía como objetivo la creación de una plataforma para el desarrollo del software como servicio. El producto resultante de ambos proyectos mejora considerablemente el desarrollo, despliegue y ejecución de las aplicaciones, e introduce el concepto de los servicios Web, que permiten el desarrollo de aplicaciones débilmente acopladas basadas en componentes que utilizan protocolos de comunicación estándares de Internet como SOAP y XML. La plataforma.net representa la visión de Microsoft del software como un servicio, habiendo sido diseñada con Internet en mente. La plataforma.net cubre todas las capas del desarrollo de software, existiendo una alta integración entre las tecnologías de presentación, de componentes y de acceso a datos..net intenta poner un cierto orden sobre el caos existente sobre la anterior plataforma para el desarrollo de aplicaciones distribuidas, denominada Windows DNA (Distributed Network Applications), la cual se basa en un modelo de tres capas, con ASP en la capa de presentación, COM en la capa de objetos de negocio y ADO en la capa de datos; dicha plataforma tenía como problemas principales que el desarrollo con COM era complejo y poseía una integración con ASP un tanto artificiosa, junto con un despliegue de las aplicaciones DNA bastante problemático. La plataforma.net no es un sistema operativo, al menos por el momento, si bien está bastante integrada con éste, y hace uso de los servicios que le proporciona. El estado actual de.net podría compararse con el estado del entorno Windows 3.1 con respecto al sistema operativo DOS, por lo que es más que probable que la plataforma.net acabe fundiéndose con una futura versión del sistema operativo Windows. La plataforma.net ha sido diseñada con la intención de satisfacer los siguientes objetivos: Proporcionar un modelo de programación simple y consistente. A diferencia del modelo actual, en el cual algunas facilidades del sistema operativo son ofrecidas mediante DLLs y otras mediante objetos COM, todos los servicios del framework son proporcionados de la misma forma mediante un modelo de programación orientado a objetos. Así mismo, se ha simplificado el modelo de programación, lo que permite a los desarrolladores centrarse en las cuestiones relativas a la lógica de la aplicación; se ha eliminado la necesidad de generar ficheros IDL, gestionar el registro, tratar con GUIDs, interfaces IUnknown, variables HRESULT, etc. Liberar al programador de las cuestiones de infraestructura (aspectos no funcionales). Así, el framework.net se encarga de gestionar automáticamente tales cuestiones como la gestión de la memoria, de los hilos o de los objetos remotos. Proporcionar integración entre diferentes lenguajes. Con el auge de los sistemas distribuidos, la interoperabilidad se ha convertido en una de las principales cuestiones de los desarrolladores de sistemas. El problema de la interoperabilidad ha sido considerado durante muchos años, desarrollándose varios estándares y arquitecturas con diferente nivel de éxito, alguno de los cuales son los siguientes: 9

12 DESCRIPCIÓN GENERAL o Estándares de representación de datos, que solucionan las cuestiones relativas al paso de tipos de datos entre distintas máquinas, tales como los formatos littleendian y big-endian. o Estándares arquitecturales, como RPC, CORBA o COM, que solucionan las cuestiones relativas a la llamada de métodos entre diferentes lenguajes, procesos o máquinas. o Estándares de lenguajes, como ANSI C, que permite la distribución de código fuente entre distintos compiladores y máquinas. o Entornos de ejecución, como los proporcionados por las máquinas virtuales de SmallTalk y Java, que permiten la ejecución en diferentes máquinas físicas proporcionando un entorno de ejecución estandarizado. Sin embargo, ninguno de estos esquemas ha solucionado completamente los problemas asociados con un entorno de computación distribuido, tal como el problema de la interoperabilidad entre lenguajes, entendida esta no como un modelo estandarizado de invocación, como CORBA o COM, sino como un esquema que permite tratar a las clases y objetos de un lenguaje como clases y objetos del propio lenguaje. En la plataforma.net esto es posible, pudiendo, por ejemplo, heredar una clase de Eiffel de otra clase en C#, siendo esencial el papel de los metadatos para conseguir esta integración. En el anexo relativo a las cuestiones generales se muestra un ejemplo. Proporcionar una ejecución multiplataforma..net ha sido diseñado para ser independiente de la plataforma sobre la cual se ejecutaran las aplicaciones, si bien actualmente sólo está disponible el framework.net para las distintas plataformas Windows. Para conseguir este objetivo las aplicaciones.net se compilan a un lenguaje intermedio denominado Lenguaje Intermedio de Microsoft o MSIL (Microsoft Intermediate Language), el cual es independiente de las instrucciones de una CPU concreta. Sistema de despliegue simple. Se ha eliminado la necesidad de tratar con el registro, con GUIDs, etc, de forma que la instalación de una aplicación es tan sencilla como su copia en un directorio. Mejora de la escalabilidad. La gestión por parte del sistema de ejecución de.net de cuestiones como la memoria permite mejorar la escalabilidad. Proporcionar soporte para arquitecturas fuertemente acopladas y débilmente acopladas. Para conseguir un buen rendimiento, escalabilidad y confiabilidad con grandes sistemas distribuidos, hay operaciones en las cuales los componentes están fuertemente acoplados. Sin embargo, también debe soportarse una comunicación débilmente acoplada orientada a mensajes, de forma que una transacción no quede interrumpida o bloqueada por cualquier dependencia en tiempo de ejecución. Proporcionar un mecanismo de errores consistente. En la actualidad, en la plataforma Windows no existe un sistema unificado para el manejo de los errores, de forma que este se realiza mediante códigos de error Win32, mediante la variable HRESULT en COM, o mediante el lanzamiento de excepciones. En.NET todos los errores son manejados mediante un mecanismo de excepciones, el cual permite aislar el código de manejo de errores del resto, permitiéndose la propagación de excepciones entre distintos módulos y lenguajes. Proporcionar un mecanismo de seguridad avanzado. El aumento de la dependencia sobre el código móvil, como los scripts Web, la descarga de aplicaciones de Internet o los 10

13 DESCRIPCIÓN GENERAL correos con binarios adjuntos, ha provocado que el modelo tradicional de seguridad basado en cuentas de usuario haya dejado, en parte, de tener sentido, pues asume que todo el código, ya sea móvil o no, tiene el mismo nivel de confianza. Así, la plataforma.net proporciona un modelo de seguridad basado en la evidencia, que posee un modelo de control de gran granularidad, pudiendo basarse o no en quien escribió el código, que intenta hacer dicho código, donde está instalado, y quién está intentando ejecutar dicho código. El framework.net tiene dos componentes principales: el CLR o lenguaje común en tiempo de ejecución (common language runtime), y la librería de clases base del.net. Sobre esta librería de clases base se sitúa la parte del framework relativa a las interfaces de usuario, que son los Windows Forms para las aplicaciones de ventana y ASP.NET para las aplicaciones Web. A continuación se muestra un esquema que muestra todos estos componentes del framework.net, los cuales serán explicados a lo largo de este documento. ASP.NET Windows Forms Servicios Web Web Forms Controles GDI+ Servicios de Aplicaciones ASP.NET Servicios de Aplicaciones Windows Librería de clases base ADO.NET XML Hilos Entrada/Salida Red Seguridad Objetos Remotos Etc. Lenguaje Común en tiempo de Ejecución (CLR) Gestión de la memoria Sistema de Tipos Común (CTS) Monitorización del ciclo de vida Figura 4.1: Esquema del framework.net 4.2. El lenguaje común en tiempo de ejecución (CLR) El lenguaje común en tiempo de ejecución, o CLR, es el motor de ejecución para las aplicaciones del framework.net. El CLR puede considerarse como el núcleo de dicho framework, desempeñando el papel de una máquina virtual que se encarga de gestionar la ejecución del código y de proporcionar una serie de servicios a dicho código (el código escrito para ajustarse a los servicios del CLR se denomina código gestionado, mientras que el código que no utiliza el CLR se denomina código no gestionado). Entre los servicios proporcionados por el CLR a las aplicaciones.net se encuentran los siguientes: Gestión del código, encargándose de la carga y ejecución del código MSIL. 11

14 DESCRIPCIÓN GENERAL Aislamiento de la memoria de las aplicaciones, de forma que desde el código perteneciente a un determinado proceso no pueda accederse al código o datos pertenecientes a otro proceso, lo que permite que un error en una aplicación no afecte al resto. Verificación de la seguridad de los tipos, garantizando la robustez del código mediante la implementación de un Sistema de Tipos Común o CTS (Common Type System). Conversión del código MSIL al código nativo, utilizándose para ello técnicas de compilación Just In Time (JIT). Acceso a los metadatos, que contienen información sobre los tipos, y sus dependencias, definidos en el código. Gestión automática de la memoria, encargándose de gestionar las referencias de los objetos y de la tareas de recolección de basura (objetos que no serán referenciados nunca más), lo que permite eliminar una de las fuentes de errores más común de las aplicaciones. Asegurar la seguridad en los accesos del código a los recursos, la cual estará en función del nivel de confianza del que goce el código, lo que dependerá de una serie de factores tales como su origen. Manejo de las excepciones, incluyendo las excepciones entre código escrito en diferentes lenguajes. Interoperabilidad con el código no gestionado, lo que incluye desde objetos COM hasta código incluido en DLLs. Soporte de servicios para los desarrolladores, tales como la depuración. El CLR es el que posibilita la integración entre diferentes lenguajes, proporcionando a su vez una mejora en el rendimiento como consecuencia de los servicios que ofrece, tales como la gestión automática de la memoria. El CLR esta formado principalmente por tres componentes: Un Sistema de Tipos Común o CTS, formado por un amplio conjunto de tipos y operaciones que se encuentran presentes en la mayoría de los lenguajes de programación. Un sistema de metadatos, que permite almacenar dichos metadatos junto con los tipos a los que se refieren en tiempo de compilación, así como obtenerlos en tiempo de ejecución. Un sistema de ejecución, que se encarga de ejecutar las aplicaciones del framework.net, haciendo uso del sistema de información de metadatos para desarrollar los servicios tales como la gestión de la memoria. La figura siguiente muestra la relación existente entre los distintos elementos del CLR. Un fichero fuente, como el que se muestra en lo alto del diagrama, podría contener una definición de un nuevo tipo escrito en cualquiera de los lenguajes soportados por.net; a su vez, dicho tipo podría heredar de cualquiera de los tipos de las librerías de.net. Dicho fichero es compilado por un compilador para.net, generando un fichero con código intermedio MSIL y con los metadatos correspondientes a dicho tipo; una vez que este fichero existe, los metadatos podrían ser utilizados para importar dicho tipo, de forma que pueda ser utilizado por cualquiera de los lenguajes de.net. En tiempo de ejecución, el sistema carga el fichero con MSIL, compila el 12

15 DESCRIPCIÓN GENERAL código MSIL a código máquina, y comienza su ejecución, de forma que cualquier referencia a un tipo situado en un fichero de MSIL diferente provoca que dicho fichero sea cargado y leídos sus metadatos, siguiéndose el mismo proceso de ejecución. Ficheros fuente C++, C#, Eiffel, Phyton Compiladores.NET C++, C#, Eiffel, Phyton Fichero ejecutable Metadatos y MSIL Ejecución Motor de ejecución Figura 4.2: Relación de los elementos del CLR Sistema de tipos común (CTS) Para conseguir la interoperabilidad entre lenguajes es necesario adoptar un sistema de tipos común. Así, el sistema de tipos común (CTS) define como se declaran, utilizan y gestionan los tipos en el CLR. El CTS desarrolla las siguientes funciones: Establece un framework que permite la integración entre lenguajes, la seguridad de tipos, y la ejecución de código con un alto rendimiento. Proporciona un modelo orientado a objetos que soporta la implementación de muchos lenguajes de programación. Define una serie de reglas que los lenguajes deben seguir para permitir la interoperabilidad de los mismos Clasificación de tipos El CTS se divide en dos categorías generales de tipos: 13

16 DESCRIPCIÓN GENERAL Tipos Valor. Las instancias de los tipos Valor son almacenadas como la representación de su valor como una secuencia de bits en memoria, careciendo del concepto de identidad. Dentro de los tipos valor se encuentran los predefinidos (implementados por el CLR), los definidos a medida por el usuario, y las enumerados. Tipos Referencia. Las instancias de los tipos Referencia son almacenadas como referencias a la localización de su valor. Los tipos referencia son una combinación de una localización, su identidad, y una secuencia de bits (su valor). Dentro de los tipos referencia se encuentran los tipos interfaz, los tipos punteros, y los tipos autodescriptivos. Los tipos autodescriptivos son aquellos en los cuales es posible obtener el tipo de su valor por inspección; todos los tipos autodescriptivos heredan de la clase base Object, encontrándose dentro de esta categoría los arrays y las clases, dividiéndose esta última en clases definidas por el usuario, tipos Valor encajados (boxed), y los delegados. La siguiente figura muestra esta clasificación: Tipos Tipos Valor Tipos Referencia Tipos Valor Predefinidos Interfaces Tipos Autodecriptivos Tipos Puntero Tipos Valor a Medida Enumerados Tipos Clase Arrays Tipos Valor Encajados (Boxed) Clases a Medida Delegados Figura 4.3: Clasificación de los tipos del CTS En la terminología del framework.net, una instancia de un tipo Valor o de un tipo Referencia es conocida como valor, de forma que el valor de un tipo Valor es su representación binaria, mientras que el valor de un tipo Referencia es la localización de la representación binaria. Cada valor tiene un tipo, el cual define su representación y las operaciones que pueden ser invocadas sobre dicho tipo; sin embargo, en tiempo de ejecución no siempre es posible determinar el tipo de un valor por inspección, como es el caso de los tipos Valor y los tipos Punteros. 14

17 DESCRIPCIÓN GENERAL Definición de tipos Una definición de un tipo construye un nuevo tipo a partir de tipos existentes. Los tipos valor predefinidos, los punteros, arrays y delegados son definidos al ser utilizados, por lo que a estos tipos se les conoce como tipos implícitos. La definición de un tipo incluye los siguientes elementos: Los atributos definidos sobre el tipo (cómo se verá en la sección de los metadatos, los atributos son un mecanismo de extensión de los mismos). La visibilidad del tipo. Un tipo puede ser visible a todos los ensamblados (visibilidad pública), o sólo para el ensamblado que lo define (visibilidad de ensamblado). Nombre del tipo. Un tipo queda definido dentro de un ensamblado, por lo que sólo tiene que ser único dentro del ensamblado. El tipo base del tipo definido. Un tipo definido sólo puede tener un tipo base. Las interfaces implementadas por el tipo. Las definiciones de cada uno de los miembros del tipo. Dentro de un tipo pueden definirse los siguientes miembros: o Eventos. Definen incidentes a los que se puede responder, así como los métodos para suscribirse/de-suscribirse de recibir la notificación del evento, y métodos para la generación del evento. Los eventos son implementados mediante delegados. o Campos (variables). Describen y contienen el valor de un tipo. o Tipos anidados. Definen a un tipo dentro del ámbito del tipo que lo contiene. o Métodos. Definen las operaciones disponibles para un tipo. o Propiedades. Nombran a un valor lógico o al estado de un tipo, y constituyen una alternativa a los tradicionales métodos de acceso/modificación get/set, de forma que internamente las propiedades son mapeadas a métodos get y set. Las propiedades pueden contener lógica interna, así como lanzar excepciones si fuera necesario. La utilización de las propiedades es idéntica a la de los campos, es decir, utilizando la notación punto Objeto.Propiedad Las propiedades son utilizadas frecuentemente para mantener la interfaz pública de un tipo independiente de la representación actual de dicho tipo. A continuación se muestra un ejemplo de una propiedad utilizada para acceder y modificar un campo dni, de forma que si el DNI no contiene 8 dígitos se lanza una excepción: // C# private string dni;... public string DNI { get { return dni; } set 15

18 DESCRIPCIÓN GENERAL } { } if (value.length == 8) { dni = value; } else { throw new DNIMalFormadoException(); } Tipos Valor Los tipos Valor suelen localizarse en la pila de ejecución, y tienen la propiedad de ser tipos sellados (sealed), es decir, no pueden ser extendidos mediante herencia. El framework soporta dos clases de tipos Valor: Tipos valor predefinidos. Dentro de esta clase se sitúan los tipos como los números enteros, de coma flotante, los booleanos, etc. los cuales son idénticos a los tipos primitivos utilizados por los lenguajes de programación. Tipos valor definidos por el usuario. El framework permite definir tipos valor propios, los cuales derivan de System.ValueType. Estos tipos valor, que representan un concepto similar a los tipos expandidos de Eiffel, pueden poseer todos los elementos típicos en la definición de un tipo, es decir, métodos, campos, propiedades, eventos y tipos anidados. Un aspecto a tener en cuenta derivado de la existencia de tipos Valor y tipos Referencia es la posibilidad de pasar de una clase de tipo a la otra. Así, todos los tipos Valor (predefinidos y definidos por el usuario) tienen su correspondiente tipo Referencia, conocido como su tipo encajado (boxed). El valor de cualquier tipo Valor puede ser encajado (boxed) y desencajado (unboxed). El proceso de encaje de un tipo Valor copia los datos de su valor a un objeto con el correspondiente tipo encajado. El proceso de desencaje copia los datos del objeto encajado en un tipo Valor. Debido a que un tipo encajado es una clase, ésta puede implementar interfaces adicionales que añadan funcionalidad a su representación desencajada. A continuación se muestra un ejemplo en C# en el cual puede observarse el proceso de encaje y desencaje de un tipo Valor entero. // C# int x = 0; // Encaje object objx = x; // Desencaje int y = (int)objx; Enumerados Un enumerado es una forma especial de un tipo Valor, el cual hereda de System.Enum y proporciona nombres alternativos para los valores del tipo primitivo entero (con signo o sin él). Un tipo enumerado tiene un nombre, un tipo para sus elementos, y un conjunto de campos, los 16

19 DESCRIPCIÓN GENERAL cuales son campos estáticos que representan a constantes. Sin embargo, a diferencia de los tipos valor, un enumerado no puede ni definir métodos, ni implementar interfaces, ni definir propiedades o eventos Tipos Referencia Los tipos referencia son la combinación de una localización, la cual les dota de identidad, y una secuencia de bits. Las localizaciones, que denotan las áreas de memoria en las cuales los valores pueden ser almacenados, poseen seguridad de tipos, de forma que sólo pueden asignarse tipos compatibles. A continuación se describen los distintos tipos Referencia del CTS. Clases Como en cualquier sistema orientado a objetos, el CTS incluye el concepto de clase. Implícitamente, cualquier clase hereda de System.Object, la cual proporciona una serie de métodos, tales como Equals para determinar la igualdad, GetType para obtener el tipo del objeto, etc. Una clase siempre tiene como clase raíz System.Object, puede heredar como mucho de una única clase, y puede implementar cualquier número de interfaces. Delegados El CTS soporta un tipo de objetos denominados delegados, los cuales tienen una finalidad similar a los punteros a funciones de C++, pero con la diferencia en que estos cuentan con la seguridad del sistema de tipos, de forma que siempre apuntan a un objeto válido, no pudiendo corromper la memoria de otro objeto. Los delegados heredan de System.Delegate, y cuentan con una lista de invocación con los métodos que son ejecutados cuando el delegado es invocado. Los delegados declaran una signatura de un método, de forma que dicho delegado puede referenciar a cualquier método con una signatura coincidente. Los delegados son utilizados en el manejo de eventos y en la realización de callbacks. El anexo relativo a las cuestiones generales contiene ejemplos en los que se muestra el funcionamiento del mecanismo de delegados y de eventos. Arrays Los arrays son definidos especificando el tipo de sus elementos, su número de dimensiones y sus límites inferior y superior para cada dimensión. La definición de cada tipo array, la cual hereda de System.Array, es creada automáticamente por el CLR, de forma que no es necesaria una definición por separado. Interfaces Un tipo interfaz es la especificación parcial de un tipo, actuando como contratos que ligan a los implementadores con lo especificado en la interfaz. Una interfaz puede contener métodos, campos estáticos, propiedades y eventos, diferenciándose de las clases y de los tipos Valor en que no puede contener campos (o variables) de instancia. 17

20 DESCRIPCIÓN GENERAL Punteros El CTS soporta tres tipos de punteros: punteros gestionados, punteros no gestionados, y punteros no gestionados a funciones. Los punteros gestionados son generados al pasar los argumentos por referencia en la llamada a un método. El CTS proporciona dos operaciones que respetan la seguridad de los tipos (type safe) para los punteros: la carga de un valor referenciado por un puntero, y la escritura de un valor a una localización referenciada por un puntero Metadatos Los metadatos son información binaria que describe los tipos implementados por un programa. Los metadatos se almacenan en un fichero Ejecutable Portable (PE) o en memoria, de forma que cuando un fichero con código es compilado, los metadatos son almacenados junto con el código MSIL, de forma que todos los compiladores para.net están obligados a emitir metadatos sobre cada tipo contenido en un fichero fuente. Los metadatos son la evolución de tecnologías como los ficheros IDL, siendo el puente que enlaza el sistema de tipos común (CTS) y el motor de ejecución del.net. Los metadatos solucionan dos de los problemas existentes en muchos de los sistemas actuales basados en componentes, como son que la información sobre los componentes, como los ficheros IDL, son almacenados separados de los componentes, y que la descripción de los componentes que poseen muchos de estos sistemas sólo especifican la sintaxis de sus interfaces, y no su semántica. En.NET se ha solucionado este problema proporcionando un mecanismo de extensión de los metadatos, conocido como atributos, los cuales se explicarán más adelante. Como se ha dicho, los componentes.net almacenan el código MSIL junto con los metadatos, constituyendo así unas unidades autodescriptivas denominadas ensamblados, mediante los cuales se simplifica enormemente el despliegue de las aplicaciones del framework.net. Debido a su importancia, los ensamblados serán explicados más adelante en un apartado específico. Los metadatos proporcionan los siguientes beneficios: Proporcionan ficheros de código autodescriptivos, eliminando la necesidad del registro y manteniéndose siempre sincronizados las descripciones de los tipos y el código que los implementan. Proporcionan la información necesaria para conseguir la interoperabilidad entre distintos lenguajes. Proporcionan la información necesaria que requiere el sistema de ejecución para la gestión de los objetos. Así mismo, los metadatos permiten las invocaciones remotas en la plataforma.net. Mediante los atributos es posible especificar una serie de aspectos que permiten especificar más en detalle como se comporta un programa en tiempo de ejecución Estructura de los metadatos Los metadatos se almacenan en una sección del fichero ejecutable portable (PE), mientras que el código MSIL es almacenado en otra sección. La porción relativa a los metadatos contiene una serie de tablas y estructuras de datos, de forma que en la porción MSIL contiene código MSIL y tokens que referencian a porciones de metadatos. 18

21 DESCRIPCIÓN GENERAL Cada tabla mantiene la información sobre los distintos elementos de un programa, de forma que hay una tabla dedicada a las clases, otra a los campos, etc. Cada fila de una tabla se refiere a un elemento del tipo que es descrito por dicha tabla, de tal manera que dicha fila puede referenciar a otras tablas y estructuras de datos. Los tokens situados en la porción MSIL juegan un papel similar al de los punteros, de forma que cada token apunta a una fila de una tabla Atributos Un atributo es un objeto que representa datos que están asociados a elementos de un programa, tales como tipos, métodos, propiedades, etc. Los atributos son un mecanismo de extensión de los metadatos de un programa, almacenándose dichos atributos con los metadatos del elemento al cual están asociados. Los lenguajes suelen contar con instrucciones que proporcionan información declarativa, tales como los modificadores public y private, los cuales proporcionan información adicional sobre los miembros de una clase (en este caso sobre la visibilidad de los mismos); sin embargo, estos tipos de información declarativa suelen estar predefinidos en el lenguaje, y no pueden ser ampliados por los usuarios del lenguaje. Los atributos constituyen un mecanismo para ampliar estos tipos de información declarativa, los cuales suelen denominarse aspectos. Los aspectos son propiedades que afectan a la semántica o comportamiento del sistema, representando decisiones de diseño que se encuentran entremezcladas entre los aspectos funcionales de un sistema (la lógica de la aplicación) y que son difíciles de encapsular en una unidad de código. Así, ejemplos de aspectos son las características no funcionales de una aplicación, tales como la seguridad, las transacciones, la concurrencia, la persistencia, las optimizaciones en la ejecución, etc. La plataforma.net, con la introducción de los atributos, proporciona soporte a una técnica de programación denominada Programación Orientada a Aspectos, que presenta la ventaja de poder describir con mayor facilidad ciertas características de una aplicación, tales como las propiedades no funcionales. Mediante la Programación Orientada a Aspectos, el desarrollador le indica al CLR las características que necesita, bien en tiempo de programación o de configuración, mediante el uso de atributos, de forma que el CLR interceptará las llamadas a una clase, examinará sus atributos y proporcionara las características demandadas, eliminando la necesidad de escribir código específico para soportar dichas características. Tipos de atributos La plataforma.net posee dos tipos de atributos: los intrínsecos o predefinidos, los cuales son proporcionados como parte del CLR, y los atributos definidos y creados por los usuarios, los cuales son utilizados normalmente junto con el mecanismo de reflexión. Una gran cantidad de atributos predefinidos están relacionados con la interoperabilidad con el código no gestionado (COM, COM+), aunque también existen atributos predefinidos para otra serie de cuestiones, tales como los atributos para indicar las características de serialización de una clase. Utilización de los atributos Los atributos son aplicados a los distintos elementos de un programa entre corchetes, justo antes del elemento sobre el cual son aplicados. A modo de ejemplo, se muestra la siguiente clase en C# que ha sido marcada con el atributo Serializable para indicar que dicha clase puede ser serializada, a excepción de un campo que se marca como no serializable: 19

22 DESCRIPCIÓN GENERAL // C# [Serializable] public class MiClase { int uncampo; [NonSerialized] UnTipo otro campo; }... Los atributos presentan una serie de características relativas a la aplicación de los mismos, las cuales se indican a continuación: Objetivo de un atributo. El objetivo de un atributo son los elementos del programa sobre los cuales puede aplicarse dicho atributo, siendo posible restringir los elementos sobre los cuales puede aplicarse un atributo, pudiendo indicarse que un atributo es aplicable a cualquier elemento, sólo a un ensamblado, o a una clase, o a un método, o a un parámetro, etc., o a una combinación de los anteriores. Heredabilidad de un atributo. Es posible marcar un atributo como heredable o como no heredable, de forma que un atributo heredable que es aplicado a una clase es heredado por sus subclases, y por lo tanto, también es aplicado a dichas subclases. En el caso de tener un atributo del tipo no heredable, éste no es aplicado a las subclases de la clase que contiene al atributo. Múltiples instancias de un atributo. Es posible indicar si múltiples instancias de un mismo atributo pueden ser aplicadas o no a un mismo elemento de un programa. Construcción de atributos Un atributo definido por el usuario no es más que una clase que hereda de System.Attribute, y como tal tiene asociado un constructor, pudiendo tener campos, propiedades, métodos, etc. La instanciación de un atributo tiene lugar al aplicarse entre corchetes sobre un elemento de código, llamándose al constructor del atributo. En el proceso de instanciación es posible pasarle al atributo una serie de parámetros, pudiendo clasificarse estos parámetros en dos grupos: Parámetros obligatorios, los cuales son obtenidos mediante el constructor y pertenecen al tipo de los parámetros posicionales. Parámetros opcionales, los cuales son implementados mediante propiedades y pertenecen al tipo de los parámetros nominados. Para poder definir el conjunto de características que tendrá un atributo, de entre las expuestas en el apartado anterior, se utiliza un meta-atributo (AttributeUsage) mediante el cual se indica el objetivo del atributo, si es heredable y si se permiten múltiples instancias. A modo de ejemplo, a continuación se muestra la definición de un atributo en C# utilizado para indicar que una clase es persistente. Dicho atributo cuenta con un parámetro obligatorio, el nombre de la base de datos, y un parámetro opcional, el nombre de la tabla. Mediante el meta- 20

23 DESCRIPCIÓN GENERAL atributo AttributeUsage se indica que dicho atributo sólo puede ser aplicado a una clase, que no puede ser heredado y que sólo tiene sentido una única instancia del mismo (estos dos últimos parámetros son un ejemplo de parámetros nominados opcionales). // C# [AttributeUsage(AttrubuteTargets.Class, Inherited = false, AllowMultiple = false)] public class PersistenteAttribute : Attribute { private string BD; private string tabla; public PersistenteAttribute(string BD) { this.bd = BD; } } public string Tabla { get { return tabla; } set { tabla = value; } } Este atributo se aplicaría, en la declaración de una supuesta clase Producto, de la siguiente forma: [Persistente("MiBaseDeDatos", Tabla = "Productos")] public class Producto Sistema de ejecución El motor de ejecución del CLR es el responsable de asegurar que el código es ejecutado como requiere, proporcionando una serie de facilidades para el código MSIL como: Carga del código y verificación. Gestión de las excepciones. Compilación Just In Time (JIT). Gestión de la memoria. Seguridad. 21

24 DESCRIPCIÓN GENERAL Lenguaje intermedio MSIL El código intermedio MSIL generado por los compiladores del framework.net es independiente del juego de instrucciones de una CPU específica, pudiendo ser convertido a código nativo de forma eficiente. El lenguaje MSIL es un lenguaje de un nivel de abstracción mucho mayor que el de la mayoría de los lenguajes máquina de las CPUs existentes, incluyendo instrucciones para trabajar directamente con objetos (crearlos, destruirlos, inicializarlos, llamar a métodos virtuales, etc.), instrucciones para el manejo de excepciones, de tablas, etc. La principal ventaja del MSIL es que proporciona una capa de abstracción del hardware, lo que facilita la ejecución multiplataforma y la integración entre lenguajes. Otra ventaja que se deriva del uso de este lenguaje intermedio es la cuestión de la seguridad relativa a la verificación del código, pues el motor de ejecución puede examinar la intención del código independientemente del lenguaje de alto nivel utilizado para generarlo. Sin embargo, dado que las CPUs no pueden ejecutar directamente MSIL, es necesario convertirlo a código nativo de la CPU antes de ejecutarlo Compilación JIT La traducción de MSIL a código nativo de la CPU es realizada por un compilador Just In Time o jitter, que va convirtiendo dinámicamente el código MSIL a ejecutar en código nativo según sea necesario. Este proceso se muestra en la siguiente figura: Código fuente Librería (MSIL y metadatos) Compilador EXE/DLL (MSIL y metadatos) Cargador de clases Solo código pre-jited verificado Compilador JIT con verificación opcional Código nativo gestionado Llamada a un método sin compilar Ejecución Comprobaciones de seguridad Motor de ejecución Figura 4.4: Proceso de compilación del código MSIL 22

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas... .NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS Definiciones...2 C# y Java.....3 Similitudes...4 Ventajas...4 Definiciones Sobre J2EE J2EE (Java 2 Platform Enterprise Edition)

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes Introducción al.net Framework Diseño Basado en Componentes Introducción al.net Framework Arquitectura.NET Herramientas, lenguajes y tecnologías.net.net Framework Ingeniería Informática Universidad Carlos

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

Visual Studio 2008 es el conjunto de herramientas de

Visual Studio 2008 es el conjunto de herramientas de 1. VISUAL STUDIO 2008 Visual Studio 2008 es el conjunto de herramientas de desarrollo y programación creado por Microsoft tanto para aplicaciones Windows como aplicaciones web. La aparición de Visual Studio

Más detalles

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante Modulo 2. Inicio con Java Muchas veces encontramos en nuestro entorno referencias sobre Java, bien sea como lenguaje de programación o como plataforma, pero, que es en realidad Java?, cual es su historia?,

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

Más detalles

HERRAMIENTAS Y ENTORNOS DE PROGRAMACIÓN

HERRAMIENTAS Y ENTORNOS DE PROGRAMACIÓN HERRAMIENTAS Y ENTORNOS DE PROGRAMACIÓN Tema 3. Entornos de Desarrollo. Caso de Estudio: Tecnología.NET Escuela Superior de Informática Ramón Hervás Lucas - Curso 2009/2010 - HyEP 1 Tema 3. Entornos de

Más detalles

FUNDAMENTOS DE PROGRAMACION CON C#

FUNDAMENTOS DE PROGRAMACION CON C# Capítulo 1 FUNDAMENTOS DE PROGRAMACION CON C# El lenguaje C# C# (léase, en inglés C sharp, y en español C almohadilla) es un lenguaje de programación que permite el desarrollo de aplicaciones para Internet,

Más detalles

INTRODUCCIÓN A JAVA. Índice

INTRODUCCIÓN A JAVA. Índice INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java

Más detalles

CONCLUISIONES Y RECOMENDACIONES

CONCLUISIONES Y RECOMENDACIONES CONCLUISIONES Y RECOMENDACIONES CONTENIDO 7.1 Verificación de Hipótesis 7.2 Conclusiones 7.3 Recomendaciones Mónica Cecilia Gallegos Varela - 145 - VERIFICACIÓN DE HIPÓTESIS La hipótesis planteada al inicio

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET LA PLATAFORMA.NET La plataforma.net de Microsoft está diseñada para que se puedan desarrollar componentes software utilizando casi cualquier lenguaje de programación, de forma que lo que escribamos en

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web Arquitectura 1.- Aplicaciones Web Definición Contenidos 1.- Aplicaciones Web 2.- Arquitectura de aplicaciones Web Lo que distingue una aplicación Web de una mero sitio Web reside en la posibilidad que

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO INTRODUCCIÓN Objetivo del curso: El alumno desarrollará la capacidad para resolver problemas de almacenamiento, recuperación y ordenamiento de datos, utilizando las diferentes estructuras que existen para

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

SUPLEMENTO EUROPASS AL TÍTULO

SUPLEMENTO EUROPASS AL TÍTULO SUPLEMENTO EUROPASS AL TÍTULO DENOMINACIÓN DEL TÍTULO Técnico Superior en Desarrollo de Aplicaciones Multiplataforma --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Más detalles

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma DEPARTAMENTO: Informática MATERIA: Programación NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma 1. Objetivos. Competencias Profesionales, Personales y Sociales 1.1 Objetivos del ciclo formativo La

Más detalles

Introducción a Visual Studio.Net

Introducción a Visual Studio.Net Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones

Más detalles

Workflows? Sí, cuántos quiere?

Workflows? Sí, cuántos quiere? Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención

Más detalles

Ley Orgánica de Protección de Datos

Ley Orgánica de Protección de Datos Hécate GDocS Gestión del documento de seguridad Ley Orgánica de Protección de Datos 2005 Adhec - 2005 EFENET 1. GDocS - Gestión del Documento de Seguridad GDocS es un programa de gestión que permite mantener

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE DESCRIPCIÓN Microsoft es una de las principales empresas dedicada al mundo de las tecnologías, haciendo grandes esfuerzos para ponerse a la cabeza de la actualidad

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Autenticación Centralizada

Autenticación Centralizada Autenticación Centralizada Ing. Carlos Rojas Castro Herramientas de Gestión de Redes Introducción En el mundo actual, pero en especial las organizaciones actuales, los usuarios deben dar pruebas de quiénes

Más detalles

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen

Más detalles

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa

Servicio de Alta, Baja, Modificación y Consulta de usuarios Medusa Documentos de Proyecto Medusa Documentos de: Serie: Manuales Servicio de Alta, Baja, Modificación y Consulta del documento: Fecha 22 de febrero de 2007 Preparado por: José Ramón González Luis Aprobado

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

SUPLEMENTO EUROPASS AL TÍTULO

SUPLEMENTO EUROPASS AL TÍTULO SUPLEMENTO EUROPASS AL TÍTULO DENOMINACIÓN DEL TÍTULO Técnico Superior en Desarrollo de Aplicaciones Web --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Más detalles

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado Capítulo VI Estudio de Caso de Aplicación del Integrador de Información Desarrollado 6.1 Organización elegida La Organización elegida para el caso de aplicación, es la empresa CTM Tours del grupo Costamar,

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

Una puerta abierta al futuro

Una puerta abierta al futuro Una puerta abierta al futuro SOA E ITIL EN LA LEY DE ACCESO ELECTRÓNICO DE LOS CIUDADANOS A LOS SERVICIOS PÚBLICOS (LAECSP) por francisco javier antón Vique La publicación de la Ley de Acceso electrónico

Más detalles

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

Plataforma de expediente Electrónico @DOC

Plataforma de expediente Electrónico @DOC MINISTERIO DE LA PRESIDENCIA SUBSECRETARÍA SUBDIRECCIÓN GENERAL DE TECNOLOGÍAS Y SERVICIOS DE LA INFORMACIÓN Plataforma de expediente Electrónico @DOC Arquitectura de Sistemas Control de versiones Versión

Más detalles

Ingeniería de Software. Pruebas

Ingeniería de Software. Pruebas Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en

Más detalles

1: La plataforma.net (.NET Framework)

1: La plataforma.net (.NET Framework) Programació amb C#.NET Jordi Linares i Pellicer 1: La plataforma.net (.NET Framework) Índice! Introducción! Características de.net! Componentes.NET! Plataforma.NET! Ejemplo Introducción! Microsoft.NET

Más detalles

a) Cita y comenta brevemente los grados de acoplamiento. Clasifícalos y ordénalos en orden creciente al nivel de acoplamiento asociado.

a) Cita y comenta brevemente los grados de acoplamiento. Clasifícalos y ordénalos en orden creciente al nivel de acoplamiento asociado. Departamento de Informática y Automática INGENIERÍA DEL SOFTWARE PARTE II: CONCEPTOS TEÓRICOS Y PRÁCTICOS DNI Apellidos y nombre 1. Responde a las siguientes cuestiones (2 puntos): a) Cita y comenta brevemente

Más detalles

Ingeniería de Software en SOA

Ingeniería de Software en SOA Ingeniería de Software en SOA ECSDI LSI-FIB-UPC cbea Curso 2014/2015 ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 1 / 51 Índice 1 Directrices para la IS en SOA 2 Modelo de referencia

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

Studium, Campus Virtual de la Universidad de Salamanca.

Studium, Campus Virtual de la Universidad de Salamanca. Studium, Campus Virtual de la Universidad de Salamanca. Contenidos 1 Qué es Studium 2 Instalación de Studium en USAL 3 Atención a los usuarios 4 Instalación Moodle. MoodleWindowsInstaller 5 Moodle portable

Más detalles

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES?

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES? QUE ES COMLINE MENSAJES? Comline Mensajes es una plataforma flexible, ágil y oportuna, que permite el envío MASIVO de MENSAJES DE TEXTO (SMS). Comline Mensajes integra su tecnología a los centros de recepción

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1 Gerardo Lecaros Felipe Díaz Problemática Petición de salas de forma tradicional Solución J2EE Java 2 Platform, Enterprise Edition

Más detalles

Un primer acercamiento a la CMDB.

Un primer acercamiento a la CMDB. Un Versión primer 1.2 acercamiento a la CMDB. 20/07/2005 Un primer acercamiento a la CMDB. Versión 1.1 1.2 18/02/05 20/02/05 Fecha Jose Autores Carlos Manuel García Viejo García Lobato http://ars.viejolobato.com

Más detalles

Familia de Windows Server 2003

Familia de Windows Server 2003 Familia de Windows Server 2003 Windows Server 2003 está disponible en cuatro ediciones. Cada edición se ha desarrollado para una función de servidor específica, como se describe en la tabla siguiente:

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

Windows Server 2003. Windows Server 2003

Windows Server 2003. Windows Server 2003 Windows Server 2003 Windows Server 2003 Es un sistema operativo de la familia Windows de la marca Microsoft para servidores que salió al mercado en el año 2003. Está basada en tecnología NT y su versión

Más detalles

Introducción a la plataforma.net

Introducción a la plataforma.net Introducción a la plataforma.net Autora: Mª del Pilar Pavón Rosano DNI: 52.923.715-W INTRODUCCIÓN Este artículo está dirigido a los profesores y profesoras del módulo Diseño y Realización de Servicios

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Windows Server 2012: Infraestructura de Escritorio Virtual

Windows Server 2012: Infraestructura de Escritorio Virtual Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información

Más detalles

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

ENTORNO DE DESARROLLO MICROSOFT.NET 2010 ENTORNO DE DESARROLLO MICROSOFT.NET 2010 UNIDAD 2 Estructura de contenidos: 1. Conociendo ASP 2. Sitio Web y Proyecto Web 3. WebForm 4. Características de los webforms 5. Entorno del.net 6. Controles básicos

Más detalles

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV Página 1 de 6 1. OBJETIVO El presente documento tiene la finalidad de citar los beneficios de la migración de la herramienta de análisis de riesgo, mantenimiento e inspección que en lo sucesivo se denominará

Más detalles

10550 Programming in Visual Basic with Microsoft Visual Studio 2010

10550 Programming in Visual Basic with Microsoft Visual Studio 2010 10550 Programming in Visual Basic with Microsoft Visual Studio 2010 Introducción Este curso le enseña sintaxis de lenguaje Visual Basic, estructura de programa e implementación al utilizar Microsoft Visual

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Edición de Ofertas Excel Manual de Usuario

Edición de Ofertas Excel Manual de Usuario Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE

Más detalles

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java C/Comandante Zorita 4 28020 Madrid/ info@ceticsa.es 902 425 524 / 91 700 01 17 Plataforma desarrollo Java Formación elearning tutorizada en castellano JAVA00d Ciclo de formación en plataforma Java Curso

Más detalles

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Introducción a los Servicios Web Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Servicios Web y Soa En un contexto SOA y los servicios web son una oportunidad de negocios en la actualidad.

Más detalles

Master Microsoft Visual Studio.NET Curso elearning tutorizado en castellano

Master Microsoft Visual Studio.NET Curso elearning tutorizado en castellano C/Comandante Zorita 4 28020 Madrid/ info@ceticsa.es 902 425 524 / 91 700 01 17 Master Microsoft Visual Studio.NET Curso elearning tutorizado en castellano VS100e Plan de formación on line Microsoft desarrollador

Más detalles

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA

CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA CAPÍTULO 3 DISEÑO DE LA ARQUITECTURA Para el desarrollo de la arquitectura interna del subsistema de programación de actividades se utilizó como referencia la Arquitectura de Aplicaciones.NET 105 de Microsoft

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia. DISCOS RAID Raid: redundant array of independent disks, quiere decir conjunto redundante de discos independientes. Es un sistema de almacenamiento de datos que utiliza varias unidades físicas para guardar

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

http://www.statum.biz http://www.statum.info http://www.statum.org

http://www.statum.biz http://www.statum.info http://www.statum.org ApiaMonitor Monitor de Infraestructura BPMS Por: Ing. Manuel Cabanelas Product Manager de Apia Manuel.Cabanelas@statum.biz http://www.statum.biz http://www.statum.info http://www.statum.org Abstract A

Más detalles

Fundamentos del diseño 3ª edición (2002)

Fundamentos del diseño 3ª edición (2002) Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software

Más detalles

INTRODUCCIÓN A LA TECNOLOGÍA.NET

INTRODUCCIÓN A LA TECNOLOGÍA.NET INTRODUCCIÓN A LA TECNOLOGÍA.NET CONTENIDO 1.1 Definición de.net 1.2 Evolución de.net 1.3 Compatibilidad de.net con Sistemas Operativos 1.4 Componentes de la plataforma.net MONICA CECILIA GALLEGOS VARELA

Más detalles

Tema 1: y el lenguaje Java 1.Programación orientada a objetos 2.El lenguaje Java 3.Compilación, bytecode y JVMs 4.Entornos de desarrollo Java 5.Java vs otros lenguajes OO Programación orientada a objetos

Más detalles

2524 Developing XML Web Services Using Microsoft ASP.NET

2524 Developing XML Web Services Using Microsoft ASP.NET 2524 Developing XML Web Services Using Microsoft ASP.NET Introducción La meta de este curso es de proveer a los estudiantes con el conocimiento y habilidades requeridas para desarrollar soluciones basadas

Más detalles

SEGURIDAD Y PROTECCION DE FICHEROS

SEGURIDAD Y PROTECCION DE FICHEROS SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD

Más detalles

Unidad 1. Fundamentos en Gestión de Riesgos

Unidad 1. Fundamentos en Gestión de Riesgos 1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.

Más detalles

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:

Más detalles

Proyecto MONO. Juantomás García. 1. Introducción. GNOME Hispano juantomas@lared.es

Proyecto MONO. Juantomás García. 1. Introducción. GNOME Hispano juantomas@lared.es Juantomás García GNOME Hispano juantomas@lared.es Qué es el proyecto MONO?. Estado actual del proyecto. Por qué es interesante para el software libre disponer de la tecnología relacionado con el proyecto

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

IAP 1009 - TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)

IAP 1009 - TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO) IAP 1009 - TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO) Introducción 1. Como se indica en la Norma Internacional de Auditoría 401, "Auditoría en un contexto informatizado", los objetivos globales

Más detalles

GedicoPDA: software de preventa

GedicoPDA: software de preventa GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente

Más detalles

GMF Gestor de incidencias

GMF Gestor de incidencias GMF Gestor de incidencias Contenidos Contenidos... 1 Introducción... 2 El módulo de Gestión de Incidencias... 2 Vista del técnico... 2 Vista de usuario... 4 Workflow o flujo de trabajo... 5 Personalización

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Módulo 2. Inicio con Java

Módulo 2. Inicio con Java Módulo 2. Inicio con Java Objetivos: -Clasificar el lenguaje de programación Java según las formas de clasificar los lenguajes de programación. -Describir el funcionamiento de la plataforma Java. -Explicar

Más detalles

comunidades de práctica

comunidades de práctica 1. Introducción CoSpace es una plataforma web diseñada para proporcionar un espacio virtual de interacción y colaboración entre formadores en comunidades virtuales. Se originó como resultado de las necesidades

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

HERRAMIENTAS DE DESARROLLO

HERRAMIENTAS DE DESARROLLO CONTENIDO 3.1 Estudio de herramientas para el desarrollo de Servicios Web 3.2 Compatibilidad de Herramientas integradas a.net 3.3 Ventajas y desventajas de la integración de código.net MONICA CECILIA GALLEGOS

Más detalles

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es

SCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. microtes@arrakis.es Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática

Más detalles

Diseño orientado a los objetos

Diseño orientado a los objetos Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia

Más detalles

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República Web Services en Java Taller de Programación Instituto de Computación Facultad de Ingeniería Universidad de la República Contenido Motivación y Conceptos Funcionamiento Annotations Desarrollando una aplicación

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles