Upload
tarak
View
41
Download
1
Tags:
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
Rafael Chacón
Juan Danilow
Jesús De Abreu
Alexis Dos Santos
David Zaragoza
Sistemas de Operación III (CI-4822)Prof.: Yudith Cardinale
DCOM
.net
mono
Mar
tes,
06
de F
ebre
ro d
e 20
06
DCOM
• 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
(Distributed Component Object Model)
Historia
DCOM
• 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.
(Distributed Component Object Model)
Bases y Principios (COM)
DCOM(Distributed Component Object Model)
Funcionamiento (COM)
DCOM
• 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”
(Distributed Component Object Model)DCOM
DCOM
DCOM construye una capa que permite hacer llamadas de procedimientos a Objetos remotos (ORPC) basado en la
arquitectura de un RPC normal.
(Distributed Component Object Model)
Funcionamiento
DCOM(Distributed Component Object Model)
Funcionamiento
DCOM
• 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.
(Distributed Component Object Model)
Características
• 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(Distributed Component Object Model)
Características
Variable Descripción
REQUIRES_NEW Se crea una nueva transacción en cada invocación del objeto.
REQUIRED Se crea una nueva transacción si no existe una creada por el llamador.
SUPPORTED Solo se une a una transacción en la que participe su llamador.
NOT_SUPPORTED Nunca se une a una transacción.
DISABLE Nunca se une a una transacción, aunque se indique que lo haga.
DCOM
• 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.
(Distributed Component Object Model)
Ventajas
DCOM
• Problemas de seguridad.
• IDL sin herencia de Objetos.
• Poco soporte para hilos.
• No tiene Servicio de Nombres.
• Futuras aspiraciones.
(Distributed Component Object Model)
Desventajas
DCOM
• 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.
(Distributed Component Object Model)
Importancia
.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
.netEstá 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)
Arquitectura
Arquitectura
Arquitectura
Arquitectura
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
No
n-M
icro
soft
.NE
T
Mic
roso
ft .N
ET
¿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.
What does the name "Mono" mean?
Mono is the word for 'monkey' in Spanish. We
like monkeys.
http://www.mono-project.com/FAQ:_General
¿Por Qué mono?
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
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.
MonoDevelop
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#.
f-spot
Muine
Distribuciones
Gentoo 2006.1
FreeBSD 4.7
Sabayon 2.65.1
Xandros 4.1
Arch Linux
PCLinuxOS (desde apt)
Debian (a partir de etch)
Fedora Core 5
SuSE Linux Enterprise
Desktop 10
openSuSE 9.1
Ubuntu 6.10 (edgy)
Mandriva 2007
… 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.