Arquitectura de Sistemas de Información
Enviado por luismarkko • 21 de Abril de 2013 • Trabajo • 1.492 Palabras (6 Páginas) • 846 Visitas
Arquitectura de Sistemas de Información
Definición de Socket
Entrega 11 de marzo de 2013
1. Objetivo del Socket
a) Definir cuál es la utilidad de un socket
Un socket, es un método para la comunicación entre un programa del cliente y un programa del servidor en una red. Un socket se define como el punto final en una conexión. Los sockets se crean y se utilizan con un sistema de peticiones o de llamadas de función a veces llamados interfaz de programación de aplicación de sockets (API, application programming interface).
Un socket es también una dirección de Internet, combinando una dirección IP (la dirección numérica única de cuatro partes que identifica a un ordenador particular en Internet) y un número de puerto (el número que identifica una aplicación de Internet particular, como FTP, Gopher, o WWW).
Un socket es al sistema de comunicaciones entre ordenadores lo que un buzón o un teléfono al sistema de comunicaciones entre personas: un punto de comunicación entre dos agentes (procesos o personas respectivamente) por el cual se puede emitir o recibir información. La forma de referenciar un socket por los procesos implicados es mediante un descriptor del mismo tipo que el utilizado para referenciar ficheros.
El proceso de comunicación vía sockets tiene los siguientes pasos:
• El proceso servidor crea un socket con nombre y espera la conexión
• El proceso cliente crea un socket sin nombre
• El proceso cliente realiza una petición de conexión al socket servidor
• El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con nomre.
b) Definir ventajas y desventajas que se tiene al utilizarlo
• Las principales ventajas que ofrecen los sockets son:
Las aplicaciones que los usan son muy rápidas y eficaces. Como los sockets son entidades de bajo nivel, se comunican rápida y eficazmente con el sistema operativo e introducen poca sobrecarga en las aplicaciones.
Son el mecanismo más difundido para las comunicaciones entre procesos. Todos los sistemas operativos y lenguajes de programación actuales les dan cabida. Escasos son los protocolos de transporte que no usan sockets
• Desventajas de los sockets
Son abstracciones de bajo nivel. Por ello, la programación intensiva con sockets no resulta muy cómoda para el programador medio. Cuando uno se ha acostumbrado a mensajes de error del estilo de “Conversión errónea de tipos”, “El tipo del argumento no corresponde a la definición del método” o “Número erróneo de argumentos”, no entusiasma la idea de encontrarse con errores como “Conexión rechazada”, “No se encontró el anfitrión”, “Puerto ocupado por otro proceso”, etc.
El código escrito con sockets depende de la plataforma. Debido al bajo nivel de los
sockets, están muy ligados a la plataforma donde se ejecutan.
El código con sockets es difícil de reutilizar. Aparte de los problemas derivados por el bajo nivel de éstos, los clientes necesitan conocer la dirección de la máquina donde se ejecuta el servidor y el número de puerto para acceder a éste. Si el servidor cambia de ubicación, hay que recompilar los clientes o, al menos, reconfigurarlos.
No ofrecen meta información sobre los servicios de los servidores y sus localizaciones. No hay “mapas” que digan “El servidor A está en B y ofrece estos servicios”.
c) De acuerdo a las arquitecturas vistas en clase se debe definir en que arquitectura de sistemas de información se puede implementar y justificar por qué.
Los sockets permiten implementar una arquitectura cliente-servidor. La comunicación debe ser iniciada por uno de los programas que se denomina programa "cliente". El segundo programa espera a que otro inicie la comunicación, por este motivo se denomina programa "servidor".
Un socket es un proceso o hilo existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa servidor y el cliente lean y escriban la información. Esta información será la transmitida por las diferentes capas de red.
Cuando se implementan con el protocolo TCP, los sockets tienen las siguientes propiedades:
• Son orientados a la conexión.
• Se garantiza la transmisión de todos los octetos sin errores ni omisiones.
• Se garantiza que todo octeto llegará a su destino en el mismo orden en que se ha transmitido.
Estas propiedades son muy importantes para garantizar la corrección de los programas que tratan la información.
d) Definir como se llevaría a cabo la implementación
Para que dos programas puedan comunicarse entre sí es necesario que se cumplan ciertos requisitos:
• Que un programa sea capaz de localizar al otro.
• Que ambos programas sean capaces de intercambiarse cualquier secuencia de octetos, es decir, datos relevantes a su finalidad.
• Un par de direcciones del protocolo de red (dirección IP, si se utiliza el protocolo TCP/IP), que identifican la computadora de origen y la remota.
• Un par de números de puerto, que identifican a un programa dentro de cada computadora.
2. Explicación del código del socket funcionando
Código Cliente
Private Sub btConectar_Click()
If txtServidor = Empty Then MsgBox "Debe indicar la IP del Servidor", vbInformation, "Socket Cliente": txtServidor.SetFocus: Exit Sub
If txtPuerto = Empty Then MsgBox "Debe indicar el Puerto", vbInformation, "Socket Cliente": txtPuerto.SetFocus: Exit Sub
'Asignamos la IP o hostname a Winsock
Winsock1.RemoteHost = txtServidor.Text
'Asignamos el puerto a Winsock
Winsock1.RemotePort = txtPuerto.Text
'Desconectamos por si acaso estaba conectado ya
Winsock1.Close
'Realizamos la conexión mediante Socket al servidor y puerto
Winsock1.Connect
...