Arquitectura cliente/servidor

De MediaWiki
Revisión del 12:40 18 ene 2023 de Joselv (discusión | contribuciones) (→‎Inconvintes)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda

A arquitectura cliente/servidor é unha forma de organizar recursos que está presente en numerosas configuracións dentro dos sistemas informáticos.

Consistirá na existencia dun software, o servidor, que se encargará de facilitar e controlar o acceso a algún recurso centralizado (hardware ou software). Habitualmente ese servidor estará en execución continua e sen interación directa con usuarios. Probablemente irá anotando as incidencias detectadas durante a súa execución nalgún tipo de rexistro, ou log.

Para poder acceder ao recurso do que se encarga o servidor, haberá que executar outro software, o cliente. Este fará peticións ao servidor para utilizar o recurso de que se trate, enviando toda a información precisa, e recibirá as contestacións que se produzan. Normalmente este cliente encargarse de presentar a interacción cos usuarios humanos (User Interface, UI).

Para que cliente e servidor se entendan e podan enviar peticións e respostas respectivamente, deben estar previamente de acordo na forma que lle teñen que dar a esas comunicacións. Iso é o que chamamos un protocolo, o conxunto de regras e formatos que gobernan unha comunicación entre procesos.

E ese intercambio de información tense que producir por algunha canle pola que podan circular datos. A implementación habitual será un porto TCP/IP, é dicir, un número que identifique a un proceso dentro dunha máquina na que pode haber múltiples procesos en execución.

Finalmente, é imprescindible que o servidor manexe unha cola de peticións, de xeito que non se perdan as peticións que cheguen cando está a atender outras anteriores ou de maior prioridade.

Vantaxes

As vantaxes deste tipo de organización son múltiples:

Centralización
O recurso do que se trate, funciona baixo un control centralizado, co que é doado establecer políticas de acceso ou tomar decisións de deseño.
Copias de seguridade
Facilítase a realización de copias de seguridade globais e a recuperación en caso de fallo.
Actualización
Calquera cambio no recurso pódese implementar dun xeito rápido, afectando inmeditamente a todos os clientes.
Escalabilidade
Cando o recurso non sexa suficiente para atender as demandas dos clientes, é doado facer os cambios precisos no servidor para pasar a dar un mellor servizo.
Accesibilidade.
Se o servidor está accesible nunha rede.
Adaptabilidade.
Pódese facer que o servidor se comporte de formas diferentes en función de factores que se consideren de importancia, por exemplo, o tipo de usuario, o cliente utilizado, a carga actual do sistema ou o momento da petición.

Inconvintes

E tamén poderá presentar algunha dificultade:

Conxestión
Pode suceder que demasiadas peticións dos clientess supoñan unha sobrecarga do servidor que implique a súa parada.
Parada do servidor
A centralización implica que o servidor se converte na peza fundamental do sistema e cando non funciona ou funciona mal, poden ver quedar todos os clientes sen acceso ao recurso.
Custe
É habitual que o software de tipo servidor resulte caro pola súa complexidade, ou que haxa que investir máis do esperado en escalar o sistema para dar un bo servizo a todos os clientes.
Complexidade do mantemento.
Precísanse profesionais moi cualificados para manter en correcto funcionamento os diferentes servidores dunha rede.

Exemplos de arquitectura cliente/servidor

Os casos de configuracións clinte/servidor son múltiples, pero algún exemplos poderían ser:

  • mainframe con terminais lixeiros
  • servidor web
  • servidor de aplicacións
  • servidor de ficheiros
  • servidor de datos