Comparar los servicios Web de informes y RAS no administrado
En esta sección se examinan dos enfoques a los servicios Web que utilizan las soluciones de elaboración de informes de Business Objects:
- Servicios Web de informes
- Un servidor RAS no administrado (consulte Servidor de aplicaciones de informes (RAS)).
Los dos enfoques se examinan y comparan entre sí, en cuanto a rendimiento y escalabilidad.
Un servidor RAS no administrado mejora el rendimiento en Crystal Reports para Visual Studio. En los sistemas que utilizan un servidor RAS no administrado, el motor de informes funciona desde un proceso de servidor de informes externo en lugar de estar incrustado en la aplicación.
Nota |
---|
En Crystal Reports Advanced edition se suministra un servidor RAS no administrado; también se puede obtener una licencia en función del procesador. Estos productos ya no están disponibles. Se recomienda realizar una actualización a Crystal Reports Server en su lugar. Para obtener más información sobre las opciones de actualización, vea Opciones de actualización. Para obtener más información sobre la arquitectura de RAS no administrado, vea Comparación de arquitecturas en las soluciones de elaboración de informes de Business Objects. |
Comparación de servicios Web de informes y RAS no administrado
Una pregunta que los programadores plantean sobre el servidor RAS no administrado es si su arquitectura y rendimiento son superiores a lo que podrían generar con el marco de trabajo Servicios Web de informes en Crystal Reports para Visual Studio. Es decir, exponer informes en un servidor y consumirlos en otro.
La respuesta a esta pregunta tiene tres apartados:
- Servicios Web de informes se puede usar para generar una arquitectura similar superficialmente: un servidor Web que recupera informes de un servidor de informes.
- No obstante, el núcleo de un servidor RAS no administrado es que extrae completamente el procesamiento de informes a un proceso externo. El control CrystalReportViewer del servidor Web se limita a pasar solicitudes (por ejemplo, un parámetro modificado); a continuación, el servidor RAS no administrado ejecuta todo el procesamiento internamente antes de devolver el informe. Los servicios Web de informes no tienen esta capacidad. El control del servidor Web debe iniciar varias solicitudes desde el modelo de objetos CrystalReportViewer hasta el informe proporcionado por los servicios Web de informes. Como resultado, el procesamiento de informes se divide entre el servidor Web y el servidor de informes y se genera un tráfico intenso con un protocolo lento basado en texto.
Nota El uso de RAS es análogo al de los procedimientos almacenados en un servidor de base de datos, de forma que todo el procesamiento de bases de datos se extrae por completo al servidor de base de datos. Los servicios Web de informes son análogos a la transferencia de múltiples cadenas de consulta SQL a una base de datos atendida de forma remota.
- Los servicios Web de informes no se han diseñado para imitar el marco de RAS no administrado (donde se gana en rendimiento debido a la extracción completa del proceso de elaboración de informes). Se han diseñado para facilitar una comunicación sin restricciones entre empresas (protocolo basado en XML estandarizado para comunicaciones ampliadas entre múltiples compañías).
Limitaciones de rendimiento de los servicios Web de informes en comparación con un servidor RAS
Los servicios Web de informes tienen tres limitaciones de rendimiento principales en comparación con un servidor RAS no administrado.
Limitación de rendimiento nº 1: los servicios Web de informes carecen de la mejora fundamental de arquitectura de un servidor RAS no administrado
En Crystal Reports para Visual Studio, el motor de informes está incrustado en la aplicación. Esto supone una limitación en la arquitectura respecto al número de usuarios que pueden acceder simultáneamente a los informes. Un servidor RAS no administrado extrae el motor de informes de la aplicación y lo ejecuta en un proceso de servidor de informes independiente. Una vez extraído el motor de informes, desaparece la limitación de arquitectura, lo que permite que se escale un servidor RAS no administrado basándose únicamente en límites de licencias.
Cuando se proporcionan servicios Web de informes desde un servidor independiente, se trata simplemente de una segunda copia de la aplicación de Crystal Reports en ejecución. Lo que ocurre es que atiende servicios Web de informes en lugar de sitios Web, pero la aplicación es la misma. Por lo tanto, el motor de informes está incrustado en la aplicación, lo que limita el rendimiento en relación con la restricción arquitectónica respecto al número de usuarios que pueden obtener acceso a los informes de forma simultánea.
Limitación de rendimiento nº 2: los servicios Web de informes muestran un informe, no un modelo de objetos de informe
Al ejecutar una aplicación Web con Crystal Reports, el control CrystalReportViewer se puede enlazar a los informes de numerosas formas, descritas en Enlazar informes al modelo de objetos CrystalReportViewer.
Sin embargo, la distinción más importante consiste en si el control CrystalReportViewer se enlaza directamente a un informe mediante una cadena de ruta o bien se enlaza a uno de los modelos de objeto de informe.
Nota |
---|
Para obtener más información sobre estos modelos de objetos, vea ¿Cuál es el modelo de objetos que se debe utilizar?. |
El enlace del control CrystalReportViewer a un modelo de objeto de informe es una práctica recomendada. De esta forma, la función del control se limita a mostrar el informe, mientras que el modelo de objetos de informe se ocupa de ejecutar la lógica de negocios. Esto posibilita una clara separación entre la capa de presentación y la lógica de negocios subyacente. Debido a que los límites están bien definidos, el modelo de objetos tiene acceso a todos los beneficios de la capa de la lógica de negocios.
Esto resulta más evidente cuando se aplica al servidor RAS no administrado. CrystalReportViewer se enlaza al modelo de objetos ReportClientDocument, que está incluido en RAS y, por lo tanto, se ejecuta en un proceso de elaboración de informes independiente. Esto permite que el servidor RAS administre el modelo de objetos ReportClientDocument de forma exclusiva en el proceso de elaboración de informes; el control CrystalReportViewer se limita a pasar cadenas de parámetros (por ejemplo, un usuario concreto u otros criterios de presentación) a RAS no administrado y el servidor RAS interactúa con esta información y devuelve el informe procesado. La clara separación de las capas hace que el tráfico en la red sea mínimo.
Sin embargo, si el control CrystalReportViewer no se conecta a un modelo de objeto de informe, sino que se conecta directamente a un informe a través de una cadena de ruta de directorio de archivos o de una dirección URL de servicio Web de informes, el control CrystalReportViewer deberá depender de su propio modelo de objeto limitado para cualquier interacción con el informe. En este modelo, el límite entre la capa de presentación y la lógica de negocios no está bien definido. Esto plantea problemas especialmente en el caso de que el informe de origen se encuentre en una red, ya que un número de solicitudes debe desplazarse entre el modelo de objetos del control CrystalReportViewer en el servidor Web y el informe en el otro servidor, en ambas direcciones.
Este caso no sólo es más lento que RAS, es incluso más lento que la configuración predeterminada: carga de un informe desde el directorio de archivos del servidor Web en el modelo de objetos ReportDocument.
Limitación de rendimiento nº 3: los servicios Web de informes generan un tráfico intenso en la red con un protocolo XML/SOAP (basado en texto) lento
Como se menciona en la limitación anterior, la falta de un modelo de objetos en los servicios Web de informes hace que la separación entre capas no esté bien definida y, por lo tanto, causa un tráfico intenso en la red. Este problema se agrava con el hecho de que los servicios Web de informes utilizan XML/SOAP (un protocolo lento basado en texto) para comunicarse en la red.
Conclusión
Los servicios Web de informes son una herramienta de valor incalculable para facilitar la comunicación entre empresas a través de un protocolo estándar. No están diseñados para la optimización del rendimiento.
Por lo tanto:
- Para generar una arquitectura para servir informes en una aplicación Web o para Windows: inicie Crystal Reports para Visual Studio y encapsule los informes en el modelo de objetos ReportDocument.
- Para obtener una optimización del rendimiento y aumentar la escalabilidad de la aplicación, considere la actualización a un servidor RAS no administrado.
- Para compartir informes entre empresas: utilice Servicios Web de informes.
Comparaciones adicionales entre RAS no administrado y los servicios Web de informes
RAS no administrado
|
Servicios Web de informes
|
---|---|
No limitado por SOAP
|
Limitados por SOAP
|
Acceso al modelo de objetos ReportClientDocument
|
Sin acceso a este modelo de objetos (sólo vista)
|
Optimizaciones de almacenamiento en cola o caché
|
No se almacena en cola o caché
|
Puerto 1566
|
Puerto 80
|
Si se utiliza BusinessObjects Enterprise, RAS se puede ejecutar en varios servidores
|
Requiere diversas copias para varios servidores
|
El límite de capacidad se puede aumentar con la obtención de licencias adicionales
|
La capacidad está fijada siempre que el motor de informes esté incluido con la aplicación
|