Capítulo 1
Capítulo 1
Modelo Cliente/
Modelo Cliente/
Servidor
Servidor
1.1 INTRODUCCIÓN
 En los últimos tiempos se ha venido
modificando substancialmente el papel que
juega la computación, además de ser un
elemento de apoyo a las operaciones
básicas, se ha constituido en un medio de
obtener ventajas competitivas y de
incremento de las prestaciones y/o
servicios.
 Para esto, las aplicaciones deben ser
desarrolladas en forma acelerada, ya que
los requerimientos de las compañías
cambian rápidamente y deben adaptarse a
ellas. Se está dando mucho énfasis a la
importancia de contar con información
confiable y oportuna, para lograrlo, tanto la
información como los sistemas para
procesarla deben ser distribuidos a una
larga audiencia.
 Las nuevas aplicaciones deben basarse en
tecnologías que disminuyan los costos de
desarrollo y mantenimiento, en aspectos
relacionados con el hardware, el software,
la operación, la capacitación, el personal y
el mantenimiento, además, es necesario
que se comuniquen con las aplicaciones
existentes.
 Una de las arquitecturas que responden a
las actuales necesidades es la arquitectura
cliente/servidor.
 Cliente/servidor es un movimiento que
está cambiando la forma en que se usan las
computadoras, además de ser una nueva
era de coexistencia y apertura en la que
todos pueden participar.
 Actualmente el sector más activo de
cliente/servidor es el de las bases de datos
de SQL (Structured Query Language:
Lenguaje de Consulta Estructurado),
existen servidores de SQL que son el
modelo dominante para la creación de
aplicaciones cliente/servidor.
 Los productos de proveedores de
servidores de SQL como: Interbase,
Adaptive Server, MS SQL Server, DB2
Dynamic Server y Oracle son ampliamente
utilizados.
CONCEPTOS DE LA ARQ.
CLIENTE/SERVIDOR
 La arquitectura cliente/servidor es un
modelo para el desarrollo de sistemas de
información en el que las transacciones se
dividen en procesos independientes que
cooperan entre sí para intercambiar
información, servicios o recursos.
 Es el modelo de interacción más común entre
aplicaciones en una red, todos los servicios
estándares de alto nivel propuestos en Internet
funcionan según este modelo y no forma parte de
los conceptos de Internet como los protocolos IP
(Internet Protocol: Protocolo Internet) y TCP
(Transmission Control Protocol: Protocolo de
Control de Transmisión) [NET,1].
 Los principales componentes de la
arquitectura cliente/servidor son: clientes,
servidores y la infraestructura de
comunicaciones, como se puede ver en la
figura 1.1.
 Se denomina cliente al proceso que inicia el
diálogo o solicita los recursos y se denomina
servidor al proceso que responde a las
solicitudes por parte del cliente.
 Las aplicaciones en el cliente y en el servidor se
dividen de la siguiente manera: el servidor
contiene la parte que debe ser compartida por
varios usuarios y el cliente contiene sólo lo
particular de cada usuario.
 Los clientes interactúan con el usuario
usualmente en forma gráfica,
frecuentemente se comunican con procesos
auxiliares que se encargan de establecer
conexión con el servidor, enviar el pedido,
recibir la respuesta, manejar las fallas y
realizar actividades de sincronización y de
seguridad.
 Los servidores proporcionan un servicio al
cliente y devuelven los resultados, en algunos
casos existen procesos auxiliares que se encargan
de recibir las solicitudes del cliente, verificar la
protección, activar un proceso servidor para
satisfacer el pedido, recibir su respuesta y
enviarla al cliente. Además, deben manejar los
ínter bloqueos, la recuperación ante fallas y otros
aspectos afines.
 Para que los clientes y los servidores puedan
comunicarse se requiere de una infraestructura
de comunicaciones, la cual proporciona los
mecanismos básicos de direccionamiento y de
transporte. La mayoría de los actuales sistemas
cliente/servidor, se basan en LAN y por lo tanto
utilizan protocolos no orientados a conexión, lo
cual implica que las aplicaciones deben hacer las
verificaciones.
 . La red debe tener características adecuadas de
desempeño, confiabilidad, transparencia y
administración.
 Por las razones antes mencionadas, la plataforma
computacional asociada con los servidores es
más fuerte que la de los clientes, de aquí que se
utilicen computadoras poderosas,
minicomputadoras o sistemas grandes.
 Además, los servidores deben manejar
servicios como administración de la red,
mensajes, control y administración de la
entrada al sistema ("login"), auditoría,
recuperación y contabilidad, usualmente en
los servidores existe algún tipo de servicio
de bases de datos de SQL.
 Siempre que un cliente requiere un servicio
lo solicita al servidor correspondiente, y
este le responde proporcionándolo.
Normalmente, pero no necesariamente, el
cliente y el servidor están ubicados en
distintos procesadores. Los clientes se
suelen situar en computadoras y los
servidores en procesadores
departamentales o de grupo.
Algunas de las características de la arquitectura
cliente/servidor se mencionan a continuación:
El servidor presenta a todos sus clientes una interfase única
y bien definida.
  El cliente no necesita conocer la lógica del
servidor, sólo su interfase externa.
  El cliente no depende de: la ubicación física del
servidor, del tipo de equipo físico en el que se encuentra
y de su sistema operativo.
  Los cambios en el servidor implican pocos o
ningún cambio en el cliente.
 Como ejemplos de clientes pueden citarse
interfaces de usuario para enviar comandos
a un servidor, API's para el desarrollo de
aplicaciones distribuidas, herramientas en
el cliente para hacer acceso a servidores
remotos (como servidores de SQL) o
aplicaciones que solicitan acceso a
servidores para algunos servicios.
 Como ejemplos de servidores pueden
citarse servidores de ventanas como
Xwindows, servidores de archivos como
NFS (Network File System: Sistema de
ficheros distribuidos), servidores para el
manejo de bases de datos (como
servidores de SQL), servidores de diseño
y manufactura asistidos por computadora.
TIPOS DE SERVIDORES EN
CLIENTE/SERVIDOR
 La idea de dividir una aplicación a lo largo
de líneas de cliente/servidor se ha utilizado
para crear diversas modalidades de
soluciones de software para LAN. Estas
soluciones por lo general se venden como
paquetes comerciales de software y en
muchos de los casos las distribuyen varios
proveedores.
 Sin embargo, cada una de estas soluciones se
distinguen por la naturaleza del servicio que
ofrece a sus clientes, tal es el caso de los
servidores de archivos, los servidores de
transacciones, los servidores de groupware, los
servidores de objetos, los servidores de web y
los servidores de bases de datos, los cuales se
encuentran en la arquitectura cliente/servidor y
que se describen a continuación [RDJ,98].
Servidores de archivos: el cliente envía solicitudes de
registros de archivos al servidor de archivos a través
de una red. Se trata de una modalidad de servicio de
datos muy primitiva, pues se requieren numerosos
intercambios de mensajes a través de la red para
obtener los datos solicitados. Los servidores de
archivos son útiles para compartir archivos por
medio de una red y resultan indispensables para la
creación de depósitos compartidos de documentos,
imágenes, planos de ingeniería y otros objetos de
datos de grandes dimensiones.
 Servidores de groupware: el groupware
dirige la administración semiestructurada
como texto, imagen, correo, tableros de
avisos y flujo de trabajo. Estos sistemas de
cliente/servidor establecen un contacto
directo entre personas. Lotus Notes es el
ejemplo más conocido de sistemas de este
tipo.
 Software de groupware especializado
puede integrarse a paquetes de API
(Application Programmer Interface:
Interfaz de Programación de Aplicación)
de cliente/servidor de un proveedor. En la
mayoría de los casos se crean aplicaciones
usando lenguaje de creación de scripts e
interfaces basadas en formas ofrecidos por
el proveedor.
 El middleware de comunicación entre el
cliente y el servidor es propio de cada
distribuidor (Figura 1.3). A la larga,
Internet se convertirá en el middleware
ideal para groupware.
 Servidores de objetos: la aplicación
cliente/servidor se genera como un
conjunto de objetos de comunicación. Los
objetos del cliente se comunican con los
objetos del servidor mediante un ORB
(Object Request Broker: Corredor de
Solicitudes de Objetos).
El cliente invoca un método de un objeto remoto. El
ORB localiza una instancia de esa clase de
servidor de objetos, invoca el método solicitado y
envía los resultados al objeto del cliente. Los
objetos del servidor deben ofrecer soporte de
concurrencia y participación. El ORB se encarga
de reunir todos los elementos. Algunos ejemplos
de ORB comerciales son: ObjectBroker de
Digital, SOM 3.0 de IBM, NEO de Sun, ORB
Plus de HP, entre otros.
 Servidores de web: el Word Wide Web es
el modelo cliente/servidor integrado por
clientes "universales" compactos,
portátiles, en comunicación con servidores
superamplios. En su modalidad más
simple, un servidor Web envía documentos
cuando los clientes los solicitan por su
nombre
 Clientes y servidores se comunican mediante un
protocolo semejante al RPC (Remote Procedure
Call: Llamada de Procedimiento Remoto)
denominado HTTP (Hypertext Transfer Protocol:
Protocolo de Transferencia de Hipertexto). Este
protocolo define un conjunto simple de ordenes;
los parámetros se transmiten en cadenas sin
estipulaciones de datos tecleados
 El Web se halla en proceso de ampliación
para ofrecer modalidades de computación
de cliente/servidor más interactivas.
Además, el Web y objetos distribuidos ya
han comenzado a combinarse. Java es la
primera manifestación de este nuevo
objeto
 Servidores de transacciones: Con un
servidor de transacciones, el cliente invoca
procedimientos remotos que residen en el
servidor con un mecanismo de base de
datos de SQL. Estos procedimientos
remotos en el servidor ejecutan un grupo
de instrucciones de SQL.
El intercambio por la red consiste en un solo
mensaje de solicitud/respuesta (a diferencia de lo
que ocurre con el servidor de bases de datos, en
cuyo caso es necesario un mensaje de
solicitud/respuesta para cada instrucción de SQL
en una transacción). Los enunciados de SQL
aciertan o fallan todos como una solo unidad. A
estas instrucciones de SQL agrupadas se les
conoce como transacciones.
 Con un servidor de transacciones, el
programador crea la aplicación
cliente/servidor generando el código para
los componentes tanto de cliente como de
servidor. El componente del cliente suele
incluir una interfaz gráfica de usuario
(GUI: graphical user interface).
 El componente del servidor consiste por lo
general en transacciones de SQL contra
una base de datos. A estas aplicaciones se
les llama procesamiento de transacciones
en línea (OLP: online transaction
processing). Tienden a ser aplicaciones de
misión crítica que requieren de un tiempo
de respuesta de 1-3 segundos el 100% de
las veces.
 Las aplicaciones de OLTP también
requieren de firmes controles sobre la
seguridad e integridad de las bases de
datos.
 Servidores de bases de datos: en los
servidores de bases de datos, el cliente
envía solicitudes de SQL en calidad de
mensajes al servidor de bases de datos. Los
resultados de cada orden SQL son
devueltos por medio de la red. El código
que procesa la solicitud de SQL y los datos
residen en la misma máquina.
 El servidor hace uso de su propia capacidad de
procesamiento para encontrar los datos
solicitados. El resultado es un uso mucho más
eficiente de la capacidad de procesamiento
distribuido.En este caso, el código del servidor es
ofrecido en un paquete por el proveedor. Sin
embargo, es común que deban generarse códigos
para la aplicación cliente (o adquirir clientes en
paquetes comerciales como Quest y Parados).
Los servidores de base de datos constituyen
el fundamento de los sistemas de apoyo de
decisiones que precisan de consultas
específicas y reportes flexibles. En los
servidores de bases de datos se almacenan
las bases de datos, tablas, índices y es uno
de los servidores que más carga tiene
(figura 1.7).
CARACTERÍSTICAS DE LA
ARQ. CLIENTE/SERVIDOR
 Existe un conjunto de características que
describen la arquitectura cliente/servidor y las
cuales se describen en los siguientes temas,
algunas de estas características son: distintivas,
funcionales (se enfocan de acuerdo a las
funciones que asume el cliente y el servidor),
físicas (se refieren a la estructura física de
conexión entre el cliente y el servidor) y lógicas
(se relacionan con los datos y la GUI (Graphic
User Interface: Interfaz Gráfica de usuario)).
CARACTERÍSTICAS
DISTINTIVAS
 Como se deduce del término mismo,
clientes y servidores son entidades lógicas
independientes que operan en conjunto a
través de una red para realizar una tarea.
Todos los sistemas de cliente/servidor
poseen las siguientes características
distintivas que se describen a continuación
[RDJ,98]:
 Servicio: cliente/servidor es
fundamentalmente una relación entre
procesos ejecutados en lugares distintos. El
proceso del servidor hace de éste un
proveedor de servicios. El cliente es un
consumidor de servicios. En esencia,
cliente/servidor aporta una clara distinción
de funciones con base en la idea del
servicio.
 Recursos compartidos: un servidor puede
atender a muchos clientes al mismo tiempo y
regular su acceso a recursos compartidos.
 Protocolos asimétricos: entre clientes y
servidor, se establece una relación de "muchos a
uno". Son siempre los clientes los que inician el
diálogo al solicitar un servicio. Los servidores
aguardan pasivamente las solicitudes de los
clientes.
 Transparencia de ubicación: el servidor
es un proceso que puede residir en el
mismo lugar que el cliente o en un lugar
distinto a lo largo de una red. El software
de cliente/servidor suele ocultarles a los
clientes la ubicación del servidor mediante
el redireccionamiento de las llamadas de
servicio en caso necesario. Un programa
puede ser un cliente, un servidor o ambos.
 Mezcla e igualdad: el software ideal de
cliente/servidor es independiente del hardware o de
las plataformas de software del sistema operativo,
para esto debemos estar en condiciones de mezcla e
igualar plataformas de cliente y de servidor.
 Intercambios basados en mensajes: clientes y
servidores son sistemas holgadamente acoplados que
interactúan a través de un mecanismo de transmisión
de mensajes. El mensaje es el mecanismo de entrega
para las solicitudes y respuestas de servicio.
 Encapsulamiento de servicios: el servidor
es un "especialista". Un mensaje le indica a
un servidor qué servicio se solicita; éste se
le envía luego al servidor para determinar
el cumplimiento de la tarea. Los servidores
pueden ser sustituidos sin afectar a los
clientes, siempre y cuando la interfaz para
la publicación del mensaje no cambie.
 Facilidad de escalabilidad: los sistemas de
cliente/servidor pueden escalarse horizontal o
verticalmente. La escalabilidad horizontal
significa la adición o eliminación de estaciones
de trabajo del cliente con apenas un ligero
impacto en el desempeño. La escalabilidad
vertical significa migrar a un aparato servidor
más grande y más veloz o a servidores múltiples.
– Integridad: el código del servidor y los datos
del servidor se conservan centralmente, lo que
resulta en un mantenimiento de menor costo y
en la protección de la integridad de los datos
compartidos. Al mismo tiempo, los clientes
mantienen su individualidad e independencia.

Muestra como es eñ Modelo Cliente/Servidor

  • 1.
    Capítulo 1 Capítulo 1 ModeloCliente/ Modelo Cliente/ Servidor Servidor
  • 2.
    1.1 INTRODUCCIÓN  Enlos últimos tiempos se ha venido modificando substancialmente el papel que juega la computación, además de ser un elemento de apoyo a las operaciones básicas, se ha constituido en un medio de obtener ventajas competitivas y de incremento de las prestaciones y/o servicios.
  • 3.
     Para esto,las aplicaciones deben ser desarrolladas en forma acelerada, ya que los requerimientos de las compañías cambian rápidamente y deben adaptarse a ellas. Se está dando mucho énfasis a la importancia de contar con información confiable y oportuna, para lograrlo, tanto la información como los sistemas para procesarla deben ser distribuidos a una larga audiencia.
  • 4.
     Las nuevasaplicaciones deben basarse en tecnologías que disminuyan los costos de desarrollo y mantenimiento, en aspectos relacionados con el hardware, el software, la operación, la capacitación, el personal y el mantenimiento, además, es necesario que se comuniquen con las aplicaciones existentes.
  • 5.
     Una delas arquitecturas que responden a las actuales necesidades es la arquitectura cliente/servidor.  Cliente/servidor es un movimiento que está cambiando la forma en que se usan las computadoras, además de ser una nueva era de coexistencia y apertura en la que todos pueden participar.
  • 6.
     Actualmente elsector más activo de cliente/servidor es el de las bases de datos de SQL (Structured Query Language: Lenguaje de Consulta Estructurado), existen servidores de SQL que son el modelo dominante para la creación de aplicaciones cliente/servidor.
  • 7.
     Los productosde proveedores de servidores de SQL como: Interbase, Adaptive Server, MS SQL Server, DB2 Dynamic Server y Oracle son ampliamente utilizados.
  • 8.
    CONCEPTOS DE LAARQ. CLIENTE/SERVIDOR  La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de información en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos.
  • 9.
     Es elmodelo de interacción más común entre aplicaciones en una red, todos los servicios estándares de alto nivel propuestos en Internet funcionan según este modelo y no forma parte de los conceptos de Internet como los protocolos IP (Internet Protocol: Protocolo Internet) y TCP (Transmission Control Protocol: Protocolo de Control de Transmisión) [NET,1].
  • 10.
     Los principalescomponentes de la arquitectura cliente/servidor son: clientes, servidores y la infraestructura de comunicaciones, como se puede ver en la figura 1.1.
  • 12.
     Se denominacliente al proceso que inicia el diálogo o solicita los recursos y se denomina servidor al proceso que responde a las solicitudes por parte del cliente.  Las aplicaciones en el cliente y en el servidor se dividen de la siguiente manera: el servidor contiene la parte que debe ser compartida por varios usuarios y el cliente contiene sólo lo particular de cada usuario.
  • 13.
     Los clientesinteractúan con el usuario usualmente en forma gráfica, frecuentemente se comunican con procesos auxiliares que se encargan de establecer conexión con el servidor, enviar el pedido, recibir la respuesta, manejar las fallas y realizar actividades de sincronización y de seguridad.
  • 14.
     Los servidoresproporcionan un servicio al cliente y devuelven los resultados, en algunos casos existen procesos auxiliares que se encargan de recibir las solicitudes del cliente, verificar la protección, activar un proceso servidor para satisfacer el pedido, recibir su respuesta y enviarla al cliente. Además, deben manejar los ínter bloqueos, la recuperación ante fallas y otros aspectos afines.
  • 15.
     Para quelos clientes y los servidores puedan comunicarse se requiere de una infraestructura de comunicaciones, la cual proporciona los mecanismos básicos de direccionamiento y de transporte. La mayoría de los actuales sistemas cliente/servidor, se basan en LAN y por lo tanto utilizan protocolos no orientados a conexión, lo cual implica que las aplicaciones deben hacer las verificaciones.
  • 16.
     . Lared debe tener características adecuadas de desempeño, confiabilidad, transparencia y administración.  Por las razones antes mencionadas, la plataforma computacional asociada con los servidores es más fuerte que la de los clientes, de aquí que se utilicen computadoras poderosas, minicomputadoras o sistemas grandes.
  • 17.
     Además, losservidores deben manejar servicios como administración de la red, mensajes, control y administración de la entrada al sistema ("login"), auditoría, recuperación y contabilidad, usualmente en los servidores existe algún tipo de servicio de bases de datos de SQL.
  • 18.
     Siempre queun cliente requiere un servicio lo solicita al servidor correspondiente, y este le responde proporcionándolo. Normalmente, pero no necesariamente, el cliente y el servidor están ubicados en distintos procesadores. Los clientes se suelen situar en computadoras y los servidores en procesadores departamentales o de grupo.
  • 19.
    Algunas de lascaracterísticas de la arquitectura cliente/servidor se mencionan a continuación: El servidor presenta a todos sus clientes una interfase única y bien definida.   El cliente no necesita conocer la lógica del servidor, sólo su interfase externa.   El cliente no depende de: la ubicación física del servidor, del tipo de equipo físico en el que se encuentra y de su sistema operativo.   Los cambios en el servidor implican pocos o ningún cambio en el cliente.
  • 20.
     Como ejemplosde clientes pueden citarse interfaces de usuario para enviar comandos a un servidor, API's para el desarrollo de aplicaciones distribuidas, herramientas en el cliente para hacer acceso a servidores remotos (como servidores de SQL) o aplicaciones que solicitan acceso a servidores para algunos servicios.
  • 21.
     Como ejemplosde servidores pueden citarse servidores de ventanas como Xwindows, servidores de archivos como NFS (Network File System: Sistema de ficheros distribuidos), servidores para el manejo de bases de datos (como servidores de SQL), servidores de diseño y manufactura asistidos por computadora.
  • 22.
    TIPOS DE SERVIDORESEN CLIENTE/SERVIDOR  La idea de dividir una aplicación a lo largo de líneas de cliente/servidor se ha utilizado para crear diversas modalidades de soluciones de software para LAN. Estas soluciones por lo general se venden como paquetes comerciales de software y en muchos de los casos las distribuyen varios proveedores.
  • 23.
     Sin embargo,cada una de estas soluciones se distinguen por la naturaleza del servicio que ofrece a sus clientes, tal es el caso de los servidores de archivos, los servidores de transacciones, los servidores de groupware, los servidores de objetos, los servidores de web y los servidores de bases de datos, los cuales se encuentran en la arquitectura cliente/servidor y que se describen a continuación [RDJ,98].
  • 24.
    Servidores de archivos:el cliente envía solicitudes de registros de archivos al servidor de archivos a través de una red. Se trata de una modalidad de servicio de datos muy primitiva, pues se requieren numerosos intercambios de mensajes a través de la red para obtener los datos solicitados. Los servidores de archivos son útiles para compartir archivos por medio de una red y resultan indispensables para la creación de depósitos compartidos de documentos, imágenes, planos de ingeniería y otros objetos de datos de grandes dimensiones.
  • 26.
     Servidores degroupware: el groupware dirige la administración semiestructurada como texto, imagen, correo, tableros de avisos y flujo de trabajo. Estos sistemas de cliente/servidor establecen un contacto directo entre personas. Lotus Notes es el ejemplo más conocido de sistemas de este tipo.
  • 27.
     Software degroupware especializado puede integrarse a paquetes de API (Application Programmer Interface: Interfaz de Programación de Aplicación) de cliente/servidor de un proveedor. En la mayoría de los casos se crean aplicaciones usando lenguaje de creación de scripts e interfaces basadas en formas ofrecidos por el proveedor.
  • 28.
     El middlewarede comunicación entre el cliente y el servidor es propio de cada distribuidor (Figura 1.3). A la larga, Internet se convertirá en el middleware ideal para groupware.
  • 30.
     Servidores deobjetos: la aplicación cliente/servidor se genera como un conjunto de objetos de comunicación. Los objetos del cliente se comunican con los objetos del servidor mediante un ORB (Object Request Broker: Corredor de Solicitudes de Objetos).
  • 31.
    El cliente invocaun método de un objeto remoto. El ORB localiza una instancia de esa clase de servidor de objetos, invoca el método solicitado y envía los resultados al objeto del cliente. Los objetos del servidor deben ofrecer soporte de concurrencia y participación. El ORB se encarga de reunir todos los elementos. Algunos ejemplos de ORB comerciales son: ObjectBroker de Digital, SOM 3.0 de IBM, NEO de Sun, ORB Plus de HP, entre otros.
  • 33.
     Servidores deweb: el Word Wide Web es el modelo cliente/servidor integrado por clientes "universales" compactos, portátiles, en comunicación con servidores superamplios. En su modalidad más simple, un servidor Web envía documentos cuando los clientes los solicitan por su nombre
  • 34.
     Clientes yservidores se comunican mediante un protocolo semejante al RPC (Remote Procedure Call: Llamada de Procedimiento Remoto) denominado HTTP (Hypertext Transfer Protocol: Protocolo de Transferencia de Hipertexto). Este protocolo define un conjunto simple de ordenes; los parámetros se transmiten en cadenas sin estipulaciones de datos tecleados
  • 35.
     El Webse halla en proceso de ampliación para ofrecer modalidades de computación de cliente/servidor más interactivas. Además, el Web y objetos distribuidos ya han comenzado a combinarse. Java es la primera manifestación de este nuevo objeto
  • 36.
     Servidores detransacciones: Con un servidor de transacciones, el cliente invoca procedimientos remotos que residen en el servidor con un mecanismo de base de datos de SQL. Estos procedimientos remotos en el servidor ejecutan un grupo de instrucciones de SQL.
  • 37.
    El intercambio porla red consiste en un solo mensaje de solicitud/respuesta (a diferencia de lo que ocurre con el servidor de bases de datos, en cuyo caso es necesario un mensaje de solicitud/respuesta para cada instrucción de SQL en una transacción). Los enunciados de SQL aciertan o fallan todos como una solo unidad. A estas instrucciones de SQL agrupadas se les conoce como transacciones.
  • 38.
     Con unservidor de transacciones, el programador crea la aplicación cliente/servidor generando el código para los componentes tanto de cliente como de servidor. El componente del cliente suele incluir una interfaz gráfica de usuario (GUI: graphical user interface).
  • 39.
     El componentedel servidor consiste por lo general en transacciones de SQL contra una base de datos. A estas aplicaciones se les llama procesamiento de transacciones en línea (OLP: online transaction processing). Tienden a ser aplicaciones de misión crítica que requieren de un tiempo de respuesta de 1-3 segundos el 100% de las veces.
  • 40.
     Las aplicacionesde OLTP también requieren de firmes controles sobre la seguridad e integridad de las bases de datos.
  • 42.
     Servidores debases de datos: en los servidores de bases de datos, el cliente envía solicitudes de SQL en calidad de mensajes al servidor de bases de datos. Los resultados de cada orden SQL son devueltos por medio de la red. El código que procesa la solicitud de SQL y los datos residen en la misma máquina.
  • 43.
     El servidorhace uso de su propia capacidad de procesamiento para encontrar los datos solicitados. El resultado es un uso mucho más eficiente de la capacidad de procesamiento distribuido.En este caso, el código del servidor es ofrecido en un paquete por el proveedor. Sin embargo, es común que deban generarse códigos para la aplicación cliente (o adquirir clientes en paquetes comerciales como Quest y Parados).
  • 44.
    Los servidores debase de datos constituyen el fundamento de los sistemas de apoyo de decisiones que precisan de consultas específicas y reportes flexibles. En los servidores de bases de datos se almacenan las bases de datos, tablas, índices y es uno de los servidores que más carga tiene (figura 1.7).
  • 46.
    CARACTERÍSTICAS DE LA ARQ.CLIENTE/SERVIDOR  Existe un conjunto de características que describen la arquitectura cliente/servidor y las cuales se describen en los siguientes temas, algunas de estas características son: distintivas, funcionales (se enfocan de acuerdo a las funciones que asume el cliente y el servidor), físicas (se refieren a la estructura física de conexión entre el cliente y el servidor) y lógicas (se relacionan con los datos y la GUI (Graphic User Interface: Interfaz Gráfica de usuario)).
  • 47.
    CARACTERÍSTICAS DISTINTIVAS  Como sededuce del término mismo, clientes y servidores son entidades lógicas independientes que operan en conjunto a través de una red para realizar una tarea. Todos los sistemas de cliente/servidor poseen las siguientes características distintivas que se describen a continuación [RDJ,98]:
  • 48.
     Servicio: cliente/servidores fundamentalmente una relación entre procesos ejecutados en lugares distintos. El proceso del servidor hace de éste un proveedor de servicios. El cliente es un consumidor de servicios. En esencia, cliente/servidor aporta una clara distinción de funciones con base en la idea del servicio.
  • 49.
     Recursos compartidos:un servidor puede atender a muchos clientes al mismo tiempo y regular su acceso a recursos compartidos.  Protocolos asimétricos: entre clientes y servidor, se establece una relación de "muchos a uno". Son siempre los clientes los que inician el diálogo al solicitar un servicio. Los servidores aguardan pasivamente las solicitudes de los clientes.
  • 50.
     Transparencia deubicación: el servidor es un proceso que puede residir en el mismo lugar que el cliente o en un lugar distinto a lo largo de una red. El software de cliente/servidor suele ocultarles a los clientes la ubicación del servidor mediante el redireccionamiento de las llamadas de servicio en caso necesario. Un programa puede ser un cliente, un servidor o ambos.
  • 51.
     Mezcla eigualdad: el software ideal de cliente/servidor es independiente del hardware o de las plataformas de software del sistema operativo, para esto debemos estar en condiciones de mezcla e igualar plataformas de cliente y de servidor.  Intercambios basados en mensajes: clientes y servidores son sistemas holgadamente acoplados que interactúan a través de un mecanismo de transmisión de mensajes. El mensaje es el mecanismo de entrega para las solicitudes y respuestas de servicio.
  • 52.
     Encapsulamiento deservicios: el servidor es un "especialista". Un mensaje le indica a un servidor qué servicio se solicita; éste se le envía luego al servidor para determinar el cumplimiento de la tarea. Los servidores pueden ser sustituidos sin afectar a los clientes, siempre y cuando la interfaz para la publicación del mensaje no cambie.
  • 53.
     Facilidad deescalabilidad: los sistemas de cliente/servidor pueden escalarse horizontal o verticalmente. La escalabilidad horizontal significa la adición o eliminación de estaciones de trabajo del cliente con apenas un ligero impacto en el desempeño. La escalabilidad vertical significa migrar a un aparato servidor más grande y más veloz o a servidores múltiples.
  • 54.
    – Integridad: elcódigo del servidor y los datos del servidor se conservan centralmente, lo que resulta en un mantenimiento de menor costo y en la protección de la integridad de los datos compartidos. Al mismo tiempo, los clientes mantienen su individualidad e independencia.