480 likes | 661 Views
Sistemas de Operación III (CI-4822) Prof.: Yudith Cardinale. DCOM .net mono. Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza. Martes, 06 de Febrero de 2006. DCOM. Historia. (Distributed Component Object Model). OLE (Object Linking and Embedding) 1990.
E N D
Sistemas de Operación III (CI-4822) Prof.: Yudith Cardinale DCOM .net mono Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza Martes, 06 de Febrero de 2006
DCOM Historia (Distributed Component Object Model) • OLE (Object Linking and Embedding) 1990. • COM aparece en el mercado en 1993. • En 1996, Microsoft lanza DCOM. • COM y DCOM se convierten en parte fundamental de Windows NT 4.0 y Windows 2000. • Microsoft cede el control de COM y DCOM a Active X. • El código fuente está disponible, sin cargo alguno, por parte de The Open Group (OSF y X/open) • DCOM fue uno de los mayores competidores de CORBA
Bases y Principios (COM) DCOM (Distributed Component Object Model) • COM es una Plataforma utilizada por Microsoft que permite la interacción entre componentes dentro de un ambiente Windows. • COM permitía a Objetos cruzar los límites de Procesos y Lenguajes, mas no era capaz de ir más allá de Objetos Locales.
Funcionamiento (COM) DCOM (Distributed Component Object Model)
DCOM DCOM (Distributed Component Object Model) • DCOM surge como una extensión para redes de Component Objetc Model (COM) de Microsoft. • Engloba un conjunto de conceptos e interfaces de programas de Microsoft, en el cual Objetos de un Cliente pueden solicitar servicios a un objeto remoto en un Servidor de forma transparente al Programador. • Microsoft suele referirse a DCOM como: • “COM con un gran cable”
DCOM Funcionamiento (Distributed Component Object Model) DCOM construye una capa que permite hacer llamadas de procedimientos a Objetos remotos (ORPC) basado en la arquitectura de un RPC normal.
DCOM Funcionamiento (Distributed Component Object Model)
DCOM Características (Distributed Component Object Model) • El modelo COM permite gran flexibilidad binaria y adaptabilidad entre distintas configuraciones y máquinas. • Seguridad basada en certificados de Internet. • Funciona en LAN, WAN e Internet. • DCOM soporta múltiples protocolos de comunicación, TCP/IP, UDP/IP, IPX/SPX, entre otros. • Debido a que las especificaciones de los métodos están en binario, permite la integración de diversos lenguajes como C++, Java, Visual Basic.
DCOM Características (Distributed Component Object Model) • Sincronización: A través del Mecanismo de Transacciones. • Replicación: Responsabilidad del Programador. • Tolerancia a Fallas: Es soportada por medio de Transacciones automáticas. • Seguridad: Niveles de acceso según el Servicio. • Escalabilidad: Puede escalar hasta grandes piscinas de Servidores y/o robustecerse en las funcionalidades.
DCOM Ventajas (Distributed Component Object Model) • Fácil uso. • Rapidez en el desarrollo. • Reducción de los Costos de Integración. • Reducción de los Costos de Mantenimiento. • DCOM se basa en la tecnología de componentes más usada actualmente. • DCOM es la mejor tecnología de redes para llevar la tecnología de componentes al Internet. • DCOM es una tecnología abierta que se ejecuta en diversas Plataformas.
DCOM Desventajas (Distributed Component Object Model) • Problemas de seguridad. • IDL sin herencia de Objetos. • Poco soporte para hilos. • No tiene Servicio de Nombres. • Futuras aspiraciones.
DCOM Importancia (Distributed Component Object Model) • COM consiste en un Framework maduro, estable y de especificación abierta, que ha sido ampliamente probado y adoptado en todo el Mundo como un estándar por defecto. • COM provee el más rico conjunto de Herramientas de Desarrollo entre una amplia gama de vendedores. • COM está en uso en más de 150 millones de Sistemas alrededor del Mundo.
.net Microsoft .NET Framework es un componente de Software que se integra con Microsoft Windows y provee una amplia gama de código prefabricado que incluye soluciones para el desarrollo de: Interfaces, Acceso a Datos, Criptografía, Aplicaciones Web, Algoritmos Numéricos y Comunicaciones en Redes.
Componentes • Está incluido en un paquete llamado Microsoft .NET Framework 3.0 que consta de los siguientes componentes: • .NET Framework • Microsoft Windows Communication Foundation • Microsoft Windows Presentation Foundation • Microsoft Windows Workflow Foundation
.net Está compuesto fundamentalmente por: The Common Language Runtime: es conocido como CLR y lo podemos ver como un agente que maneja la Ejecución del Código y provee Servicios importantes como: Mecanismos de Seguridad, Manejo de Memoria, Gerencia de Excepciones, Manejo de Hilos y Comunicación Remota. The .NET Framework Class Library: esta es la librería que provee todas las funcionalidades que se nombraron el la definición del Framework.
Características • Provee un ambiente de desarrollo consistente (Ejecución remota o local con Código distribuido a través de la red). • Minimiza los conflictos de versiones entre Códigos Distribuidos. • Trata de eliminar los problemas de poco desempeño de ambientes interpretados. • La comunicación está construida sobre todos los estándares de la industria para dar la mayor compatibilidad con otras Plataformas.
Objetivos de Diseño • Interoperabilidad. • Independencia del Lenguaje. • Seguridad. • Desarrollo Simple.
Arquitectura • Common Language Infrastructure (CLI) • Assemblies • Metadata • Base Class Library (BCL)
Seguridad .NET tiene su propio Sistema de Seguridad con dos características principales: Code Access Security (CAS), y validación y verificación. Code Access Security se basa en la lectura de datos sobre un determinado Assembly. NOTA: Un Código ‘inseguro’ sólo se ejecutará si tiene el permiso 'skip verification’, el cual generalmente lo tienen códigos instalados en la máquina local.
CAS • Regularmente la seguridad está centrada en el usuario (“¿Quién es y qué quiere?”). • En un entorno orientado a componentes, la seguridad debe llegar más lejos. • Algunas preguntas: • ¿Quién generó los ensamblados? • ¿Seguro que hacen lo que se espera de ellos? • ¿Harán algo más? • ¿Tenemos garantías de que el código no se aumenta los privilegios? • ¿Cómo controlamos si accede a recursos locales o remotos fuera más allá de lo establecido?
CAS • CAS es un mecanismo que provee el CLR, centrando la seguridad en el código. • Para invocar determinadas tareas los ensamblados deben tener otorgados ciertos permisos. • Acceder a un recurso, invocar un método de otra clase, etc. • El CLR está notificado de los permisos otorgados a los ensamblados. • En ejecución debe constatar la identidad de los mismos, en base a evidencias que estos presentan: • Sitio de procedencia, certificados digitales, firma (strong name) de autencidad del proveedor, etc.
.NET vs. Java y J2EE • .NET y J2EE tienen muchas similitudes: • Corren usando el Modelo de Pagina Virtual • Corren usando su propio byte-code intermedio. • Microsoft - Microsoft Intermediate Language (MSIL) • Sun - Java bytecode • En .NET, el byte-code siempre es JIT-compiled • En Java, puede ser JIT-compiled o interpretado • .NET corre sobre Plataforma Microsoft Windows • Java es Multiplataforma
.NET vs. Java y J2EE • .NET es código cerrado • La implementación de Java está en transición a GPL (incluyendo librerías, compilador, la Máquina Virtual) • .NET se creó en base al soporte de varios Lenguajes de Programación, siendo su Plataforma target Microsoft Windows. • La Plataforma Java se creó inicialmente para soportar sólo el Lenguaje Java sobre varios Sistemas Operativos, bajo el slogan: • "Write once, run anywhere."
Críticas • Incompatibilidad entre Versiones. Es decir, arreglo de Componentes de Seguridad, Códigos Obsoletos, etc. • Necesita más recursos, que otras aplicaciones con acceso directo a los recursos locales. • Se encuentra muy ligado a Microsoft Windows (Crítica de Negocio). • La Ingeniería-Inversa es mucho más factible sobre este tipo de Frameworks, lo cual obliga a muchos programadores a hacer uso de códigos ofuscados. • Problemas de Licencia.
Lenguajes • C# • Visual Basic .NET • C++/CLI • J# • JScript .NET • Windows PowerShell • IronPython • F# • Ada • APL • Boo • C • Chrome • COBOL • Component Pascal • Borland Delphi Studio • Eiffel • Forth • FORTRAN • Java • Haskell • KPL • Lexico • Lisp • Mercury • Modula-2 • Mondrian • Nemerle • Oberon • Perl • Prolog • Ruby • PHP • RPG • Scala • Scheme • Smalltalk • Standard Microsoft .NET Non-Microsoft .NET
¿Qué es mono? Es un proyecto liderado por Novell (Anteriormente por Ximian) para crear un conjunto de herramientas compatibles con el estándar ECMA, incluyendo un compilador de C# y el Common Language Runtime. Mono se puede usar en Linux, FreeBSD, Unix, Mac OS X, Solaris y Windows.
¿Por Qué mono? What does the name "Mono" mean? Mono is the word for 'monkey' in Spanish. We like monkeys. http://www.mono-project.com/FAQ:_General
Historia • La compañía Ximian (Ahora parte de Novell) se interesó en la tecnología .NET en diciembre 2000. • Al carecer de suficiente personal, se formó el proyecto Open Source mono, en 2001. mono 1.0 fue lanzado en Junio 2004.
Componentes • Consiste de tres grupos: • Core Components • mono/Linux/GNOME Development Stack • Microsoft Compatibility Stack
Componentes Core Components Incluye el compilador de C#, la Máquina Virtual y las “base class libraries”. Esto permite a mono proveer una máquina Virtual CLI.
Componentes Mono/Linux/GNOME Development Stack Son herramientas para el desarrollo de software en Linux, incluyendo GTK# y conectividad a Bases de Datos (MySQL, Oracle, Microsoft SQL Server, entre otros).
Componentes Microsoft Compatibility Stack Provee herramientas para convertir aplicaciones .NET de Windows al ambiente Linux. Incluyendo ADO.Net, ASP.Net y Windows Forms.
Arquitectura Class Library La class library proporciona un conjunto de herramientas para el desarrollo de aplicaciones. Estas herramientas están escritas principalmente en C#, pero gracias al “Common Language Specification” se pueden utilizar en cualquier lenguaje .NET.
Arquitectura Namespaces Son un mecanismo para agrupar clases similares en una estructura jerárquica. Esto evita conflictos de nombres. Esta estructura se implementa utilizando palabras separadas por puntos.
Arquitectura Assemblies Es el empaquetamiento físico de las class libraries. Los namespaces están generalmente distribuidos en varios Assemblies.
Arquitectura CLS (Common Language Specification) Define una interfaz al CLI (Common Language Interface). El compilador de mono genera una imagen que cumple con CLS en Common Intermediate Language. mono runtime toma esta imagen y la ejecuta.
Software • f-spot: Una aplicación de Administración de Imágenes, diseñada para GNOME. • Muine: Un Reproductor de Audio para GNOME. Muine está escrito en C# usando mono y GTK#.
Distribuciones Debian (a partir de etch) Fedora Core 5 SuSE Linux Enterprise Desktop 10 openSuSE 9.1 Ubuntu 6.10 (edgy) Mandriva 2007 Gentoo 2006.1 FreeBSD 4.7 Sabayon 2.65.1 Xandros 4.1 Arch Linux PCLinuxOS (desde apt)
… y Patentes Las partes del Microsoft Compatibility Stack (ADO.Net, ASP.Net) no pertenecen al estándar .Net, sino que fueron desarrolladas por Microsoft sobre .Net. Novell firmó un acuerdo con Microsoft para no ser demandado por infracción de Patente. Sin embargo esto sólo aplica a desarrolladores y usuarios de Novell.