2009-10-19 17 views
7

Tengo una pregunta. Me gustaría servir una serie de servicios hechos con WCF. El cliente que consume los servicios también es .NET con WCF. Me gustaría tener una alta velocidad de acceso, respuesta rápida, transportar contratos de datos medianos a pequeños (tipos básicos de datos básicos de .net). La distribución será a través de internet, estoy buscando confiabilidad, disponibilidad y seguridad básica.WCF NetTCP Encuadernación a través de Internet

No quiero usar WsHttp, porque mi único cliente se basa en .net y tendré casi 150 clientes solicitando los servicios.

¿Qué sugieres usar para encuadernar? ¿Hay desventajas, riesgos, etc.?

¡Gracias de antemano!

Respuesta

0

De acuerdo con su escenario, NetTcpBinding es el enlace de elección. Como está seguro de que ese cliente será WCF, no hay necesidad de interoperabilidad.

Echa un vistazo a here in Programing WCF Services book.

Lo único de lo que no estoy seguro es de los cortafuegos. Si tiene que pasar por las tesis, tal vez un enlace WS sea más apropiado.

+0

Gracias Philippe por su respuesta. No tendré interoperabilidad, sin embargo, si esto sucede, puedo configurar los servicios de enlace múltiple. Hasta ahora, solo está previsto que sea consumido por una aplicación .Net Windows Form, el canal será internet. Tenemos firewalls pero el tipo Telco puede configurar el puerto al que se accederá desde cierta IP, las sucursales tienen conexión de internet dedicada, por lo que la seguridad no es una preocupación principal. Echaré un vistazo a ese libro. –

6

Hay un buen artículo sobre la elección de una unión por Juval Lowy aquí:

http://www.code-magazine.com/article.aspx?quickid=0605051&page=3

En general, el consejo es no utilizar el enlace en internet tcp red. No he oído hablar de nadie que lo haga. Aunque puede funcionar si los puertos están abiertos por completo y nadie bloquea las llamadas.

Pruébelo con nettcp, si no funciona solo necesita cambiar la configuración.

Lo más importante es considerar sus necesidades de seguridad. ¿Necesitas punto a punto, luego basichttp sobre ssl. ¿Necesita un extremo a otro, luego wshttp con encriptación de mensajes?

+0

Gracias Shiraz Hasta ahora solo se planea consumirlo con la aplicación .Net Windows Form, el canal será internet. Tenemos cortafuegos, pero el tipo Telco puede configurar el puerto al que se accederá desde cierta IP, las sucursales tienen conexión de internet dedicada, por lo que la seguridad no es una preocupación principal –

+0

Las direcciones IP pueden ser falsificadas fácilmente, y esto sería muy susceptible a una hombre en el ataque medio. Si sus datos son valiosos, encriptelos en Internet. Una solución barata y simple a este problema sin líneas dedicadas es usar una VPN. –

8

Dado que planea utilizar tipos simples y contratos de datos pequeños, el enlace que utiliza es casi irrelevante en comparación con la latencia introducida al navegar por Internet. Entonces, la respuesta correcta es use la que es más fácil de administrar y la más segura.

Te recomiendo que alojes la aplicación en IIS y uses wsHttpBinding y tomes todas las bondades de manejabilidad que esto conlleva. También será interoperable, y aunque eso es irrelevante hoy en día, es gratis, ¿por qué no?

Y, tenga en cuenta la granularidad de su servicio. Conoces mejor a tus clientes, pero en el Internet abierto, pasan cosas. Debido a que el tiempo de ida y vuelta a través de Internet es variable e imposible de controlar, podría tomar milisegundos o segundos o puede que no llegue allí. Por lo tanto, debe realizar menos viajes con cargas útiles más grandes, si es posible, y utilizar todo tipo de operaciones de almacenamiento en caché y asincrónicas para que la aplicación parezca "rápida".

Cuestiones relacionadas