c# - siguientes - ¿Cuál es la diferencia entre el servicio web y la comunicación remota?
problemas escritorio remoto windows 7 (7)
Ambos soportan aplicaciones distribuidas.
Los servicios web son multiplataforma, utilizan estándares comunes y funcionan a través de firewalls. También piensan en términos de mensajes, no de objetos: usted envía un mensaje a un servicio y obtiene una respuesta.
Remoting es una tecnología exclusiva de MS que no es multiplataforma y habla en formato binario. Piensa en términos de objetos, creas un objeto en el servidor remoto y trabajas con él. No funciona bien con los cortafuegos. La comunicación remota también está muerta en estos días, MS favorece WCF (que incluye servicios web)
Conozco el servicio web y tengo un poco de conocimiento sobre la comunicación remota Ambos conceptos invocan métodos en la máquina cliente, así que ¿dónde radica la diferencia?
A través de la comunicación remota también podemos ejecutar el método en la máquina remota y la misma funcionalidad se puede lograr a través del servicio web también.
Por favor, disculpe si es la pregunta obvia.
La comunicación remota es simular el método extraño invocado como método local, aceptando el mismo tipo de parámetros, por lo tanto, todo lo que necesita es serilar el objeto y transferir el método remoto (que está en el mismo idioma o plataforma), y proporcionar la respuesta.
El servicio web (servicio SOAP) se ocupa de las invocaciones de métodos multiplataforma en términos de RPC, pero se puede mejorar aún más utilizando los servicios de estilo de documento, aquí los lenguajes o plataformas no son las barreras, ya que XML actuará como intermediario al ordenar y desbaratar las representaciones nativas y XML .
Los servicios web basados en ASP.NET solo se pueden acceder a través de HTTP. .NET Remoting puede ser usado a través de cualquier protocolo.
Los servicios web funcionan en un entorno sin estado en el que cada solicitud genera un nuevo objeto creado para atender la solicitud. .NET Remoting admite opciones de administración de estado y puede correlacionar varias llamadas del mismo cliente y respaldar las devoluciones de llamada.
Los servicios web serializan objetos a través de XML contenido en los mensajes SOAP y, por lo tanto, solo pueden manejar elementos que pueden expresarse completamente en XML. .NET Remoting se basa en la existencia de ensamblajes de Common Language Runtime que contienen información sobre los tipos de datos. Esto limita la información que se debe pasar sobre un objeto y permite que los objetos se pasen por valor o por referencia.
Los servicios web admiten la interoperabilidad en todas las plataformas y son buenos para entornos heterogéneos. .NET Remoting requiere que los clientes se construyan utilizando .NET u otro marco que admita .NET Remoting, lo que significa un entorno homogéneo.
Los servicios web son una forma de comunicación remota, ya que está ejecutando efectivamente el código en otro lugar o en la misma máquina fuera de su dominio de aplicación.
La comunicación remota (InterProcess) en la misma máquina o en la red, es diferente en el sentido de que usted calcula su objeto entre las fronteras de dominio de aplicación / plataforma a través de proxies transparentes y la serialización. La comunicación remota viene con sus complejidades y puede volverse muy compleja fácilmente. WCF ha hecho las cosas mucho más simples de mantener. En cuanto al rendimiento, no he comparado ambos enfoques y definitivamente me interesaría ver cómo se desenvuelven los dos en un contexto InterProcess. Dado que WCF puede comunicarse con enlaces binarios y no está limitado al Protocolo HTTP.
WCF ha hecho esto mucho más simple utilizando Pipes para la comunicación InterProcess.
Al final, los servicios web utilizados para comunicarse a través del puerto 80 (estándar) HTTP y Remoting podrían comunicarse a través de puertos y canales predefinidos utilizando diferentes formateadores de serialización.
Ahora han sido actualizados por WCF, que ahora proporciona métodos para este tipo de comunicaciones.
Mientras WebService se implementa a través de HTTP, Remoting se implementa a través de TCP / UDP. Por lo tanto, el control remoto funciona mejor en términos de velocidad.
Tanto los servicios remotos como los web son formas de comunicación entre aplicaciones.
Comunicación remota: en la comunicación remota, las aplicaciones involucradas en el proceso de comunicación pueden ubicarse en la misma computadora, diferentes computadoras en una misma red o en una diferente. En la comunicación remota, ambas aplicaciones se conocen entre sí. Se crea un proxy de un objeto de aplicación en la otra aplicación.
Servicios web: la comunicación entre aplicaciones que utilizan servicios web es una plataforma independiente y una programación independiente. La aplicación que consume el servicio web, simplemente accede a él, sin necesidad de saber cómo se ha implementado y creado realmente este servicio web.
El concepto de .NET Remoting es una tecnología de comunicación interproceso específica de Microsoft / .NET.
El término "servicio web" es muy difuso debido a su exageración. Pero creo que la definición de W3C está pensada en la mayoría de los casos. Define el uso de WSDL como descripción de la interfaz y SOAP como protocolo de mensaje.
Según Microsoft .NET Remoting: una descripción técnica en MSDN , Remoting utiliza una codificación binaria o XML. Mientras que la codificación XML utiliza SOAP. Pero por lo que sé, no se adhiere al Perfil Básico WS-I . Por lo tanto, proporciona una interoperabilidad de servicios web extremadamente limitada.
Ambos conceptos permiten la comunicación entre procesos. Si su aplicación solo usa .NET, entonces usar .NET Remoting es una buena opción.
Sin embargo, si planea proporcionar interoperabilidad con otros lenguajes de programación, debe utilizar los servicios web.