La cuestión Sharepoint
¿Qué es Sharepoint?
No es que me quiera poner filosófico sino que me doy cuenta de que – por algún motivo – he visto en todo el mundo, desde gurúes hasta principiantes, agujeros de conocimiento (Si esto me excluyera no tendría sentido esta nota).
Creo que es necesario un enfoque ARRIBA-ABAJO de la cuestión.
Del concepto a la infraestructura y desde allí a la operación.
Visión conceptual
Lo más interesante que he oído como para contestar esto de ¿qué es Sharepoint? lo leí de Microsoft – lo cual es un buen punto dado que son sus creadores – y es "un sistema operativo para la web".
¿Suena pomposo no?
No sé, en http://download.microsoft.com/download/8/5/8/858F2155-D48D-4C68-9205-29460FD7698F/SharePointProtocols.zip pueden descargar información sobre los protocolos soportados por Sharepoint.
De allí traduzco este párrafo: “Conceptualmente, un ítem de documento es similar a un archivo en un sistema de archivos. El ítem de documento DEBE incluir información tal como nombre de archivo, tamaño, y cómo o dónde conseguir el archivo sí mismo. El adjunto del ítem de documento es el archivo.”
Hay en Sharepoint una operatividad de File System sobre HTTP de una enorme utilidad porque provee un servicio centralizado, asegurable y habilitado para tablas de Metadata.
Las aplicaciones de Microsoft Office permiten “guardar a” y “abrir de” Sharepoint.
Una empresa puede resolver muchos problemas serios utilizando en la medida de lo adecuado (la información agregada al archivo no es gratuita en términos de almacenamiento en SQL Server) a Sharepoint como sistema de archivos.
¡E integrarlos a un sistema de búsqueda y etiquetamiento!
No sólo de documentos se vive.
También hay información que guardamos en tablas relacionales en bases de datos corporativas.
¿Es realmente esperable que Sharepoint provea acceso natural y seguro de modificación y/o lectura a toda otra información corporativa en la granja?
¿Lo es también que permita administración interna de datos propios con integridad referencial?
Tal vez sea mucho pedir pero Sharepoint – en su calidad de Software Gigante – lo provee. Provee un sistema de listas que permite ver y acceder del mismo modo a datos propios o ajenos.
Es posible integrar documentos en Sharepoint con información de Microsoft Project, Lex Doctor y SAP, por ejemplo.
Y verlo desde Outlook si quieren. O Excel, o…
Gateway de archivos, Gateway de información corporativa…
¿Demasiado?
No, Sharepoint incluye desde la versión anterior lo que antes era Content Management System, una gran infraestructura de creación, almacenamiento y divulgación de contenidos.
ECM no es una cuestión menor en Sharepoint, hay un brillante MVP como Andrew Connell especializado en administración de contenidos corporativos bajo Sharepoint y sé que en este momento el uruguayo Fabián Imaz le pone cargadas pilas al asunto.
No todo es leer y escribir información, la vida no es una caja de supermercado, ya lo sé.
Yo sé que el estilo de esta nota está basado en el asombro y la sorpresa va creando hábito, pero ¿esperan que Sharepoint provea una enorme plataforma de análisis e inteligencia de datos que se integra con los servicios de análisis de datos de SQL Server y provee Performance Point (una herramienta generadora de interfaces de BI)?
Eso es así.
Todavía no comenté que Sharepoint es – de hecho – un servidor Office en el cual Outlook, Word, Excel, InfoPath, Project y Visio son más que invitados clientes naturales con integración infraestructural.
A nivel de procesos Sharepoint integra en su contexto la máquina de flujo de .Net – Windows Workflow Foundation – con 2 características claves:
1. Permite el diseño de flujos declarativos sin programación mediante Sharepoint Designer
2. Provee actividades específicas de flujo (como administración de tareas, acceso a listas y muchos etc.)
Los que vivimos de Sharepoint sabemos que esta enumeración podría seguir y seguir…y siempre faltaría algo.
Este "sistema operativo para la web" es una fenomenal plataforma integradora que puede ser vista como una columna vertebral corporativa a la que se accede – desde la última versión – ¡desde prácticamente cualquier browser!
Ayer leía una oferta de trabajo para un administrador Sharepoint ¡con 60% de background de desarrollo!
Y eso me lleva a otro punto: Sharepoint es una herramienta que requiere siempre en los roles de mayor responsabilidad un triple perfil:
1. Administración
2. Desarrollo
3. Usuario avanzado
En una mañana uno puede necesitar un listado de características existentes y activadas en la granja, colaborar en la modificación de un XSLT que controla la edición de una lista , atender una cuestión de búsqueda y estar preparado para que un usuario avanzado le explique cómo resolvió con métodos “de la caja” en 5’ lo que uno hubiera tardado varias horas, amén de resolver la cuestión de deployment de los complementos Office necesarios para resolver el asunto etiquetable como “Office 2010 y MOSS: problema en la vista de grilla”.
Así que administradores y desarrolladores: ¡hora de cooperar a full!
¿Por qué puede un usuario de Sharepoint ser tan poderoso?
Porque Sharepoint está pensado para necesitar menos programación, digamos que personalizar consiste en 70% diseño (entre navegador y Sharepoint Designer) y 30% programación (Visual Studio, scripting y XSL).
El usuario de Sharepoint es esencialmente poderoso, a la manera de Excel, porque tiene muchas herramientas para conseguirlo.
Y los usuarios ingresan desde cualquier contexto porque simplemente extendiendo una aplicación la colección de sitios puede ser accedida desde Internet o desde la red corporativa con modelos de seguridad diferentes (Windows, .Net Membership o Claims Based Authentication) según el puerto de acceso.
¿Qué tan abierto es el acceso a Sharepoint?
Tal vez el acceso vía Servicios Web sea más que suficiente pero sepan que programando el modelo de objetos acceden a todo y que la moderna máquina de scripting de Windows (Powershell) está basada en .Net y permite a administradores consumir rutinas programadas en .Net.
Así el acceso a la información es franco siempre que – por supuesto – se tenga permiso.
Entonces: trato de cerrar el concepto alrededor de mi “integrador empresarial” o del "Sistema operativo para la web" de Microsoft cuando les agrego que Sharepoint agrega módulos para administración de contactos, tareas, calendarios, plantillas descargables de sitios totalmente operativos, etc.
Es un monstruo diverso no a la manera de un caleidoscopio sino de una estructuración inteligente con variadas posibilidades.
Arquitectura
Digamos – sólo para empezar – que Sharepoint es un aplicativo ASP .Net que redirige a sí mismo todas las páginas de un Sitio Web de Internet Information Server mediante instrucciones del web.config basadas en Httphandlers.
Con cierto cinismo y picardía podría decir que Sharepoint es una capa .Net sobre Asp .Net.
¿Cuál es la medida de esa capa?
¿Se parece a un pétalo de flor o a una torre de 100 pisos?
Les doy la siguiente pista: no es un pétalo e integra elementos ActiveX (algunos imprescindibles para interactuar con Office y otros provenientes de las primeras versiones).
Algo así como esto:
La información de Sharepoint se reparte entre el directorio de instalación (famoso hive), Internet Information Server y SQL Server.
Las páginas y – en especial – la personalización y programabilidad están basadas en el modelo de Asp .Net Web Parts.
Soporta un modelo de branding muy especializado.
En la infraestructura de lo que se llama una Sharepoint Web Application conviven el Web Site contenedor de la colección de sitios, el modelo de seguridad y la base de datos de SQL Server en la cual casi todo se almacena.
Provee una administración de módulos que implementa deployment y activación mediante la infraestructura de Features (Características)
Algunos vínculos para profundizar:
http://www.sharepoint-services.info/ingenieria/arquitectura-sharepoint-services/
http://www.kyberne.cl/Documentos%20y%20Programas/Arquitectura%20SharePoint.aspx
http://msdn.microsoft.com/en-us/library/bb892188(v=office.12).aspx
En lo personal creo que Sharepoint es 2 cosas a la vez: el "SISTEMA OPERATIVO PARA LA WEB" y un conjunto de implementaciones y servicios generados por Microsoft para explicar, soportar y promover la plataforma.
WebOS
Lo cual demuestra a las claras que Microsoft pone muchos huevos en la canasta Sharepoint, la cual es también un miembro clave de Azure y “la nube”.
Operación
Llegado a este punto tengo una mini crisis.
Creo que debo responder a la pregunta de ¿para qué sirve Sharepoint?
Es como si me preguntaran para qué sirve la electricidad o qué se puede cocinar en el horno.
Tantas cosas…
Y mientras escribo esto más me doy cuenta de que Sharepoint no es una aplicación sino una infraestructura.
Es la cuestión de WebOS o de la columna vertebral empresarial.
Una vez que tengo instalada en la empresa una aplicación a la que accedo desde cualquier máquina sólo con el browser, que me permite insertar en su seno otras aplicaciones mediante vínculos o integradas perfectamente a la estética corporativa, obtener o modificar datos internos o externos, insertar el HTML que desee, integrar lo que se me ocurra aún dentro de una página mediante Web Parts, utilizar plantillas de Help Desk, Proyectos, Contactos (y siguen y siguen…), analizar datos intensa y extensamente, etc. mi pregunta es la inversa: ¿para qué no sirve Sharepoint?
Y aún para lo que Sharepoint no es la mejor herramienta – como aplicaciones puramente transaccionales por ejemplo – puedo utilizar Sharepoint como portal que me lleve a ellas e integrarlas estéticamente y…
Es mi opinión que Sharepoint agrega beneficio en cualquier empresa, en grave extremo si utiliza Microsoft Office o necesita generar aplicaciones rápidamente o considera que una plataforma de colaboración o integración agrega performance a su empresa.
Sharepoint es el portal más extensible, más poderoso y mejor soportado que existe.