2009-09-15 3 views
15

Conosco il servizio Web e ho una certa conoscenza del servizio remoto. Entrambi i concetti invocano metodi sulla macchina client, quindi dove sta la differenza ??Qual è la differenza tra servizio Web e servizi remoti?

Attraverso la comunicazione remota possiamo anche eseguire il metodo sulla macchina remota e la stessa funzionalità può essere raggiunto attraverso il servizio web troppo ..

Vi prego di scusarmi se è la domanda ovvia ..

+0

buona domanda più della stessa per lo più. – kenny

risposta

20

Entrambi supporto applicazioni distribuite.

I servizi Web sono multipiattaforma, utilizzano standard comuni e funzionano tramite i firewall. Pensano anche in termini di messaggi, non di oggetti - si invia un messaggio a un servizio e si ottiene una risposta.

Remoting è una tecnologia MS solo che non è multipiattaforma e parla in un formato binario. Pensa in termini di oggetti, si crea un oggetto sul server remoto e si lavora con esso. Non funziona bene con i firewall. I servizi remoti sono anche morti in questi giorni, MS favorisce WCF (che include servizi Web)

+0

Remoting non è morto (ancora), appena deprecato. –

+8

OK, è molto malato quindi :) – blowdart

0

I servizi Web sono una forma di servizio remoto, poiché si sta eseguendo in modo efficace il codice altrove o sulla stessa macchina all'esterno dell'appDomain dell'utente.

Remoting (InterProcess) sulla stessa macchina o sulla rete, è diverso nel senso che si effettua il marshalling dell'oggetto tra i limiti di AppDomain/piattaforma tramite proxy e serializzazione trasparenti. Il remoting arriva con le sue complessità e può facilmente diventare molto complesso. WCF ha reso le cose molto più semplici da mantenere. Per quanto riguarda le prestazioni, non ho confrontato entrambi gli approcci e sarei sicuramente interessato a vedere come entrambi i prezzi si collocano in un contesto di InterProcess. Poichè WCF può comunicare con binding binari e non è limitato al protocollo HTTP.

WCF ha reso questo molto più semplice utilizzando Pipes per la comunicazione InterProcess.

Alla fine i servizi Web utilizzati per comunicare tramite la porta 80 (standard) HTTP e Remoting potevano comunicare tramite porte e canali predefiniti utilizzando diversi formattatori di serializzazione.

Ora sono stati aggiornati da WCF che ora fornisce metodi per questi tipi di comunicazioni.

-1

Mentre WebService è implementato su HTTP, Remoting è implementato su TCP/UDP. Così il Remoting ha prestazioni migliori in termini di velocità.

+1

I servizi Web non sono implementati su HTTP a meno che non si faccia riferimento a un'implementazione molto specifica. I servizi Web per definizione W3C sono indipendenti dal protocollo di trasporto. In effetti molti framework di servizi Web forniscono trasporti anche su TCP, SMTP (ad esempio Metro) – wierob

+0

Beh, ero sicuro che il ragazzo stesse parlando dei servizi web .net –

2

.NET Remoting concept è una tecnologia di comunicazione interprocesso specifica Microsoft/.NET.

Il termine "servizio Web" è molto diffuso a causa del suo clamore. Ma penso che lo W3C definition sia inteso nella maggior parte dei casi. Definisce l'uso di WSDL come descrizione dell'interfaccia e SOAP come protocollo di messaggio.

In base a Microsoft .NET Remoting: A Technical Overview on MSDN, Remoting utilizza una codifica binaria o XML. Mentre la codifica XML utilizza SOAP. Ma per quanto ne so, non aderisce allo WS-I Basic Profile. Quindi, fornisce un'interoperabilità del servizio Web estremamente limitata.

Entrambi i concetti consentono la comunicazione tra processi. Se l'applicazione utilizza solo .NET, quindi utilizzare .NET Remoting è una buona scelta.

Tuttavia, se si prevede di fornire l'interoperabilità con altri linguaggi di programmazione, è necessario utilizzare i servizi Web.

0

Il controllo remoto simula il metodo esterno richiamato come metodo locale, accettando lo stesso tipo di parametri, quindi tutto ciò di cui ha bisogno è di serilazie dell'oggetto e del trasferimento invocare il metodo remoto (che si trova nella stessa lingua o piattaforma) e fornire il respone.

Il servizio Web (servizio SOAP) si occupa di invocazioni di metodi multipiattaforma in termini RPC ma può essere ulteriormente migliorato utilizzando i servizi di stile Documento, in questo caso le lingue o le piattaforme non sono le barriere poiché XML fungerà da intermedio tramite il marshalling e lo smantellamento del rappresentazioni native e XML.

1

Entrambi i servizi remoti e Web sono modi di comunicazione tra le applicazioni.

Remoting - In remoto, le applicazioni coinvolte nel processo di comunicazione possono trovarsi sullo stesso computer, diversi computer in una stessa rete o diversa. Nel remoting, entrambe le applicazioni si conoscono reciprocamente. Un proxy di un oggetto applicazione viene creato sull'altra applicazione.

Servizi Web - La comunicazione tra le applicazioni che utilizzano i servizi Web è indipendente dalla piattaforma e indipendente dalla programmazione. L'applicazione che consuma il servizio web, semplicemente accede ad esso, senza bisogno di sapere come è stato effettivamente implementato questo servizio web & creato.

2

È possibile accedere ai servizi Web basati su ASP.NET solo tramite HTTP. .NET Remoting può essere utilizzato su qualsiasi protocollo.

I servizi Web funzionano in un ambiente senza stato in cui ogni richiesta risulta in un nuovo oggetto creato per soddisfare la richiesta. .NET Remoting supporta le opzioni di gestione dello stato e può correlare più chiamate dallo stesso client e supportare i callback.

I servizi Web serializzano gli oggetti tramite XML contenuti nei messaggi SOAP e possono quindi gestire solo gli elementi che possono essere espressi completamente in XML. .NET Remoting si basa sull'esistenza di assembly linguaggio runtime comuni che contengono informazioni sui tipi di dati. Ciò limita le informazioni che devono essere passate su un oggetto e consente agli oggetti di essere passati per valore o per riferimento.

I servizi Web supportano l'interoperabilità tra piattaforme e sono utili per ambienti eterogenei. .NET Remoting richiede che i client vengano creati utilizzando .NET o un altro framework che supporti .NET Remoting, ovvero un ambiente omogeneo.