Upload
ezequielsaldana
View
5
Download
0
Embed Size (px)
DESCRIPTION
SharePoint 2010
Citation preview
Generacin de reportes grficos en SharePoint 2010 a partir de mltiples fuentes de datos
Palabras claves (keywords): SharePoint 2010, Programacin e Ingeniera de Software, Inteligencia de Negocios,
Grficos Web (SharePoint 2010, Computer Programming and Software Engineering, Business Intelligence, Web
Graphics)
Resumen Este trabajo propone una solucin a la problemtica de la representacin visual de datos en la Plataforma SharePoint 2010.
Se presenta el diseo de un componente para dicha plataforma que permite configurar y mostrar datos de forma grfica a
partir de diferentes fuentes de datos. Se describe cmo lograr la extraccin, transformacin y carga de estos datos de
manera que sea posible conectar diversas fuentes de los mismos, adems de mostrar cmo permitir la utilizacin de
diferentes bibliotecas de generacin de grficos en la Web. Finalmente se comenta un caso de uso de este componente en
la Plataforma Acadmica Weboo Live de la Facultad de Matemtica y Computacin de la Universidad de La Habana.
Abstract This article presents a computational solution for a SharePoint 2010 data visualization component. It describes the design
of an extension for this platform that allows the user to get data from different data sources, configure it and present it
graphically through some of the most common web graphics libraries. It shows then, how to extract, transform and load
the data from several data sources. The article also shows the necessary structure to handle graphical web libraries and the
way to use them in a web part for Microsoft SharePoint 2010. Finally, is presented an application of this component in
WebooLive an academic web platform hosted in the Maths and Computer Science Faculty at the University of Havana.
Introduccin Uno de los conceptos muy desarrollados en el mundo informtico en nuestros das es la Inteligencia de Negocios
[1], en ingls Business Intelligence, o simplemente, BI. La aplicacin de la BI se ha hecho indispensable en aras de
tener un dominio completo sobre grandes volmenes de datos que se manejan en muchos sistemas informticos.
Uno de los puntos clave en la BI es brindar una visin global sobre una gran cantidad de informacin para as
facilitar el proceso de toma de decisiones por parte de los usuarios. Es de suponer entonces que una gran cantidad de
software haya sido desarrollado con este fin. Algunos de estos son herramientas que permiten computar los datos,
analizarlos y mostrar los resultados en un formato apropiado para un escenario determinado. Entre ellos se encuentran
algunos productos como Microsoft SQL Server, Integration Services, Analysis Services y Reporting Services [2], y las
tablas pivotes de Microsoft Office Excel [3], entre otros. Estos permiten realizar el proceso de extraccin, transformacin
y carga de los datos, proporcionando funcionalidades para su anlisis y representacin casi siempre de forma tabular o
grfica. Estos productos, junto a otros muchos que existen, cuentan en ocasiones con la limitante de que o son
complicados de configurar y utilizar (como es el caso de Reporting Services [2]) o la representacin de los datos de
forma grfica se lleva a cabo por componentes que solamente pueden ser visualizados en contextos definidos.
Sin embargo el escenario de la Inteligencia de Negocios es mucho ms amplio que el antes mencionado, no
obstante, las herramientas referidas constituyen el punto de contacto entre la problemtica existente y el mundo de la
BI.
El problema detrs de este trabajo es la representacin grfica de datos en el contexto de Microsoft Office
SharePoint 2010 [4]. Para esto se podran utilizar los productos anteriores haciendo uso de la interoperabilidad que
brindan los mismos1, en cambio, lo que se propone en este trabajo es una solucin liviana, flexible y fcil de integrar
como un elemento web ms en las pginas de los sitios de SharePoint 2010; que al mismo tiempo brinde al usuario
facilidades de interaccin con los datos.
Desarrollo
Arquitectura La solucin propuesta consta de tres partes fundamentales (resaltadas en la Figura 1 con fondo naranja y verde):
recuperacin de los datos, procesamiento de los mismos y su representacin grfica.
Figura 1. Arquitectura general del componente de generacin de reportes grficos a partir de diferentes fuentes de datos.
En la se muestra la arquitectura general del componente. En ella se distinguen dos partes del mismo llamadas
conectores de datos y conectores grficos, el objetivo de estos elementos es no atar la solucin propuesta a una fuente
1 Microsoft SQL Server, Microsoft Office Excel y Microsoft Office SharePoint 2010 pertenecen a la lnea de productos de Microsoft para la
Inteligencia de Negocios (LOB) [4]
Componente dentro de SharePoint 2010 Fuentes Externas
Fuentes de Datos
SQL
Server
SSAS
OData
Conectores
de Datos
Sql
Conector
SSAS
Conector
OData
Conector
Conectores
Grficos
Web Part en el servidor de SharePoint
Esquema de datos
de Sql Server
Esquema de datos
de SSAS
Esquema de datos
de OData
X, Y
Series de
datos
X, Y
Series de
datos
de datos en particular, de la misma manera se pretende que la visualizacin final de los grficos pueda realizarse con
mltiples alternativas.
Las fuentes de datos a utilizar por este componente, seran todas aquellas para las que se pueda crear un conector
de fuente de datos que sirva de puente entre ambos (este proceso se hara a travs de la utilizacin de la API2 definida
para esto). De forma anloga sucede con las bibliotecas grficas y sus conectores grficos.
Conectores de Fuentes de Datos Los conectores a fuentes de datos estn concebidos como bibliotecas compiladas en .Net Framework 3.5 [5] (las
soluciones para SharePoint 2010 no soportan versiones superiores) que utilizan una API diseada para que, por medio
de Entidades y Relaciones entre ellas, se brinde al componente un esquema representativo del dominio de datos que se
desea representar grficamente. En la Figura 2 se encuentra una representacin grfica de esta estructura y del uso de
la API.
Un conector a fuentes de datos debe ser capaz de extraer un esquema de entidades y relaciones que representen el
dominio de datos que se desea graficar. Adems de esto debe brindar un mecanismo para retornar los datos
correspondientes al esquema seleccionado. Es decir, ser quien se encargue directamente de efectuar los pedidos del
componente de SharePoint a la fuente de datos.
La comunicacin entre la fuente de datos y el componte se garantiza a travs de la implementacin de la interfaz
definida para este propsito dentro de la API que se brinda. En esta API se encuentra adems un conjunto de clases (en
su mayora abstractas, para brindar la mayor flexibilidad posible) que permiten una comunicacin conector-componente
2 API (Application Programming Interface), es un protocolo dirigido a ser utilizado como una interfaz por componentes de un software para
comunicarse mutuamente.
Servidor de fuente
de Datos
Fuente
de Datos
Entidades dentro
de la fuente de
datos
Web part en el servidor de SharePoint
Conector
a fuente
de datos
Entidades cargadas de las
fuentes de datos
API Conector
Fuente de Datos
Interface
Conector Fuente
de Datos
Entidades
Relaciones
Figura 2. Estructura de acceso a los datos de una fuente de datos a travs de un conector a fuente de datos.
de manera que sea transparente para este ltimo el cmo se resuelven las operaciones de extraccin, transformacin y
carga de los datos para la fuente de datos especfica.
Las entidades del esquema son una manera de agrupar datos que pueden pertenecer a un mismo concepto. En el
caso de que la fuente de datos sea Microsoft SQL Server [2], estas entidades pueden representar tablas de sus bases de
datos. Por otra parte si la fuente de la informacin son documentos de Microsoft Excel, la implementacin del conector
debe entonces proveer la interpretacin adecuada para obtener a partir del documento el esquema mencionado.
Las relaciones del esquema brindan un mecanismo mediante el cual se pueden relacionar las entidades creadas y
de esta manera los conceptos creados sobre los datos. Estas relaciones son llamadas relaciones locales. Este tipo de
relacin tiene la caracterstica de que son gestionadas por la misma fuente de datos (siempre que esto sea posible) y no
en el servidor de SharePoint. Esto permite una mayor eficiencia en el momento en que se efecte la carga de los datos,
pues en lugar de que el componente tenga que mezclar la informacin de todo el esquema de datos obtenida a partir de
su fuente de datos, es la propia fuente de datos la que realiza esta operacin para la cual se encuentra optimizada, y solo
enva al componente los datos especficos que requiere de ella. Este diseo distribuido para el procesamiento de las
consultas [6] permite entre otras cosas un mayor rendimiento en el servidor de SharePoint y una disminucin de la carga
de la red pues solo se enva la informacin necesaria.
El proceso de agregar nuevos conectores al servidor de SharePoint 2010, donde se encontrara desplegado el
componente, puede lograrse mediante la activacin de una caracterstica para SharePoint. Esto coloca el ensamblado
del nuevo conector en el GAC3 el cual es despus integrado al componente dinmicamente. La carga se lleva a cabo
mediante la utilizacin de la biblioteca para SharePoint Microsoft.Practices.ServiceLocator [7], una biblioteca pensada
para la implementacin del patrn ServiceLocator, el cual est basado a su vez en el patrn IoC4 [8]. La idea es eliminar
las dependencias de tipos concretos mediante el uso de interfaces que definen las funcionalidades requeridas. Cuando
se requiere una implementacin concreta que implemente alguna de las interfaces mapeadas, la biblioteca es capaz de
resolver la dependencia y devolver dicha instancia. Como todo conector, constituye una implementacin concreta de la
interfaz definida en la API, basta registrar cada conector mapendolo con la interfaz adecuada.
Controlador de Fuentes de Datos El controlador de fuentes de datos es un objeto que forma parte del componente. Su funcin es manejar los
conectores a fuentes de datos, seleccionar, mezclar y filtrar los datos que son cargados desde cada una de estas y
ponerlos a disposicin de la siguiente fase del proceso.
3 GAC (Global Assembly Cache) [4], que traducido se escribe Cache de Ensamblados Global. Esta es una carpeta especial del sistema operativo
Windows que se encuentra generalmente en [C:]\Windows\assembly y que sirve como carpeta temporal para ensamblados que podrn ser
utilizados de forma global por diferentes aplicaciones.
4 IoC (Inversin of Control), en espaol, Inversin del Control. Es tambin conocido como Principio Hollywood (Hollywood Principle).
Como se puede apreciar en Figura 3 este objeto contiene un conjunto de esquemas que son representativos, cada
uno, del esquema de datos definido para cada fuente de datos. Estos esquemas individuales estn compuestos por
entidades y las relaciones locales entre las mismas.
Una de sus funcionalidades es la de permitir relacionar los esquemas particulares de cada una de las fuentes de
datos mediante la utilizacin de relaciones remotas [8]. As se le ha llamado a este tipo de relacin, la cual se lleva a
cabo en el propio componente y no en las fuentes de datos, las mismas permiten relacionar entidades de distintas fuentes
de datos (por ejemplo una base de datos creada con Microsoft SQL Server y un documento creado con Microsoft Office
Excel). Lo anterior implica que el controlador de fuentes de datos, cuando va a realizar la carga de los mismos,
primeramente ejecuta la carga de los datos de las diferentes fuentes de datos de manera independiente y luego, con los
datos obtenidos, efecta las relaciones remotas para crear el conjunto resultante de datos, opcionalmente el conjunto de
datos resultante pudiera ser filtrado si el usuario lo desea.
El resultado de este procesamiento de los datos es precisamente la obtencin de un subconjunto de ellos que
represente los datos que realmente se quieren representar grficamente y que se encuentran de manera adecuada para
su consumo por la prxima etapa.
Controlador de Grficas El controlador de bibliotecas grficas es un objeto capaz de tomar un conjunto de datos, resultado del paso anterior,
y adecuarlo para que pueda ser representado grficamente. Adems dispone de una lista de instancias de conectores
Conectores a fuentes de datos
Conector
Conector
Conector
Controlador de Fuentes de Datos
Controlador
Grfico
Relacin local
Relacin remota
Figura 3. En esta figura se muestran partes del componente como son el objeto controlador de fuentes
de datos y la lista de instancias de conectores a fuentes de datos. Adems se puede apreciar el
esquema relacional que se crea a partir de las entidades, relaciones locales y remotas que da
lugar a un conjunto de datos que es utilizado por la prxima etapa.
grficos a las diferentes bibliotecas grficas que se encuentran registradas, as como brinda una manera de poder crear
diferentes tipos de layouts5 en los que se puedan visualizar estos grficos.
La mayora de las bibliotecas generadoras de grficos para la web (como Highcharts [9] y jqPlot [10]) crean sus
grficos a partir de una o varias series de datos. Una serie de datos es un conjunto de vectores ordenados (x1, ,xn)
donde el valor de cada componente es representado en el eje apropiado. Las bibliotecas grficas consumen estas series
y utilizan estos valores para generar los grficos segn del tipo de grfico que se visualizar.
Cuando se habla de adecuar el conjunto de datos retornado por el controlador de fuentes de datos se refiere a que
es necesario crear un conjunto de series de datos a partir de ellos teniendo en cuenta cul ser el tipo de grfico que ser
visualizado con cada una de las series. En la Figura 4se muestra un esquema que comienza con la transformacin del
conjunto resultante del proceso de carga y transformacin en un conjunto de series listas para ser utilizadas por alguna
de las bibliotecas de grficos.
El Controlador de Bibliotecas de Grficos afronta el problema de la diversidad de bibliotecas generadoras de
grficos que pueden ser escogidas por el usuario para la generacin de los diferentes grficos. Nuevamente se requiere
de una solucin flexible que posibilite la comunicacin entre estas bibliotecas de grficos y el controlador.
La solucin propuesta incluye en la API tipos con los que se pueden manipular estas bibliotecas de forma
transparente para el controlador. Esto se hace mediante la implementacin de una interfaz que sirve de puente
comunicador entre los diferentes conectores grficos especficos para cada biblioteca grfica y el controlador de las
mismas, que se apoya en los tipos ya existentes en la API (como las series de datos y propiedades generales de los
grficos).
5 La palabra layout puede traducirse como diseo, disposicin, esquema. En nuestro contexto se refiere al diseo de la interface de usuario en la
que se mostrara el grfico o varios de ellos.
Figura 4. Esquema que presenta el proceso de creacin de series a partir de un conjunto de datos resultantes y un conjunto
de bibliotecas grficas utilizadas a travs de sus respectivos conectores grficos.
Controlador de Layout del Web part
Conjunto de
datos resultante
Bibliotecas
Grficas
Highcharts
jqPlot
Controlador de bibliotecas grficas
API de Conectores
Interface Conector
Grfico
Series, Tipos de
Grficos, Propiedades
Estos conectores grficos son bibliotecas compiladas en .Net Framework 3.5 que son desplegadas en el servidor
de SharePoint por medio de una caracterstica. Este proceso registra el ensamblado en el GAC desde el cual sus
declaraciones de tipos sern accesibles desde cualquier sitio de SharePoint.
La biblioteca Microsoft.Practices.ServiceLocator permite la carga de los conectores grficos dinmicamente de
forma anloga a como se hace para los conectores a fuentes de datos.
Algo que sera interesante incorporar al componente es la habilidad de poder capturar ciertos eventos lanzados por
la interfaz web de su pgina para, de esta manera, incrementar su grado de interactividad. Esto se podra lograr a travs
de la incorporacin a la API de tipos wrappers6 de algunos de los eventos definidos en las bibliotecas de grficos. El
problema con esta concepcin radica en que estas bibliotecas se encuentran implementadas, en su mayora, en lenguajes
como JavaScript utilizando CSS y la API de adaptadores est implementada en lenguaje C# por lo que no es tan directa
la solucin a este problema.
Una posible solucin es la creacin de un servicio WCF/REST [4] desplegado como una solucin para SharePoint
en el servidor. Este tendra acceso a los wrappers declarados en la API de adaptadores y uno de sus puntos de enlace7
recibir como argumentos el nombre del evento y sus valores asociados. Este, haciendo uso de los wrappers, devuelve
como resultado un texto que contiene el cdigo JavaScript necesario para realizar los cambios en el grfico.
En el momento en que un grfico lance un evento, este tendr especificado un llamado asncrono (Ajax [11]) a la
URL en la que se encuentra mapeado el punto de enlace del servicio antes mencionado, pasndole como parmetros de
la URL los argumentos necesarios. En la Figura 5 se representa, en forma de diagrama, este proceso.
6 Un tipo es wrapper de otro si este sirve de envoltura o encapsulamiento de las funcionalidades del otro.
7 Un punto de enlace [4], en el contexto de WCF no es ms que un mtodo de CSharp que puede ser mapeado a una de las direcciones de
comunicacin que ofrece el servicio. Si se encuentra en formato REST entonces es una direccin orientada a recursos.
Figura 5. Esquema que representa una propuesta de conexin entre los diferentes componentes que
permita dar solucin al problema de la interactividad de los grficos.
Bibliotecas Generadoras de Grficos Web Las bibliotecas generadoras de grficos para el escenario web son aquellas que poseen funcionalidades para, a
partir de datos en forma de series y una configuracin adecuada, mostrar un grfico en una pgina web. Las bibliotecas
actuales y ms utilizadas se basan en HTML5 [12], JavaScript y CSS3. En particular, HTML5 brinda una nueva
caracterstica llamada SVG (Scalable Vector Graphics) [12] con la cual permite al usuario una mayor interactividad
con los elementos del grfico. Como ejemplo de esto, tenemos una de las ms utilizadas actualmente, Highcharts [9].
En la Figura 6 se muestran algunos de los grficos que se pueden generar con esta biblioteca.
Figura 6. Visualizacin de grficos generados por bibliotecas grficas para la web. Estos en particular fueron tomados del
conjunto de ejemplos brindado por la biblioteca Highcharts.
Visualizacin Grfica de Informacin Docente En la Facultad de Matemtica y Computacin
de la Universidad de La Habana En la facultad de Matemtica y Computacin de la Universidad de La Habana se encuentra hospedado sobre un
servidor de SharePoint 2010, un portal de sitios docentes llamado WebooLive [13]. Cada uno de los sitios que forman
parte de este conjunto contiene informacin acerca de distintos procesos de la facultad. Entre estas informaciones se
encuentran los registros de asistencias a clases y evaluaciones en las diferentes asignaturas que cursan los estudiantes.
Estos estn almacenados en una biblioteca de documentos compartidos, como documentos creados utilizando Microsoft
Office Excel, a la cual los profesores acceden para obtener o introducir informacin acerca de estos aspectos.
Para los profesores y directivos de la facultad es de importancia poder realizar anlisis de esta informacin de
manera que pueda ayudar a un mejor funcionamiento del proceso docente que se lleva a cabo sirviendo como apoyo a
la toma de decisiones. Como parte de la solucin a esta problemtica se ha desarrollado el componente descrito en la
seccin anterior para lograr una visualizacin grfica de la informacin. Esta manera es preferible a la forma tabular
tradicional en la representacin de datos pues muestra resultados compactos y sintetizados adems de ser fciles de
interpretar por el usuario.
La solucin comienza por acceder al contenido de cada uno de los documentos de cada sitio de asignatura. Esto se
puede lograr mediante la utilizacin del OCM (Object Client Model o Modelo Cliente de Objetos [4]) que se encuentra
en la API brindada por SharePoint 2010 para el manejo de sus objetos internos. Utilizando sus clases se puede navegar
por cada sitio y, en cada uno, acceder a la biblioteca de registros de asistencias y evaluaciones.
Para la obtencin de los datos residentes en el interior de cada registro se utilizar una herramienta llamada
ShareReport [3]. Esta herramienta utiliza la biblioteca OpenXml [3] para acceder al contenido de los documentos
creados por Microsoft Office y obtener o introducir datos. En este caso es utilizada para obtener los datos necesarios de
cada uno de los registros.
Estos datos obtenidos son colocados en una base de datos en Microsoft SQL Server. El esquema de tablas que se
propone es en forma de estrella [14] lo que optimiza el acceso a la informacin a travs de la utilizacin de un cubo
[14] de Microsoft SQL Analysis Services [14].
Ya que la informacin contenida en los registros de asistencia y evaluaciones cambia constantemente, es necesario
realizar el proceso de carga de los datos con frecuencia. Para automatizar el proceso se utilizan los Jobs de SharePoint
los cuales no son ms que conjuntos de instrucciones que tienen una programacin de horarios para su ejecucin. En
este caso se coloca el cdigo necesario para la navegacin a travs de los sitios, la carga de la informacin desde los
registros, la transformacin y carga en la base de datos de Microsoft SQL Server y la activacin del proceso de pre-
clculo de los resultados. En la Figura 6 se muestran ejemplos de grficos resultantes de este proceso representado en
la Figura 7.
Conclusiones Con el desarrollo de este componente se ha creado una solucin computacional que permite elevar la eficiencia en
el anlisis de informacin empresarial. Uno de sus principales aportes radica en la implementacin de una arquitectura
basada en conectores que permite extender dinmicamente el conjunto de fuentes de datos disponibles para el usuario
as como las bibliotecas generadoras de grficos para la web que puede utilizar para las representaciones visuales.
Otro punto importante a resaltar es que es un componente altamente personalizable pues brinda al usuario, mediante
la API, la opcin de crear sus propias implementaciones de conectores e incorporrselos al componente dinmicamente.
Como su implementacin est basada en un elemento web de SharePoint, permite ser manipulado como tal, brindando
Asistencia Evaluacin ShareReport SQL Server Analysis Services Adaptador
Figura 7. Representacin grfica de las principales etapas de la solucin propuesta.
adems de sus propias funcionalidades las que poseen los elementos web de manera predeterminada. Adems esta
implementacin no necesita de otras aplicaciones externas a SharePoint para su funcionamiento.
Este trabajo es apenas un comienzo, existe trabajo que hacer. El procesamiento de las consultas de forma distribuida
y su optimizacin es una primera lnea de investigacin que podra ser desarrollada porque a pesar de que el volumen
de informacin que es representable en un grfico no suele ser grande, las consultas que se realicen para obtener los
datos que sern representados s podran contener bastante informacin. Tambin es necesario continuar desarrollando
el conjunto predeterminado de conectores de datos con el fin de cubrir un dominio mayor de fuentes de datos y
bibliotecas generadoras de grficos para la web. Adems es necesario enriquecer las capacidades del Controlador
Grfico explotando las cualidades interactivas de los grficos.
Bibliografa
[1] Microsoft Corporation, Business Intelligence, Microsoft Corporation, [En lnea]. Available: http://www.microsoft.com/en-
us/bi/powerpivot.aspx.
[2] Microsoft Corporation, SQL Server, 2013. [En lnea]. Available: http://www.microsoft.com/en-us/sqlserver/default.aspx.
[3] L. S. M. K. Karel Trueba, Licenciado en Ciencia de La Computacin, Universidad de La Habana, Facultad de Ciencias de
la Computacin de la Universidad de la Habana, La Habana, 2012.
[4] J. Krause, C. Langhirt, A. Sterff, B. Pehlke y M. Dring, SharePoint 2010 as a Development Platform, New York: Apress,
2010.
[5] Pro C# 2008 and the .NET 3.5 Platform, New York: Apress, 2008.
[6] D. Kossmann, The State of the Art in Distributed Query Processing, ACM Computing Surveys, vol. 32, n 4, p. 422469, 2000.
[7] Microsoft Corporation, MSDN, Microsoft Corporation, [En lnea]. Available: http://msdn.microsoft.com/en-
us/library/ff647574.aspx.
[8] M.-S. C. Chihping Wang, On the Complexity of Distributed Query Optimization, IEEE TRANSACTIONS ON
KNOWLEDGE AND DATA ENGINEERING, vol. 8, n 4, 1996.
[9] J. Kuan, Learning Highcharts, Birmingham, 2010.
[10] C. Leonello, jqPlot, [En lnea]. Available: http://www.jqplot.com/.
[11] W3C, AJAX, Enero 2010. [En lnea]. Available: http://www.w3.org/standards/webdesign/script.
[12] M. J. Collins, Pro HTML5 with Visual Studio 2012, New York: Apress, 2012.
[13] M. K. Lester Snchez, PLATAFORMA ACADMICA PARA LA GESTIN DEL CONOCIMIENTO Y EL
APRENDIZAJE COLABORATIVO, Facultad de Matemtica y Computacion de la Universidad de la Habana, La Habana,
2013.
[14] S. M. Reed Jacobson, Microsoft SQL Server 2005 Analisys Services Step by Step, Washington: Microsoft Press, 2006.
[15] Ultra-Fast ASP.NET 4.5, New York: Apress, 2012.
[16] Microsoft Corporation, MSDN, 2013. [En lnea]. Available: http://msdn.microsoft.com/en-us/library/ff798484.aspx.