Diseo de Software Arquitectura Cliente-Servidor Contenido Introduccin El principal motivo detrs de la evolucin del procesamiento de datos es la necesidad !ue tienen las or"anizaciones #empresas o instituciones p$blicas o privadas%& de realizar sus operaciones ms "il ' e(icientemente& debido a la creciente presin competitiva a la !ue estn sometidas& lo cual se traduce en la necesidad de !ue su personal sea ms productivo& !ue se reduzcan los costos ' "astos de operacin& al mismo tiempo !ue se "eneran productos ' servicios ms rpidamente ' con mejor calidad) En este conte*to& es necesario establecer una in(raestructura de procesamiento de in(ormacin& !ue cuente con los elementos re!ueridos para proveer in(ormacin adecuada& e*acta ' oportuna en la toma de decisiones ' para proporcionar un mejor servicio a los clientes) El modelo Cliente+,ervidor re$ne las caracter-sticas necesarias para proveer esta in(raestructura& independientemente del tama.o ' complejidad de las operaciones de las or"anizaciones p$blicas o privadas '& consecuentemente desempe.a un papel importante en este proceso de evolucin) Antecedentes En el mundo de las comunicaciones entre computadoras se ri"en bsicamente por lo !ue se llama modelo Cliente/,ervidor& ste es un modelo !ue intenta proveer usabilidad& (le*ibilidad& interoperabilidad ' escalabilidad en las comunicaciones) El trmino Cliente+,ervidor (ue usado por primera vez en 0123 para re(erirse a 4C5s en red) Este modelo Cliente+,ervidor empez a ser aceptado a (inales de los 235s) En "eneral& la tecnolo"-a de los servidores de base de datos ha evolucionado mucho en los $ltimos a.os ' todos los (abricantes trabajan con tecnolo"-a sensiblemente e!uivalente) 4arecen& mucho ms importantes para la eleccin& elementos !ue estn (uera de la tecnolo"-a: la con(ianza !ue nos despierta el (abricante& su compromiso con el producto& su tendencia a mantenerse siempre actualizado& su situacin econmico+(inanciera& las "arant-as !ue nos brinde el soporte local '& en menor medida& el precio) 6un!ue inicialmente (ueron los propios usuarios !uienes impulsaron esta nueva tecnolo"-a& la situacin ha cambiado drsticamente) 7o' en d-a& el modelo Cliente+,ervidor se considera clave para abordar las necesidades de las empresas) El proceso distribuido se reconoce actualmente como el nuevo paradi"ma de sistemas de in(ormacin& en contraste con los sistemas independientes) Este cambio (undamental ha sur"ido como consecuencia de importantes (actores #ne"ocio& tecnolo"-a& proveedores%& ' se apo'a en la e*istencia de una "ran variedad de aplicaciones estndar ' herramientas de desarrollo& (ciles de usar !ue soportan un entorno in(ormtico distribuido) Concepto 8a ar!uitectura cliente+servidor es un modelo para el desarrollo de sistemas de in(ormacin& en el !ue las transacciones se dividen en procesos independientes !ue cooperan entre s- para intercambiar in(ormacin& servicios o recursos) ,e denomina cliente al proceso !ue inicia el dilo"o o solicita los recursos ' servidor& al proceso !ue responde a las solicitudes) Es el modelo de interaccin ms com$n entre aplicaciones en una red) #Instituto 9ecnol"ico de Colima% Caractersticas 8as caracter-sticas bsicas de una ar!uitectura Cliente+,ervidor son: : Combinacin de un cliente !ue interact$a con el usuario& ' un servidor !ue interact$a con los recursos compartidos) : 8as tareas del cliente ' del servidor tienen di(erentes re!uerimientos en cuanto a recursos de cmputo como velocidad del procesador& memoria& velocidad ' capacidades del disco ' dispositivos de entrada+salida) : ,e establece una relacin entre procesos distintos& los cuales pueden ser ejecutados en la misma m!uina o en m!uinas di(erentes distribuidas a lo lar"o de la red) : E*iste una clara distincin de (unciones basada en el concepto de ;servicio;& !ue se establece entre clientes ' servidores) : 8a relacin establecida puede ser de muchos a uno& en la !ue un servidor puede dar servicio a muchos clientes& re"ulando su acceso a recursos compartidos) : 8os clientes corresponden a procesos activos en cuanto a !ue son stos los !ue hacen peticiones de servicios a los servidores) : <o e*iste otra relacin entre clientes ' servidores !ue no sea la !ue se establece a travs del intercambio de mensajes entre ambos) : El ambiente es hetero"neo) 8a plata(orma de hard=are ' el sistema operativo del cliente ' del servidor no son siempre la misma) : El concepto de escalabilidad tanto horizontal como vertical es aplicable a cual!uier sistema Cliente+,ervidor) Diagrama >n sistema cliente+servidor (unciona tal como se detalla en el si"uiente dia"rama: El cliente env-a una solicitud al servidor mediante su direccin I4 ' el puerto& !ue est reservado para un servicio en particular !ue se ejecuta en el servidor) El servidor recibe la solicitud ' responde con la direccin I4 del e!uipo cliente ' su puerto) 8a idea es tratar a una computadora como un instrumento& !ue por s- sola pueda realizar muchas tareas& pero con la consideracin de !ue realice a!uellas !ue son ms adecuadas a sus caracter-sticas) ,i esto se aplica tanto a clientes como servidores se entiende !ue la (orma ms estndar de aplicacin ' uso de sistemas Cliente+,ervidor es mediante la e*plotacin de las 4C5s a travs de inter(aces "r(icas de usuario? mientras !ue la administracin de datos ' su se"uridad e inte"ridad se deja a car"o de computadoras centrales tipo main(rame) >sualmente la ma'or-a del trabajo pesado se hace en el proceso llamado servidor ' el o los procesos cliente slo se ocupan de la interaccin con el usuario #aun!ue esto puede variar%) En otras palabras la ar!uitectura Cliente+,ervidor es una e*tensin de pro"ramacin modular en la !ue la base (undamental es separar una "ran pieza de so(t=are en mdulos con el (in de hacer ms (cil el desarrollo ' mejorar su mantenimiento) Elementos Cliente Conjunto de ,o(t=are ' 7ard=are !ue invoca los servicios de uno o varios servidores) 8os Clientes interact$an con el usuario& usualmente en (orma "r(ica) @recuentemente se comunican con procesos au*iliares !ue se encar"an de establecer cone*in con el servidor& enviar el pedido& recibir la respuesta& manejar las (allas ' realizar actividades de sincronizacin ' de se"uridad) Caractersticas: El Cliente oculta al ,ervidor ' la Red) Detecta e intercepta peticiones de otras aplicaciones ' puede re direccionarlas) Dedicado a la sesin del usuario #Inicia)))9ermina%) El mtodo ms com$n por el !ue se solicitan los servicios es a travs de R4C #Remote 4rocedure Calls%) Funciones Comunes del Cliente: Aantener ' procesar todo el dialo"o con el usuario) Aanejo de pantallas) Aen$s e interpretacin de comandos) Entrada de datos ' validacin) 4rocesamiento de a'udas) Recuperacin de errores) Generacin de consultas e in(ormes sobre las bases de datos) Servidor Conjunto de 7ard=are ' ,o(t=are !ue responde a los re!uerimientos de un cliente) 8os ,ervidores proporcionan un servicio al cliente ' devuelven los resultados) En al"unos casos e*isten procesos au*iliares !ue se encar"an de recibir las solicitudes del cliente& veri(icar la proteccin& activar un proceso servidor para satis(acer el pedido& recibir su respuesta ' enviarla al cliente) 6dems& deben manejar los interblo!ueos& la recuperacin ante (allas& ' otros aspectos a(ines) Caractersticas 6l iniciarse esperan a !ue lle"uen las solicitudes de los clientes& desempe.an entonces un papel pasivo en la comunicacin #dispositivo esclavo%) 9ras la recepcin de la solicitud& la procesan ' lue"o env-an la respuesta al cliente) 4or lo "eneral& aceptan cone*iones desde un "ran n$mero de clientes) <o es (recuente !ue interact$en directamente con los usuarios) Funciones Comunes del Servidor: 6cceso& almacenamiento ' or"anizacin de datos) 6ctualizacin de datos almacenados) 6dministracin de recursos compartidos) Ejecucin de toda la l"ica para procesar una transaccin) 4rocesamiento com$n de elementos del servidor #Datos& capacidad de C4>& almacenamiento en disco& capacidad de impresin& manejo de memoria ' comunicacin%) Gestin de peri(ricos compartidos) Control de accesos concurrentes a bases de datos compartidas) Enlaces de comunicaciones con otras redes de rea local o e*tensa Red ,e encar"a de transmitir la in(ormacin entre clientes ' servidores) @-sicamente consiste en un cableado #coa*ial& par trenzado& (ibra ptica& etc)% o en cone*iones mediante se.ales de radio o in(rarrojas& dependiendo de !ue la red sea local #86< o R68%& metropolitana #A6<% o de rea e*tensa #B6<%) 9oda comunicacin& 'a sea cara a cara o por una red& est re"ida por re"las predeterminadas denominadas protocolos) >n ejemplo del uso de protocolos en comunicaciones de red es la interaccin entre un servidor Beb ' un e*plorador Beb) Esta interaccin utiliza una cantidad de protocolos ' estndares en el proceso de intercambio de in(ormacin entre ellos) 8os distintos protocolos trabajan en conjunto para ase"urar !ue ambas partes reciben ' entienden los mensajes) 6l"unos ejemplos de estos protocolos son: Protocolo de aplicacin: 4rotocolo de trans(erencia de hiperte*to #7994% es un protocolo com$n !ue re"ula la (orma en !ue interact$an un servidor Beb ' un cliente Beb) Protocolo de transporte: 4rotocolo de control de transmisin #9C4% es el protocolo de transporte !ue administra las conversaciones individuales entre servidores Beb ' clientes Beb) Protocolo de internetwork: El protocolo internet=orC ms com$n es el 4rotocolo de Internet #I4%) Protocolos de acceso a la red: Estos protocolos describen dos (unciones principales: administracin de enlace de datos ' transmisin (-sica de datos en los medios Protocolo CP!IP: Especi(ica los detalles ' mecanismos para la transmisin de datos entre dos aplicaciones comunicantes& pero no dictamina cuando ni por!ue deben interactuar ambas aplicaciones) >na in(raestructura Cliente+,ervidor consta de tres componentes esenciales& todos ellos de i"ual importancia ' estrechamente li"ados: Plata"orma #perativa$ Entorno de Desarrollo de Aplicaciones$ %estin de Sistemas$
: Plata"orma #perativa$& 8a plata(orma deber soportar todos los modelos de distribucin Cliente+,ervidor& todos los servicios de comunicacin& ' deber utilizar& pre(erentemente& componentes estndar de la industria para los servicios de distribucin) 8os desarrollos propios deben coe*istir con las aplicaciones estndar ' su inte"racin deber ser imperceptible para el usuario) I"ualmente& podrn acomodarse pro"ramas escritos utilizando di(erentes tecnolo"-as ' herramientas) : Entorno de Desarrollo de Aplicaciones$ / Debe ele"irse despus de la plata(orma operativa) >n entorno de aplicacin incremental& debe posibilitar la coe*istencia de procesos cliente ' servidor desarrollados con distintos len"uajes de pro"ramacin '+o herramientas& as- como utilizar distintas tecnolo"-as #por ejemplo& len"uaje procedural& len"uaje orientado a objetos& multimedia%& ' !ue han sido puestas en e*plotacin en distintos momentos del tiempo) : %estin de Sistemas$ / Estas (unciones aumentan considerablemente el costo de una solucin& pero no se pueden evitar) ,iempre deben adaptarse a las necesidades de la or"anizacin& ' al decidir la plata(orma operativa ' el entorno de desarrollo& es decir& en las primeras (ases de la de(inicin de la solucin& merece la pena considerar los aspectos si"uientes: DEu necesitamos "estionarF DDnde estarn situados los procesadores ' estaciones de trabajoF DCuntos tipos distintos se soportarnF DEu tipo de soporte es necesario ' !uin lo proporcionaF >na metodolo"-a !ue permita de(inir una in(raestructura para el sistema Cliente+,ervidor ' eval$e la puesta en marcha del pro'ecto sobre una base racional) El en(o!ue de dicha metodolo"-a comprende los pasos si"uientes: Captacin de las necesidades) De(inir& analizar ' evaluar& aunando los re!uerimientos del ne"ocio con las aportaciones tecnol"icas) Dise.o conceptual en el !ue se sit$an los principales blo!ues (uncionales ' de datos del sistema& mostrando la relacin ' comunicacin entre ambos) Detalle de los principales componentes (uncionales& seleccin de procesos& determinando los principios !ue deben aplicarse a la seleccin de so(t=are o dise.o de los mdulos) 6l (inal de los tres pasos anteriores& se de(inen los conceptos del sistema ' la in(raestructura tecnol"ica& sin concretar& todav-a& en productos o plata(ormas espec-(icos) 4or $ltimo& se lle"a a la seleccin de plata(ormas ' principales productos ' componentes para la implantacin) El resultado es la descripcin de una solucin !ue inclu'e in(raestructura tecnol"ica& plata(ormas ' productos) 'enta(as : >no de los aspectos !ue ms ha promovido el uso de sistemas Cliente+,ervidor& es la e*istencia de plata(ormas de hard=are cada vez ms baratas) : El es!uema Cliente+,ervidor (acilita la inte"racin entre sistemas di(erentes ' comparte in(ormacin permitiendo& por ejemplo !ue las m!uinas 'a e*istentes puedan ser utilizadas pero utilizando inter(aces ms ami"ables al usuario) : 6l (avorecer el uso de inter(aces "r(icas interactivas& los sistemas construidos bajo este es!uema tienen ma'or interaccin ' ms intuitiva con el usuario) : >na ventaja adicional del uso del es!uema Cliente+,ervidor es !ue es ms rpido el mantenimiento ' el desarrollo de aplicaciones) : 8a estructura inherentemente modular (acilita adems la inte"racin de nuevas tecnolo"-as ' el crecimiento de la in(raestructura computacional& (avoreciendo as- la escalabilidad de las soluciones) : El es!uema Cliente+,ervidor contribu'e adems& a proporcionar& a los di(erentes departamentos de una or"anizacin& soluciones locales& pero permitiendo la inte"racin de la in(ormacin relevante a nivel "lobal) Desventa(as : El mantenimiento de los sistemas es ms di(-cil pues implica la interaccin de di(erentes partes de hard=are ' de so(t=are& distribuidas por distintos proveedores& lo cual di(iculta el dia"nstico de (allas) : ,e cuenta con mu' escasas herramientas para la administracin ' ajuste del desempe.o de los sistemas) : Es importante !ue los clientes ' los servidores utilicen el mismo mecanismo #por ejemplo socCets o R4C%& lo cual implica !ue se deben tener mecanismos "enerales !ue e*istan en di(erentes plata(ormas) : 6dems& ha' !ue tener estrate"ias para el manejo de errores ' para mantener la consistencia de los datos) : 8a se"uridad de un es!uema Cliente+,ervidor es otra preocupacin importante) : El desempe.o es otro de los aspectos !ue se deben tener en cuenta en el es!uema Cliente+,ervidor) Cu)ndo implantar Cliente!Servidor Eue en el pro'ecto a desarrollar e*istan aplicaciones !ue necesiten comunicarse) 8a aplicacin a desarrollar necesita unir entre s- un "ran n$mero de usuarios) El pro'ecto necesita compartir recursos) El pro'ecto a desarrollar necesita conse"uir un rendimiento considerablemente superior con un aumento moderado del precio) El pro'ecto necesita tener su in(ormacin centralizada) El pro'ecto re!uiere independencia de la plata(orma hard=are ' so(t=are !ue se emplee) El pro'ecto re!uiere de escalabilidad horizontal #a.adir clientes% ' vertical #ampliar potencia de los servidores%) Conclusin En conclusin& Cliente+,ervidor puede incluir m$ltiples plata(ormas& bases de datos& redes ' sistemas operativos) Estos pueden ser de distintos proveedores& en ar!uitecturas propietarias ' no propietarias ' (uncionando todos al mismo tiempo) 4or lo tanto& su implantacin involucra di(erentes tipos de estndares: 644C& 9C4+I4& G,I& <@,& DRD6 corriendo sobre DG,& G,+H& Bindo=s o 4C ><II& en 9oCenRin"& Ethernet& @DDI o medio coa*ial& slo por mencionar al"unas de las posibilidades)