47
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 Martes, 06 de Febrero de 2006

Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

  • Upload
    tarak

  • View
    41

  • Download
    1

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

Page 1: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 2: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 3: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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)

Page 4: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

DCOM(Distributed Component Object Model)

Funcionamiento (COM)

Page 5: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 6: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 7: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

DCOM(Distributed Component Object Model)

Funcionamiento

Page 8: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 9: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

• 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.

Page 10: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 11: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 12: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 13: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

.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.

Page 14: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 15: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

.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.

Page 16: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 17: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Objetivos de Diseño

• Interoperabilidad.

• Independencia del Lenguaje.

• Seguridad.

• Desarrollo Simple.

Page 18: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Arquitectura

• Common Language Infrastructure (CLI)

• Assemblies

• Metadata

• Base Class Library (BCL)

Page 19: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Arquitectura

Page 20: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Arquitectura

Page 21: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Arquitectura

Page 22: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Arquitectura

Page 23: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 24: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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?

Page 25: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 26: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

.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

Page 27: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

.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."

Page 28: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 29: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 30: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

¿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.

Page 31: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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?

Page 32: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 33: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Componentes

Consiste de tres grupos:

Core Components

• mono/Linux/GNOME Development Stack

• Microsoft Compatibility Stack

Page 34: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 35: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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).

Page 36: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Componentes

Microsoft Compatibility Stack

Provee herramientas para convertir aplicaciones .NET de Windows al ambiente

Linux. Incluyendo ADO.Net, ASP.Net y Windows Forms.

Page 37: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Arquitectura

Page 38: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 39: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 40: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Arquitectura

Assemblies

Es el empaquetamiento físico de las class libraries.

Los namespaces están generalmente distribuidos en varios Assemblies.

Page 41: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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.

Page 42: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

MonoDevelop

Page 43: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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#.

Page 44: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

f-spot

Page 45: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

Muine

Page 46: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

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

Page 47: Rafael Chacón Juan Danilow Jesús De Abreu Alexis Dos Santos David Zaragoza

… 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.