Sistemas Distribuidos 1
Sistemas Distribuidos 1
Materia
Lic. Gutiérrez Madrigal José Luis
Lic. Gutiérrez Madrigal José Luis
Docente
Comunicación
Comunicación
Unidad 3A
AL
LU
UM
MN
NO
O
N
NO
O.
. C
CO
ON
NT
TR
RO
OL
L
B
Ba
au
uttiis
stta
a H
He
errn
ná
án
nd
de
ez
z P
Pa
ab
bo
o
1
1!
!!
!"
""
"#
#$
$%
%
Ingeniería en Sistemas Computacionales
Enero - Julio 2017
Te&no'(i&o Na&iona de
Te&no'(i&o Na&iona de
M)*i&o
M)*i&o
Cam+us Pa&,u&a
Cam+us Pa&,u&a
“El Hombre Alimenta el Ingenio- COMUNCAC/N
- COMUNCAC/N
La comunicación entre procesos en sistemas con un único procesador se lleva a cao mediante el uso de memoria compartida entre los procesos! En los sistemas distriuidos" al no #aer cone$ión %ísica entre las distintas memorias de los e&uipos" la comunicación se reali'a mediante la trans%erencia de mensa(es!
Comuni&a&i'n Ciente0Seridor
Comuni&a&i'n Ciente0Seridor
So&2ets
So&2ets
Es un mecanismo de comunicación" )ermite a los sistemas cliente*servidor ser desarrollados Localmente en una sola m+&uina , travs de redes! .unciones tales como impresión" utilerías de red" tales como login / %tp" usualmente usan socets para comunicarse!
Socet designa un concepto astracto por el cual dos programas posilemente situados en computadoras distintas pueden intercamiarse cual&uier 3u(o de datos" generalmente de manera 4ale / ordenada!
5n socet &ueda de4nido por una dirección I)" un protocolo / un número de puerto!
3*+i&a&i'n detaada
3*+i&a&i'n detaada
)ara &ue dos programas puedan comunicarse entre sí es necesario &ue se cumplan ciertos re&uisitos6
• ue un programa sea capa' de locali'ar al otro!
• ue amos programas sean capaces de intercamiarse cual&uier
secuencia de octetos" es decir" datos relevantes a su 4nalidad!
)ara ello son necesarios los tres recursos &ue srcinan el concepto de socet6
• 5n protocolo de comunicaciones" &ue permite el intercamio de
• 5na dirección del )rotocolo de 8ed 9irección I)" si se utili'a el
)rotocolo :C)*I)" &ue identi4ca una computadora!
• 5n número de puerto" &ue identi4ca a un programa dentro de una
computadora!
Los socets permiten implementar una ar&uitectura cliente-servidor! La comunicación #a de ser iniciada por uno de los programas &ue se denomina programa cliente! El segundo programa espera a &ue otro inicie la comunicación" por este motivo se denomina programa servidor! 5n socet es un 4c#ero e$istente en la m+&uina cliente / en la m+&uina servidora" &ue sirve en última instancia para &ue el programa servidor / el cliente lean / escrian la in%ormación! Esta in%ormación ser+ la transmitida por las di%erentes capas de red!
Comuni&a&i'n RPC
Comuni&a&i'n RPC
;tro paso en el dise<o de un sistema operativo distriuido plantea las llamadas a procedimientos remotos o 8)Cs! Los 8)C amplían la llamada local a procedimientos" / los generali'an a una llamada a un procedimiento locali'ado en cual&uier lugar de todo el sistema distriuido! En un sistema distriuido no se deería distinguir entre llamadas locales / 8)Cs" lo &ue %avorece en gran medida la transparencia del sistema!
5na de las di4cultades m+s evidentes a las &ue se en%renta el 8)C es el %ormato de los par+metros de los procedimientos! 5n e(emplo es la posiilidad de &ue" en un sistema distriuido %ormado por di%erentes tipos de ordenadores" un ordenador con %ormato little endian llamara a un procedimiento de otro ordenador con %ormato ig endian" etc! Este prolema se podría solucionar si tenemos en cuenta &ue amos programas conocen el tipo de datos de los par+metros" o estaleciendo un est+ndar en el %ormato de los par+metros" de %orma &ue sea usado de %orma única!
)or último" &ueda por solucionar la tolerancia a %allos! 5na llamada a un procedimiento remoto puede %allar por motivos &ue antes no e$istían" como la prdida de mensa(es o el %allo del cliente o del servidor durante la e(ecución del procedimiento!
La limitación del 8)C m+s clara en los sistemas distriuidos es &ue no permite enviar una solicitud / reciir respuesta de varias %uentes a la ve'" sino &ue la comunicación se reali'a únicamente entre dos procesos! )or motivos de tolerancia a %allos" lo&ueos" u otros" sería interesante poder tratar la comunicación en grupo!
Comuni&a&i'n en (ru+o
Comuni&a&i'n en (ru+o
La comunicación en grupo tiene &ue permitir la de4nición de grupos" así como características propias de los grupos" como la distinción entre grupos aiertos o &ue permiten el acceso / cerrados &ue lo limitan" o como la distinción del tipo de (erar&uía dentro del grupo! Igualmente" los grupos #an de tener operaciones relacionadas con su mane(o" como la creación o modi4cación!
Toeran&ia a 4aos
Toeran&ia a 4aos
ue el sistema de arc#ivos sea tolerante a %allos implica &ue el sistema dee guardar varias copias del mismo arc#ivo en distintos ordenadores para garanti'ar la disponiilidad en caso de %allo del servidor srcinal! ,dem+s" se #a de aplicar un algoritmo &ue nos permita mantener todas las copias actuali'adas de %orma consistente" o un mtodo alternativo &ue sólo nos permita acceder al arc#ivo actuali'ado" como invalidar el resto de copias cuando en cual&uiera de ellas se va/a a reali'ar una operación de escritura! El uso de memorias cac#e para agili'ar el acceso a los arc#ivos tamin es recomendale" pero este caso re&uiere anali'ar con especial atención la consistencia del sistema!
-.1 Paso de mensa5es
-.1 Paso de mensa5es
La apro$imación m+s +sica a la comunicación entre procesos es el paso de mensa(es! En este paradigma" los datos &ue representan mensa(es se intercamian entre dos procesos" un emisor / un receptor!
El paso de mensa(es es el paradigma %undamental para aplicaciones distriuidas! 5n proceso envía un mensa(e &ue representa una petición! El mensa(e se entrega a un receptor" &ue procesa la petición / envía un mensa(e como respuesta! En secuencia" la rplica puede disparar
posteriores peticiones" &ue lleven a sucesivas respuestas" / así en adelante!
Las operaciones +sicas necesarias para dar soporte al paradigma de paso de mensa(es son enviar / reciir! )ara comunicaciones orientadas a cone$ión" tamin se necesitan las operaciones conectar / desconectar! Los detalles sore las operaciones" tales como argumentos o valores de retorno" se dar+n (unto a las respectivas #erramientas / %uncionalidades en los capítulos posteriores! )or medio del grado de astracción proporcionado por este modelo" los procesos interconectados reali'an la entrada / la salida #acia el otro proceso" de una %orma similar a la utili'ada en la entrada*salida E*S de 4c#eros! Como en el caso de la E*S de 4c#eros" las operaciones sirven para encapsular el detalle de la comunicación a nivel del sistema operativo" de %orma &ue el programador puede #acer uso de operaciones para enviar / reciir
mensa(es sin preocuparse por el detalle su/acente!
La inter%a' de programación de aplicaciones de socets &ue se estudiar+ en el Capítulo = se asa en este paradigma! 5sando un socet" una construcción lógica" dos procesos pueden intercamiarse datos de la siguiente %orma6 5n emisor escrie o inserta un mensa(e en el socet> en el otro e$tremo" un receptor lee o e$trae un mensa(e del socet!
La implementación de nuestro sistema de suastas usando paso de mensa(es / el paradigma cliente-servidor se descriir+ en la pró$ima sección!
Los procesos de un S!;! pueden comunicarse entre sí al compartir espacios de memoria" /a sean variales compartidas o u?ers" o a
travs de las #erramientas provistas por las rutinas de comunicación de interprocesos!
)ara comunicar procesos en un amiente distriuido" adem+s del uso de un sistema de nomres de recursos" se necesita un es&uema de comunicación lógico &ue d sentido a estas transacciones! El sistema operativo provee mínimamente dos primitivas" enviar / reciir" normalmente llamadas send / receive" pero tendr+ &ue implementar un enlace de comunicación entre los procesos! Este enlace puede ser unidireccional o multidireccional según permita la comunicación en solo uno o en varios sentidos" / dependiendo de la %orma en &ue se dispara la comunicación!
Comuni&a&i'n S6n&rona.
Comuni&a&i'n S6n&rona.
uien envía permanece lo&ueado esperando a &ue llegue una respuesta del receptor antes de reali'ar cual&uier otro e(ercicio!
Comuni&a&i'n As6n&rona.
Comuni&a&i'n As6n&rona.
uien envía continúa con su e(ecución inmediatamente despus de enviar el mensa(e al receptor!
Comuni&a&i'n Persistente.
Comuni&a&i'n Persistente.
El receptor no tiene &ue estar operativo al mismo tiempo &ue se reali'a la comunicación" el mensa(e se almacena tanto tiempo como sea necesario para poder ser entregado!
Comuni&a&i'n
Comuni&a&i'n T
Transitoria.
ransitoria.
El mensa(e se descarta si el receptor no est+ operativo al tiempo &ue se reali'a la comunicación! )or lo tanto" no ser+ entregado!
Comuni&a&i'n Dire&ta.
Comuni&a&i'n Dire&ta.
Las primitivas enviar / reciir usan directamente el nomre del proceso
@enviar mensa(e" , envía un mensa(e al proceso ,! ;srvese &ue la primitiva sólo dee especi4car cu+l va a ser el proceso 9estino" /a &ue el proceso %uente viene direccionado en la comunicación!A
Las operaciones +sicas Send / 8eceive se de4nen de la siguiente manera6 Send )" mensa(e> envía un mensa(e al proceso )! 8eceive " mensa(e> espera la recepción de un mensa(e por parte del proceso !
Comuni&a&i'n ndire&ta.
Comuni&a&i'n ndire&ta.
Es a&uella donde la comunicación est+ asada en un gateBa/" enrutador" puente o sBitc#" /a &ue el emisor / el receptor est+n a distancia!
Comuni&a&i'n Sim)tri&a.
Comuni&a&i'n Sim)tri&a.
:odos los procesos pueden enviar o reciir! :amin estalece una llamada idireccional para el caso de dos procesos!
Comuni&a&i'n Asim)tri&a.
Comuni&a&i'n Asim)tri&a.
5n proceso puede enviar" los dem+s procesos solo recien! :amin llamada unidireccional o no interactiva! Es el es&uema típico de algunos servidores de Internet!
Comuni&a&i'n &on uso de bu7ers automáti&o.
Comuni&a&i'n &on uso de bu7ers automáti&o.
El transmisor se lo&uea #asta &ue el receptor recie el mensa(e completo" pero ste tiene capacidad para reciirlo" aun&ue no est listo para procesarlo!
La comunicación / sincroni'ación en S!;!9! es m+s comple(a / se estalece en canales lentos / menos con4ales &ue los uses internos de una computadora" lo &ue incorpora prolemas como la prdida de mensa(es" la llegada de datagramas desordenados" la #eterogeneidad de los nodos / su di%erente rendimiento" etc!
La %orma natural de comunicar / sincroni'ar procesos en los sistemas distriuidos es mediante paso de mensa(es> los procesos intercamian
mensa(es mediante las primitivas &ue adem+s estalecen una e$tensión de los sem+%oros en la &ue se transmite m+s in%ormación en un conte$to sincroni'ado!
5na de las venta(as de emplear mecanismos de comunicación / sincroni'ación asados en paso de mensa(e es la portailidad de las soluciones programadas para di%erentes ar&uitecturas de computadoras" incluidos los sistemas con memoria compartida" otra venta(a es &ue no e$iste el prolema del acceso en e$clusión mutua a datos compartidos"
/a &ue no #a/ contienda por el acceso al recurso" sino una 4la en espera!
5n sistema operativo o lengua(e de programación podría o%recer #erramientas" algunas asadas en memoria compartida / otras asadas en la comunicación mediante paso de mensa(es" por lo &ue podríamos llegar a tener un mismo proceso o #ilo &ue empleara las dos posiilidades! Los siguientes son aspectos relevantes en el dise<o de los sistemas de paso de mensa(es6
• Identi4cación en el proceso de comunicación! • Sincroni'ación!
• Características del canal capacidad" 3u(o de datos" etc!
-.! Ob5etos distribuidos
-.! Ob5etos distribuidos
aitualmente" los sistemas distriuidos se #an venido constru/endo utili'ando conceptos utili'ados en los sistemas operativos tradicionales! El concepto de proceso / los mecanismos de comunicación entre procesos son los m+s destacales!
En los últimos tiempos" el auge de las tecnologías orientadas a o(etos #a llevado a los dise<adores a plantearse la %orma en &ue pueden aplicarlas para la construcción de sistemas distriuidos! La aplicación de dic#as tecnologías no se #a detenido en la construcción en sí del sistema distriuido" sino en la %orma &ue ste proporciona sus servicios / en la manera en &ue se constru/en las aplicaciones de usuario!
El prolema &ue surge inmediatamente es cómo construir el sistema distriuido para &ue cura dic#as e$pectativas! La construcción se
deer+ reali'ar as+ndose en uno de los dos modelos siguientes6 el modelo de procesos o cliente*servidor o el modelo de o(etos!
Modeo basado en ob5etos
Modeo basado en ob5etos
El modelo asado en o(etos a%ronta la construcción del sistema identi4cando las astracciones clave del dominio del prolema! 9ic#as entidades son vistas como agentes autónomos &ue colaoran para llevar a cao un comportamiento de nivel superior!
El modelo asado en o(etos pone n%asis en la identi4cación / caracteri'ación de los componentes del sistema" &ue ser+n modelados con o(etos! In%ormalmente" se puede de4nir un o(eto como una colección %ormada por una serie de datos / un con(unto de operaciones de4nidas sore ellos" de tal manera &ue se garanti'a la ocultación de los detalles internos!
)ara alterar el estado de un o(eto" se tendr+ &ue invocar la operación apropiada" de tal %orma &ue el con(unto de las operaciones de4nidas para un o(eto de4nir+ colectivamente su comportamiento! El
mecanismo de encapsulación de los o(etos se encarga de &ue esto sea así!
:amin se pueden utili'ar los mecanismos de #erencia / polimor4smo como #erramientas adicionales de estructuración para el dise<o / construcción de sistemas distriuidos! La aplicación de conceptos de orientación a o(etos tal cual para la construcción de sistemas distriuidos es denominada en DFGH apro$imación aplicativa! 5n e(emplo cl+sico del uso de estos mecanismos es el sistema operativo C#oices DCI8GK!
El modelo asado en o(etos no di4ere del tradicional paradigma de ;; en el &ue cada entidad es un o(eto con una inter%a' de mensa(es &ue proporcionan sus operaciones! En el modelo asado en o(etos para los sistemas distriuidos" cada recurso compartido se representa como un o(eto! Los o(etos son identi4cados de %orma unívoca / se pueden mover por la red sin camiar su identidad! Cuando un proceso re&uiere el acceso a un recurso" envía un mensa(e al o(eto correspondiente! Este mensa(e es despac#ado al mtodo adecuado &ue resuelve la petición / envía un mensa(e de respuesta al proceso adecuado!
El modelo asado en o(etos es simple / 3e$ile! ;%rece una visión uni%orme de todos los recursos! Como en los modelos descritos
anteriormente" los o(etos pueden actuar como clientes / servidores! Sin emargo" en el modelo cliente*servidor" el es&uema de nomrado de los recursos dependía del gestor mientras &ue a&uí todos los recursos se re%erencian de manera uni%orme!
-.!.1 RM
-.!.1 RM
8I 8emote et#od Invocation DSunGM %ue dise<ado para permitir la invocación de mtodos remotos de o(etos entre distintas m+&uinas Java uicadas en el mismo o en distintos computadores de manera
transparente! Integra directamente un modelo de o(etos distriuidos en el lengua(e Java a travs de un con(unto de clases e inter%aces!
5n o(eto 8I es un o(eto cu/os mtodos pueden ser invocados desde otra m+&uina Java" incluso a travs de una red! Cada o(eto remoto implementa una o m+s inter%aces remotas &ue especi4can &u operaciones pueden ser invocadas por los clientes! Cual&uier otra operación púlica &ue tenga el o(eto pero &ue no apare'ca en la inter%a' remota no podr+ ser utili'ada por los clientes remotos! Los clientes invocan dic#os mtodos e$actamente igual &ue si %ueran mtodos locales" &uedando ocultos los detalles de la comunicación! Se utili'an los denominados sustitutos stu / es&ueletos seleton" &ue actúan de intermediarios entre los o(etos local / remoto! Los sustitutos / los es&ueletos son generados de manera autom+tica por el compilador rmic!
9esde el punto de vista del programador" los o(etos remotos se manipulan de la misma manera &ue los locales" a travs de re%erencias! 8ealmente" una re%erencia a un o(eto remoto apunta a una re%erencia a un sustituto local &ue lo representa" / &ue es el encargado de transmitir los par+metros de la invocación al computador remoto / reciir de l el valor de retorno! La manipulación de o(etos remotos tiene &ue tener en cuenta6
Cómo otener una re%erencia a un o(eto remoto!
Festión de e$cepciones especí4cas de la invocación de mtodos remotos!
)or su parte" un es&ueleto es el encargado de recoger los par+metros &ue recie del sustituto a travs de la red" invocar de manera local al o(eto remoto / devolver el resultado de nuevo a travs de la red al sustituto del o(eto &ue reali'ó la invocación!
, di%erencia de una invocación local" una invocación 8I pasa los o(etos locales &ue %orman parte de la lista de par+metros por copia por valor" dado &ue una re%erencia a un o(eto local sólo sería útil en una m+&uina virtual única! 8I utili'a el servicio de seriali'ación de o(etos para
aplanar el estado de un o(eto local / colocarlo en el mensa(e a enviar a la m+&uina virtual remota! Si el o(eto es no-seriali'ale" no se puede usar como par+metro! :amin son pasados por valor los par+metros de tipos primitivos! )or otro lado" 8I pasa los o(etos remotos o(etos &ue implementan una inter%a' remota por re%erencia!
8I proporciona inter%aces / clases para uscar o(etos remotos" cargarlos / e(ecutarlos de manera segura! ,dicionalmente" proporciona un servicio de nomrado un tanto primitivo servicio de nomrado no persistente / espacio de nomres plano &ue permite locali'ar o(etos remotos / otener re%erencias a ellos" de manera &ue se puedan invocar sus mtodos!
La utili'ación de o(etos remotos lleva consigo la aparición de nuevas situaciones de error" de tal %orma &ue el programador deer+ mane(ar el con(unto de nuevas e$cepciones &ue pueden ocurrir durante una invocación remota!
8I inclu/e una característica de recolección de asura distriuida" &ue recolecta a&uellos o(etos servidores &ue no son re%erenciados por ningún cliente de la red!
-.!.! CORBA
-.!.! CORBA
C;8, Common ;(ect 8e&uest roer ,rc#itecture D;FGG es una especi4cación de4nida por el ;F ;(ect anagement Froup para la creación / uso de o(etos remotos" cu/o o(etivo en proporcionar interoperailidad entre aplicaciones en un entorno distriuido / #eterogneo! ;F es el ma/or consorcio mundial de compa<ías de so%tBare alrededor de M00 entre las &ue destaca la ausencia de icroso%t" &ue tiene su propia plata%orma de o(etos distriuidos6 9C; 9istriuted Component ;(ect odel" odelo de ;(etos Componentes 9istriuido!
Es conocido como un tipo de @middleBareA" /a &ue no reali'a las %unciones de a(o nivel necesarias para ser considerado un sistema operativo! , pesar de &ue dee %uncionar sore sistemas operativos tradicionales" reali'a muc#as de las operaciones &ue tradicionalmente se #an considerado del dominio de los sistemas operativos para entornos distriuidos!
Los o(etos C;8, se di%erencian de los o(etos de los lengua(es #aituales de programación en &ue6
•
pueden estar locali'ados en cual&uier lugar de la red"
• pueden e(ecutarse en cual&uier plata%orma #ardBare sistema
operativo" /
• pueden estar escritos en cual&uier lengua(e!
5n cliente puede utili'ar un o(eto C;8, sin saer dónde est+ ni en &u lengua(e #a sido implementado> lo único &ue tiene &ue conocer es la inter%a' &ue pulica dic#o o(eto!
El cora'ón de C;8, es su ;8 ;(ect 8e&uest roer! El ;8 es el responsale de6
• uscar la implementación del o(eto servidor! • )repararlo para reciir la petición!
• )oner en contacto el cliente con el servidor!
• :ransportar los datos par+metros / valores de retorno entre uno
/ otro" trans%orm+ndolos adecuadamente!
En de4nitiva" es el responsale de &ue ni cliente ni servidor necesiten conocer ni la locali'ación ni el lengua(e de implementación del otro!
Los o(etos C;8, se tienen &ue de4nir con el lengua(e de de4nición de inter%aces I9L Inter%ace 9e4nition Language &ue" como su propio nomre indica" se limita a de4nir la inter%a' del o(eto / no su implementación! La de4nición del o(eto inclu/e la de4nición de sus atriutos" sus mtodos denominados operaciones / las e$cepciones &ue eleva! La implementación del o(eto se tiene &ue reali'ar con algún lengua(e de programación &ue tenga enlaces con I9L en la actualidad e$isten enlaces con lengua(es como C" C" Java" Smalltal" ,da" etc!!
I9L proporciona #erencia múltiple de inter%aces" de manera &ue las inter%aces derivadas #eredan las operaciones / los tipos de4nidos en las inter%aces ase! :odas las inter%aces derivan de una inter%a' raí'" denominada ;(ect" la cual proporciona servicios &ue son comunes a todos los o(etos C;8," como duplicación / lieración de re%erencias a o(etos" etc!
La compilación de una de4nición de o(etos en I9L genera" entre otras cosas" un sustituto stu / un es&ueleto seleton" para el cliente / servidor" respectivamente! El sustituto crea una petición de servicio al ;8 a instancias del cliente / representa al o(eto servidor! El es&ueleto" por su parte" entrega las peticiones a la implementación del o(eto C;8,!
Es posile utili'ar para la de4nición de los o(etos una serie de tipos asicos / construidos &ue no tienen la categoría de o(etos / &ue son similares a otros tipos encontrados en la ma/oría de los lengua(es de programación6 c#ar" oolean" arra/" struct" etc!
Las inter%aces de o(etos se almacenan en un repositorio de inter%aces I8" Inter%ace 8epositor/" &ue proporciona un almacenamiento
persistente de las declaraciones de inter%aces reali'adas en I9L! Los servicios proporcionados por un I8 permiten la navegación por la (erar&uía de #erencia de un o(eto / proporcionan la descripción de
todas las operaciones soportadas por un o(eto!
La %unción principal del I8 es proporcionar la in%ormación de tipos necesaria para reali'ar peticiones utili'ando la Inter%a' de Invocación 9in+mica" aun&ue puede tener otros propósitos" como servir de almacenamiento de componentes reutili'ales para los desarrolladores de aplicaciones!
La compilación de las declaraciones I9L en algún lengua(e de programación permite a los clientes invocar operaciones en o(etos conocidos" pero algunas aplicaciones necesitan poder reali'ar llamadas a o(etos sin tener conocimiento de sus inter%aces en tiempo de compilación! En esencia" la Inter%a' de Invocación 9in+mica 9II" 9/namic Invocation Inter%ace es un stu genrico de clientes capa' de enviar cual&uier petición a cual&uier o(eto" interpretando en tiempo de e(ecución los par+metros de la petición / los identi4cadores de la operación!
C;8, permite &ue la implementación de los o(etos sea todo lo variada &ue se &uiera! En unos casos" varias inter%aces I9L pueden estar
puede estar implementada por una serie de programas" uno para cada operación!
5n ,daptador de ;(etos ;," ;(ect ,dapter proporciona los medios por los &ue varios tipos de implementaciones de o(etos utili'an los servicios del ;8" como por e(emplo6
• generación de re%erencias de o(etos! • invocación de mtodos de o(etos! • seguridad!
• activación / desactivación de o(etos e implementaciones!
9ependiendo del ;8 su/acente" un ;, puede elegir entre
proporcionar estos servicios delegando en el ;8 o reali'ando el traa(o l mismo! En cual&uier caso" las implementaciones de los o(etos no van a estar al tanto de la di%erencia" /a &ue únicamente usan la inter%a' proporcionada por el ;,!
)ara &ue un cliente pueda reali'ar una petición a un o(eto servidor" deer+ utili'ar una re%erencia al o(eto! 5na re%erencia siempre re4ere el mismo o(eto para la &ue %ue creada" durante tanto tiempo como e$ista el o(eto! Las re%erencias son tanto inmutales como opacas" de manera &ue un cliente no puede @entrarA en una re%erencia / modi4carla! Sólo el ;8 sae &ue es lo &ue #a/ @dentroA de la re%erencia!
Cuando se pasan o(etos como par+metros en invocaciones a mtodos" lo &ue realmente se pasan son re%erencias a dic#os o(etos! El paso de o(etos como par+metro es" por tanto" por re%erencia!
En la última revisión importante de C;8, revisión 2!K" de Junio de 1GGG se introdu(o la propuesta de o(etos-por-valor o(ects-/-value" &ue e$tienden el modelo de o(etos de C;8, tradicional para permitir el paso de o(etos por valor dentro de los par+metros de los mtodos! )ara conseguirlo se introduce un nuevo tipo I9L denominado el tipo valor value!
Cuando un ;8 encuentra un o(eto de tipo valor dentro de un par+metro" autom+ticamente pasa una copia del estado del o(eto al
receptor! En contraste" el ;8 pasar+ por re%erencia cual&uier o(eto declarado vía una inter%a' I9L!
5n tipo valor se puede entender a medio camino entre una inter%a' I9L / una estructura del estilo de las del lengua(e C! La sinta$is del valor permite especi4car algunos detalles de implementación por e(emplo" su estado" &ue no %orman parte de una inter%a' I9L! ,dem+s" se pueden especi4car mtodos locales para operar con dic#o estado! , di%erencia de las inter%aces" los mtodos de los tipos valor no pueden ser invocados remotamente!
Los C;8,services son un con(unto de servicios &ue aumentan / complementan los servicios proporcionados por el ;8! :odos ellos son accesiles a travs de un con(unto de inter%aces especi4cadas en I9L! Se relacionan" a continuación" los servicios incluidos en el est+ndar6
Li%e C/cle Service6 de%ine las operaciones para crear" copiar" mover /
eliminar o(etos!
)ersistence Service6 proporciona una inter%a' para almacenar
o(etos de manera persistente en una amplia variedad de servidores de almacenamiento6 ases de datos orientadas a o(etos ;9Ss" ases de datos relacionales 89Ss / 4c#eros tradicionales!
Naming Service6 permite a los o(etos locali'ar otros o(etos" incluso
utili'ando servicios de directorio como O!P00" NIS" N9S" L9,)" etc!
Event Service6 permite a los o(etos registrar din+micamente su
inters por eventos especí4cos! Este servicio de4ne el o(eto
denominado event c#annel" &ue recolecta / distriu/e eventos entre los o(etos" &ue no necesitar+n conocerse entre sí!
Concurrenc/ Control Service6 proporciona un gestor de cerraduras
loc" en ingls!
:ransaction Service6 proporciona una coordinación de dos %ases
tBo-p#ase commit utili'ando transacciones planas o anidadas!
8elations#ip Service6 proporciona una %orma de crear asociaciones
din+micas entre o(etos &ue no se conocen entre sí!
E$ternali'ation Service6 proporciona una manera est+ndar de
introducir*enviar al e$terior datos de un o(eto utili'ando un mecanismo de tipo 3u(o de /tes stream!
uer/ Service6 proporciona operaciones de consulta sore o(etos!
Licensing Service6 proporciona operaciones para medir la utili'ación
de o(etos para asegurar una compensación (usta por su uso! )ermite controlar el coste por sesión" por nodo" por creación de instancia" etc!
)roperties Service6 proporciona operaciones &ue permiten asociar
valores con nomre propiedades a cual&uier o(eto!
:ime Service6 proporciona inter%aces para sincroni'ar relo(es en un
entorno de o(etos distriuidos! :amin proporciona operaciones para de4nir / gestionar eventos dependientes del tiempo!
Securit/ Service6 proporciona seguridad en el entorno de o(etos
distriuidos" soportando autenticación" listas de control de acceso" con4dencialidad" etc!
:rader Service6 proporciona @p+ginas amarillasA para los o(etos!
)ermite a los o(etos pulicitar sus servicios / pu(ar por la reali'ación de traa(os!
Collection Service6 proporciona inter%aces para crear / manipular las
collecciones m+s comunes!
-.!.- COM
-.!.- COM
C; Component ;(ect odel DicGP es la tecnología de de4nición / manipulación de componentes de icroso%t &ue proporciona un modelo de programación / un est+ndar inario para los mismos! 9C; DicGM de 9istriuted C; es la tecnología &ue e$tiende C; para permitir a los o(etos componentes residir en m+&uinas remotas / est+ disponile desde la aparición de QindoBs N: =!0! , partir de a#ora se utili'ar+n los trminos C; / 9C; indistintamente!
5n o(eto C; se de4ne en trminos de las inter%aces individuales &ue soporta una o m+s / &ue est+n de4nidas en la clase o(eto clase a la &ue pertenece! Cada inter%a' est+ identi4cada por un identi4cador único II9" Inter%ace Identi4er" &ue es un caso particular de identi4cador gloal / único F5I9" Floal 5ni&ue Identi4er! Los F5I9 son valores de 12M its &ue se garanti'an únicos estadísticamente en el espacio / en el tiempo!
Las inter%aces son el único medio de interactuar con un o(eto C;! 5n cliente &ue desea utili'ar los servicios de un o(eto #ar+ de otener primero un puntero a una de sus inter%aces!
Los o(etos clase implementan una o m+s inter%aces / se identi4can por un identi4cador de clase CLSI9" Class Identi4er! Los CLSI9 son tamin un caso particular de F5I9! Con el 4n de &ue un cliente pueda crear un o(eto C;" es necesario descriir su clase utili'ando el lengua(e de de4nición de inter%aces I9L" Inter%ace 9e4nition Language! La
compilación de dic#a descripción genera un representante pro$/ para los clientes / un sustituto stu para el servidor!
C; no proporciona la #erencia como instrumento para lograr la reutili'ación! En su lugar proporciona los mecanismos de contención / agregación! El polimor4smo es conseguido cuando di%erentes clases soportan la misma inter%a'" permitiendo a una aplicación utili'ar el mismo código para comunicarse con cual&uiera de ellas!
El o(etivo principal de C; es proporcionar un medio por el &ue los clientes pueden #acer uso de los o(etos servidores" sin tener en cuenta &ue pueden #aer sido desarrollados por di%erentes compa<ías
utili'ando di%erentes lengua(es de programación! Con el 4n de lograr este nivel de interoperailidad" C; de4ne un est+ndar inario" &ue especi4ca cómo se dispone un o(eto en memoria principal en tiempo de e(ecución! Cual&uier lengua(e &ue pueda reproducir dic#a disposición en memoria podr+ crear o(etos C;!
,dem+s del o(etivo de la interoperailidad" C; tiene otros o(etivos6
• )roporcionar una solución para los prolemas de versiones /
evolución!
• )roporcionar una visión del sistema de los o(etos! • )roporcionar un modelo de programación singular! • )roporcionar soporte para capacidades de distriución!
En el modelo de programación C;" los clientes C; se conectan a uno o m+s o(etos C;! Cada o(eto C; e$pone sus servicios a travs de una o m+s inter%aces" &ue no son m+s &ue agrupaciones de %unciones relacionadas sem+nticamente!
La implementación compilada de cada o(eto C; est+ contenida en un módulo inario e$e o dll denominado servidor C;! 5n único servidor
C; es capa' de contener la implementación compilada de varios o(etos C;!
5n servidor C; puede estar enla'ado al proceso cliente in-process server" puede e(ecutarse en un proceso distinto del cliente pero en la misma m+&uina local server o ien" puede e(ecutarse en un proceso separado en una m+&uina distinta" incluso en un sistema operativo distinto remote server! )ara la comunicación con o(etos situados en espacios de direcciones distintos del espacio de direcciones del cliente" se utili'an intermediarios en la %orma de representantes / sustitutos!
El modelo de programación C; de4ne &ue un servidor C; dee e$poner o(etos C;" un o(eto C; dee e$poner sus servicios / un cliente C; dee usar los servicios de o(etos C;!
)ara comunicarse con un o(eto &ue no es local" C; emplea un mecanismo de comunicación entre procesos &ue es transparente a la aplicación" incluso en lo relativo a la locali'ación del o(eto!
:odos los o(etos C; tienen &ue implementar una inter%a' particular" denominada I5nnoBn! Esta inter%a' es el cora'ón de C; / es utili'ada para negociación de inter%aces en tiempo de e(ecución preguntar al o(eto &u inter%aces soporta / otener punteros a las mismas" gestión del ciclo de vida del o(eto / agregación!
Cada o(eto mantiene una cuenta de re%erencia &ue es incrementada cada ve' &ue un cliente solicita un puntero para una inter%a' o pasa una re%erencia al mismo! Cuando la inter%a' de(a de ser utili'ada por el cliente" la cuenta de re%erencia se decrementa! Las operaciones de incremento / decremento son reali'adas de manera e$plícita por el cliente invocando %unciones pertenecientes a la inter%a'!
-.- S6n&rona 8 as6n&rona
-.- S6n&rona 8 as6n&rona
Síncrona Síncrona
La transmisión síncrona es una tcnica &ue consiste en el enviar una trama de datos con(unto de caracteres &ue con4gura un lo&ue de in%ormación comen'ando con un con(unto deits de sincronismo SRN / terminando con otro con(unto de its de 4nal de lo&ue E:! En este caso" los its de sincronismo tienen la %unción de sincroni'ar los relo(es e$istentes tanto en el emisor como en el receptor" de tal %orma &ue estos controlan la duración de cada it / car+cter!
9ic#a transmisión se reali'a con un ritmo &ue se genera
centrali'adamente en la red / es el mismo para el emisor como para el receptor! La in%ormación se transmite entre dos grupos" denominados delimitadores M its!
Características
Los lo&ues a ser transmitidos tienen un tama<o &ue oscila entre 12M / 1"02= /tes! La se<al de sincronismo en el e$tremo %uente" puede ser generada por el e&uipo terminal de datos o por el módem! Cuando se transmiten lo&ues de 1"02= /tes / se usan no m+s de 10 /tes de caecera / terminación" el rendimiento de transmisión supera el GG por 100!
enta(as
• )osee un alto rendimiento en la transmisión
• Son aptos para transmisiones de altas velocidades iguales o
ma/ores a 1"200 audios de velocidad de modulación
• El 3u(o de datos es m+s regular!
:amin llamada :ransmisión Sincrónica! , todo el con(unto de its / de datos se le denomina :8,,!
9esventa(a
• Los e&uipamientos son de tecnología m+s completa / de costos
As6n&rona
As6n&rona
La transmisión asíncrona tiene lugar cuando el proceso de sincroni'ación entre emisor / receptor se reali'a en cada palara de código
transmitido! Esta sincroni'ación se lleva a cao a travs de unos its especiales &ue de4nen el entorno de cada código!
:amin se dice &ue se estalece una relación asíncrona cuando no #a/ ninguna relación temporal entre la estación &ue transmite / la &ue recie! Es decir" el ritmo de presentación de la in%ormación al destino no tiene por &u coincidir con el ritmo de presentación de la in%ormación por la %uente! En estas situaciones tampoco se necesita garanti'ar un anc#o de anda determinado" suministrando solamente el &ue est en ese momento disponile! Es un tipo de relación típica para la
transmisión de datos!
En este tipo de red el receptor no sae con precisión cuando reciir+ un mensa(e! Cada car+cter a ser transmitido es delimitado por un it de in%ormación denominado de caecera o de arran&ue" / uno o dos its denominados de terminación o de parada!
El it de arran&ue tiene dos %unciones de sincroni'ación de relo( del transmisor / del receptor!
9espus de la transmisión de los its de in%ormación se suele agregar un it de paridad par o impar! 9ic#o it sirve para comproar &ue los datos se trans4eran sin interrupción! El receptor revisa la paridad de cada unidad de entrada de datos!
)artiendo desde la línea de transmisión en reposo" cuando tiene el nivel lógico 1" el emisor in%orma al receptor de &ue va a llegar un car+cter" para ello antepone un it de arran&ue Start con el valor lógico 0! 5na ve' &ue el it Start llega al receptor este disparar+ un relo( interno / se
&uedar+ esperando por los sucesivos its &ue contendr+ la in%ormación del car+cter transmitido por el emisor!
5na ve' &ue el receptor recie todos los its de in%ormación se a<adir+ al menos un it de parada Stop de nivel lógico 1" &ue repondr+n en su estado inicial a la línea de datos" de(+ndola así preparada para la siguiente transmisión del siguiente car+cter! Es usada en velocidades de modulación de #asta 1"200 audios! El rendimiento se asa en el uso de un it de arran&ue / dos de parada" en una se<al &ue use código de 7 its m+s uno de paridad M its sore 11 transmitidos es del 72 por 100! enta(as / desventa(as del modo asíncrono6
• En caso de errores se pierde siempre una cantidad pe&ue<a de
caracteres" pues stos se sincroni'an / se transmiten de uno en uno!
• a(o rendimiento de transmisión" dada la proporción de its útiles
/ de its de sincronismo" &ue #a/ &ue transmitir por cada car+cter!
• Es un procedimiento &ue permite el uso de e&uipamiento m+s
económico / de tecnología menos so4sticada!
• Se adecua m+s %+cilmente en aplicaciones" donde el 3u(o
transmitido es m+s irregular!
• Son especialmente aptos" cuando no se necesitan lograr altas
-.% Considera&iones de se(uridad
-.% Considera&iones de se(uridad
9eido a ellas surge la necesidad de proteger la integridad / la privacidad de la
in%ormación" / otros recursos &ue pertenecen a individuos / organi'aciones" se
con(uga amos mundos6 el %ísico / el digital! Nace" como es lógico" de la necesidad de compartir recursos! En el mundo %ísico" las organi'aciones adoptan políticas de seguridad para poder compartir recursos dentro de unos
límites especi4cados! Las políticas de seguridad se #acen cumplir con la a/uda
de los mecanismos de seguridad.
En el mundo electrónico" la distinción entre políticas de seguridad / los mecanismos tamin es importante6 sin ella" sería di%ícil determinar si un
sistema particular es seguro! Las políticas de seguridad son independientes de
la tecnología empleada" así como el instalar una cerradura en una puerta no
garanti'a la seguridad del edi4cio a menos &ue #a/a una política de uso por
e(emplo! &ue la puerta est cerrada cuando no est vigilada! Los mecanismos de seguridad &ue descriir no garanti'an" por sí mismos" la seguridad de un
sistema!
3ou&i'n de as Ne&esidades de Se(uridad
3ou&i'n de as Ne&esidades de Se(uridad
, continuación descriiremos los mecanismos &ue permiten #acer cumplir las
políticas de seguridad en los sistemas distriuidos!
La distinción entre políticas de seguridad / mecanismos de seguridad es de
utilidad cuando se dise<an sistemas seguros" pero no es %+cil estar seguro de
&ue cierto con(unto de mecanismos de seguridad implementan completamente
las políticas de seguridad deseadas! Este es un modelo de seguridad dise<ado
para a/udar en el an+lisis de las amena'as de seguridad potenciales en un
sistema distriuido!
8esumiendo el modelo de seguridad como sigue6
T Los procesos encapsulan recursos / acceden a comunicarse con los clientes a travs de sus inter%aces! Los usuarios u otros procesos pueden estar autori'ados para operar sore los recursos / estos deen estar protegidos contra accesos no autori'ados!
T Los procesos interactúan en la red" &ue es compartida! Los enemigos o atacantes pueden acceder a la red / podr+n copiar" leer o introducir mensa(es aritrarios" dirigidos #acia cual&uier destino / simular &ue provienen de cual&uier otro!
Este modelo de seguridad identi4ca las características de los sistemas de
seguridad e$puestos a ata&ues!
La Emergencia de la Criptografía en el Dominio Púlico La Emergencia de la Criptografía en el Dominio Púlico
La criptogra%ía proporciona la ase para la ma/oría de los sistemas de seguridad de los computadores! La criptogra%ía tiene una larga / %ascinante
#istoria! La necesidad de comunicaciones militares seguras / la correspondiente necesidad del enemigo de interceptarlas / desencriptarlas #a
%omentado la inversión de muc#o es%uer'o intelectual" por parte de los me(ores
cereros matem+ticos de cada poca!
)ero sólo en tiempos recientes la criptogra%ía emerge de la trastienda en la &ue
%ue puesta por la clase dirigente de políticos / militares &ue solían controlar su
desarrollo / su aplicación! o/ en día es un tema de investigación aierta / con
una comunidad de investigadores amplia / mu/ activa!
La reciente apertura es" en su ma/or medida" resultado del importante crecimiento del inters en las aplicaciones no militares de la criptogra%ía / los
re&uisitos de seguridad de los sistemas de computadores distriuidos! Esto
desemocó en la e$istencia" por primera ve'" de una comunidad autosu4ciente
de criptógra%os aparte del entorno militar!
Irónicamente" esta apertura al púlico de la criptogra%ía #a traído consigo un
ma/or avance de las tcnicas criptogr+4cas" su resistencia a los ata&ues criptoanalíticos / la comodidad con la &ue se despliegan las medidas criptogr+4cas! La criptogra%ía de clave púlica es %ruto de esta apertura! 5n
e(emplo m+s" el algoritmo de encriptación est+ndar 9ES %ue inicialmente un
secreto militar! Su eventual pulicación / los es%uer'os e$itosos para romperlo
#an traído consigo el desarrollo de algoritmos de encriptación de clave secreta
muc#o m+s resistentes!
;tro producto secundario útil #a sido el desarrollo de una terminología / apro$imación común! 5n e(emplo de esto último es la adopción de un con(unto
de nomres %amiliares para los protagonistas principales involucrados en las
transacciones &ue #a/ &ue asegurar! El uso de nomres %amiliares para los
principales / los atacantes a/uda a aclarar / acercar al mundo las descripciones de los protocolos de seguridad / los potenciales ata&ues sore
ellos" lo &ue supone un paso importante #acia la identi4cación de sus deilidades!
,lice )rimer participante! o Segundo participante!
Carol ;tro participante en los protocolos a tres o cuatro andas! 9ave )articipante en protocolos a cuatro andas!
Eve .isgón!
allor/ ,tacante malevolente! Sara 5n servidor!
-.
-.#
# O+
O+&i
&ion
ones
es te
te&n
&no
o'(
'(i&
i&as
as 9A
9ASM
SM:;
:; <C
<C=
=;
; RM
RM;
;
et&.>
et&.>
5n desarrollador puede incluir en sus sitiossou&iones senten&iassou&iones senten&ias" es decir" instrucciones &ue consuman Qe Services de terceros o propios como por e(emplo a&uellos &ue proporcionan los datos meteorológicos para una localidad determinada" las coti'aciones de determinadas monedas" la cartelera de películas" el calendario o agenda de un especialista mdico" etc!
)ensando un poco m+s en %orma comercial" Uu pasaría si por e(emplo estuvieras traa(ando en tu procesador de te$to en un idioma para el cual no tienes un corrector ortogr+4co ni sint+ctico instalado &ui'+s no e$ista para instalar" pero deseas reali'ar la revisión del documento a toda costaV ien" per%ectamente podría #aer una opción en el menú de este procesador &ue de alguna %orma localice un Qe Service en Internet &ue rinde esta %uncionalidad" / lo m+s interesante aún para &uien lo #a/a desarrollado es &ue puede solicitar al usuario &ue se suscria para su uso! Como ves" todos ganan en esta transacción!
El e(emplo anterior muestra una realidad a la &ue no podemos estar a(enos! Es un replanteo de la estrategia utili'ada por los desarrolladores &uienes a#ora" al reali'ar una aplicación" no deen pensar únicamente en el lugar %ísico donde la misma va a
e(ecutarse sino en &ue esa aplicación deer+ estar interconectada con otras computadoras" corriendo otras aplicaciones &ui'+s en otras plata%ormas / lengua(es" pero usando protocolos / est+ndares universales! El intercamio se intensi4car+ muc#ísimo m+s / &ui'+s e$istan por e(emplo @proveedores de dominios de datosA como ser los países" de %orma tal &ue la aplicación &ue /o realice en lugar de crear toda la lógica para mane(ar las talas / el cargado de los datos para el concepto ),IS" se limite a consumir un Qe Service &ue me tome esta in%ormación de algún lugar en Internet! Imagino una reutili'ación aún ma/or de %uncionalidades / una colaoración e intercamio de lógica a nivel mundial! ui'+s sea mu/ amicioso en este planteo! )asando al terreno m+s tcnico / pr+ctico de este artículo" e$isten algunas
consideraciones / conceptos &ue es necesario mencionar para comen'ar a entender el tema6
• 5n Qe Service puede ser registrado para poder de(arlo a disposición de otros
usuarios / para &ue los mismos puedan locali'arlo! 5n mecanismo para registrar estos servicios es por medio de 599I" sigla &ue corresponde aUniersaUniersa Des&ri+tion
Des&ri+tion;;Dis&oer8 and Dis&oer8 and nte(rationnte(ration" un @repositorio de Qe ServicesA! )ara registrar un servicio tendr+s &ue tener en cuenta &ue dees suministrar la in%ormación de tu empresa" en &u categorías uicarías tu servicio / la inter%a' a utili'ar para consumir este servicio!
• El mecanismo utili'ado por un Qe Service para especi4car de &u %orma #a/
&ue proporcionarle los datos" de manera tal &ue cual&uiera pueda interaccionar con el mismo" es por medio de lengua(e:ML:ML! Esta in%ormación se almacena en un arc#ivo llamado QS9L <eb Seri&es Des&ri+tion Lan(ua(e<eb Seri&es Des&ri+tion Lan(ua(e" el cual contiene un documento OL (unto con la descripción de ciertos mensa(es S;,) / cómo deen intercamiarse" así como tamin dónde est+ el recurso del servicio / con &u protocolo dee dialogar &uien lo consume!
• El protocolo de comunicación utili'ado es elSOAPSOAP generalmente" el cual es
relativamente sencillo de utili'ar!
• Los Qe Services utili'an protocolos comúnmente conocidos / di%undidos tales
como el %ormato OL" :C)*I) como protocolo de transporte / ::) como protocolo de trans%erencia de #iperte$to!
Uu es S;,)V
S;,) es un protocolo &ue de4ne el %ormato OL para los mensa(es de intercamio en el uso de un Qe Service! )ara a&uellos programadores &ue solían utili'ar llamadas del tipo 8)C" S;,) tamin las soporta! ,dicionalmente" es posile medianteS;,) de4nir un mensa(e ::) / este punto es de especial inters puesto &ue el protocolo imprescindile para Internet es ::)!
Un servicio Web o WebService es un servicio ofrecido por una aplicacin que expone su lgica a clientes de cualquier plataforma mediante una interfaz accesible a travs de la red utilizando tecnologas (protocolos) estndar de nternet!
"or e#emplo$ una aplicacin como %ccess est formada por un con#unto de componentes que ofrecen una serie de servicios$ como el acceso a datos$ la impresin de informes$ el dise&o de tablas!!!
'a idea de los servicios es la misma$ aunque stos no tienen por qu estar en el mismo ordenador que el cliente adems son accedidos a travs de un servidor Web de un modo independiente de la plataforma$ utilizando protocolos estndar (**"$ S+%"$ WS,'$ U,,)!
"ara crear un servicio puede utilizarse cualquiera de los lengua#es disponibles en la plataforma !-.*!
Una vez creado el servicio$ para conseguir que sea accesible por los consumidores$ es necesario describirlo utilizando un lengua#e estndar llamado WS,' (eb Ser!ice Description "anguage)!
'os clientes del servicio podrn estar creados en cualquier lengua#e e#ecutarse sobre cualquier sistema operativo /ard0are$ lo 1nico necesario es que sean capaces de obtener entender la descripcin WS,' de un servicio!
Un arc/ivo WS,' es$ en realidad$ un arc/ivo 23' en el que se identifica el servicio se indica el esquema para poder utilizarlo$ as como el protocolo o protocolos que es posible utilizar!
Una vez dispone de esta informacin$ el cliente puede comunicarse con el servicio utilizando protocolos como **" o S+%" (S+%" a&ade invocacin de mtodos a **"$ aunque es posible /acerlo con peticiones **"45.* 6o **"4"+S* en lugar de S+%")! %dems de describir un servicio para que pueda ser utilizado por los clientes es importante publicar el servicio de modo que pueda ser encontrado por clientes que no conozcan
necesariamente el componente que ofrece el servicio$ pero que busquen un servicio de sus caractersticas! .sto se logra mediante el estndar U,, (Uni!ersal Description# Disco!er$ and Integration %egistr$ )! 7ealmente se trata de un servicio mundial en el que los proveedores de servicios pueden registrarlos de modo gratuito!
Un Servicio Web es una entidad programable, proporcionado un elemento particular de funcionalidades, como Lógica de aplicación. Puede ser usado internamente por cualquier aplicación o externamente, a través de la internet por cualquier número de aplicaciones usando estndares comoXMLXML !Lengua"e de #arca $xtensible% &HTTPHTTP !Protocolo de 'ransferencia de (ipertexto%.
)lgunos $specificaciones *úcleos de un servicio Web son+
• S)P+ $s un Protocolo basado en -#L.
• WSL+ $s un formato -#L describe la interfa/ pública a los servicios Web • U0+ $s un protocolo para publicar & descubrir #etadatos.
$xiste dos v1a primaria para crea Servicios en )SP.*$'+ 2. Servicios Web basado en el #odelo )SP.*$' !.asmx.asmx%.
3. Servicios Web basado en #icrosoft Windo4s 5ommunication 6oundation !WCFWCF%. La diferencia fundamental entre ellos es+
LosServicios Web de ASP.NETServicios Web de ASP.NET se 7ospedan directamente en #icrosoft 0nternet 0nformation ServiceIISIIS, cuales son procesados & e"ecutados a través de protocolo de transferencia de (ipertexto !(''P%.
)7ora
LosServicios Web de Windows Servicios Web de Windows CommunicaioCommunicaion Foundaionn Foundaion !W56% pueden traba"ar con una variedad de (osts, Protocolos & 5lientes.
Protocolos+ (''P, '5P, #S#8, 9inar& (''P, etc. 5lientes+ Windo4s, Web, #obile, etc.