> # Programación con el Servicio de Excel

> ## Arquitectura

> ### Figura 1: Arquitectura del Servicio Excel

> El Servicio de Excel es construido con tecnologías ASP.NET 2.0, como todos los componentes de SharePoint 2007, y esta compuesto de tres componentes principales:

> - Acceso de Excel Web:

> Es una WebPart en MOSS que crea el código HTML para mostrar hojas de cálculo en páginas web y que permite a los usuarios interactuar con ellas. El acceso de Excel Web es la parte visible de los componentes de los Servicios de Excel para los usuarios. La WebPart se puede utilizar de la misma forma que cualquier otra WebPart de SharePoint 2007, no requiere ningún tipo de instalación en los computadores cliente y es completamente configurable.

> - WebService de Excel:

> Es el componente que provee acceso programático a los Servicios Web. Aplicaciones pueden ser desarrolladas para llamar los Servicios de Excel y calcular, editar y extraer valores de hojas de cálculo, así como refrescar conexiones con fuentes de datos externas. Usando el WebService de Excel es posible integrar la lógica de una aplicación con una hoja de calculo, automatizar la recopilación de datos y su cálculo y crear interfaces específicas sobre cálculos de Excel.

> Cambios realizados programáticamente en una hoja de cálculo son validos únicamente para la sesión utilizada por el usuario actualmente, y no para la hoja de cálculo original. Cuando los cálculos han sido realizados y la sesión es terminada, los valores cambiados desaparecen sin modificar la hoja original. Si se desea persistir los cambios es necesario utilizar los métodos normales de SharePoint para editar y guardar cambios en un documento de una Librería.

> - Servicios de Cálculo de Excel:

> El servicio de cálculo se encarga de cargar la hoja de calculo, realizar los cálculos necesarios, llamar código personalizado o funciones definidas por los usuarios y refrescar los datos externos. También se encarga de mantener el estado de la sesión para permitir la interacción con la hoja de cálculo. El servicio de cálculo mantiene una sesión abierta por la duración de la interacción entre el usuario y una hoja de cálculo y es cerrada cuando el usuario explícitamente termina la sesión o cuando el tiempo por defecto ocurre sin cambios registrados. El servicio de Excel guarda las hojas de cálculo en memoria, así como el estado de los cálculos y los resultados externos para mejorar el rendimiento del sistema cuando hay varios usuarios utilizando las hojas de cálculo concurrentemente.

> En configuraciones de servidores múltiples (granjas), el servicio de cálculo dispone de un sistema de balanceo de carga a través de los diferentes servidores de tal forma que un solo servidor no sea sobrecargado por un exceso de solicitudes.

> Los tres componentes de la arquitectura del sistema pueden estar separados en un sistema de granja de servidores, o funcionar conjuntamente en un solo servidor, permitiendo crear sistemas distribuidos que repartan la carga de usuarios y que pueden ser fácilmente ampliados si la carga aumenta.

> ## Programación

> El WebService de los Servicios de Excel utilizan el protocolo de Acceso Simple de Objetos (Simple Access Protocol, SOAP) sobre HTTP y actúa como la interface de comunicación entre el programa cliente y el Servicio de Excel. El WebService consiste de una serie de métodos y objetos que pueden ser utilizados para acceder la funcionalidad completa de los Servicios de Excel.

> El WebService utiliza el esquema de autenticación que WSS soporta, por lo que es necesario proveer las credenciales del usuario antes de enviar la solicitud de utilización al WebService. Es necesario declarar explícitamente las credenciales, aunque solamente se pretenda utilizar el sistema de credenciales por defecto.

> ## Video

> Manipulación programática del Servicio Excel se puede realizar utilizando su WebService. El video muestra como instanciar una hoja de calculo para enviar una consulta y recuperar un valor de ella, y la manera de editarla y ejecutar los cálculos de nuevo. También se indica como persistir los datos si así se desea.
> Duración: 11:26 minutos