Introducción a Office Web Apps Server

Artículo original publicado el martes, 11 de septiembre de 2012

El autor de esta publicación es Nick Simons, administrador jefe de programas de Office Web Apps.

En el verano de 2010, presentamos Office Web Apps: versiones de Word, PowerPoint, Excel y OneNote basadas en el explorador. Lanzamos estos productos como un conjunto de aplicaciones de SharePoint. Los clientes que querían implementar Office Web Apps en sus propias redes tenían que instalar Office Web Apps en servidores de SharePoint.

En aquel momento, una integración íntima con SharePoint nos pareció lo mejor. A todas luces, SharePoint era y es un pilar de la historia de Office Web Apps. Además, SharePoint tiene un modelo bien definido para integrar aplicaciones como Office Web Apps. Sin embargo, mientras planeábamos la siguiente versión de Office Web Apps, nos dimos cuenta de que sería difícil lograr algunos de nuestros principales objetivos con una arquitectura tan íntimamente ligada a SharePoint.

Queríamos simplificar la planeación de la capacidad y la configuración, así como habilitar la federación en varias granjas de servidores. También queríamos satisfacer las solicitudes de integración de nuevos socios, como Lync. Finalmente, muchos de nuestros clientes, tanto de Office 365 como locales, nos dijeron que querían las mismas mejoras de las que disfrutaban los usuarios de SkyDrive de manera regular.

Para alcanzar estos objetivos, volvimos al principio y nos replanteamos de qué forma se podría integrar Office Web Apps con otros productos ahora y en el futuro. Creamos un modelo nuevo que aislaba Office Web Apps de todas las tecnologías específicas de nuestros socios. Al final, nuestro modelo suponía una carga de codificación relativamente ligera para los hosts de archivos, como SharePoint, y nos permitía usar Office Web Apps en servidores totalmente independientes.

Este nuevo producto de servidor independiente es Office Web Apps Server.

Sabemos que, al principio, puede parecer que la idea de tener un tipo adicional de servidor representa una complicación añadida y una pesada carga para el administrador, pero verá que con esta plataforma independiente conseguimos...

1.  Una instalación más sencilla

2.  Un proceso de actualización y un mantenimiento totalmente independientes de SharePoint

3.  La integración de varias granjas de servidores de SharePoint en una única granja de servidores de Office Web Apps Server

4.  La integración de otros productos, como Exchange, Lync y productos de otros fabricantes, en Office Web Apps

5.  La entrega de nuevas características y mejoras a nuestros clientes basados en web y locales prácticamente al mismo tiempo

Si comparamos las implementaciones anteriores de Office Web Apps en SharePoint 2010 con las nuevas implementaciones en Office Web Apps Server, las ventajas se hacen patentes.

Con la versión anterior de Office, una implementación normal de Office Web Apps era algo parecido a esto...

 

Versión anterior de las implementaciones de Office Web Apps

La versión anterior de Office Web Apps se tenía que instalar en cada una de las granjas de servidores y en todas las máquinas de cada granja. Además, el escalado de Office Web Apps dependía del escalado global de SharePoint y, para actualizar Office Web Apps, había que actualizar código en todas las máquinas de todas las granjas de servidores de SharePoint.

Con Office Web Apps Server, la implementación debería parecerse más a esto...

 

Implementaciones de Office Web Apps con Office Web Apps Server

Como puede ver, una sola granja de servidores de Office Web Apps Server puede atender a varias granjas de servidores de SharePoint 2013, además de a Lync 2013 y a Exchange 2013 (Outlook Web Access). Además, puede usar la granja de servidores de Office Web Apps para ver cualquier archivo de Word, Excel y PowerPoint que sea accesible a través de una dirección URL o una UNC.

Breve introducción al nuevo modelo de integración

A continuación, se describe cómo se integra Office Web Apps con un host de archivos como SharePoint a alto nivel. Esta información le ayudará a entender los requisitos de red y de seguridad que se detallan más adelante.

Para empezar, lea estas definiciones:

  • Office Web Apps Server: ofrece a los hosts las funciones de Office Web Apps y es el tema central de este artículo.
  • Host: usa los servicios que proporciona Office Web Apps Server para mostrar archivos en un explorador web. Por ejemplo, SharePoint Server 2013, Lync Server 2013 y Exchange Server 2013 son hosts. 
  • Cliente: es un explorador u otro software parecido.

Un componente clave del nuevo modelo de integración es la nueva API pública que Office Web Apps usa para comunicarse con los hosts. Esta API se denomina WOPI (Interfaz de plataforma abierta de aplicación web). Office Web Apps Server busca y manipula archivos con la WOPI API. A menudo, describimos Office Web Apps Server como una aplicación WOPI. Los hosts deben entender las solicitudes WOPI de las aplicaciones WOPI.

WOPI es una API de RESTful que usa HTTP/HTTPS. Esto significa que, entre otras cosas, todo el tráfico transferido entre los hosts y Office Web Apps Server viaja a través de puertos HTTP/HTTPS estándar. También quiere decir que, en la medida de lo posible, Office Web Apps Server no tiene estado, lo que lo hace más resistente a diversos errores, desde interrupciones en la red hasta errores globales de hardware.

Para comprender el funcionamiento de la WOPI, vamos a explorar un escenario sencillo en el que un usuario, Pilar, ve el archivo prueba.docx, que está hospedado en SharePoint. El proceso es el siguiente...

1.  Pilar navega hasta la biblioteca de documentos donde está almacenado prueba.docx.

2.  En la biblioteca de documentos, Pilar hace clic en el nombre del archivo.

3.  SharePoint navega por el explorador hasta llegar a una página especial de SharePoint que puede enviar solicitudes a Office Web Apps Server (y a otras aplicaciones WOPI). A esta página de SharePoint la llamaremos WOPIFrame.aspx.

4.  WOPIFrame.aspx contiene un iframe (https://dev.w3.org/html5/spec/the-iframe-element.html) que navega hasta una página ubicada en Office Web Apps Server. A esta página la llamaremos WordViewer.aspx. La solicitud HTTP enviada a WordViewer.aspx incluye algunos datos importantes:

    • La dirección URL que Office Web Apps Server usará para bajar prueba.docx. Este es el extremo de la WOPI.
    • El nombre del archivo. Lo que se hace es combinar el extremo de la WOPI y el nombre del archivo en un solo parámetro, que es el origen de la WOPI.
    • Una cadena que Office Web Apps puede transmitir al extremo de la WOPI y que representa las credenciales de Pilar. A esto lo llamamos "token de acceso".
      Por razones de seguridad, el token de acceso solo permite a Pilar acceder a un archivo concreto. Si una persona malintencionada robara el token, solo podría suplantar a Pilar en el contexto de ese único archivo. Aun así, no es una situación deseable, por eso es importante proteger el token de acceso con SSL.

5.  Office Web Apps Server usa el origen de la WOPI y el token de acceso para bajar prueba.docx de SharePoint.

6.  WordViewer.aspx muestra prueba.docx en el iframe de WOPIFrame.aspx.

En este dibujo se ilustra el flujo de datos entre el explorador, SharePoint y Office Web Apps Server:

Flujo de datos entre el explorador, SharePoint y Office Web Apps Server

Configurar la granja de servidores de Office Web Apps Server

En este caso, una granja de servidores puede representar desde una máquina virtual que funciona en un servidor compartido hasta una granja de servidores con docenas de servidores de centros de datos. La configuración y el mantenimiento básicos son iguales en todos los casos. Los pasos y los requisitos previos concretos para crear una granja de servidores se incluyen con el producto, así que no los voy a explicar aquí. Lo que sí voy a hacer es describir con cierto nivel de detalle lo que implica el proceso.

Hardware

En primer lugar, va a necesitar algunas máquinas. Supongamos que va a configurar una granja de servidores que atienda las necesidades de 80.000 usuarios de varias granjas de servidores de SharePoint. Creemos que posiblemente necesite 4 servidores con:

  • Windows Server 2008 R2 o Windows Server 2012 con todos los requisitos previos
  • 8 núcleos
  • 8 GB de RAM
  • Un disco duro de buen tamaño (como mínimo 60 GB)

También vamos a necesitar un equilibrador de carga. Tenemos una granja de servidores con 10 máquinas configurada en Microsoft que comparte un equilibrador de carga de hardware F5 BIG-IP con varios productos de otros servidores. Esta disposición funciona muy bien y cualquier solución buena de equilibrio de carga valdrá. La única recomendación que se debería seguir es que la solución de equilibrio de carga admita afinidad. Para el rendimiento, es muy útil que el mismo servidor atienda todas las solicitudes de una determinada sesión.

Red

Vamos a suponer que quiere que los usuarios puedan acceder a Office Web Apps desde la red interna y desde Internet. Si es el caso, en la granja de servidores deberá configurar tanto el DNS interno como el externo. O, si lo prefiere, puede configurar solo el DNS externo y usar reglas de DNS interno para que las solicitudes internas se queden en la red privada. Esto es lo que yo haría.
Pero la red es suya, así que la puede configurar como considere oportuno. Lo que necesitamos es lo siguiente:

  • Los clientes (normalmente exploradores web) deben poder realizar solicitudes a la granja de servidores. Se trata de solicitudes HTTP/HTTPS normales que se envían a los puertos 80 y 443 respectivamente.
  • Las máquinas de la granja de servidores de Office Web Apps envían solicitudes a un servicio del host de archivos (por ej., SharePoint). Estas también son solicitudes HTTP/HTTPS que reciben los puertos 80 o 443. Así es como las máquinas con Office Web Apps manipulan los archivos que representan o modifican.
  • En ocasiones, los hosts de archivos necesitan pedir información directamente a la granja de servidores de Office Web Apps Server a través del equilibrador de carga. Estas solicitudes también son solicitudes HTTP/HTTPS que llegan a los puertos 80 o 443.
  • Todas las máquinas de la granja de servidores de Office Web Apps Server necesitan comunicarse entre sí a través del puerto 809. Lo ideal es que estas máquinas estén en una subred privada para que ninguna otra máquina pueda unirse a la granja de servidores ni captar el tráfico. Si esto no es posible, en Office Web Apps Server se han integrado algunas características que garantizan la seguridad de las granjas de servidores que se encuentren en una red más abierta. (No voy a tratar aquí estas características. Para más información, vea Planeación de seguridad para Office Web Apps Server Preview).

Es fundamental asegurarse de que estas rutas de red estén correctamente configuradas. Office Web Apps es relativamente simple, pero solo funciona cuando los canales de comunicación están abiertos.

Seguridad

Como apunté en la sección anterior, la solicitud inicial para representar o modificar un archivo incluye las credenciales del usuario en el token de acceso, que, a su vez, se incluye en todas las solicitudes que Office Web Apps envía a los hosts. Todo este tráfico se debe proteger con SSL a menos que esté en una red privada y confíe en todos los usuarios que tengan acceso a la red. No, no es cierto: aun así debería usar SSL. De verdad.
Configurar SSL exige crear certificados y ponerlos en cada una de las máquinas de Office Web Apps Server o en el equilibrador de carga. Si elige colocar la SSL en el equilibrador de carga, puede usar las configuraciones específicas que hay en Office Web Apps Server y que explicaré dentro de un momento.

Configuración de Office Web Apps Server

Ahora que toda la infraestructura de red y hardware está configurada, es hora de crear la granja de servidores de Office Web Apps Server. Primero instale Office Web Apps Server y los paquetes de idioma en todas las máquinas. No intente instalar otro software en las máquinas: ni SharePoint, ni Exchange ni ningún otro. Si quiere compartir hardware, use máquinas virtuales.

Cuando haya hecho esto, ejecute el siguiente Windows PowerShell en la primera máquina de la granja de servidores (la llamaremos Servidor1). Este Windows PowerShell presupone que...

  • Solo va a configurar el DNS externo en la dirección URL https://officewebapps.contoso.com. Esta puede ser cualquier dirección URL que quiera configurar.
  • Va a configurar una granja de servidores de Office Web Apps Server que permita la edición y la visualización.
    Haga esto solo si la organización tiene las licencias adecuadas para editar. No voy a entrar en los detalles de las licencias; solo señalaré que la visualización en Office Web Apps es gratuita, pero la función de edición no lo es. Para más información, vea Planificar Office Web Apps Preview (usado con productos de SharePoint 2013 Preview).
  • Va a colocar la SSL en el equilibrador de carga.

El Windows PowerShell es este:

New-OfficeWebAppsFarm -ExternalURL "https://officewebapps.contoso.com" -EditingEnabled -SSLOffloaded

Ahora tiene una granja de servidores de Office Web Apps Server con una sola máquina.

Una vez hecho esto, pase al Servidor2 y ejecute lo siguiente:

New-OfficeWebAppsMachine -MachineToJoin "Server1"

Ahora tiene una granja de servidores con dos máquinas. Repita el paso anterior para agregar el Servidor3 y el Servidor4.

Conectarse a SharePoint

Llegados a este punto, la granja de servidores de Office Web Apps ya está lista, pero todavía no está conectada a ningún host. Para conectar una granja de servidores de SharePoint a esta granja de servidores de Office Web Apps Server, abra un símbolo del sistema de Windows PowerShell en cualquier servidor de la granja de servidores de SharePoint y ejecute lo siguiente:

New-SPWopiBinding -ServerName "officewebapps.contoso.com"

También tendrá que ejecutar el comando siguiente para decirle a la granja de servidores de SharePoint que quiere usar la dirección URL externa de la granja de servidores de Office Web Apps Server y que la dirección usa HTTPS.

Set-SPWopiZone -Zone "external-https"

Ahora sí que está todo preparado. Navegue hasta una biblioteca de documentos de la granja de servidores de SharePoint y cree, vea o edite todos los archivos de Office que quiera. No tiene que configurar nada más.

Por último, si quiere desconectar la granja de servidores de Office Web Apps Server de SharePoint, ejecute lo siguiente:

Remove-SPWopiBinding -All

Si ahora va a una biblioteca de documentos de la granja de servidores de SharePoint, no quedará ni rastro de Office Web Apps.

Puede conectar todas las granjas de servidores de SharePoint que quiera a una única granja de servidores de Office Web Apps. Esto mismo se aplica cuando se conectan Exchange y Lync a una granja de servidores de Office Web Apps. Para más información, vea Exchange Server 2013: Integración de Office Web Apps Server e Implementación de Office Web Apps Server y Lync Server 2013.

Actualizar Office Web Apps Server

Desde el principio nos comprometimos a ofrecer actualizaciones frecuentes de Office Web Apps, pero solo las entregábamos a clientes locales a través de Service Packs. Después del lanzamiento de Office Web Apps Server 2013, pensamos proporcionar actualizaciones con mucha más frecuencia y creemos que los administradores podrán con ello porque actualizar Office Web Apps Server es muy fácil.

Para actualizar las máquinas de una granja de servidores de Office Web Apps Server, tendrá que quitar máquinas del equilibrador de carga y de la granja de servidores, pero este proceso se puede administrar de tal forma que no afecte a los usuarios prácticamente en nada.
Explicado brevemente, si tiene una granja de servidores con 4 máquinas, saque 2 y actualícelas. Luego cree una granja de servidores nueva con estas 2 máquinas y apunte el equilibrador de carga hacia estas 2 máquinas en lugar de hacia las 2 de la granja de servidores original. Ahora actualice las 2 máquinas restantes, únalas a la granja de servidores nueva y apunte el equilibrador de carga también hacia estas máquinas.

Es posible que, cuando las máquinas se saquen de la granja de servidores, algunos usuarios encuentren pequeños problemas, pero Office Web Apps se recuperará siempre, salvo en los casos en que exista una sola máquina (por razones obvias).

Más información sobre Office Web Apps Server

Encontrará recursos adicionales sobre Office Web Apps Server aquí:
• Biblioteca de Office Web Apps Preview en TechNet
• Exchange Server 2013: Integración de Office Web Apps Server
• Implementación de Office Web Apps Server y Lync Server 2013
• Foro de configuración e implementación de Office Web Apps

Nick Simons
Administrador principal de programas, Office Web Apps

 

Esta publicación del blog es una traducción. Puede leer el artículo original en Introducing Office Web Apps Server