55
1 COMPARTI MOSS Revista especializada en Tecnologías SharePoint Nº23 marzo 2015

COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

1

C O M PA R T I M O S SRevista especializada en Tecnologiacuteas SharePoint

Nordm23 marzo 2015

2

02

Nordm23 marzo 2015

C O M PA R T I M O S SRevista especializada en Tecnologiacuteas SharePoint

Contenidos StaffCompartiMOSS es una pub-licacioacuten independiente de distribucioacuten libre en forma electroacutenica Las opiniones aquiacute expresadas son de es-tricto orden personal cada autor es completamente re-sponsable de su propio con-tenido DIRECCIOacuteN GENEALbull Gustavo Velezbull Juan Carlos Gonzalezbull Fabian Imazbull Alberto Diaz

03 EditorialHemos arrancado un nuevo antildeo juntos y esperamos que como siempre hayan disfrutado todos los nuacutemeros anteriores

04 Programando la Ribbon en SharePoint 2010

07 Las Aplicaciones High-Trust (II)

10 Integracioacuten Dynamics CRM 2015 con SharePoint

15 REST WebAPI 2 y SharePoint 2013 ndash We-bAPI y OData

21 Introduccioacuten al Search Driven Development en SharePoint Online y SharePoint 2013

24 Entrevista Jorge Castantildeeda

25 Administra mejor tus aplicaciones de servicio

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (II)

34 Buacutesqueda de datos empresariales en SharePoint 2013 (I)

40- Creacioacuten de un Chat para SharePoint con SignalR

42 Novedades en Power BI

45 Caacutelculo de costes en Microsoft Azure

48 La importancia de disentildear y aplicar un buen uso de Gober-nanza en nuestro entorno SharePoint 2013

Contacte con nosotrosrevistacompartimosscomgustavogavdnetjcgonzalezmartin1978hotmailcomfabiansideryscomuyadiazcanhotmailcom

BLOGShttpwwwgavdnethttpgeeksmsblogsjcgonzalezhttpblogsideryscomhttpgeeksmsblogsadiazmartin

REDES SOCIALESFacebook httpwwwfacebookcomgroupphpgid=128911147140492LinkedInhttpwwwl inkedincomgroupsCompartiMOSS-3776291TwitterCompartiMOSScom

3

03

Hemos arrancado un nuevo antildeo juntos y esperamos que como siempre hayan disfrutado todos los nuacutemeros anteriores Desde la direccioacuten de la revista estamos continuamente pensando coacutemo mejorar nuacutemero a nuacutemero 2015 supondraacute tambieacuten para CompartiMOSS un antildeo de grandes retos en el que buscaremos adaptarnos y prepararnos a los cambios continuos en las tecnologiacuteas y plataformas con las que habitualmente trabajamos en la revista y siguiendo la estela y el camino que Microsoft va marcando en su apuesta por la nube Por este motivo a partir el proacuteximo nuacutemero empezaremos a publicar maacutes artiacuteculos en torno a la plataforma Office 365 y los servicios y tecnologiacuteas que la sustentan SharePoint Online Microsoft Azure Lync Online Exchange Online y Dymanics CRM Online Queremos invitar a todos nuestros lectores y autores que nos ayuden con este reto Si bien hemos estado hablando de la plataforma de productividad en la nube de Microsoft esta vez queremos darle un eacutenfasis maacutes determinante ya que sabemos que hay muchos maacutes clientes antildeo a antildeo en esta versioacuten de nuestro servidor favorito

Tambieacuten queremos aprovechar para agradecer a todos los colaboradores y autores que incansablemente comparten sus experiencias y conocimientos para que podamos armar los distintos nuacutemeros que lanzamos iexclmuchas gracias

EL EQUIPO EDITORIAL DE COMPARTIMOSS

Editorial

4

Es bastante comuacuten que se necesiten agregar botones a la barra de herramientas de SharePoint 2010 (RIBBON) Muchas veces esto se resuelve en forma declarativa o con SharePoint Designer pero otras veces necesitamos ir un poco maacutes allaacute por ejemplo ejecutar coacutedigo C luego de presionar un botoacuten o lograr que el botoacuten este asociado a una lista especiacutefica y no a un tipo de lista En este artiacuteculo veremos un ejemplo de coacutemo lograr este tipo de progra-macioacuten con Visual Studio iexclQue lo disfruten

El objetivoNuestro objetivo es agregar tres botones a la paacutegina de edicioacuten de una lista en particular Esos tres botones esta-raacuten agrupados bajo un mismo tiacutetulo tal como muestra la imagen 1

Imagen 1- Botones agregados a la Ribbon

Al presionar el botoacuten se abre una paacutegina ASPX en C que nos permite trabajar con la API de SharePoint tal como muestra la imagen 2

Imagen 2 - Paacutegina de aplicacioacuten llamada desde el botoacuten de la Ribbon

Es bastante comuacuten que se necesiten agregar botones a la barra de herrami-entas de SharePoint 2010

iquestCoacutemo agregar los botonesLos botones suelen agregarse en forma declarativa pero en este caso lo haremos mediante coacutedigo C para poder agregarlos en una lista en particular y no en un tipo de lista En este caso lo haremos a traveacutes de un evento de activacioacuten de feature Esto puede verse en esta parte del coacutedigo

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo

Observar especialmente como agregar los botones en la paacutegina de edicioacuten de la lista ldquoCommandUIRibbonEdit-Formrdquo

Dos puntos adicionales

bull Los botones estaraacuten dentro de un grupobull Al presionar el botoacuten ejecutamos coacutedigo JavaS-

cript para llamar a una paacutegina ASPX

Esa paacutegina ASPX se carga en una ventana modal Ademaacutes se controla el resultado de esa ventana para decidir si se cierra o no la pantalla de Edicioacuten del iacutetem Esto puede ver-se en esta liacutenea de coacutedigo

CommandAction=rdquordquojavascriptelID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) )ldquordquo gt

Los botones suelen agregarse en forma declarativa pero en este caso lo hare-mos mediante coacutedigo C

04 Programando la Ribbon en SharePoint 2010

5

El siguiente es el coacutedigo completo para agregar los boto-nes

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo ltCommandUIExtensiongt ltCommandUIDefinitionsgt ltCommandUIDefinition Location=rdquordquoRibbonTemplates_childrenrdquordquogt ltGroupTemplate Id=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltLayout Title=rdquordquoNewGroupInExistingTabOneLargerdquordquo LayoutTitle=rdquordquoNewGroupInExistingTabOneLargerdquordquogt ltSection Alignment=rdquordquoToprdquordquo Type=rdquordquoOneRowrdquordquogt ltRowgt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton1rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton2rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton3rdquordquo gt ltRowgt ltSectiongt ltLayoutgt ltGroupTemplategt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditScaling_childrenrdquordquogt ltMaxSize Id=rdquordquoRibbonListFormEditMaxSizerdquordquo Sequence=rdquordquo15rdquordquo GroupId=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Size=rdquordquoNewGroupInExistingTabOneLargerdquordquo gt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditGroups_childrenrdquordquogt ltGroup Id=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Sequence=rdquordquo100rdquordquo Title=rdquordquoSURPOINTrdquordquo Description=rdquordquoSURPOINTrdquordquo Template=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltControls Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButtonrdquordquo Alt=rdquordquoVincular a sitio de proyectordquordquo Sequence=rdquordquo1rdquordquo Image32by32=rdquordquo_layoutsimagesnewweb32pngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquovincularSitiordquordquo LabelText=rdquordquoSitio de proyectordquordquo TemplateAlias=rdquordquoButton1rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton2rdquordquo Alt=rdquordquoAgregar a informe de portfoliordquordquo Sequence=rdquordquo2rdquordquo Image32by32=rdquordquo_layoutsimagesuploaddocpngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoagregarInformerdquordquo LabelText=rdquordquoAgregar a portfoliordquordquo TemplateAlias=rdquordquoButton2rdquordquo CommandType=rdquordquoGeneralrdquordquogt

ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton3rdquordquo Alt=rdquordquoQuitar de informe de portfoliordquordquo Sequence=rdquordquo3rdquordquo Image32by32=rdquordquo_layoutsimagesmewa_backbgifrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoquitarInformerdquordquo LabelText=rdquordquoQuitar de portfoliordquordquo TemplateAlias=rdquordquoButton3rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltControlsgt ltGroupgt ltCommandUIDefinitiongt ltCommandUIDefinitionsgt ltCommandUIHandlersgt ltCommandUIHandler Command=rdquordquovincularSitiordquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoagregarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=agregarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoquitarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=quitarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandlersgt ltCommandUIExtensiongt ldquo actionUpdate() mi_webAllowUnsafeUpdates = false

Las paacuteginas de aplicacioacutenLas paacuteginas que son llamadas desde la RIBBON son paacutegi-nas de aplicacioacuten tiacutepicas de SharePoint Ejecutan el coacutedigo C que necesitemos Soacutelo tenemos que tener en cuenta que deben encargarse de cerrar la pantalla modal A modo ilustrativo muestro parte del coacutedigo de carga de la paacutegina

protected void Page_Load(object sender EventArgs e) if (IsPostBack) Obtener el ID del proyecto recibido como paraacutemetro string proyecto = ldquordquo proyecto = PageRequestQueryString[ldquoProjectIdrdquo]

Datos del actual sitio elegido string idSitio = ldquordquo using (SPSite sitio = new SPSite(SPContextCurrentSiteUrl))(hellip)

6

Y lo maacutes importante la parte final del evento OnClick del botoacuten de nuestra paacutegina

protected void vincularSitio(object sender EventArgs e) (( thisPageResponseClear() thisPageResponseWrite(ldquoltscript type=rsquotextjavascriptrsquogtwindowframeElementcommonModalDialogClose(1 1)ltscriptgtrdquo) thisPageResponseEnd()

Utilizamos commonModalDialogClose para cerrar la ventana

Las paacuteginas que son llamadas desde la RIBBON son paacuteginas de aplicacioacuten tiacutepi-cas de SharePoint

ConclusioacutenEn este breve artiacuteculo vimos que no es tan complejo agre-gar componentes avanzados en la RIBBON de SharePoint La posibilidad de ejecutar coacutedigo C de servidor nos abre un abanico de posibilidades para extender nuestros sitios Y lo que es maacutes importante se hace de una forma que re-sulta bastante amigable para el usuario ya que la RIBBON es una barra que se ha acostumbrado a utilizar

iexclHasta la proacutexima

JUAN PABLO PUSSACQ LABORDE SharePoint MVP Blog httpsurpointblogspotcom

7

En el uacuteltimo artiacuteculo para CompartiMOSS hableacute sobre el concepto de las aplicaciones High-Trust o de alta confian-za (tambieacuten conocidas como S2S server-to-server) en los entornos de SharePoint 2013 Pues bien hoy vamos a me-ternos en la harina y hacer una de ellas

Preparando el entorno para crear la app High-TrustPara comenzar a crear una aplicacioacuten High-Trust necesi-tamos configurar varias cosas en nuestro entorno local de SharePoint 2013 Las configuraciones no son muchas pero es faacutecil olvidarse de una de ellas y luego tendremos proble-mas para investigar de donde viene el error

Antes que nada necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexados los perfiles de los usuarios que vamos a utilizar en la aplicacioacuten Esto es necesario porque el servicio de autenticacioacuten de una app High-Trust necesita ldquoencontrarrdquo el usuario en el servicio de perfiles de Share-Point para poder ejecutar las consultas en su nombre Si el perfil del usuario no estaacute la autenticacioacuten fallaraacute

Realmente el token de acceso que la app enviacutea hacia Sha-rePoint contiene el identificador del usuario y SharePoint se basa en eacutel para saber si el usuario es vaacutelido o no bus-caacutendolo en su base de datos de perfiles El identificador suele ser el SID del usuario Windows su UPN o nombre de usuario de Active Directory Si usamos otros sistemas de autenticacioacuten como FBA o Claims los identificadores seraacuten otros Es estrictamente necesario que el identificador del usuario esteacute presente en su perfil y que no haya repeticio-nes Si os pica mucho la curiosidad hay un excelente post de Steve Peschka al respecto (1)

Para poder firmar el token de la app necesitamos un certi-ficado SSL Mientras desarrollamos podemos usar un cer-tificado de desarrollo firmado por nosotros mismos (self-signed certificate) Luego en produccioacuten usaremos un certificado real Ademaacutes para que nuestra app se pueda comunicar con SharePoint de manera segura necesitamos que la comunicacioacuten esteacute encriptada bajo HTTPS Para ello necesitaremos otro certificado SSL con la URL de la app Esto no es necesario en desarrollo donde podemos relajar la restriccioacuten y usar HTTP pero en produccioacuten esto seriacutea una imprudencia seria

Para crear un certificado autofirmado iremos a la consola de IIS y bajo el apartado ldquoServer Certificatesrdquo y dentro de eacutel la opcioacuten ldquoCreate Self-Signed Certificaterdquo Le daremos el nombre CertificadoHighTrust

Al final exportaremos el certificado incluyendo la clave privada Como contrasentildea le pondremos ldquopasswordrdquo Al final tendremos un fichero PFX con el certificado digital que usaremos en nuestra app Este fichero tiene que estar en una carpeta accesible desde Visual Studio En nuestro caso como estamos desarrollando en una maacutequina de SharePoint no tenemos que mover el fichero y lo tendre-mos en la ruta CCertificatesCertificadoHighTrustpfx

Imagen 1- Creando un certificado SSL autofirmado

Necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexa-dos los perfiles

Tambieacuten haremos una exportacioacuten del certificado sin la clave privada para obtener el fichero CertificadoHigh-Trustcer Para ello tenemos que ir a ldquoServer Certificatesrdquo dentro del IIS abrir el certificado y en la pestantildea ldquoDetailsrdquo ir a la opcioacuten ldquoCopy to filerdquo indicando que no queremos la clave privada

Imagen 2- El certificado SSL con las partes puacuteblicas (cer) y privadas (pfx)

Ahora vamos a comprobar los permisos necesarios para que SharePoint pueda procesar nuestros certificados Los requerimientos son dos

bull El application pool SecurityTokenServiceApplica-tionPool tiene que tener permisos de lectura so-bre la carpeta de los certificados

07 Las Aplicaciones High-Trust ndash II

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 2: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

2

02

Nordm23 marzo 2015

C O M PA R T I M O S SRevista especializada en Tecnologiacuteas SharePoint

Contenidos StaffCompartiMOSS es una pub-licacioacuten independiente de distribucioacuten libre en forma electroacutenica Las opiniones aquiacute expresadas son de es-tricto orden personal cada autor es completamente re-sponsable de su propio con-tenido DIRECCIOacuteN GENEALbull Gustavo Velezbull Juan Carlos Gonzalezbull Fabian Imazbull Alberto Diaz

03 EditorialHemos arrancado un nuevo antildeo juntos y esperamos que como siempre hayan disfrutado todos los nuacutemeros anteriores

04 Programando la Ribbon en SharePoint 2010

07 Las Aplicaciones High-Trust (II)

10 Integracioacuten Dynamics CRM 2015 con SharePoint

15 REST WebAPI 2 y SharePoint 2013 ndash We-bAPI y OData

21 Introduccioacuten al Search Driven Development en SharePoint Online y SharePoint 2013

24 Entrevista Jorge Castantildeeda

25 Administra mejor tus aplicaciones de servicio

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (II)

34 Buacutesqueda de datos empresariales en SharePoint 2013 (I)

40- Creacioacuten de un Chat para SharePoint con SignalR

42 Novedades en Power BI

45 Caacutelculo de costes en Microsoft Azure

48 La importancia de disentildear y aplicar un buen uso de Gober-nanza en nuestro entorno SharePoint 2013

Contacte con nosotrosrevistacompartimosscomgustavogavdnetjcgonzalezmartin1978hotmailcomfabiansideryscomuyadiazcanhotmailcom

BLOGShttpwwwgavdnethttpgeeksmsblogsjcgonzalezhttpblogsideryscomhttpgeeksmsblogsadiazmartin

REDES SOCIALESFacebook httpwwwfacebookcomgroupphpgid=128911147140492LinkedInhttpwwwl inkedincomgroupsCompartiMOSS-3776291TwitterCompartiMOSScom

3

03

Hemos arrancado un nuevo antildeo juntos y esperamos que como siempre hayan disfrutado todos los nuacutemeros anteriores Desde la direccioacuten de la revista estamos continuamente pensando coacutemo mejorar nuacutemero a nuacutemero 2015 supondraacute tambieacuten para CompartiMOSS un antildeo de grandes retos en el que buscaremos adaptarnos y prepararnos a los cambios continuos en las tecnologiacuteas y plataformas con las que habitualmente trabajamos en la revista y siguiendo la estela y el camino que Microsoft va marcando en su apuesta por la nube Por este motivo a partir el proacuteximo nuacutemero empezaremos a publicar maacutes artiacuteculos en torno a la plataforma Office 365 y los servicios y tecnologiacuteas que la sustentan SharePoint Online Microsoft Azure Lync Online Exchange Online y Dymanics CRM Online Queremos invitar a todos nuestros lectores y autores que nos ayuden con este reto Si bien hemos estado hablando de la plataforma de productividad en la nube de Microsoft esta vez queremos darle un eacutenfasis maacutes determinante ya que sabemos que hay muchos maacutes clientes antildeo a antildeo en esta versioacuten de nuestro servidor favorito

Tambieacuten queremos aprovechar para agradecer a todos los colaboradores y autores que incansablemente comparten sus experiencias y conocimientos para que podamos armar los distintos nuacutemeros que lanzamos iexclmuchas gracias

EL EQUIPO EDITORIAL DE COMPARTIMOSS

Editorial

4

Es bastante comuacuten que se necesiten agregar botones a la barra de herramientas de SharePoint 2010 (RIBBON) Muchas veces esto se resuelve en forma declarativa o con SharePoint Designer pero otras veces necesitamos ir un poco maacutes allaacute por ejemplo ejecutar coacutedigo C luego de presionar un botoacuten o lograr que el botoacuten este asociado a una lista especiacutefica y no a un tipo de lista En este artiacuteculo veremos un ejemplo de coacutemo lograr este tipo de progra-macioacuten con Visual Studio iexclQue lo disfruten

El objetivoNuestro objetivo es agregar tres botones a la paacutegina de edicioacuten de una lista en particular Esos tres botones esta-raacuten agrupados bajo un mismo tiacutetulo tal como muestra la imagen 1

Imagen 1- Botones agregados a la Ribbon

Al presionar el botoacuten se abre una paacutegina ASPX en C que nos permite trabajar con la API de SharePoint tal como muestra la imagen 2

Imagen 2 - Paacutegina de aplicacioacuten llamada desde el botoacuten de la Ribbon

Es bastante comuacuten que se necesiten agregar botones a la barra de herrami-entas de SharePoint 2010

iquestCoacutemo agregar los botonesLos botones suelen agregarse en forma declarativa pero en este caso lo haremos mediante coacutedigo C para poder agregarlos en una lista en particular y no en un tipo de lista En este caso lo haremos a traveacutes de un evento de activacioacuten de feature Esto puede verse en esta parte del coacutedigo

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo

Observar especialmente como agregar los botones en la paacutegina de edicioacuten de la lista ldquoCommandUIRibbonEdit-Formrdquo

Dos puntos adicionales

bull Los botones estaraacuten dentro de un grupobull Al presionar el botoacuten ejecutamos coacutedigo JavaS-

cript para llamar a una paacutegina ASPX

Esa paacutegina ASPX se carga en una ventana modal Ademaacutes se controla el resultado de esa ventana para decidir si se cierra o no la pantalla de Edicioacuten del iacutetem Esto puede ver-se en esta liacutenea de coacutedigo

CommandAction=rdquordquojavascriptelID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) )ldquordquo gt

Los botones suelen agregarse en forma declarativa pero en este caso lo hare-mos mediante coacutedigo C

04 Programando la Ribbon en SharePoint 2010

5

El siguiente es el coacutedigo completo para agregar los boto-nes

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo ltCommandUIExtensiongt ltCommandUIDefinitionsgt ltCommandUIDefinition Location=rdquordquoRibbonTemplates_childrenrdquordquogt ltGroupTemplate Id=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltLayout Title=rdquordquoNewGroupInExistingTabOneLargerdquordquo LayoutTitle=rdquordquoNewGroupInExistingTabOneLargerdquordquogt ltSection Alignment=rdquordquoToprdquordquo Type=rdquordquoOneRowrdquordquogt ltRowgt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton1rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton2rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton3rdquordquo gt ltRowgt ltSectiongt ltLayoutgt ltGroupTemplategt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditScaling_childrenrdquordquogt ltMaxSize Id=rdquordquoRibbonListFormEditMaxSizerdquordquo Sequence=rdquordquo15rdquordquo GroupId=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Size=rdquordquoNewGroupInExistingTabOneLargerdquordquo gt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditGroups_childrenrdquordquogt ltGroup Id=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Sequence=rdquordquo100rdquordquo Title=rdquordquoSURPOINTrdquordquo Description=rdquordquoSURPOINTrdquordquo Template=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltControls Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButtonrdquordquo Alt=rdquordquoVincular a sitio de proyectordquordquo Sequence=rdquordquo1rdquordquo Image32by32=rdquordquo_layoutsimagesnewweb32pngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquovincularSitiordquordquo LabelText=rdquordquoSitio de proyectordquordquo TemplateAlias=rdquordquoButton1rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton2rdquordquo Alt=rdquordquoAgregar a informe de portfoliordquordquo Sequence=rdquordquo2rdquordquo Image32by32=rdquordquo_layoutsimagesuploaddocpngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoagregarInformerdquordquo LabelText=rdquordquoAgregar a portfoliordquordquo TemplateAlias=rdquordquoButton2rdquordquo CommandType=rdquordquoGeneralrdquordquogt

ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton3rdquordquo Alt=rdquordquoQuitar de informe de portfoliordquordquo Sequence=rdquordquo3rdquordquo Image32by32=rdquordquo_layoutsimagesmewa_backbgifrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoquitarInformerdquordquo LabelText=rdquordquoQuitar de portfoliordquordquo TemplateAlias=rdquordquoButton3rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltControlsgt ltGroupgt ltCommandUIDefinitiongt ltCommandUIDefinitionsgt ltCommandUIHandlersgt ltCommandUIHandler Command=rdquordquovincularSitiordquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoagregarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=agregarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoquitarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=quitarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandlersgt ltCommandUIExtensiongt ldquo actionUpdate() mi_webAllowUnsafeUpdates = false

Las paacuteginas de aplicacioacutenLas paacuteginas que son llamadas desde la RIBBON son paacutegi-nas de aplicacioacuten tiacutepicas de SharePoint Ejecutan el coacutedigo C que necesitemos Soacutelo tenemos que tener en cuenta que deben encargarse de cerrar la pantalla modal A modo ilustrativo muestro parte del coacutedigo de carga de la paacutegina

protected void Page_Load(object sender EventArgs e) if (IsPostBack) Obtener el ID del proyecto recibido como paraacutemetro string proyecto = ldquordquo proyecto = PageRequestQueryString[ldquoProjectIdrdquo]

Datos del actual sitio elegido string idSitio = ldquordquo using (SPSite sitio = new SPSite(SPContextCurrentSiteUrl))(hellip)

6

Y lo maacutes importante la parte final del evento OnClick del botoacuten de nuestra paacutegina

protected void vincularSitio(object sender EventArgs e) (( thisPageResponseClear() thisPageResponseWrite(ldquoltscript type=rsquotextjavascriptrsquogtwindowframeElementcommonModalDialogClose(1 1)ltscriptgtrdquo) thisPageResponseEnd()

Utilizamos commonModalDialogClose para cerrar la ventana

Las paacuteginas que son llamadas desde la RIBBON son paacuteginas de aplicacioacuten tiacutepi-cas de SharePoint

ConclusioacutenEn este breve artiacuteculo vimos que no es tan complejo agre-gar componentes avanzados en la RIBBON de SharePoint La posibilidad de ejecutar coacutedigo C de servidor nos abre un abanico de posibilidades para extender nuestros sitios Y lo que es maacutes importante se hace de una forma que re-sulta bastante amigable para el usuario ya que la RIBBON es una barra que se ha acostumbrado a utilizar

iexclHasta la proacutexima

JUAN PABLO PUSSACQ LABORDE SharePoint MVP Blog httpsurpointblogspotcom

7

En el uacuteltimo artiacuteculo para CompartiMOSS hableacute sobre el concepto de las aplicaciones High-Trust o de alta confian-za (tambieacuten conocidas como S2S server-to-server) en los entornos de SharePoint 2013 Pues bien hoy vamos a me-ternos en la harina y hacer una de ellas

Preparando el entorno para crear la app High-TrustPara comenzar a crear una aplicacioacuten High-Trust necesi-tamos configurar varias cosas en nuestro entorno local de SharePoint 2013 Las configuraciones no son muchas pero es faacutecil olvidarse de una de ellas y luego tendremos proble-mas para investigar de donde viene el error

Antes que nada necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexados los perfiles de los usuarios que vamos a utilizar en la aplicacioacuten Esto es necesario porque el servicio de autenticacioacuten de una app High-Trust necesita ldquoencontrarrdquo el usuario en el servicio de perfiles de Share-Point para poder ejecutar las consultas en su nombre Si el perfil del usuario no estaacute la autenticacioacuten fallaraacute

Realmente el token de acceso que la app enviacutea hacia Sha-rePoint contiene el identificador del usuario y SharePoint se basa en eacutel para saber si el usuario es vaacutelido o no bus-caacutendolo en su base de datos de perfiles El identificador suele ser el SID del usuario Windows su UPN o nombre de usuario de Active Directory Si usamos otros sistemas de autenticacioacuten como FBA o Claims los identificadores seraacuten otros Es estrictamente necesario que el identificador del usuario esteacute presente en su perfil y que no haya repeticio-nes Si os pica mucho la curiosidad hay un excelente post de Steve Peschka al respecto (1)

Para poder firmar el token de la app necesitamos un certi-ficado SSL Mientras desarrollamos podemos usar un cer-tificado de desarrollo firmado por nosotros mismos (self-signed certificate) Luego en produccioacuten usaremos un certificado real Ademaacutes para que nuestra app se pueda comunicar con SharePoint de manera segura necesitamos que la comunicacioacuten esteacute encriptada bajo HTTPS Para ello necesitaremos otro certificado SSL con la URL de la app Esto no es necesario en desarrollo donde podemos relajar la restriccioacuten y usar HTTP pero en produccioacuten esto seriacutea una imprudencia seria

Para crear un certificado autofirmado iremos a la consola de IIS y bajo el apartado ldquoServer Certificatesrdquo y dentro de eacutel la opcioacuten ldquoCreate Self-Signed Certificaterdquo Le daremos el nombre CertificadoHighTrust

Al final exportaremos el certificado incluyendo la clave privada Como contrasentildea le pondremos ldquopasswordrdquo Al final tendremos un fichero PFX con el certificado digital que usaremos en nuestra app Este fichero tiene que estar en una carpeta accesible desde Visual Studio En nuestro caso como estamos desarrollando en una maacutequina de SharePoint no tenemos que mover el fichero y lo tendre-mos en la ruta CCertificatesCertificadoHighTrustpfx

Imagen 1- Creando un certificado SSL autofirmado

Necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexa-dos los perfiles

Tambieacuten haremos una exportacioacuten del certificado sin la clave privada para obtener el fichero CertificadoHigh-Trustcer Para ello tenemos que ir a ldquoServer Certificatesrdquo dentro del IIS abrir el certificado y en la pestantildea ldquoDetailsrdquo ir a la opcioacuten ldquoCopy to filerdquo indicando que no queremos la clave privada

Imagen 2- El certificado SSL con las partes puacuteblicas (cer) y privadas (pfx)

Ahora vamos a comprobar los permisos necesarios para que SharePoint pueda procesar nuestros certificados Los requerimientos son dos

bull El application pool SecurityTokenServiceApplica-tionPool tiene que tener permisos de lectura so-bre la carpeta de los certificados

07 Las Aplicaciones High-Trust ndash II

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 3: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

3

03

Hemos arrancado un nuevo antildeo juntos y esperamos que como siempre hayan disfrutado todos los nuacutemeros anteriores Desde la direccioacuten de la revista estamos continuamente pensando coacutemo mejorar nuacutemero a nuacutemero 2015 supondraacute tambieacuten para CompartiMOSS un antildeo de grandes retos en el que buscaremos adaptarnos y prepararnos a los cambios continuos en las tecnologiacuteas y plataformas con las que habitualmente trabajamos en la revista y siguiendo la estela y el camino que Microsoft va marcando en su apuesta por la nube Por este motivo a partir el proacuteximo nuacutemero empezaremos a publicar maacutes artiacuteculos en torno a la plataforma Office 365 y los servicios y tecnologiacuteas que la sustentan SharePoint Online Microsoft Azure Lync Online Exchange Online y Dymanics CRM Online Queremos invitar a todos nuestros lectores y autores que nos ayuden con este reto Si bien hemos estado hablando de la plataforma de productividad en la nube de Microsoft esta vez queremos darle un eacutenfasis maacutes determinante ya que sabemos que hay muchos maacutes clientes antildeo a antildeo en esta versioacuten de nuestro servidor favorito

Tambieacuten queremos aprovechar para agradecer a todos los colaboradores y autores que incansablemente comparten sus experiencias y conocimientos para que podamos armar los distintos nuacutemeros que lanzamos iexclmuchas gracias

EL EQUIPO EDITORIAL DE COMPARTIMOSS

Editorial

4

Es bastante comuacuten que se necesiten agregar botones a la barra de herramientas de SharePoint 2010 (RIBBON) Muchas veces esto se resuelve en forma declarativa o con SharePoint Designer pero otras veces necesitamos ir un poco maacutes allaacute por ejemplo ejecutar coacutedigo C luego de presionar un botoacuten o lograr que el botoacuten este asociado a una lista especiacutefica y no a un tipo de lista En este artiacuteculo veremos un ejemplo de coacutemo lograr este tipo de progra-macioacuten con Visual Studio iexclQue lo disfruten

El objetivoNuestro objetivo es agregar tres botones a la paacutegina de edicioacuten de una lista en particular Esos tres botones esta-raacuten agrupados bajo un mismo tiacutetulo tal como muestra la imagen 1

Imagen 1- Botones agregados a la Ribbon

Al presionar el botoacuten se abre una paacutegina ASPX en C que nos permite trabajar con la API de SharePoint tal como muestra la imagen 2

Imagen 2 - Paacutegina de aplicacioacuten llamada desde el botoacuten de la Ribbon

Es bastante comuacuten que se necesiten agregar botones a la barra de herrami-entas de SharePoint 2010

iquestCoacutemo agregar los botonesLos botones suelen agregarse en forma declarativa pero en este caso lo haremos mediante coacutedigo C para poder agregarlos en una lista en particular y no en un tipo de lista En este caso lo haremos a traveacutes de un evento de activacioacuten de feature Esto puede verse en esta parte del coacutedigo

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo

Observar especialmente como agregar los botones en la paacutegina de edicioacuten de la lista ldquoCommandUIRibbonEdit-Formrdquo

Dos puntos adicionales

bull Los botones estaraacuten dentro de un grupobull Al presionar el botoacuten ejecutamos coacutedigo JavaS-

cript para llamar a una paacutegina ASPX

Esa paacutegina ASPX se carga en una ventana modal Ademaacutes se controla el resultado de esa ventana para decidir si se cierra o no la pantalla de Edicioacuten del iacutetem Esto puede ver-se en esta liacutenea de coacutedigo

CommandAction=rdquordquojavascriptelID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) )ldquordquo gt

Los botones suelen agregarse en forma declarativa pero en este caso lo hare-mos mediante coacutedigo C

04 Programando la Ribbon en SharePoint 2010

5

El siguiente es el coacutedigo completo para agregar los boto-nes

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo ltCommandUIExtensiongt ltCommandUIDefinitionsgt ltCommandUIDefinition Location=rdquordquoRibbonTemplates_childrenrdquordquogt ltGroupTemplate Id=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltLayout Title=rdquordquoNewGroupInExistingTabOneLargerdquordquo LayoutTitle=rdquordquoNewGroupInExistingTabOneLargerdquordquogt ltSection Alignment=rdquordquoToprdquordquo Type=rdquordquoOneRowrdquordquogt ltRowgt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton1rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton2rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton3rdquordquo gt ltRowgt ltSectiongt ltLayoutgt ltGroupTemplategt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditScaling_childrenrdquordquogt ltMaxSize Id=rdquordquoRibbonListFormEditMaxSizerdquordquo Sequence=rdquordquo15rdquordquo GroupId=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Size=rdquordquoNewGroupInExistingTabOneLargerdquordquo gt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditGroups_childrenrdquordquogt ltGroup Id=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Sequence=rdquordquo100rdquordquo Title=rdquordquoSURPOINTrdquordquo Description=rdquordquoSURPOINTrdquordquo Template=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltControls Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButtonrdquordquo Alt=rdquordquoVincular a sitio de proyectordquordquo Sequence=rdquordquo1rdquordquo Image32by32=rdquordquo_layoutsimagesnewweb32pngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquovincularSitiordquordquo LabelText=rdquordquoSitio de proyectordquordquo TemplateAlias=rdquordquoButton1rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton2rdquordquo Alt=rdquordquoAgregar a informe de portfoliordquordquo Sequence=rdquordquo2rdquordquo Image32by32=rdquordquo_layoutsimagesuploaddocpngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoagregarInformerdquordquo LabelText=rdquordquoAgregar a portfoliordquordquo TemplateAlias=rdquordquoButton2rdquordquo CommandType=rdquordquoGeneralrdquordquogt

ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton3rdquordquo Alt=rdquordquoQuitar de informe de portfoliordquordquo Sequence=rdquordquo3rdquordquo Image32by32=rdquordquo_layoutsimagesmewa_backbgifrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoquitarInformerdquordquo LabelText=rdquordquoQuitar de portfoliordquordquo TemplateAlias=rdquordquoButton3rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltControlsgt ltGroupgt ltCommandUIDefinitiongt ltCommandUIDefinitionsgt ltCommandUIHandlersgt ltCommandUIHandler Command=rdquordquovincularSitiordquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoagregarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=agregarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoquitarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=quitarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandlersgt ltCommandUIExtensiongt ldquo actionUpdate() mi_webAllowUnsafeUpdates = false

Las paacuteginas de aplicacioacutenLas paacuteginas que son llamadas desde la RIBBON son paacutegi-nas de aplicacioacuten tiacutepicas de SharePoint Ejecutan el coacutedigo C que necesitemos Soacutelo tenemos que tener en cuenta que deben encargarse de cerrar la pantalla modal A modo ilustrativo muestro parte del coacutedigo de carga de la paacutegina

protected void Page_Load(object sender EventArgs e) if (IsPostBack) Obtener el ID del proyecto recibido como paraacutemetro string proyecto = ldquordquo proyecto = PageRequestQueryString[ldquoProjectIdrdquo]

Datos del actual sitio elegido string idSitio = ldquordquo using (SPSite sitio = new SPSite(SPContextCurrentSiteUrl))(hellip)

6

Y lo maacutes importante la parte final del evento OnClick del botoacuten de nuestra paacutegina

protected void vincularSitio(object sender EventArgs e) (( thisPageResponseClear() thisPageResponseWrite(ldquoltscript type=rsquotextjavascriptrsquogtwindowframeElementcommonModalDialogClose(1 1)ltscriptgtrdquo) thisPageResponseEnd()

Utilizamos commonModalDialogClose para cerrar la ventana

Las paacuteginas que son llamadas desde la RIBBON son paacuteginas de aplicacioacuten tiacutepi-cas de SharePoint

ConclusioacutenEn este breve artiacuteculo vimos que no es tan complejo agre-gar componentes avanzados en la RIBBON de SharePoint La posibilidad de ejecutar coacutedigo C de servidor nos abre un abanico de posibilidades para extender nuestros sitios Y lo que es maacutes importante se hace de una forma que re-sulta bastante amigable para el usuario ya que la RIBBON es una barra que se ha acostumbrado a utilizar

iexclHasta la proacutexima

JUAN PABLO PUSSACQ LABORDE SharePoint MVP Blog httpsurpointblogspotcom

7

En el uacuteltimo artiacuteculo para CompartiMOSS hableacute sobre el concepto de las aplicaciones High-Trust o de alta confian-za (tambieacuten conocidas como S2S server-to-server) en los entornos de SharePoint 2013 Pues bien hoy vamos a me-ternos en la harina y hacer una de ellas

Preparando el entorno para crear la app High-TrustPara comenzar a crear una aplicacioacuten High-Trust necesi-tamos configurar varias cosas en nuestro entorno local de SharePoint 2013 Las configuraciones no son muchas pero es faacutecil olvidarse de una de ellas y luego tendremos proble-mas para investigar de donde viene el error

Antes que nada necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexados los perfiles de los usuarios que vamos a utilizar en la aplicacioacuten Esto es necesario porque el servicio de autenticacioacuten de una app High-Trust necesita ldquoencontrarrdquo el usuario en el servicio de perfiles de Share-Point para poder ejecutar las consultas en su nombre Si el perfil del usuario no estaacute la autenticacioacuten fallaraacute

Realmente el token de acceso que la app enviacutea hacia Sha-rePoint contiene el identificador del usuario y SharePoint se basa en eacutel para saber si el usuario es vaacutelido o no bus-caacutendolo en su base de datos de perfiles El identificador suele ser el SID del usuario Windows su UPN o nombre de usuario de Active Directory Si usamos otros sistemas de autenticacioacuten como FBA o Claims los identificadores seraacuten otros Es estrictamente necesario que el identificador del usuario esteacute presente en su perfil y que no haya repeticio-nes Si os pica mucho la curiosidad hay un excelente post de Steve Peschka al respecto (1)

Para poder firmar el token de la app necesitamos un certi-ficado SSL Mientras desarrollamos podemos usar un cer-tificado de desarrollo firmado por nosotros mismos (self-signed certificate) Luego en produccioacuten usaremos un certificado real Ademaacutes para que nuestra app se pueda comunicar con SharePoint de manera segura necesitamos que la comunicacioacuten esteacute encriptada bajo HTTPS Para ello necesitaremos otro certificado SSL con la URL de la app Esto no es necesario en desarrollo donde podemos relajar la restriccioacuten y usar HTTP pero en produccioacuten esto seriacutea una imprudencia seria

Para crear un certificado autofirmado iremos a la consola de IIS y bajo el apartado ldquoServer Certificatesrdquo y dentro de eacutel la opcioacuten ldquoCreate Self-Signed Certificaterdquo Le daremos el nombre CertificadoHighTrust

Al final exportaremos el certificado incluyendo la clave privada Como contrasentildea le pondremos ldquopasswordrdquo Al final tendremos un fichero PFX con el certificado digital que usaremos en nuestra app Este fichero tiene que estar en una carpeta accesible desde Visual Studio En nuestro caso como estamos desarrollando en una maacutequina de SharePoint no tenemos que mover el fichero y lo tendre-mos en la ruta CCertificatesCertificadoHighTrustpfx

Imagen 1- Creando un certificado SSL autofirmado

Necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexa-dos los perfiles

Tambieacuten haremos una exportacioacuten del certificado sin la clave privada para obtener el fichero CertificadoHigh-Trustcer Para ello tenemos que ir a ldquoServer Certificatesrdquo dentro del IIS abrir el certificado y en la pestantildea ldquoDetailsrdquo ir a la opcioacuten ldquoCopy to filerdquo indicando que no queremos la clave privada

Imagen 2- El certificado SSL con las partes puacuteblicas (cer) y privadas (pfx)

Ahora vamos a comprobar los permisos necesarios para que SharePoint pueda procesar nuestros certificados Los requerimientos son dos

bull El application pool SecurityTokenServiceApplica-tionPool tiene que tener permisos de lectura so-bre la carpeta de los certificados

07 Las Aplicaciones High-Trust ndash II

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 4: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

4

Es bastante comuacuten que se necesiten agregar botones a la barra de herramientas de SharePoint 2010 (RIBBON) Muchas veces esto se resuelve en forma declarativa o con SharePoint Designer pero otras veces necesitamos ir un poco maacutes allaacute por ejemplo ejecutar coacutedigo C luego de presionar un botoacuten o lograr que el botoacuten este asociado a una lista especiacutefica y no a un tipo de lista En este artiacuteculo veremos un ejemplo de coacutemo lograr este tipo de progra-macioacuten con Visual Studio iexclQue lo disfruten

El objetivoNuestro objetivo es agregar tres botones a la paacutegina de edicioacuten de una lista en particular Esos tres botones esta-raacuten agrupados bajo un mismo tiacutetulo tal como muestra la imagen 1

Imagen 1- Botones agregados a la Ribbon

Al presionar el botoacuten se abre una paacutegina ASPX en C que nos permite trabajar con la API de SharePoint tal como muestra la imagen 2

Imagen 2 - Paacutegina de aplicacioacuten llamada desde el botoacuten de la Ribbon

Es bastante comuacuten que se necesiten agregar botones a la barra de herrami-entas de SharePoint 2010

iquestCoacutemo agregar los botonesLos botones suelen agregarse en forma declarativa pero en este caso lo haremos mediante coacutedigo C para poder agregarlos en una lista en particular y no en un tipo de lista En este caso lo haremos a traveacutes de un evento de activacioacuten de feature Esto puede verse en esta parte del coacutedigo

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo

Observar especialmente como agregar los botones en la paacutegina de edicioacuten de la lista ldquoCommandUIRibbonEdit-Formrdquo

Dos puntos adicionales

bull Los botones estaraacuten dentro de un grupobull Al presionar el botoacuten ejecutamos coacutedigo JavaS-

cript para llamar a una paacutegina ASPX

Esa paacutegina ASPX se carga en una ventana modal Ademaacutes se controla el resultado de esa ventana para decidir si se cierra o no la pantalla de Edicioacuten del iacutetem Esto puede ver-se en esta liacutenea de coacutedigo

CommandAction=rdquordquojavascriptelID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) )ldquordquo gt

Los botones suelen agregarse en forma declarativa pero en este caso lo hare-mos mediante coacutedigo C

04 Programando la Ribbon en SharePoint 2010

5

El siguiente es el coacutedigo completo para agregar los boto-nes

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo ltCommandUIExtensiongt ltCommandUIDefinitionsgt ltCommandUIDefinition Location=rdquordquoRibbonTemplates_childrenrdquordquogt ltGroupTemplate Id=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltLayout Title=rdquordquoNewGroupInExistingTabOneLargerdquordquo LayoutTitle=rdquordquoNewGroupInExistingTabOneLargerdquordquogt ltSection Alignment=rdquordquoToprdquordquo Type=rdquordquoOneRowrdquordquogt ltRowgt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton1rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton2rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton3rdquordquo gt ltRowgt ltSectiongt ltLayoutgt ltGroupTemplategt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditScaling_childrenrdquordquogt ltMaxSize Id=rdquordquoRibbonListFormEditMaxSizerdquordquo Sequence=rdquordquo15rdquordquo GroupId=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Size=rdquordquoNewGroupInExistingTabOneLargerdquordquo gt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditGroups_childrenrdquordquogt ltGroup Id=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Sequence=rdquordquo100rdquordquo Title=rdquordquoSURPOINTrdquordquo Description=rdquordquoSURPOINTrdquordquo Template=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltControls Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButtonrdquordquo Alt=rdquordquoVincular a sitio de proyectordquordquo Sequence=rdquordquo1rdquordquo Image32by32=rdquordquo_layoutsimagesnewweb32pngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquovincularSitiordquordquo LabelText=rdquordquoSitio de proyectordquordquo TemplateAlias=rdquordquoButton1rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton2rdquordquo Alt=rdquordquoAgregar a informe de portfoliordquordquo Sequence=rdquordquo2rdquordquo Image32by32=rdquordquo_layoutsimagesuploaddocpngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoagregarInformerdquordquo LabelText=rdquordquoAgregar a portfoliordquordquo TemplateAlias=rdquordquoButton2rdquordquo CommandType=rdquordquoGeneralrdquordquogt

ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton3rdquordquo Alt=rdquordquoQuitar de informe de portfoliordquordquo Sequence=rdquordquo3rdquordquo Image32by32=rdquordquo_layoutsimagesmewa_backbgifrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoquitarInformerdquordquo LabelText=rdquordquoQuitar de portfoliordquordquo TemplateAlias=rdquordquoButton3rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltControlsgt ltGroupgt ltCommandUIDefinitiongt ltCommandUIDefinitionsgt ltCommandUIHandlersgt ltCommandUIHandler Command=rdquordquovincularSitiordquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoagregarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=agregarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoquitarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=quitarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandlersgt ltCommandUIExtensiongt ldquo actionUpdate() mi_webAllowUnsafeUpdates = false

Las paacuteginas de aplicacioacutenLas paacuteginas que son llamadas desde la RIBBON son paacutegi-nas de aplicacioacuten tiacutepicas de SharePoint Ejecutan el coacutedigo C que necesitemos Soacutelo tenemos que tener en cuenta que deben encargarse de cerrar la pantalla modal A modo ilustrativo muestro parte del coacutedigo de carga de la paacutegina

protected void Page_Load(object sender EventArgs e) if (IsPostBack) Obtener el ID del proyecto recibido como paraacutemetro string proyecto = ldquordquo proyecto = PageRequestQueryString[ldquoProjectIdrdquo]

Datos del actual sitio elegido string idSitio = ldquordquo using (SPSite sitio = new SPSite(SPContextCurrentSiteUrl))(hellip)

6

Y lo maacutes importante la parte final del evento OnClick del botoacuten de nuestra paacutegina

protected void vincularSitio(object sender EventArgs e) (( thisPageResponseClear() thisPageResponseWrite(ldquoltscript type=rsquotextjavascriptrsquogtwindowframeElementcommonModalDialogClose(1 1)ltscriptgtrdquo) thisPageResponseEnd()

Utilizamos commonModalDialogClose para cerrar la ventana

Las paacuteginas que son llamadas desde la RIBBON son paacuteginas de aplicacioacuten tiacutepi-cas de SharePoint

ConclusioacutenEn este breve artiacuteculo vimos que no es tan complejo agre-gar componentes avanzados en la RIBBON de SharePoint La posibilidad de ejecutar coacutedigo C de servidor nos abre un abanico de posibilidades para extender nuestros sitios Y lo que es maacutes importante se hace de una forma que re-sulta bastante amigable para el usuario ya que la RIBBON es una barra que se ha acostumbrado a utilizar

iexclHasta la proacutexima

JUAN PABLO PUSSACQ LABORDE SharePoint MVP Blog httpsurpointblogspotcom

7

En el uacuteltimo artiacuteculo para CompartiMOSS hableacute sobre el concepto de las aplicaciones High-Trust o de alta confian-za (tambieacuten conocidas como S2S server-to-server) en los entornos de SharePoint 2013 Pues bien hoy vamos a me-ternos en la harina y hacer una de ellas

Preparando el entorno para crear la app High-TrustPara comenzar a crear una aplicacioacuten High-Trust necesi-tamos configurar varias cosas en nuestro entorno local de SharePoint 2013 Las configuraciones no son muchas pero es faacutecil olvidarse de una de ellas y luego tendremos proble-mas para investigar de donde viene el error

Antes que nada necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexados los perfiles de los usuarios que vamos a utilizar en la aplicacioacuten Esto es necesario porque el servicio de autenticacioacuten de una app High-Trust necesita ldquoencontrarrdquo el usuario en el servicio de perfiles de Share-Point para poder ejecutar las consultas en su nombre Si el perfil del usuario no estaacute la autenticacioacuten fallaraacute

Realmente el token de acceso que la app enviacutea hacia Sha-rePoint contiene el identificador del usuario y SharePoint se basa en eacutel para saber si el usuario es vaacutelido o no bus-caacutendolo en su base de datos de perfiles El identificador suele ser el SID del usuario Windows su UPN o nombre de usuario de Active Directory Si usamos otros sistemas de autenticacioacuten como FBA o Claims los identificadores seraacuten otros Es estrictamente necesario que el identificador del usuario esteacute presente en su perfil y que no haya repeticio-nes Si os pica mucho la curiosidad hay un excelente post de Steve Peschka al respecto (1)

Para poder firmar el token de la app necesitamos un certi-ficado SSL Mientras desarrollamos podemos usar un cer-tificado de desarrollo firmado por nosotros mismos (self-signed certificate) Luego en produccioacuten usaremos un certificado real Ademaacutes para que nuestra app se pueda comunicar con SharePoint de manera segura necesitamos que la comunicacioacuten esteacute encriptada bajo HTTPS Para ello necesitaremos otro certificado SSL con la URL de la app Esto no es necesario en desarrollo donde podemos relajar la restriccioacuten y usar HTTP pero en produccioacuten esto seriacutea una imprudencia seria

Para crear un certificado autofirmado iremos a la consola de IIS y bajo el apartado ldquoServer Certificatesrdquo y dentro de eacutel la opcioacuten ldquoCreate Self-Signed Certificaterdquo Le daremos el nombre CertificadoHighTrust

Al final exportaremos el certificado incluyendo la clave privada Como contrasentildea le pondremos ldquopasswordrdquo Al final tendremos un fichero PFX con el certificado digital que usaremos en nuestra app Este fichero tiene que estar en una carpeta accesible desde Visual Studio En nuestro caso como estamos desarrollando en una maacutequina de SharePoint no tenemos que mover el fichero y lo tendre-mos en la ruta CCertificatesCertificadoHighTrustpfx

Imagen 1- Creando un certificado SSL autofirmado

Necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexa-dos los perfiles

Tambieacuten haremos una exportacioacuten del certificado sin la clave privada para obtener el fichero CertificadoHigh-Trustcer Para ello tenemos que ir a ldquoServer Certificatesrdquo dentro del IIS abrir el certificado y en la pestantildea ldquoDetailsrdquo ir a la opcioacuten ldquoCopy to filerdquo indicando que no queremos la clave privada

Imagen 2- El certificado SSL con las partes puacuteblicas (cer) y privadas (pfx)

Ahora vamos a comprobar los permisos necesarios para que SharePoint pueda procesar nuestros certificados Los requerimientos son dos

bull El application pool SecurityTokenServiceApplica-tionPool tiene que tener permisos de lectura so-bre la carpeta de los certificados

07 Las Aplicaciones High-Trust ndash II

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 5: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

5

El siguiente es el coacutedigo completo para agregar los boto-nes

public override void FeatureActivated(SPFeatureReceiverProperties properties) using (SPWeb mi_web = (propertiesFeatureParent as SPSite)OpenWeb())

Agrego botones personalizados para la edicioacuten del Proyecto mi_webAllowUnsafeUpdates = true SPList lista = mi_webGetList(ldquoListsProyectosrdquo) var action = listaUserCustomActionsAdd() actionLocation = ldquoCommandUIRibbonEditFormrdquo actionSequence = 10 actionTitle = ldquoSURPOINTrdquo actionCommandUIExtension = rdquo ltCommandUIExtensiongt ltCommandUIDefinitionsgt ltCommandUIDefinition Location=rdquordquoRibbonTemplates_childrenrdquordquogt ltGroupTemplate Id=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltLayout Title=rdquordquoNewGroupInExistingTabOneLargerdquordquo LayoutTitle=rdquordquoNewGroupInExistingTabOneLargerdquordquogt ltSection Alignment=rdquordquoToprdquordquo Type=rdquordquoOneRowrdquordquogt ltRowgt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton1rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton2rdquordquo gt ltControlRef DisplayMode=rdquordquoLargerdquordquo TemplateAlias=rdquordquoButton3rdquordquo gt ltRowgt ltSectiongt ltLayoutgt ltGroupTemplategt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditScaling_childrenrdquordquogt ltMaxSize Id=rdquordquoRibbonListFormEditMaxSizerdquordquo Sequence=rdquordquo15rdquordquo GroupId=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Size=rdquordquoNewGroupInExistingTabOneLargerdquordquo gt ltCommandUIDefinitiongt ltCommandUIDefinition Location=rdquordquoRibbonListFormEditGroups_childrenrdquordquogt ltGroup Id=rdquordquoRibbonListFormEditGroupsCustomGrouprdquordquo Sequence=rdquordquo100rdquordquo Title=rdquordquoSURPOINTrdquordquo Description=rdquordquoSURPOINTrdquordquo Template=rdquordquoRibbonTemplatesCustomTemplaterdquordquogt ltControls Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButtonrdquordquo Alt=rdquordquoVincular a sitio de proyectordquordquo Sequence=rdquordquo1rdquordquo Image32by32=rdquordquo_layoutsimagesnewweb32pngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquovincularSitiordquordquo LabelText=rdquordquoSitio de proyectordquordquo TemplateAlias=rdquordquoButton1rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton2rdquordquo Alt=rdquordquoAgregar a informe de portfoliordquordquo Sequence=rdquordquo2rdquordquo Image32by32=rdquordquo_layoutsimagesuploaddocpngrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoagregarInformerdquordquo LabelText=rdquordquoAgregar a portfoliordquordquo TemplateAlias=rdquordquoButton2rdquordquo CommandType=rdquordquoGeneralrdquordquogt

ltButton Id=rdquordquoRibbonListFormEditGroupsCustomGroupControlsButton3rdquordquo Alt=rdquordquoQuitar de informe de portfoliordquordquo Sequence=rdquordquo3rdquordquo Image32by32=rdquordquo_layoutsimagesmewa_backbgifrdquordquo Image16by16=rdquordquo_layoutsimagesSharePointFoundation10pngrdquordquo Command=rdquordquoquitarInformerdquordquo LabelText=rdquordquoQuitar de portfoliordquordquo TemplateAlias=rdquordquoButton3rdquordquo CommandType=rdquordquoGeneralrdquordquogt ltControlsgt ltGroupgt ltCommandUIDefinitiongt ltCommandUIDefinitionsgt ltCommandUIHandlersgt ltCommandUIHandler Command=rdquordquovincularSitiordquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosVincularProyectoaspxProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoagregarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=agregarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandler Command=rdquordquoquitarInformerdquordquo CommandAction=rdquordquojavascript elID = _spGetQueryParam(lsquoidrsquo) var dlg=SPUIModalDialogshowModalDialog(url lsquoSiteUrl_LayoutsEMP_ProcesosproyectoInformeaspxAccion=quitarampampProjectId=rsquo+elID dialogReturnValueCallbackfunction(res val) if (res == 1) windowframeElementcommonModalDialogClose(1 0) ) ldquordquo gt ltCommandUIHandlersgt ltCommandUIExtensiongt ldquo actionUpdate() mi_webAllowUnsafeUpdates = false

Las paacuteginas de aplicacioacutenLas paacuteginas que son llamadas desde la RIBBON son paacutegi-nas de aplicacioacuten tiacutepicas de SharePoint Ejecutan el coacutedigo C que necesitemos Soacutelo tenemos que tener en cuenta que deben encargarse de cerrar la pantalla modal A modo ilustrativo muestro parte del coacutedigo de carga de la paacutegina

protected void Page_Load(object sender EventArgs e) if (IsPostBack) Obtener el ID del proyecto recibido como paraacutemetro string proyecto = ldquordquo proyecto = PageRequestQueryString[ldquoProjectIdrdquo]

Datos del actual sitio elegido string idSitio = ldquordquo using (SPSite sitio = new SPSite(SPContextCurrentSiteUrl))(hellip)

6

Y lo maacutes importante la parte final del evento OnClick del botoacuten de nuestra paacutegina

protected void vincularSitio(object sender EventArgs e) (( thisPageResponseClear() thisPageResponseWrite(ldquoltscript type=rsquotextjavascriptrsquogtwindowframeElementcommonModalDialogClose(1 1)ltscriptgtrdquo) thisPageResponseEnd()

Utilizamos commonModalDialogClose para cerrar la ventana

Las paacuteginas que son llamadas desde la RIBBON son paacuteginas de aplicacioacuten tiacutepi-cas de SharePoint

ConclusioacutenEn este breve artiacuteculo vimos que no es tan complejo agre-gar componentes avanzados en la RIBBON de SharePoint La posibilidad de ejecutar coacutedigo C de servidor nos abre un abanico de posibilidades para extender nuestros sitios Y lo que es maacutes importante se hace de una forma que re-sulta bastante amigable para el usuario ya que la RIBBON es una barra que se ha acostumbrado a utilizar

iexclHasta la proacutexima

JUAN PABLO PUSSACQ LABORDE SharePoint MVP Blog httpsurpointblogspotcom

7

En el uacuteltimo artiacuteculo para CompartiMOSS hableacute sobre el concepto de las aplicaciones High-Trust o de alta confian-za (tambieacuten conocidas como S2S server-to-server) en los entornos de SharePoint 2013 Pues bien hoy vamos a me-ternos en la harina y hacer una de ellas

Preparando el entorno para crear la app High-TrustPara comenzar a crear una aplicacioacuten High-Trust necesi-tamos configurar varias cosas en nuestro entorno local de SharePoint 2013 Las configuraciones no son muchas pero es faacutecil olvidarse de una de ellas y luego tendremos proble-mas para investigar de donde viene el error

Antes que nada necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexados los perfiles de los usuarios que vamos a utilizar en la aplicacioacuten Esto es necesario porque el servicio de autenticacioacuten de una app High-Trust necesita ldquoencontrarrdquo el usuario en el servicio de perfiles de Share-Point para poder ejecutar las consultas en su nombre Si el perfil del usuario no estaacute la autenticacioacuten fallaraacute

Realmente el token de acceso que la app enviacutea hacia Sha-rePoint contiene el identificador del usuario y SharePoint se basa en eacutel para saber si el usuario es vaacutelido o no bus-caacutendolo en su base de datos de perfiles El identificador suele ser el SID del usuario Windows su UPN o nombre de usuario de Active Directory Si usamos otros sistemas de autenticacioacuten como FBA o Claims los identificadores seraacuten otros Es estrictamente necesario que el identificador del usuario esteacute presente en su perfil y que no haya repeticio-nes Si os pica mucho la curiosidad hay un excelente post de Steve Peschka al respecto (1)

Para poder firmar el token de la app necesitamos un certi-ficado SSL Mientras desarrollamos podemos usar un cer-tificado de desarrollo firmado por nosotros mismos (self-signed certificate) Luego en produccioacuten usaremos un certificado real Ademaacutes para que nuestra app se pueda comunicar con SharePoint de manera segura necesitamos que la comunicacioacuten esteacute encriptada bajo HTTPS Para ello necesitaremos otro certificado SSL con la URL de la app Esto no es necesario en desarrollo donde podemos relajar la restriccioacuten y usar HTTP pero en produccioacuten esto seriacutea una imprudencia seria

Para crear un certificado autofirmado iremos a la consola de IIS y bajo el apartado ldquoServer Certificatesrdquo y dentro de eacutel la opcioacuten ldquoCreate Self-Signed Certificaterdquo Le daremos el nombre CertificadoHighTrust

Al final exportaremos el certificado incluyendo la clave privada Como contrasentildea le pondremos ldquopasswordrdquo Al final tendremos un fichero PFX con el certificado digital que usaremos en nuestra app Este fichero tiene que estar en una carpeta accesible desde Visual Studio En nuestro caso como estamos desarrollando en una maacutequina de SharePoint no tenemos que mover el fichero y lo tendre-mos en la ruta CCertificatesCertificadoHighTrustpfx

Imagen 1- Creando un certificado SSL autofirmado

Necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexa-dos los perfiles

Tambieacuten haremos una exportacioacuten del certificado sin la clave privada para obtener el fichero CertificadoHigh-Trustcer Para ello tenemos que ir a ldquoServer Certificatesrdquo dentro del IIS abrir el certificado y en la pestantildea ldquoDetailsrdquo ir a la opcioacuten ldquoCopy to filerdquo indicando que no queremos la clave privada

Imagen 2- El certificado SSL con las partes puacuteblicas (cer) y privadas (pfx)

Ahora vamos a comprobar los permisos necesarios para que SharePoint pueda procesar nuestros certificados Los requerimientos son dos

bull El application pool SecurityTokenServiceApplica-tionPool tiene que tener permisos de lectura so-bre la carpeta de los certificados

07 Las Aplicaciones High-Trust ndash II

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 6: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

6

Y lo maacutes importante la parte final del evento OnClick del botoacuten de nuestra paacutegina

protected void vincularSitio(object sender EventArgs e) (( thisPageResponseClear() thisPageResponseWrite(ldquoltscript type=rsquotextjavascriptrsquogtwindowframeElementcommonModalDialogClose(1 1)ltscriptgtrdquo) thisPageResponseEnd()

Utilizamos commonModalDialogClose para cerrar la ventana

Las paacuteginas que son llamadas desde la RIBBON son paacuteginas de aplicacioacuten tiacutepi-cas de SharePoint

ConclusioacutenEn este breve artiacuteculo vimos que no es tan complejo agre-gar componentes avanzados en la RIBBON de SharePoint La posibilidad de ejecutar coacutedigo C de servidor nos abre un abanico de posibilidades para extender nuestros sitios Y lo que es maacutes importante se hace de una forma que re-sulta bastante amigable para el usuario ya que la RIBBON es una barra que se ha acostumbrado a utilizar

iexclHasta la proacutexima

JUAN PABLO PUSSACQ LABORDE SharePoint MVP Blog httpsurpointblogspotcom

7

En el uacuteltimo artiacuteculo para CompartiMOSS hableacute sobre el concepto de las aplicaciones High-Trust o de alta confian-za (tambieacuten conocidas como S2S server-to-server) en los entornos de SharePoint 2013 Pues bien hoy vamos a me-ternos en la harina y hacer una de ellas

Preparando el entorno para crear la app High-TrustPara comenzar a crear una aplicacioacuten High-Trust necesi-tamos configurar varias cosas en nuestro entorno local de SharePoint 2013 Las configuraciones no son muchas pero es faacutecil olvidarse de una de ellas y luego tendremos proble-mas para investigar de donde viene el error

Antes que nada necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexados los perfiles de los usuarios que vamos a utilizar en la aplicacioacuten Esto es necesario porque el servicio de autenticacioacuten de una app High-Trust necesita ldquoencontrarrdquo el usuario en el servicio de perfiles de Share-Point para poder ejecutar las consultas en su nombre Si el perfil del usuario no estaacute la autenticacioacuten fallaraacute

Realmente el token de acceso que la app enviacutea hacia Sha-rePoint contiene el identificador del usuario y SharePoint se basa en eacutel para saber si el usuario es vaacutelido o no bus-caacutendolo en su base de datos de perfiles El identificador suele ser el SID del usuario Windows su UPN o nombre de usuario de Active Directory Si usamos otros sistemas de autenticacioacuten como FBA o Claims los identificadores seraacuten otros Es estrictamente necesario que el identificador del usuario esteacute presente en su perfil y que no haya repeticio-nes Si os pica mucho la curiosidad hay un excelente post de Steve Peschka al respecto (1)

Para poder firmar el token de la app necesitamos un certi-ficado SSL Mientras desarrollamos podemos usar un cer-tificado de desarrollo firmado por nosotros mismos (self-signed certificate) Luego en produccioacuten usaremos un certificado real Ademaacutes para que nuestra app se pueda comunicar con SharePoint de manera segura necesitamos que la comunicacioacuten esteacute encriptada bajo HTTPS Para ello necesitaremos otro certificado SSL con la URL de la app Esto no es necesario en desarrollo donde podemos relajar la restriccioacuten y usar HTTP pero en produccioacuten esto seriacutea una imprudencia seria

Para crear un certificado autofirmado iremos a la consola de IIS y bajo el apartado ldquoServer Certificatesrdquo y dentro de eacutel la opcioacuten ldquoCreate Self-Signed Certificaterdquo Le daremos el nombre CertificadoHighTrust

Al final exportaremos el certificado incluyendo la clave privada Como contrasentildea le pondremos ldquopasswordrdquo Al final tendremos un fichero PFX con el certificado digital que usaremos en nuestra app Este fichero tiene que estar en una carpeta accesible desde Visual Studio En nuestro caso como estamos desarrollando en una maacutequina de SharePoint no tenemos que mover el fichero y lo tendre-mos en la ruta CCertificatesCertificadoHighTrustpfx

Imagen 1- Creando un certificado SSL autofirmado

Necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexa-dos los perfiles

Tambieacuten haremos una exportacioacuten del certificado sin la clave privada para obtener el fichero CertificadoHigh-Trustcer Para ello tenemos que ir a ldquoServer Certificatesrdquo dentro del IIS abrir el certificado y en la pestantildea ldquoDetailsrdquo ir a la opcioacuten ldquoCopy to filerdquo indicando que no queremos la clave privada

Imagen 2- El certificado SSL con las partes puacuteblicas (cer) y privadas (pfx)

Ahora vamos a comprobar los permisos necesarios para que SharePoint pueda procesar nuestros certificados Los requerimientos son dos

bull El application pool SecurityTokenServiceApplica-tionPool tiene que tener permisos de lectura so-bre la carpeta de los certificados

07 Las Aplicaciones High-Trust ndash II

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 7: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

7

En el uacuteltimo artiacuteculo para CompartiMOSS hableacute sobre el concepto de las aplicaciones High-Trust o de alta confian-za (tambieacuten conocidas como S2S server-to-server) en los entornos de SharePoint 2013 Pues bien hoy vamos a me-ternos en la harina y hacer una de ellas

Preparando el entorno para crear la app High-TrustPara comenzar a crear una aplicacioacuten High-Trust necesi-tamos configurar varias cosas en nuestro entorno local de SharePoint 2013 Las configuraciones no son muchas pero es faacutecil olvidarse de una de ellas y luego tendremos proble-mas para investigar de donde viene el error

Antes que nada necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexados los perfiles de los usuarios que vamos a utilizar en la aplicacioacuten Esto es necesario porque el servicio de autenticacioacuten de una app High-Trust necesita ldquoencontrarrdquo el usuario en el servicio de perfiles de Share-Point para poder ejecutar las consultas en su nombre Si el perfil del usuario no estaacute la autenticacioacuten fallaraacute

Realmente el token de acceso que la app enviacutea hacia Sha-rePoint contiene el identificador del usuario y SharePoint se basa en eacutel para saber si el usuario es vaacutelido o no bus-caacutendolo en su base de datos de perfiles El identificador suele ser el SID del usuario Windows su UPN o nombre de usuario de Active Directory Si usamos otros sistemas de autenticacioacuten como FBA o Claims los identificadores seraacuten otros Es estrictamente necesario que el identificador del usuario esteacute presente en su perfil y que no haya repeticio-nes Si os pica mucho la curiosidad hay un excelente post de Steve Peschka al respecto (1)

Para poder firmar el token de la app necesitamos un certi-ficado SSL Mientras desarrollamos podemos usar un cer-tificado de desarrollo firmado por nosotros mismos (self-signed certificate) Luego en produccioacuten usaremos un certificado real Ademaacutes para que nuestra app se pueda comunicar con SharePoint de manera segura necesitamos que la comunicacioacuten esteacute encriptada bajo HTTPS Para ello necesitaremos otro certificado SSL con la URL de la app Esto no es necesario en desarrollo donde podemos relajar la restriccioacuten y usar HTTP pero en produccioacuten esto seriacutea una imprudencia seria

Para crear un certificado autofirmado iremos a la consola de IIS y bajo el apartado ldquoServer Certificatesrdquo y dentro de eacutel la opcioacuten ldquoCreate Self-Signed Certificaterdquo Le daremos el nombre CertificadoHighTrust

Al final exportaremos el certificado incluyendo la clave privada Como contrasentildea le pondremos ldquopasswordrdquo Al final tendremos un fichero PFX con el certificado digital que usaremos en nuestra app Este fichero tiene que estar en una carpeta accesible desde Visual Studio En nuestro caso como estamos desarrollando en una maacutequina de SharePoint no tenemos que mover el fichero y lo tendre-mos en la ruta CCertificatesCertificadoHighTrustpfx

Imagen 1- Creando un certificado SSL autofirmado

Necesitamos que nuestro SharePoint 2013 tenga activo el servicio de perfiles de usuario y que ademaacutes tenga indexa-dos los perfiles

Tambieacuten haremos una exportacioacuten del certificado sin la clave privada para obtener el fichero CertificadoHigh-Trustcer Para ello tenemos que ir a ldquoServer Certificatesrdquo dentro del IIS abrir el certificado y en la pestantildea ldquoDetailsrdquo ir a la opcioacuten ldquoCopy to filerdquo indicando que no queremos la clave privada

Imagen 2- El certificado SSL con las partes puacuteblicas (cer) y privadas (pfx)

Ahora vamos a comprobar los permisos necesarios para que SharePoint pueda procesar nuestros certificados Los requerimientos son dos

bull El application pool SecurityTokenServiceApplica-tionPool tiene que tener permisos de lectura so-bre la carpeta de los certificados

07 Las Aplicaciones High-Trust ndash II

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 8: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

8

bull El application pool de la aplicacioacuten web en la que instalaremos la app (en nuestro caso la del puer-to 80) tiene que tener permisos de lectura sobre la carpeta de los certificados

En nuestro caso son las cuentas SPFarm y SQLSvc Les da-remos los permisos correspondientes en la carpeta Certi-ficates

Imagen 3- Los dos application pools a los que hay que dar acceso al certificado

Ahora tenemos que hacer que SharePoint reconozca nues-tro certificado Abrimos una consola PowerShell de Share-Point y registramos el certificado como de confianza

$publicCertPath = ldquoCCertificatesCertificadoHighTrustcerrdquo$certificate = New-Object SystemSecurityCryptographyX509CertificatesX509Certificate2($publicCertPath)New-SPTrustedRootAuthority -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate

Una vez que SharePoint se fiacutea de nuestro certificado va-mos a proceder a configurar lo que se conoce como un emisor de confianza (trusted issuer) Esto no es maacutes que indicarle a SharePoint que los tokens firmados por un ldquoemisor de confianzardquo son de fiar Y iquestcoacutemo sabe Share-Point queacute un emisor es de confianza Primero el ID del emisor (un GUID que va dentro del token) tiene que existir en la configuracioacuten de SharePoint Segundo el token tiene que estar firmado por un certificado del que SharePoint se ldquofiacuteardquo porque tiene su parte puacuteblica Como esta parte del certificado la hemos hecho ya soacutelo falta decirle a Share-Point el ID de nuestro proveedor de confianza Puede ser cualquier GUID y aquiacute vamos a utilizar el aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (si usamos letras en el GUID tienen que ser en minuacutescula) Bonito y faacutecil de recordar iquestverdad

Para registrar nuestro emisor de confianza hay que ejecu-tar el siguiente coacutedigo en PowerShell a continuacioacuten del script de importacioacuten del certificado

$realm = Get-SPAuthenticationRealm$specificIssuerId = ldquoaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeeerdquo$fullIssuerIdentifier = $specificIssuerId + lsquorsquo + $realm New-SPTrustedSecurityTokenIssuer -Name ldquoCertificadoHighTrustrdquo -Certificate $certificate -RegisteredIssuerName $fullIssuerIdentifier ndashIsTrustBrokeriisreset

Ya podemos proceder a desarrollar la app pero antes de esto vamos a permitir el uso del certificado autofirmado relajando los permisos de autenticacioacuten porque estamos en desarrollo

$serviceConfig = Get-SPSecurityTokenServiceConfig $serviceConfigAllowOAuthOverHttp = $true $serviceConfigUpdate()

Desarrollando la appLa app necesitaraacute el certificado SSL y conocer la contra-sentildea de su parte privada Ademaacutes la cuenta bajo la que se ejecutaraacute la app (el application pool del IIS) tiene que tener permisos para acceder a la ubicacioacuten del certificado Abrimos Visual Studio 2013 y creamos una app de Share-Point 2013 Al salir el asistente le indicamos que quere-mos una app provider-hosted y que la identidad de la app se estableceraacute mediante certificado

Imagen 4- Diciendo a Visual Studio que cree una app High-Trust

Ahora tendremos una aplicacioacuten (en mi ejemplo creada con Web Forms) que muestra el nombre del sitio actual de SharePoint donde estaacute instalada la app

La app necesitaraacute el certificado SSL y conocer la contrasentildea de su parte pri-vada

El coacutedigo que hace la llamada a SharePoint es muy senci-llo

protected void Page_Load(object sender EventArgs e) Uri hostWeb = new Uri(RequestQueryString[ldquoSPHostUrlrdquo])

using (var clientContext = TokenHelperGetS2SClientContextWithWindowsIdentity(hostWeb RequestLogonUserIdentity)) clientContextLoad(clientContextWeb web =gt webTitle) clientContextExecuteQuery() ResponseWrite(clientContextWebTitle)

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 9: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

9

Como se puede ver el contexto de SharePoint se establece usando la clase auxiliar TokenHelper con el meacutetodo Get-S2SClientContextWithWindowsIdentity Esta llamada ob-tiene un contexto de High-Trust app usando la identidad del usuario Windows que estaacute ejecutando la aplicacioacuten Esta es la configuracioacuten por defecto pero se puede modifi-car para usar la identidad federada por ejemplo Ejecutan-do la aplicacioacuten nos sale el diaacutelogo de otorgar permisos a la aplicacioacuten y al aceptarlo podemos ver el tiacutetulo del sitio de SharePoint ldquoHomerdquo

Imagen 5- Dando permisos a la app High-Trust

Imagen 6- La app High-Trust en ejecucioacuten

La prueba de Fiddler

Si abrimos Fiddler para ver el traacutefico HTTP entre la aplica-cioacuten y SharePoint veremos que la aplicacioacuten hace una lla-mada a la API CSOM (_vti_binclientsvcProcessQuery) Si miramos la peticioacuten en las cabeceras veremos un paraacute-metro llamado Authentication con el valor ldquoBearer ldquo se-guido de un texto codificado en Base64 Este es nuestro token de acceso

Imagen 7- La base de datos de fotografiacuteas en SQL Server

Para maacutes informacioacuten sobre la estructura del token hay un magniacutefico post de Kirk Evans al respecto (2)

ConclusioacutenEspero haber desmitificado un poco el mundo de las apli-caciones High-Trust con este post Como vereacuteis nos permi-te usar el modelo de apps sin tener que estar en la nube lo que es un paso importante para poder adaptar nuestros desarrollos a los escenarios hiacutebridos que parece que seraacuten mucho maacutes habituales en el futuro

me parece fascinante de este modelo High-Trust es que podemos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar

Seguro que muchos de vosotros teneacuteis dudas sobre si el modelo de las apps vale la pena para los desarrollos On-Premise Yo tambieacuten lo pienso muchas veces Lo que me parece fascinante de este modelo High-Trust es que po-demos separar la identidad de nuestra aplicacioacuten de los usuarios que la van a utilizar porque la app ya tiene su identidad y sus permisos dentro de SharePoint Por el otro lado ahora mismo soacutelo el modelo de apps ofrece la posi-bilidad de usar autenticacioacuten OAuth con SharePoint Hasta ahora si queriacuteamos llamar a SharePoint desde fuera de eacutel teniacuteamos que poner las credenciales del usuario Incluso no hace falta seguir el modelo de apps en su totalidad ya que podemos hacer una app que no tenga que iniciarse desde SharePoint o una app que funciona como una apli-cacioacuten de liacutenea de comandos servicio de Windows o un proceso de Nodejs

En el proacuteximo artiacuteculo de esta serie veremos coacutemo usar un proveedor de identidad diferente al de Windows como por ejemplo un usuario de Claims (SAML)

Bibliografiacutea(1) httpblogstechnetcombspeschkaarchive20120815oauth-and-the-rehydrated-user-in-sharepoint-2013-how-d-they-do-that-and-what-do-i-need-to-knowaspx

(2) httpblogsmsdncombkaevansarchive20130405inside-sharepoint-2013-oauth-context-tokensaspx

EDIN KAPIC Arquitecto SharePoint edinkapicspentaes ekapic httpwwwspentaes

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 10: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

10

Dynamics CRM y SharepointDynamics CRM y SharePoint son soluciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno Con el paso del tiempo estas dos soluciones no solo fueron in-crementando funcionalidades sino que se han convertido en grandes plataformas donde poder implementar cual-quier tipo de proceso de negocio Si bien las posibilidades son ilimitadas en ambas plataformas por su naturaleza cada una lo hace de otras maneras y por lo tanto existen escenarios de negocio que se acercan maacutes a una o a otra

Tradicionalmente se asocia al CRM con las relaciones con los clientes (Ventas Servicio al cliente y Marketing) y Sha-rePoint se asocia maacutes a escenarios de entornos de intra-nets gestioacuten de contenidos o documental Ambas asocia-ciones son correctas pero desde mi punto de vista son algo simplistas si se tiene en cuenta las posibilidades que ambas plataformas pueden ofrecer

Desde el punto de vista funcional SharePoint y Dynamics CRM tienen enfoques diferentes como se puede apreciar en la siguiente imagen

Imagen 1- Enfoques de SharePoint y Dynamics CRM

Este graacutefico explica a alto nivel los enfoques la forma de trabajo en una y otra plataforma que permiten enfocar los datos y los procesos relacionados con los mismos de diferente manera

Por queacute integrar Dynamics CRM con SharePointLa integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cubrir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documental que dispone Sha-rePoint En Dynamics CRM existe la posibilidad de antildeadir ficheros adjuntos que son almacenados como ldquonotasrdquo re-lacionadas con las entidades de CRM Pero estos ficheros

adjuntos solo se permiten guardar en CRM y nada maacutes En SharePoint en cambio podemos disponer de todo un aba-nico funcional y de colaboracioacuten mucho maacutes rico

Ademaacutes del GAP funcional existen un tambieacuten un tema econoacutemico En la ldquonuberdquo se paga por uso y uno de estos conceptos es el espacio de almacenamiento El almacena-miento de Dynamics CRM Online es mucho maacutes caro que el almacenamiento de SharePoint Esto es importante ya que en caso de enfrentarnos a un escenario en Dynamics CRM Online con gran volumen de ficheros adjuntos se de-beriacutea avaluar la repercusioacuten del precio de estos adjuntos en cuanto al almacenamiento en la nube

Arquitectura de integracioacuten lado servidorLa integracioacuten de la versioacuten actual de Dynamics CRM 2015 con SharePoint Online estaacute bastante desarrollada aunque existen algunos puntos que deberiacutean ser mejorados para garantizar una completa integracioacuten En versiones anterio-res de Dynamics CRM la integracioacuten estaba basada en el lado cliente en donde mediante un iframe apuntando a SharePoint se podiacutea acceder a documentos alliacute almacena-dos desde un contexto de un registro de CRM Esto signifi-ca que desde el navegador cliente es el que directamente accede y se autentica contra el SharePoint

Desde Dynamics CRM 2013 Online existe la posibilidad de integrar Dynamics CRM desde el lado servidor Esto quiere decir que directamente seraacute Dynamics CRM el que se en-cargue de conectar con SharePoint consultando y actua-lizado los datos que alliacute se almacenan Esto permite que desde el navegador del cliente solo se acceda a Dynamics CRM haciendo la integracioacuten maacutes transparente para los usuarios A continuacioacuten se ensentildean estos dos tipos de escenarios

Imagen 2- Escenarios de integracioacuten entre Dynamics CRM y SharePoint

10 Integracioacuten Dynamics CRM 2015 con SharePoint

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 11: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

11

Configurando la Integracioacuten de do-cumentos Dynamics CRM y Share-PointVeamos un paso a paso como configurar Dynamics CRM 2015 Online con SharePoint Online Para este ejemplo he creado una trial de Office365 con una trial de SharePoint y de CRM

bull Lo primero que voy a hacer es crearme una biblio-teca de documentos en SharePoint donde quiero almacenar los documentos a almacenar prove-nientes de Dynamics CRM

Imagen 3- Creacioacuten de la biblioteca de documentos en SharePoint

bull Luego en Dynamics CRM en Configuracioacuten-gtAdministracioacuten de documentos podemos confi-gurar toda la integracioacuten

Imagen 4- Acceso a la configuracioacuten de integracioacuten de SharePoint y Dynamics CRM

bull Y al habilitar la integracioacuten de SharePoint basada en servidor introducimos la direccioacuten URL del sitio de SharePoint

Imagen 5- Configuracioacuten de la URL de SharePoint Online

bull A continuacioacuten la URL de SharePoint Online es va-lidada por el asistente

Imagen 6- Validacioacuten de la URL de SharePoint Online

Imagen 7 Pantalla de conexioacuten de Dynamics CRM y SharePoint Online

bull Luego abrimos la configuracioacuten de administra-cioacuten de documentos donde introducimos la url de SharePoint y seleccionamos que entidades dispondraacuten de documentos

Imagen 8- Seleccioacuten de las entidades con documentos

bull A continuacioacuten configuraremos la estructura de carpetas para cada entidad

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 12: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

12

Imagen 9- Seleccioacuten de la estructura de carpetas

bull Una vez seleccionadas las entidades y la configu-racioacuten de la estructura de carpetas se muestra una ventana que indica el estado de creacioacuten de las bibliotecas de documentos en SharePoint

Imagen 9- Estado de creacioacuten de las bibliotecas de documentos

La integracioacuten de Dynamics CRM con SharePoint nace de la necesidad de cu-brir un GAP funcional en Dynamics CRM en cuanto a la gestioacuten documenta

bull Una vez configurada esta integracioacuten desde un formulario de una Cuenta de CRM podemos acceder a los Documentos relacionados

Imagen 10- Acceso a los documentos desde una cuenta del CRM

bull Si es la primera vez que se accede a los documen-tos de esta Cuenta aparece la siguiente ventana

Imagen 11- Diaacutelogo de confirmacioacuten de creacioacuten de carpeta en SharePoint

bull Al confirmar esta accioacuten se crea la carpeta en SharePoint relacionada con el registro de la Cuenta de CRM A partir de este momento los documentos pueden antildeadirse en CRM mediante formularios nativos y estos documentos son al-macenados en SharePoint

Imagen 12- Carga de documentos desde Dynamics CRM en SharePoint

Dynamics CRM y SharePoint son solu-ciones de Microsoft que tienen una vida ya de maacutes de diez antildeos cada uno

Integracioacuten de metadatos de Sha-rePoint con Dynamics CRMOtra funcionalidad interesante relacionada con la integra-cioacuten de Dynamics CRM con SharePoint es la utilizacioacuten de metadatos La creacioacuten de un documento en SharePoint permite que otros usuarios incluso no usuarios de CRM puedan interactuar con un documento Una opcioacuten podriacutea ser un flujo de aprobacioacuten o revisioacuten de un documento A continuacioacuten se detalla coacutemo se pueden crear metadatos en SharePoint que pueden ser consultados directamente en CRM

bull Primero creamos una columna con un desplega-ble de estados que quiero que se vean en Sha-rePoint

Imagen 13- Definicioacuten de la columna de tipo Eleccioacuten

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 13: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

13

Imagen 14- Valores para la columna

bull Asiacute se ven estos registros que se han creado en CRM en SharePoint

Imagen 15- Visualizacioacuten de los valores de la columna en la vista de la lista

bull La entidad que utiliza Dynamics CRM para inte-grar con SharePoint se llama ldquoDocumentos de SharePointrdquo y si creamos en la misma un campo con el mismo nombre que el metadato creado en SharePoint Dynamics CRM se encarga de forma automaacutetica de integrar los mismos

Imagen 16- Definicioacuten del campo Estado SharePoint en Dynamics CRM

bull Tambieacuten antildeadimos esta columna en las vistas de la entidad para que sea visible Publicamos y ya tenemos disponible este campo en el listado de documentos

Imagen 17- Incorporacioacuten de la columna a la vista de documentos en Dynamics CRM

Esta integracioacuten de atributos es muy interesante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales y se debe revisar queacute tipo de metadato se puede mapear con queacute tipo de campo con CRM En este ejemplo se ha utilizado un atri-buto de tipo texto que puede ser mapeado con cualquier metadato de SharePoint

Escenarios avanzados de integra-cioacutenLo explicado anteriormente ofrece una serie de opciones configurables que estaacuten muy bien pero en muchos esce-narios de negocio las integraciones deben ser algo maacutes complejas Ya sea por requerimientos funcionales no cu-biertos o por requerimientos de seguridad Es por esto que se abre un abanico de nuevas posibilidades que los propios entornos de Dynamics CRM y SharePoint ofrecen Como se comentaba al inicio la madurez de los produc-tos nos garantiza que ldquocasirdquo todo requerimiento funcional se pueda conseguir aunque a veces hay que valorar si los esfuerzos de desarrollo a dedicar para este tipo de exten-siones funcionales son los adecuados

El primero de los escenarios es el siguiente

Imagen 18- Escenario de integracioacuten con Flujos de Trabajo o Plugins de Dynamics

Desde Dynamics CRM se pueden crear Plugins o activida-des de Workflow que hagan llamadas directamente a Sha-rePoint o a un web service intermedio que conecte con SharePoint De la misma manera podriacutea existir un camino inverso desde SharePoint hacia Dynamics CRM

Imagen 19- Escenario de integracioacuten con Flujos de Trabajo o Event Receivers de Sha-rePoint

Desde el punto de vista de la interfaz de usuario en Dy-namics CRM se podriacutea antildeadir un iframe en formularios o Dashboards que apunten a URLs de SharePoint o bien crear Recursos Web (HTML Silverlight) que conecten di-rectamente al punto REST y consulten datos de SharePoint y se muestren

Imagen 20- Escenario de integracioacuten con iFrames o Recursos Web desde Dynamics

Igualmente el camino inverso en SharePoint se podriacutea antildeadir un iframe con una URL de cualquier registro de

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 14: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

14

CRM o desarrollar una App o un WebPart que conecte con los servicios de Dynamics CRM

Imagen 21- Escenario de integracioacuten con artefactos (Apps WebParts BCS etc) de SharePoint

Esta integracioacuten de atributos es muy in-teresante pero hay que tener en cuenta que los tipos de datos que hay en Dy-namics CRM y SharePoint no son iguales

ConclusionesComo puede verse la integracioacuten de Dynamics CRM con SharePoint es sencilla de montar y configurar pero la

funcionalidad que ofrece es limitada De todos modos la madurez de estas dos plataformas permite que se pueda extender a los requerimientos de negocio La integracioacuten de la gestioacuten documental de SharePoint en Dynamics CRM cubre un GAP funcional a CRM y ofrece a SharePoint la posibilidad de trabajo de documentos que ya vienen rela-cionados con entidades de negocio de Dynamics CRM De los temas que quedariacutean pendientes de montar es el tema de la seguridad En Dynamics CRM la seguridad es impliacuteci-ta basada en roles de seguridad y en la ubicacioacuten jeraacuterqui-ca de los usuarios En cambio en SharePoint la seguridad es expliacutecita en cada registro y por lo tanto se deberiacutea tener que desarrollar algo para permitir que esta integracioacuten sea maacutes soacutelida

DEMIAN ADOLFO RASCHKOVANMicrosoft MVP | Dynamics CRMDirector Teacutecnico | Infoavaacuten Soluciones mvpdemianraskocom demian_rasko httpwwwdemianraskocomComunidadCRMhttpwwwcomunidadcrmcom

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 15: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

15

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten y que expone todos sus componentes e informacioacuten al mundo exterior por medio de un API (Application Programming Interface) muy poderoso Ese es probablemente uno de los factores maacutes importantes para su aceptacioacuten empresarial Aunque SharePoint siempre ha tenido una API remota (basada en Servicios Web) es decir que permite crear software que interactuacutea con el servidor sin que sea indispensable insta-lar los programas localmente solamente hasta la versioacuten 2010 Microsoft le incluyo un API remoto basado en REST (Representational State Transfer)

REST como se explicoacute en el artiacuteculo anterior es un proto-colo abierto y puacuteblico que permite intercambiar informa-cioacuten entre dos sistemas informaacuteticos remotamente En los uacuteltimos antildeos REST se ha convertido en el estaacutendar para intercambio de informacioacuten por excelencia siendo utiliza-do por todos los grandes fabricantes de software (Ama-zon Google etc) incluyendo a Microsoft REST fuera de ser un protocolo praacutectico y faacutecil de utilizar soluciona los problemas teacutecnicos de rapidez de ejecucioacuten bajo carga y transparencia a traveacutes de Internet que otros protocolos de Servicios Web como SOAP WSCL y BEEP presentan

A su vez Microsoft ha establecido un Framework de pro-gramacioacuten para crear servicios REST llamado WebAPI basado en ASPNET e integrado en Visual Studio De esta forma es faacutecil construir servicios que accedan una gran cantidad de clientes incluyendo navegadores y dispositi-vos moacuteviles

Nota El primer artiacuteculo de la serie (httpwwwcomparti-mosscomrevistasnumero-22rest-webapi-2-sharepoint-2013-introduccion) discute los principios fundamentales de REST y WebAPI

Otros conceptos de WebAPIEn el primer artiacuteculo de la serie se utilizaron las caracteriacutes-ticas esenciales del WebAPI tal y como las crea la planti-lla de que dispone Visual Studio 2013 por defecto Pero el WebAPI permite controlar muchos otros aspectos de un Servicio REST

Ruteo (Routing) El Controlador es el encargado de ma-nejar las consultas de HTTP y sus meacutetodos puacuteblicos son llamados laquoAccionesraquo Cuando un Servicio REST creado con el WebAPI recibe una consulta el Framework rutea la con-

sulta hacia una Accioacuten determinada El Framework contie-ne una laquoTabla de Ruteoraquo que indica coacutemo debe hacer el ruteo Abriendo el archivo laquoApp_StartWebApiConfigcsraquo se puede observar la tabla creada por defecto

public static void Register(HttpConfiguration config) configMapHttpAttributeRoutes()

configRoutesMapHttpRoute( name ldquoDefaultApirdquo routeTemplate ldquoapicontrolleridrdquo defaults new id = RouteParameterOptional )

Esta configuracioacuten indica que una consulta hecha al Servicio REST debe ser utilizando el URL http[servidor][NumeroPuerto]api[NombreControlador] por ejemplo en el programa de prueba que se creoacute en el primer artiacuteculo seria ldquohttplocalhost[NumeroPuerto]apielementosrdquo para consultar todos los elementos y ldquohttplocalhost[NumeroPuerto]apielementos1rdquo para pedir los datos del primer elemento Si es necesario este ruteo por defecto (ldquoapirdquo) se puede modificar modifican-do a su vez la forma de llamar las Acciones

Fuera de poder rutear todo el Servicio es tambieacuten posible rutear solamente una Accioacuten o cada Accioacuten con un prefijo diferente Para hacerlo solamente es necesario decorar la declaracioacuten de la clase del Controlador definiendo el nue-vo prefijo por ejemplo

namespace SpRest01Controllers [RoutePrefix(ldquoapipocrdquo)] public class ElementosController ApiController

Lo que rutea la consulta de tal forma que la con-sulta debe ser hecha por medio del URL ldquohttplocalhost[NumeroPuerto]apipocelementosrdquo y ldquohttplocalhost[NumeroPuerto]apipocelementos1rdquo en el Servicio disentildeado en el artiacuteculo Esto permite crear una ruta especiacutefica para caso de Pruebas de Concepto (ldquopocrdquo) en el ejemplo pero el prefijo puede ser cualquier cadena deseada

Tambieacuten es posible modificar el ruteo por defecto a las Ac-ciones por medio de decoracioacuten del meacutetodo Por ejemplo

15 REST WebAPI 2 y SharePoint 2013 ndash WebAPI y OData

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 16: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

16

la siguiente decoracioacuten del meacutetodo ldquoDarElementosrdquo indica que es el meacutetodo para utilizar el verbo GET

[HttpGet]public IEnumerableltElementogt DarElementos() return myElementos

La Accioacuten se puede modificar por medio de una decora-cioacuten especial El siguiente meacutetodo tiene una decoracioacuten indicando el nombre que se debe utilizar para hacer la consulta

[HttpGet][ActionName(ldquoDarElementosrdquo)]public IEnumerableltElementogt GetAllElementos() return myElementos

De tal forma que la consulta sea ldquohttplocalhost[NumeroPuerto]apielementosDarElemen-tosrdquo

Finalmente es posible crear meacutetodos puacuteblicos que no se deben rutear por medio de la decoracioacuten NonAction de la siguiente forma

[NonAction]public IEnumerableltElementogt GetAllElementos() return myElementos

En este caso el framework no ruteara la consulta GET al meacutetodo GetAllElementos

Manejo de excepciones Cuando un Servicio Web creado con el WebAPI genera una excepcioacuten que no ha sido ma-nejada apropiadamente en coacutedigo retorna un coacutedigo 500 de HTTP (Internal Server Error) Pero el framework permi-te devolver coacutedigos de estado HTTP especiacuteficos si el desa-rrollador lo considera necesario Por ejemplo el siguiente meacutetodo devuelve un error 404 (Not Found) si el elemento buscado no existe

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) throw new HttpResponseException(HttpStatusCodeNotFound) return NotFound() return Ok(unElemento)

En el coacutedigo se utilizan dos meacutetodos diferentes uno crean-do una excepcioacuten del tipo HttpResponseException y el se-gundo (comentariado) retornando directamente un meacuteto-do NotFound Si es necesario entregar maacutes informacioacuten al

usuario se puede utilizar la forma verbosa del meacutetodo

public IHttpActionResult GetElemento(int id) Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) var resp = new HttpResponseMessage(HttpStatusCodeNotFound) Content = new StringContent(stringFormat(ldquoNingun Elemento con id = 0rdquo id)) ReasonPhrase = ldquoEl elemento no se encontrordquo throw new HttpResponseException(resp) return NotFound() return Ok(unElemento)

Otras caracteriacutesticas WebAPI ofrece otras caracteriacutesticas altamente especializadas que se escapan al alcance de este artiacuteculo por entre otras ser poco utilizadas Por ejemplo es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados que no existen en la lista de errores de HTTP por defecto y es posible crear formateadores especiales que enviacutean la res-puesta del servicio fuera de los dos formatos por defecto (JSON y XML) por ejemplo en formato csv

SharePoint siempre ha sido un sistema abierto a aceptar modificaciones por medio de programacioacuten

Creacioacuten de un Servicio REST inte-grado en SharePoint 2013Desafortunadamente Microsoft no admite la creacioacuten de Servicios REST personalizados que funcionen simultaacutenea-mente con los Servicios REST nativos del servidor de la misma forma que si se puede hacer con los Servicios Web tradicionales El principal problema es fundamentalmente la forma en que SharePoint maneja el contexto Aunque Visual Studio 2013 introdujo una plantilla especial para crear Aplicaciones de SharePoint utilizando MVC no con-tiene un proveedor de autenticacioacuten y ademaacutes los Con-troladores definidos para MVC no funcionan correctamen-te con los Controladores del WebAPI (ApiControllers) pues los primeros funcionan oacuteptimamente para devolver vistas (del modelo MVC) como HTML mientras que los segun-dos han sido disentildeados para devolver datos estructurados como XML o JSON Como se ha indicado el manejo del contexto es totalmente diferente en aplicaciones MVC y WebAPI lo que no es de extrantildear teniendo en cuenta que el WebAPI estaacute hecha para trabajar con REST que a su vez es sin estado es decir no mantiene por defecto el estado de las consultas ni del servidor que las realiza

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 17: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

17

bull Un Controlador de MVC hereda de SystemWebMVCController que entre otras propiedades mantiene un registro de la consulta (HttpRequest-Base) y de su contexto basado en el cual se crea el contexto de SharePoint el que se guarda en la propiedad HttpContextSession

bull El ApiController de WebAPI hereda de SystemWebHttpApiController que no contiene un Http-Context sino un HttpControllerContext que a su vez contiene una propiedad para la Session Por otro lado las propiedades para Request y Re-questContext son del tipo HttpRequestMessage y HttpRequestMessageContext no del tipo Http-Context

En Internet se pueden encontrar varios intentos para ha-cer funcionar el WebAPI dentro de los Servicios REST na-tivos de SharePoint pero todos no son maacutes que parches de funcionamiento y no son soportados oficialmente por Microsoft Las soluciones que se pueden encontrar se ba-san principalmente en

bull Agregar un objeto de Session al API Controller (httpwwwstrathwebcom201211adding-session-support-to-asp-net-web-api) Esta solu-cioacuten baacutesicamente elimina el requisito de sin esta-do de REST haciendo que no cumpla el estaacutendar aceptado universalmente

bull Alterar la clase SharePointContextProvider para que acepte el ApiController (httpblogbaslijtencomgetting-sharepoint-2013-apps-and-webapi-to-work) Fuera de ser una solucioacuten teacutecnicamente bastante compleja y difiacutecil de implementar (crear una clase HttpRequestBase propia reemplazar el uso de la clase HttpContext por HttpController-Context modificacioacuten de los tokens del ApiCon-troller) modifica clases por defecto de Microsoft violando por definicioacuten la garantiacutea del producto

En conclusioacuten

bull No hay una solucioacuten aceptable por el momento para integrar nuevos Servicios REST creados con el WebAPI con los Servicios REST nativos y por de-fecto de SharePoint

bull Aunque teacutecnicamente es posible crear Aplicacio-nes de SharePoint que funcionen como un Servi-cio REST esta forma de trabajo no estaacute soportada por el momento por Microsoft por el estaacutendar de REST yo son complejas de implementar y de alto riesgo teacutecnico

bull La opcioacuten maacutes viable es crear Servicios REST que funcionen paralelamente a SharePoint y que

o Accedan a la informacioacuten contenida en SharePoint por medio de su Modelo de Objetos de Servidor o de Cliente

o Utilizan su propio Website de IIS ya sea utilizando un servidor separado a los uti-lizados por la granja de SharePoint o un

puerto especifico (o un Host Name) si los Servicios tienen que funcionar dentro de los mismos servidores que la granja de SharePoint

Extensioacuten del Servicio REST de ejemploEl siguiente ejemplo ha sido pensado para que sea lo maacutes sencillo posible y continuar con el coacutedigo creado en el pri-mer artiacuteculo de tal forma que se pueda de nuevo demos-trar lo faacutecil que es crear un servicio REST con el WebAPI que interactuacutee con SharePoint Por simplicidad el ejemplo solamente lee datos de una Lista Personalizada de Share-Point utilizando el Modelo de Objetos de Servidor pero el ejemplo se puede ampliar faacutecilmente para hacer todas las operaciones CRUD y se puede modificar para que utilice el Modelo de Objetos de Cliente El ejemplo y las imaacutegenes han sido creados utilizando Visual Studio 2013 Update 4 y CSharp pero cualquier versioacuten de Visual Studio 2013 (y Visual Basic) produciraacute los mismos resultados

El ejemplo va a interactuar con una Lista Personalizada de SharePoint (Servidor o Foundation) llamada ldquoListaTes-tRestrdquo que adicionalmente a los campos de ldquoTitulordquo e ldquoIdrdquo creados por defecto tiene otros dos campos de los siguientes tipos

bull Nombre ldquoCategoriardquo tipo ldquoUna liacutenea de textordquobull Nombre ldquoPreciordquo tipo ldquoMonedardquo

Como se puede ver en la definicioacuten del Modelo ldquoElemen-tordquo estos cuatro campos corresponden con la entidad ldquoElementordquo configurada para el Servicio

1 Descargue el coacutedigo del proyecto creado en el pri-mer artiacuteculo o siga las instrucciones dadas en el para crearlo desde el principio con Visual Studio

2 Abra el proyecto con Visual Studio Porque se va a utilizar el Modelo de Objetos de servidor de SharePoint es necesario agregar una referencia a MicrosoftSharePoint y una directiva using a Mi-crosoftSharePoint al inicio del archivo de coacutedigo del Controlador

3 El coacutedigo de SharePoint necesita ejecutarse bajo la plataforma de 64 bits mientras que un pro-yecto de WebAPI creado con la plantilla de Visual Studio utiliza por defecto coacutedigo de 32 bits Por lo tanto es necesario modificar la compilacioacuten de laquoAny CPUraquo a laquox64raquo Desde el menuacute laquoCompilarraquo de Visual Studio seleccione laquoAdministracioacuten de configuracioacutenraquo y en el elemento del proyecto se-leccione (o cree una nueva) entrada en la colum-na de laquoPlataformaraquo que sentildeale a laquox64raquo

Imagen 1- Configuracioacuten de ldquox64rdquo como Plataforma de compilacioacuten

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 18: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

18

4 Como Visual Studio utiliza IIS Express como ser-vidor Web estaacutendar en modo de 32 bits es ne-cesario cambiar la configuracioacuten a 64 bits Desde el menuacute de ldquoHerramientasrdquo ndash ldquoOpcionesrdquo de Vi-sual Studio seleccione ldquoProyectos y solucionesrdquo ndash ldquoProyectos webrdquo y seleccione la casilla ldquoUsar la versioacuten de 64 bits de IIS Express para sitios Web y proyectosrdquo (puede que sea necesario reiniciar totalmente el servidor para que la configuracioacuten sea efectiva)

Imagen 3- Configuracioacuten de ldquox64rdquo para IIS Express

Note que Visual Studio 2013 utiliza IIS Express versioacuten 85 En versiones anteriores de Visual Studio se utilizaba IIS Express 7 que no dispone de una versioacuten de 64 bits Tambieacuten la configuracioacuten mostrada en la Figura 2 es exclu-siva de las uacuteltimas versiones de Visual Studio En versiones anteriores es necesario instalar IIS Express 8 o superior y configurar a Visual Studio para que utilice la versioacuten de 64x manualmente

5 Cree una rutina privada en el Controlador para devolver todos los elementos de la Lista de Sha-rePoint La rutina del ejemplo utiliza el Modelo de Objetos de Servidor de SharePoint pero la mis-ma rutina se puede crear utilizando el Modelo de Objetos de Cliente si el Servicio utiliza un servidor que no sea uno de los de la granja de SharePoint La rutina del ejemplo es de la forma

private ListltElementogt DarTodosLosElementos() ListltElementogt TodosLosElementos = new ListltElementogt()

SPSecurityRunWithElevatedPrivileges(delegate() using (SPSite mySite = new SPSite(ldquohttpservidorrdquo)) using (SPWeb myWeb = mySiteOpenWeb()) SPList myList = myWebLists[ldquoListaTestRestrdquo] foreach (SPItem unItem in myListItems) Elemento unElemento = new Elemento() unElementoId = unItemID unElementoNombre = unItem[ldquoTiacutetulordquo]ToString() unElementoCategoria = unItem[ldquoCategoriardquo]ToString() double myPrecio doubleTryParse(unItem[ldquoPreciordquo]ToString() out myPrecio) unElementoPrecio = myPrecio TodosLosElementosAdd(unElemento) )

return TodosLosElementos

Esta rutina tiene un par de puntos importantes que hay

que remarcar Primero que todo utiliza Privilegios Eleva-dos para acceder la Lista de SharePoint Esto es necesa-rio pues la consulta no estaacute enviando las credenciales del usuario al Servicio de tal forma que SharePoint va a dene-gar el acceso Utilizar Privilegios Elevados no es una buena praacutectica En el uacuteltimo artiacuteculo de esta serie se discutiraacuten los aspectos de autenticacioacuten y autorizacioacuten de Servicios REST y se explicaraacute coacutemo enviar las credenciales del usua-rio para que SharePoint puede devolver los datos apropia-dos

es posible crear proveedores propios para el manejo de errores que pueden enviar mensajes personalizados

El segundo punto importante es que la consulta de la Lista no estaacute creada para que de un buen rendimiento pues uti-liza un bucle sencillo para leer todos los elementos Ade-maacutes la misma rutina se utilizaraacute para la consulta que lee todos los elementos de la Lista y para la consulta que de-vuelve los datos de uno solo lo que la hace terriblemente ineficiente si la Lista contiene altas cantidades de elemen-tos Como se explicoacute en el principio el coacutedigo solamente es de ejemplo y no estaacute pensado para ser utilizado en un Servicio de produccioacuten

Note tambieacuten que no se ha hecho ninguacuten esfuerzo para enviar el URL del sitio (ni el nombre de la Lista ni de sus campos) de forma dinaacutemica todo estaacute codificado directa-mente Estos paraacutemetros especialmente el URL del Sitio en donde se encuentra la Lista se deberiacutean enviar como paraacutemetros de entrada de la consulta (el primer artiacuteculo indica como enviar estos paraacutemetros)

6 Finalmente las dos rutinas puacuteblicas para las con-sultas GET de todos los elementos y de uno solo se han modificado ligeramente para que utilicen la rutina de acceso general

public IEnumerableltElementogt GetAllElementos() return DarTodosLosElementos()

public IHttpActionResult GetElemento(int id) ListltElementogt myElementos = DarTodosLosElementos() Elemento unElemento = myElementosWhere(e =gt eId == id)First() if (unElemento == null) return NotFound() return Ok(unElemento)

Las dos rutinas simplemente hacen una llamada a la ruti-na de acceso general para encontrar todos los elementos de la Lista (en el primer caso) y para filtrarlos posterior-mente (en el segundo caso)

7 Los meacutetodos para crear eliminar y modificar un

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 19: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

19

elemento de la Lista siguen exactamente el mis-mo patroacuten para acceder a la Lista de SharePoint y para que sean utilizados por el Servicio REST tal como se especificoacute en el primer artiacuteculo y no se muestran en este ejemplo

8 Compile y ejecute el Servicio Para testearlo se puede utilizar el navegador directamente o inyectar las consultas y ver las respuestas por medio de una herramienta como Fiddler (ver el primer artiacuteculo de la serie)

Utilizacioacuten del Servicio RESTUn Servicio REST puede ser utilizado desde muacuteltiple tipos de sistemas y equipos Como ejemplos los siguientes pa-raacutegrafos indican como crear clientes que utilizan coacutedigo manejado y JavaScript para llamar al Servicio

Aplicacioacuten de Consola que utiliza coacutedigo manejado

9 Cree un nuevo proyecto de Visual Studio del tipo ldquoEscritorio de Windowsrdquo ndash ldquoAplicacioacuten de conso-lardquo Asiacutegnele un nombre (ldquoSpRest01_ClienteCon-solardquo en el ejemplo)

Nota no cree el nuevo proyecto dentro de la misma solucioacuten de Visual Stu-dio en donde se encuentra el Servicio REST pues dificulta considerablemente el trabajo de depuracioacuten Cree una solucioacuten separada para cada proyecto y cuando se necesite depurar lance cada solucioacuten por separado desde diferen-tes instancias de Visual Studio

10 Agregue una referencia a SystemNet y su corres-pondiente directiva using

11 Modifique la clase Main para que incluya el si-guiente coacutedigo fuente

static void Main(string[] args) string restURL = ldquohttplocalhost33497apielementosrdquo

HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequestCreate(restURL) myRequestCredentials = CredentialCacheDefaultCredentials myRequestMethod = ldquoGETrdquo myRequestAccept = ldquoapplicationxmlrdquo ConsoleWriteLine(ldquoURL - ldquo + restURL)

HttpWebResponse myResponse = (HttpWebResponse)myRequestGetResponse() XDocument myDoc = XDocumentLoad(myResponseGetResponseStream()) ConsoleWriteLine(myDoc)

La direccioacuten del Servicio REST tiene que ser conocida de antelacioacuten lo mismo que la consulta que se desea realizar (variable ldquorestURLrdquo) Inicialmente se crea la consulta utili-zando la clase ldquoHttpWebRequestrdquo se le indican las creden-ciales que debe utilizar el meacutetodo y el tipo de respuesta que se espera (ldquoxmlrdquo) La consulta se enviacutea por medio del meacutetodo ldquoGetResponserdquo y la respuesta se atrapa en una

instancia de la clase ldquoHttpWebResponserdquo La respuesta se puede procesar de diferentes formas El ejemplo la con-vierte en un documento XML que se puede leer utilizando los meacutetodos tradicionales de NET

Imagen 3- Aplicacioacuten de Consola llamando el Servicio REST

Aplicacioacuten Web que utiliza JavaS-cript

12 Cree un nuevo proyecto de Visual Studio del tipo ldquoWebrdquo ndash ldquoAplicacioacuten web ASPNETrdquo asiacutegnele un nombre (ldquoSpRest01_ClienteWebrdquo en el ejemplo) y seleccione ldquoEmptyrdquo como plantilla

13 Agreacuteguele al proyecto un elemento del tipo ldquoPagi-na HTMLrdquo asignaacutendole un nombre

14 En la seccioacuten de ldquobodyrdquo del coacutedigo de la paacutegina HTML antildeada un botoacuten que llama una funcioacuten de JavaScript cuando el usuario lo aprieta de la siguiente forma

ltbodygt ltinput id=rdquobtnLlamarServiciordquo type=rdquobuttonrdquo value=rdquoLlamar Serviciordquo onclick=rdquoLlamarServicio()rdquo gtltbodygt

15 Cree la funcioacuten de JavaScript en la seccioacuten ldquoheadrdquo del coacutedigo de la paacutegina

ltscript src=rdquohttpajaxaspnetcdncomajaxjqueryjquery-190jsrdquogtltscriptgt ltscript language=rdquojavascriptrdquogt

function LlamarServicio() jQuery(function () jQueryajax( url ldquohttplocalhost33497apielementosrdquo type ldquoGETrdquo headers ldquoacceptrdquo ldquoapplicationjsopnrdquo success function (data status jqXHR) var myResultado $each(data function (key value) $each(value function (llave valor) myResultado += ldquo - ldquo + valor ) ) alert(myResultado) error function (jqXHR status message) alert(JSONstringify(jqXHR)) ) )

ltscriptgt

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 20: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

20

El primer script simplemente agrega el coacutedigo de jQuery que se va a utilizar posteriormente La funcioacuten ldquoLlamarSer-viciordquo tiene tres secciones principales

bull La cabecera en donde se define el URL del Servicio junto con la consulta que se va a realizar

bull La seccioacuten que ejecuta cuando el Servicio devuelve una respuesta sin problemas (ldquosuccessrdquo) Los datos se encuentran en la variable ldquodatardquo en forma de un obje-to JSON Por medio de dos bucles ldquoeachrdquo se extrae la informacioacuten y se muestra al usuario por medio de una Alerta de JavaScript

bull Si el Servicio devuelve un error la seccioacuten de ldquoerrorrdquo comienza a funcionar mostrando el mensaje que el Servicio ha enviado por medio de otra Alerta

Imagen 4- Aplicacioacuten Web (HTML) llamando el Servicio REST

Un Servicio REST puede ser utilizado des-de muacuteltiple tipos de sistemas y equipos

ConclusioacutenSharePoint 2013 y SharePoint Online en Office 365 utilizan extensivamente REST como medio de comunicacioacuten para manipular informacioacuten La creacioacuten de Servicios REST se ha simplificado considerablemente desde la aparicioacuten del Framework WebAPI de Microsoft que se integra perfecta-mente en Visual Studio 2013 y permite la creacioacuten de ser-vicios REST raacutepida e intuitivamente Desafortunadamente no es posible integrar Servicios REST personalizados con los Servicios nativos de SharePoint 2013 pero eso no im-pide que se puedan crear (y utilizar) por separado ya sea usando coacutedigo del Modelo de Objetos de Servidor o del Modelo de Objetos de Cliente

GUSTAVO VELEZ MVP SharePoint gustavogavdnet httpwwwgavdnet

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 21: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

21

El presente artiacuteculo muestra un ejemplo de coacutemo aprove-char algunas de las funcionalidades que ofrecen las buacutes-quedas para implementar un requisito habitual en muchos de nuestros sitios tanto escenarios Intranet como de in-ternet Se va a crear una vista de un cataacutelogo y detalles de elementos de ese cataacutelogo como podriacutea ser por ejemplo un cataacutelogo de noticias y el detalle de cada una de ellas y lo haremos ademaacutes usando URLs amigables Los concep-tos del presente artiacuteculo pueden aplicarse en escenarios de BCS o Cross Site Publishing Con el objetivo de no hacer el artiacuteculo demasiado largo y centrarnos en el motivo del mismo se desarrollaraacute todo en el mismo sitio y con una lista personalizada que se crearaacute para tal fin

una de las mejoras maacutes importantes que incorporoacute la versioacuten 2013 de SharePoint tiene que ver con las nuevas funcionali-dades relacionadas con las buacutesquedas

Preparacioacuten de nuestro sitioEn primer lugar se crearaacute la lista personalizada que conten-draacute el cataacutelogo que recibiraacute el nombre de ldquoNoticiasrdquo Ade-maacutes se habilitaraacute la gestioacuten de tipos de contenido para esta lista y se crearaacute un ldquotipo de contenidordquo para la misma que represente a cada elemento de nuestro cataacutelogo y que seraacute clave en este ejemplo El tipo de contenido se llamaraacute Noticias y puede tener una estructura como la que vemos en la Imagen 1

Imagen 1- Tipo de contenido Noticias

Creacioacuten del origen de resultadosUno de los aspectos maacutes importantes para lograr nuestro fin es la definicioacuten de un ldquoOrigen de resultadosrdquo Esta op-cioacuten permite crear buacutesquedas limitadas a ciertos conte-nidos o a un subconjunto de resultados de buacutesqueda En nuestro caso vamos a definir un origen de resultados que nos devuelva las ldquoNoticiasrdquo a partir del Tipo de Contenido que hemos definido en el apartado anterior El Origen de resultados se puede definir a distintos niveles a nivel de administracioacuten del servicio de buacutesqueda a nivel de colec-cioacuten de sitios o bien a nivel de sitio Para el ejemplo que se estaacute mostrando vamos a definir el ldquoorigen de resulta-dosrdquo al nivel del sitio en el que se estaacute trabajando Desde la configuracioacuten del sitio vamos al apartado de buacutesqueda y fuentes de resultado y desde ahiacute a ldquoNuevo origen de resultadordquo Imagen 2

Imagen 2- Creacioacuten de un origen de resultados

Tras indicar el nombre y la descripcioacuten se sentildeala como protocolo ldquoSharePoint localrdquo y el tipo de buacutesqueda como ldquoResultados de la buacutesqueda de SharePointrdquo para seleccio-nar los elementos de todo el iacutendice Para configurar la con-sulta se entra en ldquoIniciar generador de consultasrdquo

Imagen 3- Pantalla de configuracioacuten de la consulta

21 Introduccioacuten a Search Driven Development en SharePoint Online y SharePoint 2013

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 22: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

22

La configuracioacuten de nuestra consulta se realiza en la pan-talla que aparece como puede apreciarse en la Imagen 3 Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades donde se pueden es-tablecer filtros a partir de las propiedades administradas que hay identificadas en nuestro sistema Para este caso se va a antildeadir un filtro de propiedad en el que se indicaraacute que los elementos devueltos sean del tipo de contenido creado en la seccioacuten anterior tipo de contenido ldquoNoticiasrdquo como vemos en la Imagen 4

Imagen 4- Antildeadiendo un filtro para el tipo de contenido del resultado

Una vez antildeadido el filtro se puede efectuar la comproba-cioacuten de que los resultados son los correctos en la opcioacuten laquoConsulta de pruebaraquo Para comprobar que la consulta configurada devuelve los resultados correctos es nece-sario asegurar que se ha re-indexado la lista despueacutes de haber insertado los datos ya que de otro modo al usar la opcioacuten de ldquoConsulta de pruebardquo podriacutean no obtenerse los resultados esperados Una vez comprobado se guarda la fuente de resultados que seraacute usada maacutes adelante en el Content Search WebPart

Los filtros de la consulta pueden definirse mediante filtros de palabras clave o de propiedades

Creacioacuten de las paacuteginas El siguiente paso seraacute crear las paacuteginas que se van a uti-lizar y crear el teacutermino de la navegacioacuten basada en me-tadatos para nuestro cataacutelogo La navegacioacuten basada en metadatos es otra de las interesantes funcionalidades que incorpora SharePoint 2013 y que permite utilizar nuestro almaceacuten de teacuterminos para crear URLs amigables Aunque el objetivo de este artiacuteculo no es coacutemo activar esta opcioacuten si se puede mencionar que al menos es necesario tener activada la Feature laquoInfraestructura de publicacioacuten de SharePoint Serverrdquo de la coleccioacuten de sitios y activar la na-vegacioacuten basada en metadatos del sitio para poder crear URLs amigables A continuacioacuten se crearaacuten dos paacuteginas en nuestro sitio en la libreriacutea de paacuteginas una para el cataacutelogo y otra para los elementos del cataacutelogo

Imagen 5- Biblioteca de paacuteginas con las dos nuevas paacuteginas creadas

Despueacutes se accede al almaceacuten de teacuterminos de nuestro sitio y al conjunto de teacuterminos de navegacioacuten del mismo para crear un nuevo teacutermino que llamaremos ldquoNoticiasrdquo y que crearaacute un nuevo elemento en el menuacute de navegacioacuten y una URL amigable de la forma ldquoltsitegtnoticiasrdquo Una vez creado en la configuracioacuten de este nuevo teacutermino nos dirigimos a la pestantildea laquoPaacuteginas basadas en teacuterminosraquo y activamos en la seccioacuten de Configuracioacuten de la paacutegina de destino las dos casillas seleccionando para ambas la paacute-gina que hemos creado para el cataacutelogo Por uacuteltimo en la seccioacuten que aparece maacutes abajo sobre Configuracioacuten de la paacutegina de elemento de cataacutelogo activamos igualmente las dos casillas y para ambas se selecciona la paacutegina que se ha creado para los elementos de cataacutelogo

Imagen 6- Configuracioacuten del teacutermino de navegacioacuten basada en metadatos

Configuracioacuten del Content Search WebPartEl uacuteltimo paso para tener listas las paacuteginas que se han creado es antildeadir y configurar en cada una de ellas el Con-tent Search WebPart tanto para el cataacutelogo como para los elementos del mismo En primer lugar se va a traba-jar sobre la paacutegina del cataacutelogo editaacutendola para antildeadir el WebPart Posteriormente se accede a las propiedades y hacemos click sobre laquoCambiar Consultaraquo lo que permitiraacute modificar la consulta y configurar los datos que se desea que devuelva el WebPart

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 23: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

23

Imagen 7- Pantalla de configuracioacuten de la consulta del Content Search WebPart

En la pestantildea de conceptos baacutesicos seleccionamos el Ori-gen de resultados que habiacutea sido creado previamente Imagen 7 En este caso como se estaacute editando la paacutegina del cataacutelogo y se pretende que sea devuelto el cataacutelogo completo solo seleccionamos el origen de resultados por lo que para continuar se acepta y guarda la configuracioacuten del WebPart El siguiente paso es modificar la paacutegina que se ha creado para los elementos del cataacutelogo y de la misma manera antildeadir el WebPart Se acceden a las propiedades del mismo y de nuevo a la opcioacuten de Cambiar consulta En este caso una vez seleccionado el Origen de resultados se antildeade un filtro para que devuelva solo el elemento del cataacutelogo al que se estaacute accediendo

Imagen 8- Configuracioacuten de la consulta en el Content Search WebPart

En nuestro caso se antildeade un filtro para la propiedad Slug que teniacutea nuestro tipo de contenido que seraacute lo que acom-pantildee a la URL del cataacutelogo para acceder a cada elemento Posteriormente se selecciona la opcioacuten de laquoValor de un token de la direccioacuten URLraquo para la propiedad administra-da relacionada con el campo al que se desea asociar y se

antildeade el filtro Con este procedimiento el WebPart para la paacutegina de elementos del cataacutelogo habraacute sido configurado Desde ahora se puede acceder a una noticia de nuestro cataacutelogo a traveacutes de la URL ldquonoticiasslug-de-la-noticia-de-ejemplordquo

Una vez preparadas la paacutegina de nuestro cataacutelogo y de detalle de ese cataacutelogo se puede combinar con los Display Templates para proporcionar un disentildeo maacutes atractivo a los resultados que nos da el Content Search WebPart Este tema ha sido objeto de un artiacuteculo en la revista (Nuacutemero 17 Introduccioacuten a las plantillas de elementos de contenido (Display templates) Santiago Porras Rodriacuteguez) por lo que se puede acudir a eacutel y junto con lo que hemos podido ver en eacuteste comenzar a explotar todas las posibilidades que nos ofrecen estas features

con las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma sencilla funciona-lidades de nuestros sitios

Como se ha podido comprobar sin la necesidad de escribir coacutedigo y por medio de las nuevas herramientas que nos proporcionan las buacutesquedas se pueden generar de una forma muy sencilla funcionalidades muy habituales en nuestros sitios Me gustariacutea concluir destacando que las buacutesquedas en SharePoint 2013 nos ofrecen una amplia variedad de nuevas oportunidades que nos llevaraacuten no solo a tenerlas en cuenta para construir un mero buscador con refinamiento sino tambieacuten a considerarlas como una opcioacuten vaacutelida a la hora de plantear la resolucioacuten de mu-chos de los requerimientos que se nos presentan cuando abordamos un proyecto con SharePoint 2013 o SharePoint Online

JOSEacute CARLOS RODRIacuteGUEZ AVILEacuteSAnalista Programador en Soluciones de SharePointjosecarlosrodriguezucicomjcroavhttpelblogdelprogramadorwordpresscom

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 24: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

24

iquestPor queacute y coacutemo empezaste en el mundo de la tecnologiacuteaMe inicieacute desde los 11 antildeos de edad cuando ingreseacute a estudiar carreras teacutecnicas cortas en las que gracias a la visioacuten y apoyo de mi padre tuve la oportunidad de desen-volverme y aprender muchas cosas Maacutes adelante cuando termineacute mi secundaria decidiacute estudiar una carrera de siste-mas estando alliacute me uniacute a una comunidad tecnoloacutegica Mi-crosoft de estudiantes realizando eventos y charlas hasta la fecha lo vengo haciendo pero ahora para la audiencia profesional

iquestCuaacuteles son tus principales activi-dades tecnoloacutegicas hoy en diacuteaEn este mundo de tecnologiacutea siempre tienes que estar actualizado me mantengo al diacutea enlazando mis blogs preferidos al servicio de correo que voy revisando durante el diacutea comparto los temas de intereacutes en mis redes socia-les y revisar las novedades internas con los encargados del producto de Office 365 En el aacuterea profesional he montado mi empresa dedicada a brindar los servicios de Microsoft y entrenamientos enfocando los temas Cloud Office 365 Azure e Intune

iquestCuaacuteles son tus principales activi-

dades NO tecnoloacutegicas hoy en diacuteaPasar tiempo con mis seres queridos salir al cine y con mis amigos

iquestCuaacuteles son tus hobbiesMe gusta ver series de televisioacuten escuchar muacutesica del geacutenero rock y jugar al fulbito

iquestCuaacutel es tu visioacuten de futuro en la tecnologiacutea de acaacute a los proacuteximos antildeosLas empresas perderaacuten el temor de alojar sus servicios en Cloud estaraacuten apostando a tener los servicios siempre di-sponibles desde cualquier lugar todos estaraacuten conectados a sus dispositivos electroacutenicos Donde se estaacute viendo en estos uacuteltimos antildeos y donde se estariacutea apuntando el inter-net de las cosas

JORGE CASTANtildeEDA Microsoft MVP Office 365Blog httpoffice365technicalsupportCorreo jorgecastanedaoutlookcom Twitter xorxe

24Entrevista Jorge Castantildeeda

Mi nombre es Jorge Castantildeeda Cano vivo en Lima Peruacute

Tengo maacutes de 10 antildeos trabajando con tecnologiacutea Micro-soft Me gusta trabajar con la plataforma y los servicios de Microsoft especialmente con los servicios Cloud actual-mente su enfoque a la innovacioacuten y mejoraras de los ser-vicios brindados

Ingreseacute al servicio de Office 365 por el 2012 y tuve la opor-tunidad realizar mi primera migracioacuten de los servicios de correo en la empresa para la que trabajaba en aquel en-tonces Desde ahiacute quede conectado teniendo esa visioacuten de que grandes cosas en temas Cloud se veniacutean en camino y comenceacute a especializarme desde aquel entonces en el servicio y ver evolucionarlo desde ese momento es gran-dioso De la misma forma comenceacute a publicar en mi blog sobre los servicios de Office 365 ayudando a otros en la

plataforma colaborando sobre el uso y configuracioacuten de los servicios y tambieacuten compartiendo con las comunidades teacutecnicas Obtuve el reconocimiento de Microsoft Most Valuable Professional (MVP) Office 365 en el antildeo 2014 y tuve la oportunidad de recibir la renovacioacuten el pasado mes de enero del 2015

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 25: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

25

En SharePoint 2010 y 2013 el modelo de arquitectura de servicios ofrece un marco en el que implementar y admi-nistrar servicios dentro de una granja o entre varias Las llamadas aplicaciones de servicio representan a una ins-tancia de un servicio que se puede ofrecer en SharePoint para ser consumido y que se puede configurar de forma centralizada Las aplicaciones de servicio nos permiten ofrecer servicios en nuestra granja de SharePoint que pue-den ser compartidos y consumidos por distintas aplicacio-nes web o incluso por distintas granjas (en infraestructuras muy grandes)

Las aplicaciones de servicio disponibles en SharePoint 2010 y 2013 por defecto son las siguientes

Nombre de la aplicacioacuten de servicio SP 2013 SP 2010

Servicios de Access X Servicios de Access 2010 X XServicio de administracioacuten de apps X Equilibrio de carga y deteccioacuten de aplicaciones

X

Conectividad a datos empresariales (BCS)

X X

Servicios de Excel X XConector a Lotus Notes X XServicio de traduccioacuten automaacutetica X Servicio de metadatos administrados X XServicio de configuracioacuten de suscrip-cioacuten de Microsoft SharePoint Founda-tion

X X

Servicios de PerformancePoint X XConversioacuten de PowerPoint X XServicio de buacutesqueda X XServicio de almacenamiento seguro X XAplicacioacuten de servicio de token de seguridad

X X

Servicio de estado X XRecoleccioacuten de datos de manten-imiento y uso

X X

Servicio de perfil del usuario X XServicio de graacuteficos de Visio X XWord Automation Services X XAdministracioacuten del trabajo X

Web Analytics XAplicacioacuten de servicio de flujo de tra-

bajo (soacutelo si hay un servicio externo

de flujo de trabajo conectado)

X

Ademaacutes de estas aplicaciones de servicio existen otras que pueden ser creadas por otros productos que se integran con SharePoint (Project Server Office Web Apps 2010 SQL Reporting Services PowerPivothellip) o pertenecer a produc-tos de terceros Para conseguir un correcto funcionamien-to mantenimiento y escalabilidad de nuestros entornos es necesaria una correcta configuracioacuten de nuestras apli-caciones de servicio En este artiacuteculo repasaremos los pun-tos clave a tener en cuenta para organizar las aplicaciones de servicio configurar su seguridad organizar sus bases de datos y planear el escalado de eacutestas

Planear las cuentas de seguridadEl primer paso a tener en cuenta a la hora de planear las aplicaciones de servicio son las cuentas a utilizar Para ello nos basaremos en las cuentas recomendadas que expusi-mos en el nordm 20 de CompartiMOSS (ldquoBuenas praacutecticas en infraestructura en SharePoint 2013 - Parte IIrdquo) Las aplica-ciones de servicio residen como cualquier otra aplicacioacuten web en el IIS del servidor Es por ello que es necesario al menos un grupo de aplicacioacuten (application pool) para eje-cutarlas Para este grupo de aplicaciones utilizaremos una cuenta de seguridad que llamaremos spservices

El servicio de buacutesquedas requiere varias cuentas para fun-cionar correctamente Es necesaria una cuenta de acceso al contenido que tendraacutes permisos de lectura en todo el contenido y seraacute utilizada por el rastreador (crawler) de las buacutesquedas La llamaremos spcrawl Tambieacuten es nece-saria una cuenta independiente para la administracioacuten de buacutesqueda que se asignaraacute a todas las aplicaciones de servicio de buacutesqueda de la granja Ademaacutes se recomien-da independizar el grupo de aplicacioacuten (application pool) del servicio de buacutesquedas y disponer de una cuenta para este servicio Microsoft especifica que puede ser la misma cuenta de administracioacuten u otra cuenta distinta Nosotros utilizaremos la misma spsearch

El servicio de sincronizacioacuten de perfiles necesita una cuen-ta para acceder al Active Directory y obtener datos de los usuarios Debe tener permisos de ldquoReplicating Directory

25 Administra mejor tus aplicaciones de servicio

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 26: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

26

Changesrdquo en el AD La llamaremos spprofile

Los servicios de Excel Visio y PerformancePoint necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se confi-guran en el servicio de almacenamiento seguro Las llama-remos spvisio spexcel y spperfpoint

Planear los grupos de aplicacioacuten (application pools)Como se ha mencionado en el apartado anterior las apli-caciones de servicio se deben distribuir en uno o maacutes gru-pos de aplicacioacuten (application pool) Microsoft indica en TechNet que se puede implementar aplicaciones de servi-cio en distintos grupos de aplicaciones para aislar proce-sos Sin embargo tambieacuten se indica que el rendimiento de una granja se optimiza si todos los servicios estaacuten dentro de un mismo grupo de aplicaciones Aun asiacute se recomien-da la ejecucioacuten del servicio de buacutesqueda en un grupo de aplicacioacuten independiente por razones de escalabilidad y de seguridad Tambieacuten se recomienda ejecutar los servi-cios de token de seguridad y de equilibrio de carga con las credenciales del administrador de granja y cuenta de acceso a base de datos (spfarm)Buscando la convergencia entre la recomendacioacuten de jun-tar servicios en un mismo grupo de aplicacioacuten y estas con-figuraciones especiales el resultado seriacutea la creacioacuten de cuatro grupos de aplicacioacuten en el IIS para las aplicaciones de servicio de SharePointbull SecurityTokenServiceApplicationPool [cuenta

spfarm]o Servicio de token de seguridad

bull SharePoint Hosted Services [cuenta spservices]o Servicio de administracioacuten de appso Conectividad a datos empresariales (BCS)o Servicios de Excelo Servicio de traduccioacuten automaacuteticao Servicio de metadatos administradoso Servicios de PerformancePointo Conversioacuten de PowerPointo Servicio de almacenamiento seguroo Servicio de configuracioacuten de suscripcioacuteno Servicio de perfil del usuarioo Servicio de graacuteficos de Visioo Word Automation Services

bull SharePoint Search Application Pool [cuenta sp-search]

o Aplicacioacuten de servicio de buacutesqueda

o Search Administration Web Service for Search Service Application

bull SharePoint Web Services System [cuenta spfarm]o Equilibrio de carga y deteccioacuten de aplicacio-

nesNota se ha utilizado la nomenclatura usada en muchos artiacuteculos y en proyec-tos como AutoSPInstaller

Planear las bases de datosHay determinadas aplicaciones de servicio que requieren el uso de una o varias bases de datos Es muy recomen-dable tener una nomenclatura de nombres muy clara a la hora de nombrar estas bases de datos ya que ayudaraacute a la gestioacuten y al mantenimiento permitieacutendonos identificarlas raacutepidamente La recomendacioacuten es utilizar un prefijo uacutenico que las identifique como bases de datos de servicio (para verlas todas juntas en SQL Server) seguida de un nombre descriptivo Para el artiacuteculo indicamos los nombres maacutes utilizados por la comunidad y usados en proyectos como AutoSPInstaller

Aplicacioacuten de servicio Nombre de BD recomendadoServicio de adminis-tracioacuten de apps

Services_AppManagement

Conectividad a datos em-presariales (BCS)

Services_BusinessDataCatalog

Servicio de traduccioacuten automaacutetica

Services_TranstaltionService

Servicio de metadatos administrados

Services_MetaData

Servicio de configuracioacuten de suscripcioacuten

Services_SubscriptionSettings

Servicios de Performan-cePoint

Services_PerformancePoint

Servicio de buacutesqueda Base de datos de adminis-tracioacuten de buacutesquedas

- Services_SearchBase de datos de informes de Anaytics

- Services_AnalyticsRe-portingStore

Base de datos de rastreo- Services_CrawlStore

Base de datos de viacutenculo- Services_LinksStore

Servicio de almacenami-ento seguro

Services_SecureStore

Servicio de estado Services_StateServiceRecoleccioacuten de datos de mantenimiento y uso

Services_UsageAndHealth

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 27: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

27

Servicio de perfil del usu-ario

Base de datos de informacioacuten sobre los perfiles

- Services_ProfileBase de datos de etiquetas so-ciales y notas de los usuarios

- Services_SocialBase de datos con informacioacuten provisional para la sincroni-zacioacuten de perfiles

- Services_SyncWord Automation Ser-vices

Services_WordAutomation

Los permisos de las bases de datos se asignan al crear la aplicacioacuten de servicio o al actualizar la seguridad desde la Administracioacuten Central Es recomendable no editarlos des-de SQL Server para evitar problemas

Creacioacuten de las aplicaciones de servicioExisten tres formas de crear las aplicaciones de servicio

bull Todas a la vez mediante el asistente de configuracioacuten de la granja

bull De una en una desde la paacutegina de administracioacuten de aplicaciones de servicio (Administracioacuten Central de SharePoint)

bull De una en una mediante Windows PowerShellEl Asistente de Configuracioacuten de la Granja permite crear todas las aplicaciones de servicio a la vez y si tener que preocuparse por nombres seguridad ni otras configuracio-nes (Imagen 1)

Imagen 1- El asistente de configuracioacuten de la granja permite crear aplicaciones de servicio

Precisamente por esta facilidad es por lo que no se reco-mienda el uso del asistente no permite tener el control de la configuracioacuten y eso genera multitud de inconvenientes tales como

bull Todas las aplicaciones de servicio se implementan en el mismo grupo de aplicaciones (application pool)

bull Se usa una uacutenica cuenta para todos los servicios Se puede cambiar maacutes adelante pero es complicado

bull Los nombres de las bases de datos se generan auto-maacuteticamente con GUIDs largos e incoacutemodos de recor-dar No es sencillo identificarlas raacutepidamente al admi-nistrar SQL Server

bull No nos permite tener una convencioacuten de nomencla-tura para las aplicaciones de servicio y para sus bases de datos

bull Se aplica la configuracioacuten predeterminada en cada aplicacioacuten de servicio Se puede cambiar maacutes adelan-te

En cambio la creacioacuten manual (mediante Administracioacuten Central o PowerShell) permite tener el control sobre nom-bres conexiones seguridad y configuracioacuten (Imagen 2) Una vez se hayan decidido la nomenclatura de nombres las cuentas y grupos de aplicacioacuten el servidor de base de datos y los nombres de bases de datos es muy sencillo crear una aplicacioacuten de servicio En la Imagen 2 puede ver-se que los datos para la aplicacioacuten de servicio de adminis-tracioacuten de apps son estos datos de los que hemos estado hablando

Imagen 2- La creacioacuten manual de una aplicacioacuten de servicio nos permite tener el control

Ademaacutes de estos paraacutemetros algunas aplicaciones de ser-vicio requieren configuracioacuten adicional Por ejemplo los servicios de perfiles y de buacutesqueda necesitan varias bases de datos el servicio de perfiles necesita varios paraacutemetros para configurar Mi Sitio el servicio de almacenamiento seguro tiene opciones de auditoriacutea etc Para las opciones especiacuteficas de cada servicio se puede consultar esta guiacutea de TechNet httpstechnetmicrosoftcomes-eslibraryee794878aspx

SeguridadUna vez se han creado las aplicaciones de servicio es ne-cesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 28: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

28

que las consuman no tengan problemas de acceso Para explicar este punto utilizaremos las cuentas mencionadas en este artiacuteculo a las que le antildeadiremos

bull spfarm cuenta administrador de granja y de conexioacuten a base de datos Se impersonal como Cuenta del Sis-tema y es cuenta del grupo de aplicacioacuten (application pool) de la Administracioacuten Central

bull spsetup cuenta de instalacioacuten configurador de Share-Point y PowerShell

bull sppool1 sppool2 sppool3hellip cuentas del grupo de aplicacioacuten (application pool) de cada aplicacioacuten de contenido de SharePoint

bull spmysite cuenta del grupo de aplicacioacuten (application pool) de la aplicacioacuten de Mi Sitio

Por un lado se pueden configurar uno o varios administra-dores en cada aplicacioacuten de servicio y establecerles dife-rentes niveles de permiso tal y como se ve en la Imagen 3

Imagen 3- Es posible asignar administradores a las aplicaciones de servicio

De forma predeterminada los miembros del grupo de ad-ministradores de la granja de servidores tienen permisos para administrar las aplicaciones de servicio Aun asiacute es necesario hacer alguacuten ajuste adicional en las siguientes

bull Servicio de metadatos administradoso spsetup full control

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool1 sppool2 sppool3hellip full controlo spcrawl retrieve people data for search

crawlerso spfarm full control

De esta forma las aplicaciones de contenido no tendraacuten problemas para acceder al servicio de perfiles y la cuenta de rastreo de buacutesquedas podraacute rastrear personas Tam-bieacuten evitaremos problemas accediendo desde PowerShell al servicio de metadatos Si se desea administrar alguna

de las aplicaciones de servicio con otra cuenta es posible asignarles permisos desde aquiacute Esta asignacioacuten provocaraacute que se le otorguen permisos internamente en las bases de datos de las aplicaciones de servicio

Por otra parte existe la posibilidad de compartir las apli-caciones de servicio con las cuentas de usuario que se considere necesarias como se muestra en la Imagen 4 El objetivo de esta funcionalidad es poder compartir deter-minadas aplicaciones de servicio con otras granjas aun-que tambieacuten es necesario para que algunas funcionalida-des y servicios de la granja puedan utilizar alguna de las aplicaciones de servicio

Imagen 4- Podemos compartir las aplicaciones de servicio con otras cuentas

Por ejemplo la navegacioacuten en los sitios de publicacioacuten ne-cesita acceder internamente al servicio de perfiles para obtener informacioacuten de audiencias Y la cuenta del grupo de aplicacioacuten (sppooln) de una aplicacioacuten web necesita acceso de lectura al almaceacuten de teacuterminos del servicio de metadatos para entre otras cosas proporcionar la funcio-nalidad de ldquoI like itrdquo en SP 2010 y de los tag sociales Por razones como estas (y muchas otras) se recomienda con-figurar los siguientes permisos

bull Todas las aplicaciones de servicioo Local farm full control (configurado por de-

fecto)bull Servicio de metadatos administrados

o Local farm Full Access to Term Storeo All Authenticated Users Read Access to Term

Storeo spsetup Full Access to Term Store

bull Servicio de perfiles de usuarioo spsetup full controlo spmysite full controlo sppool full controlo spfarm full control

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 29: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

29

Noacutetese que se otorga acceso de lectura al almaceacuten de teacuter-minos a todas las cuentas Esto permitiraacute que cualquier usuario pueda utilizar y crear teacuterminos si asiacute se desea y evitaraacute problemas de acceso al almaceacuten de teacuterminos des-de los sitios Finalmente es necesario otorgar ciertos per-misos en las aplicaciones de contenido mediante poliacuteticas para la correcta interaccioacuten con las aplicaciones de servi-cio La cuenta de rastreo (spcrawl) debe tener permisos de ldquoFull Readrdquo en las aplicaciones de contenido para asegu-rarnos que pueda rastrear todo el contenido Las cuentas de los grupos de aplicacioacuten (application pool) de las apli-caciones de servicio (spservices y spsearch) deben tener permisos de ldquoFull Controlrdquo para asegurarnos que pueden realizar operaciones contra los sitios de SharePoint En la Imagen 5 se puede ver un ejemplo

Imagen 5- Podemos configurar poliacuteticas para la correcta interaccioacuten con las aplicacio-nes de servicio

Se recuerda que es necesario configurar la cuenta spcrawl como cuenta de rastreo en la configuracioacuten del servicio de buacutesquedas

Una vez se han creado las aplicaciones de servicio es necesario configurar una serie de paraacutemetros de seguridad para asegurarnos que los servicios usuarios o aplicaciones

Configurar las cuentas desatendi-dasLas aplicaciones de servicio de Excel Visio y Performance-Point necesitan utilizar una cuenta en nombre de usuarios autorizados para proporcionar acceso a oriacutegenes de datos externos Estas cuentas llamadas cuentas ldquodesatendidasrdquo se configuran en el servicio de almacenamiento seguro Las cuentas tendraacuten acceso a los oriacutegenes de datos que sean necesarios y estas aplicaciones de servicio podraacuten utilizarlas Para la creacioacuten de estas cuentas se recomien-da utilizar las cuentas de usuario spexcel spvisio y spperf-point y registrarlas en el servicio de almacenamiento segu-ro tal y como se muestra en la imagen 6

Imagen 6- Cuentas desatendidas configuradas en el servicio de almacenamiento seguro

En cada una de las aplicaciones de servicio hay un aparta-do en la configuracioacuten en el que se asignaraacute el ID generado para estas cuentas En la Imagen 7 se muestra la configu-racioacuten para la aplicacioacuten de servicios de Visio

Imagen 7- Configuracioacuten de cuenta desatendida en los servicios de Visio

Asociar serviciosTras haber creado las aplicaciones de servicio y configu-rado su seguridad es posible asignarlas a las aplicaciones de contenido (en la Administracioacuten Central) para que eacutestas puedan usarlas El botoacuten de Conexiones de Servicio permi-te realizar esta asociacioacuten Si se mantiene el combo en el grupo ldquodefaultrdquo todas las predeterminadas se asignaraacuten Si se cambia a un valor personalizado podremos elegir las aplicaciones de servicio que necesitamos tal y como se muestra en la Imagen 8

Imagen 8- Conexioacuten de una aplicacioacuten de contenido a las aplicaciones de servicio

Es posible incluso tener maacutes de una aplicacioacuten de servicio de un tipo En la Imagen 8 se muestran dos aplicaciones de servicio de Excel y se permite decidir cuaacutel es la prede-terminada

Bibliografiacutea recomendadaSi se desea profundizar maacutes en la gestioacuten y configuracioacuten de las aplicaciones de servicio recomiendo los siguientes enlaces

bull Configuracioacuten de servicios y aplicaciones de servicioo httpstechnetmicrosoftcomes-eslibrary

ee794878aspxbull Servicios de SharePoint 2013 (diagrama teacutecnico muy

recomendado)o httpgomicrosoftcomfwlink

pLinkId=259425bull Aplicaciones de servicio en SharePoint 2013 Intro-

duccioacuten y funcionalidad (Gustavo Veacutelez Juan Carlos Gonzaacutelez Fabiaacuten Imaz)

o httpsmsdnmicrosoftcomes-eslibrarydn195886aspx

MIGUEL TABERA PACHECO SharePoint Lead en Plain Concepts MVP de SharePoint Server migueltaberaoutlookcom migueltabera

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 30: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

30

La funcionalidad de Grupos de Office 365 facilita el trabajo colaborativo entre personas de una organizacioacuten dotaacutendo-les de funcionalidad de valor antildeadido como muro conver-sacional experiencia de usuario completamente integrada en Outlook Web App (OWA) en Office 365 y capacidades adicionales como calendario de grupo sitio de SharePoint Online doacutende ir dejando los documentos del grupo etc Adicionalmente los Grupos de Office 365 cuentan con opciones adicionales de configuracioacuten como se veraacute en el presente artiacuteculo

Opciones de configuracioacuten para Grupos de Office 365Desde el punto de vista de configuracioacuten un Grupo de Office 365 se puede manejar de tres formas diferenciadas

bull Desde la interfaz de usuario del Grupo en OWAbull Desde la seccioacuten Grupos del portal de Administra-

cioacuten de Office 365 ya que un Grupo de Office 365 viene a ser un tipo especial de grupo de directorio activo definido bajo el concepto de ldquoColaboracioacuten en grupordquo

bull Desde las opciones de administracioacuten del servicio de Azure AD asociado a Office 365 que nos per-mite administrar el Directorio Activo vinculado a cada tenant de Office 365

bull La interfaz de liacutenea de comandos proporcionada por PowerShell

Posibilidades de configuracioacuten en el propio GrupoDesde el acceso a un Grupo en OWA un usuario adminis-trador del mismo puede acceder a todas las opciones de configuracioacuten disponibles como por ejemplo

bull Acceder al listado de miembros suscritos al Grupo asiacute como a la informacioacuten de los administradores del Grupo Desde la paacutegina de miembros del Gru-po se pueden antildeadir nuevos miembros

bull Ver los detalles del Grupo y editarlo

Un Grupo se define como un espacio de trabajo compartido para e-mail conver-saciones archivos y eventos

Imagen 1- Acceso a las opciones de configuracioacuten del Grupo

Si vemos estas opciones en detalle

bull Al editar el Grupo tendremos la posibilidad de cambiar toda la informacioacuten que originalmente se indicoacute en su creacioacuten nombre descripcioacuten idio-ma para el grupo o el idioma del grupo En cam-bio no podremos cambiar el estado del grupo de ldquoacutePublicordquo a ldquoPrivadordquo

bull La paacutegina de ldquoMiembrosrdquo nos muestra los inte-grantes actuales del Grupo a la vez que nos permi-te realizar operaciones de administracioacuten tiacutepicas como antildeadir nuevos miembros al Grupo eliminar un miembro del Grupo o hacer a un miembro existente Administrador del Grupo

Imagen 2- Paacutegina de detalle de los miembros del Grupo y operaciones disponibles para un miembro

30 Introduccioacuten a los Grupos de Office 365 ndash Trabaja como una red (Parte II)

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 31: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

31

Posibilidades de configuracioacuten a traveacutes del portal de Ad-ministracioacuten de Office 365

Las mismas opciones que se han visto en la seccioacuten ante-rior estaacuten disponibles a traveacutes del portal de Administracioacuten de Office 365 En concreto la opcioacuten ldquoGRUPOSrdquo del menuacute vertical del portal da acceso a todos los Grupos que se han creado en el tenant lo que incluye los Grupos relativos a colaboracioacuten en grupo objeto del presente artiacuteculo

Imagen 3- Detalle de un Grupo desde el portal de Administracioacuten de Office 365

La paacutegina de ldquoMiembrosrdquo nos muestra los integrantes actuales del Grupo

Como se puede apreciar en la Imagen 3 al seleccionar un Grupo definido para colaboracioacuten en grupo se habilita un panel desde el que se pueden hacer las mismas operacio-nes comentadas

bull Editar el nombre y descripcioacuten del Grupobull Acceder a la informacioacuten de los miembros del Gru-

po asiacute como antildeadir nuevos miembros actualizar la informacioacuten de miembros existentes (incluyen-do su rol) o bien eliminar miembros del grupo

Imagen 4- Listado de los miembros del Grupo desde el portal de Administracioacuten de Offi-ce 365

Posibilidades de configuracioacuten a traveacutes del portal de Microsoft Azu-reFinalmente la uacuteltima posibilidad para administrar y confi-gurar Grupos de Office 365 haciendo uso de la interfaz de usuario viene dada por el portal de Microsoft Azure ya que desde el pasado mes de diciembre es posible administrar el directorio activo (DA) de Azure asociado a un tenant de Office 365 haciendo uso del portal de Microsoft Azure

bull Para acceder al DA de Azure asociado al tenant

soacutelo hay que hacer clic en el enlace Azure AD del menuacute vertical del portal de Administracioacuten de Office 365 de forma que a continuacioacuten se mues-tra el portal de Microsoft Azure que permite ad-ministrar la suscripcioacuten correspondiente (y gra-tuita) vinculada al tenant de Office 365 y desde doacutende se puede gestionar el servicio de Azure AD del tenant

Imagen 5- Detalle del servicio de Azure AD en el portal de Microsoft Azure

bull Como se aprecia en la Imagen 5 la suscripcioacuten de Microsoft Azure asociada al tenant de Office 365 uacutenicamente cuenta con el servicio de Azure AD en el que por defecto se encuentra definido el DA del tenant de Office 365 y doacutende es posible agregar Directorios Activos adicionales en caso de que sea necesario

bull Si se hace clic en el AD asociado al tenant de Offi-ce 365 de nuevo se puede acceder (como en los apartados anteriores) a la informacioacuten relativa a los Grupos creados en el tenant

Imagen 6- Detalle de los Grupos de Office 365 en Azure AD

bull En el caso de Azure AD dado un Grupo definido para trabajo colaborativo no es posible realizar los mismos tipos de configuracioacuten vistos hasta aho-ra editar eliminar miembros existentes y antildea-dir nuevos miembro Soacutelo es posible visualizar la informacioacuten del Grupo y la de los miembros que forman parte del Grupo

Office 365 permite manejar los Gru-pos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft

Posibilidades de configuracioacuten a traveacutes de PowerShellComo alternativa a la gestioacuten y configuracioacuten de Grupos con la interfaz de usuario Office 365 permite manejar los Grupos haciendo uso de PowerShell y los comandos por defecto definidos por Microsoft que se pueden encontrar

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 32: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

32

en el siguiente artiacuteculo de soporte httpssupportofficecomes-esarticleUsar-PowerShell-para-administrar-gru-pos-aeb669aa-1770-4537-9de2-a82ac11b0540 Ademaacutes de estos comandos especiacuteficos para Grupos es posible uti-lizar comandos estaacutendar PowerShell para Office 365 para trabajar con cualquier tipo de grupo como los comandos Get-MsolGroup y Get-MsolGroupMember El siguiente script PowerShell muestra coacutemo obtener todos los Grupos de un tenant de Office 365 y los miembros de un Grupo particular del tenant

Conexioacuten a Office 365$sUserName=rdquoltUsuario_Offce365gtrdquo$sMessage=rdquoIntroduce your Office 365 Credentialsrdquo$msolcred = get-credential -UserName $sUserName -Mes-sage $sMessageconnect-msolservice -credential $msolcredComandos PowerShell especiacuteficos para trabajar con Gru-pos de Office 365Get-MsolGroup$gCompartiMOSSGroup=Get-MsolGroup | Where $_Dis-playName -eq ldquoCompartiMOSSrdquoGet-MsolGroupMember -GroupObjectId $gCompartiMOSS-GroupObjectId | Format-Table DisplayNameEmailAddress

La salida por pantalla correspondiente es la que se mues-tra en la Imagen 7

Imagen 7- Grupos y miembros de un grupo obtenidos con los comandos Get-Msol-Group y Get-MsolGroupMember

ConclusionesAdemaacutes de las posibilidades de colaboracioacuten que los Gru-pos antildeaden a una organizacioacuten es posible administrarlos y configuacuteralos de diversas formas haciendo uso de la inter-faz de usuario o de PowerShell A diacutea de hoy las posibilida-des de gestioacuten que brinda la interfaz de usuario son mucho maacutes sencillas que las que proporciona PowerShell

JUAN CARLOS GONZAacuteLEZ MARTIacuteNMVP SharePoint de SharePoint Server | Cloud amp Producti-vity Advisor en MVP CLUSTERE-Mail de Contacto juancarlosgonzalezfiveshareites Twitter jcgm1978Blog httpsjcgonzalezmartinwordpresscom Web wwwlkses

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 33: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

33

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 34: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

34

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes (fuera de SharePoint) como pueden ser base de datos (SQL Server Oracle MySQL) ERP (Dynamics SAP ECI NetSui-te) CRM (Dinamics SAPSugar) etc

Imagen 1- Muestra un graacutefico ilustrativo para presentar datos de oriacutegenes externos en SharePoint

Esto es posible mediante la buacutesqueda de datos externos utilizando los servicios de conectividad empresarial a con-tinuacioacuten vamos a ver paso a paso como realizar dicha in-tegracioacuten utilizado como conector un servicio web

Paso 0 ndash Requisitos necesariosPara nuestro ejemplo es necesario disponer de las siguien-tes aplicaciones de servicio creadas en nuestro servidor

bull Buacutesqueda Para maacutes informacioacuten de coacutemo crear di-cho aplicacioacuten httptechnetmicrosoftcomes-eslibrarygg502597(v=office15)aspx

bull Almacenamiento Seguro Para maacutes informacioacuten de coacutemo crear dicho aplicacioacuten httptechnetmicrosoftcomes-eslibraryee806866(v=office15)aspx

bull Conectividad a datos empresarialesPara maacutes informacioacuten de coacutemo crear dicha aplica-cioacuten httptechnetmicrosoftcomes-eslibraryjj683108(v=office15)aspx

Tambieacuten es necesario tener instalado Microsoft SharePoint Designer 2013 que lo podemos descargar del httpwwwmicrosoftcomes-esdownloaddetailsaspxid=35491

En muchas ocasiones necesitamos presentar en nuestro sitio de buacutesqueda datos empresariales de otros oriacutegenes

Paso 1 - Preparacioacuten del servicio web de proveedoresDisponemos en el coacutedigo fuente del artiacuteculo un servicio web que devuelve un conjunto de proveedores codificado pero suficiente para nuestro ejemplo Aunque existen mu-chas teacutecnicas para publicar el servicio web la maacutes faacutecil en nuestro caso es copiar todo el contenido del fichero com-primido ldquoWSProveedoresziprdquo en ldquoCinetpubwwwrootrdquo para despueacutes crear el directorio virtual en IIS para ello se-guimos los siguientes puntos

bull Copiamos el servicio web Abrimos el fichero ldquoWS-Proveedoresziprdquo con Winrar o equivalente y extrae-mos en la ubicacioacuten anteriormente mencionada

Imagen 2- Muestra del contenido del fichero comprimido del servicio web de provee-dores

bull Creamos el directorio web En el buscador del sistema operativo introducimos el texto ldquoIISrdquo y seleccionamos el icono de ldquoInternet Information Serverrdquo

34 Buacutesqueda de datos empresariales en SharePoint 2013 ndash Parte I

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 35: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

35

Nos posicionamos en el nodo de la lista de sitios del panel de navegacioacuten y pulsamos el botoacuten derecho de ratoacuten para seleccionar antildeadir sitio web (Add WebSite) despueacutes intro-ducimos los siguientes datos en el formulario nombre del sitio (Site Name) ldquoWeb Services Proveedoresrdquo en pool de aplicaciones (Net 20) ruta fiacutesica (Physical Path) ldquoCinet-pubwwwrootrdquo puerto (Port) 9797 y pulsamos en aceptar (OK) para crear el sitio web

Imagen 3- Muestra la ventana para crear un nuevo directorio virtual en IIS

bull Validamos el servicio En el navegador introducimos la url del servicio web en nuestro caso ldquohttpsp-martin159797serviceasxmrdquo

Imagen 4- Muestra el servicio web de proveedores

Paso 2 - Antildeadir credenciales al ser-vicio de almaceacuten seguroAunque podemos proteger nuestras conexiones con sis-temas externos de muchas maneras uno de los meacutetodos recomendados es utilizar la aplicacioacuten de servicios de al-maceacuten seguros para ello seguimos los siguientes puntos

bull Abrimos la Administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 5- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten del servicio de almaceacuten seguro Seleccionamos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services appli-cations) para posteriormente seleccionar nuestra apli-cacioacuten de servicio de almaceacuten seguro (Secure Store Services Application)

Imagen 6- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Creamos una nueva aplicacioacuten destino Selecciona-mos el botoacuten de nuevo (New) en la cinta de opciones

Imagen 7- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (New)

Introducimos los datos solicitados En nuestro caso en el identificador de la aplicacioacuten de servicio (Target Applica-tion ID) en el nombre a mostrar (Display Name) introdu-cimos ldquoServiciosProveedoresrdquo en el campo de email de contacto (Contact E-Email) introducimos martinspmar-tin15com dejamos los demaacutes campos con los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 8- Muestra el primer formulario para crear una aplicacioacuten de destino

Marcamos el tipo de campo de nombre de usuario de Win-dows (Windows User Name) y pulsamos sobre el botoacuten de siguiente (Next)

Imagen 9- Muestra el segundo formulario para crear una aplicacioacuten de destino

Introducimos la relacioacuten de usuarios que tienen permisos para la gestioacuten de la configuracioacuten de la aplicacioacuten destino en nuestro caso ldquoMartin Luis Lopezrdquo y pulsamos sobre el botoacuten de aceptar (OK)

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 36: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

36

Imagen 10- Muestra el formulario para asignar las credenciales

bull Asignamos las credenciales a la aplicacioacuten de destino Seleccionamos nuestra aplicacioacuten de destino ldquoServi-cioProveedoresrdquo y en la cinta de opciones pulsamos sobre el botoacuten de asignar credenciales (Set)

Imagen 11- Muestra la cinta de opciones de la aplicacioacuten de servicios de almaceacuten seguro (Set)

Introducimos los datos solicitados En nuestro caso el pro-pietario (Credential Owner) ldquoMartin Luis Lopezrdquo usuario de Windows ldquospmartin15mlopezrerdquo contrasentildea de Win-dows y por uacuteltimos pulsamos sobre el botoacuten de aceptar (OK)

Imagen 12- Muestra el formulario para asignar las credenciales en el almaceacuten seguro

Aunque podemos crear todas las op-eraciones CRUD en las buacutesquedas soacutelo necesitamos las operaciones de lecturas

Paso 3 - Creacioacuten del tipo de conte-nido externoAunque podemos crear el tipo de contenido externo me-diante coacutedigo vamos a utilizar Microsoft SharePoint Desig-ner 2013 por su facilidad para ello seguimos los siguientes puntos

bull Abrimos SharePoint Designer 2013 En el buscador

del sistema operativo introducimos el texto de ldquoDe-signerrdquo y seleccionamos el icono de ldquoSharePoint De-signer 2013rdquo

Imagen 13- Muestra el resultado de la buacutesqueda realizada de Designer

bull Abrimos nuestro sitio de buacutesqueda Para ello pulsa-mos sobre el botoacuten de abrir sitio (Open Site) intro-ducimos la Url en el nombre del sitio (Site Name) en nuestro caso ldquohttpspmartin1539910rdquo y pulsamos sobre el botoacuten abrir (Open)

Imagen 14- Muestra el formulario principal de Microsoft SharePoint Designer 2013

bull Creamos el nuevo tipo de contenido externo En el pa-nel de navegacioacuten seleccionamos el objeto de tipos de contenido externo (External Content Type) aparece-raacuten los iconos correspondiente en la cinta de opciones y seleccionamos el primero de la categoriacutea nuevo (Ex-ternal Content Type)

Imagen 15- Muestra la cinta de opciones del objeto de tipos de contenido externo

bull Datos baacutesicos Introducimos el valor ldquoProveedoresrdquo en los campos nombre (Name) y nombre a mostrar (Display Name) despueacutes seleccionamos el enlace del sistema Externo (External System)

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 37: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

37

Si combinamos el motor de buacutesqueda con Business Connectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial

Imagen 16- Muestra el formulario del nuevo tipo de contenido externo

bull Creamos la conexioacuten Pulsamos sobre el botoacuten de antildea-dir conexioacuten (Add Connection) y seleccionamos el tipo de origen de datos en nuestro caso ldquoWCF Servicesrdquo y aceptamos pulsando el botoacuten aceptar (OK) poste-riormente introducimos los datos de la conexioacuten en nuestro caso URL Servicio de metadatos (Metadata Connection Model) rdquohttpspmartin159797serviceasmxWSDLrdquo punto de enlace del servicio (Service EndPoint URl) httpspmartin159797serviceasmx nombre (Name) ldquoSeviciosProveedoresrdquo utilizamos la credenciales almacenada en nuestro almaceacuten seguro (Connect with impersonated Custom Identity) creado en el apartado anterior ldquoServiciosProveedorrdquo y pulsa-mos sobre el botoacuten de aceptar (OK)

Imagen 17- Muestra el formulario para crear una nueva conexioacuten de datos externo

bull Creamos las operaciones Aunque podemos crear to-das las operaciones CRUD en las buacutesquedas soacutelo ne-cesitamos las operaciones de lecturas Sobre el meacuteto-do ldquoGetSupplierrdquo pulsamos con el botoacuten derecho del ratoacuten y seleccionamos nueva operacioacuten de Lectura de Lista (New Read List Operation)

Imagen 18- Muestra las operaciones de los meacutetodos web (New Read List Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 19- Muestra el formulario de propiedades de las operaciones de lectura de la lista

Aunque se recomienda por buenas praacutecticas introducir pa-raacutemetros de entrada para limitar el nuacutemero de elementos devuelto en nuestro caso de ejemplo pasamos por alto esta advertencia pulsamos sobre el botoacuten siguiente (Next)

Imagen 20- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de la lista

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) indicamos que lo muestre en un recogedor (Pic-ker) y por uacuteltimo pulsamos el botoacuten de finalizar (Finish)

Imagen 21- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de la lista

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 38: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

38

Ahora creamos la operacioacuten de lectura de elemento

Sobre el meacutetodo ldquoGetSupplierByIdrdquo pulsamos con el bo-toacuten derecho del ratoacuten y seleccionamos nueva Operacioacuten de Lectura de elemento (New Read Item Operation)

Imagen 22- Muestra las operaciones de los meacutetodos web (New Read Item Operation)

En la primera ventana del formulario (Operation Proper-ties) dejamos los valores por defecto y pulsamos el botoacuten de siguiente (Next)

Imagen 23- Muestra el formulario de propiedades de las operaciones de lectura de la lista

En los paraacutemetros de entrada seleccionamos ldquocoderdquo como mapa a identificar (Map to identifer) y pulsamos en el bo-toacuten de siguiente (Next)

Imagen 24- Muestra el formulario de paraacutemetros de entradas en las operaciones de lectura de elemento

En los paraacutemetros de retorno Seleccionamos el campo ldquocoderdquo indicamos que es mapa a identificador (Map to identifier) tambieacuten lo indicamos como identificador (Iden-tificator) y por uacuteltimo pulsamos el botoacuten de finalizar (Fi-nish)

Imagen 25- Muestra el formulario de paraacutemetros de retorno en las operaciones de lectura de un elemento

bull Guardamos el nuevo tipo de contenido externo Por uacuteltimo guardamos las acciones realizadas para ello pulsamos sobre el botoacuten representado con una ima-gen de un disquete situado en parte superior del for-mulario principal o pulsamos la combinacioacuten de teclas ldquoCtr+Srdquo

Imagen 26- Muestra la opciones de guardado del SharePoint Designer

Paso 4 - Configuracioacuten y SeguridadPara presentar los datos es necesario disponer de las paacutegi-nas de perfil de los tipos de contenidos externo de provee-dores y quien tiene acceso a ellos Para ello seguimos los siguientes puntos

bull Abrimos la administracioacuten central de SharePoint 2013 En el buscador del sistema operativo introducimos el texto ldquoSharePoint 2013rdquo y seleccionamos el icono de ldquoSharePoint 2013rdquo

Imagen 27- Muestra el resultado de la buacutesqueda realizada de SharePoint 2013

bull Abrimos el formulario de la aplicacioacuten de servicio co-nectividad a datos empresariales En el caso de no estar en la paacutegina inicial de la Administracioacuten Central pulsamos sobre la imagen de SharePoint selecciona-mos la opcioacuten de gestioacuten de servicios de aplicaciones (Manage services Applications) para posteriormente seleccionar nuestra aplicacioacuten de servicio de conecti-vidad a datos empresariales (Business Data Connecti-ty Services Application)

Imagen 28- Muestra la paacutegina de las aplicaciones del servicio en el la administracioacuten central

bull Activamos la creacioacuten de la paacutegina de perfil del tipo de contenido externo Seleccionamos nuestro contenido externo creado anteriormente ldquoProveedoresrdquo y pulsa-mos sobre el botoacuten de configuracioacuten ldquoConfigurerdquo de la cinta de opciones

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 39: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

39

Imagen 29- Muestra los tipos de contenidos externo

En el formulario de configuracioacuten seleccionamos la ca-silla de activar la creacioacuten de paacutegina de perfil (Enable Profile Page Creation) e introducimos la URL correspon-diente del sitio de buacutesqueda en nuestro caso httpsp-martin1539910 y aceptamos los valores

Imagen 30- Muestra el formulario de configuracioacuten del origen de datos

bull Creamos la paacutegina de perfil del tipo de contenido ex-terno Volvemos a SharePoint Designer 2013 concre-tamente a nuestro tipo de contenido externo ldquoProvee-doresrdquo en caso de no estar abierto ver los pasos en el punto 3 En la cinta de opciones pulsamos sobre crear paacutegina de perfil (Create Profile Page)

Imagen 31- Muestra el formulario de tipo de contenido externo de proveedores

bull Introducimos los permisos para nuestro tipo de con-tenido externo Volvemos a la Administracioacuten central concretamente al formulario del servicio de conectivi-dad a datos empresariales seleccionamos el conteni-do de origen ldquoProveedoresrdquo y pulsamos sobre el botoacuten

coger los permisos del objeto (Set Object Permission) en el formulario asignamos los permisos necesarios y guardamos la informacioacuten introducida

Imagen 32- Muestra el formulario de seguridad de tipo de contenido externo de proveedores

ConclusionesSi combinamos el motor de buacutesqueda con Business Con-nectivity Services (BCS) nos brinda grandes posibilidades de integracioacuten con datos empresarial sin ninguacuten tipo de desarrollo personalizado en la mayoriacutea de los cosas ade-maacutes de una gran facilidad y flexibilidad en su configura-cioacuten En el siguiente artiacuteculo de la serie continuaremos realizando las configuraciones necesarias para aprovechar estas caracteriacutesticas de integracioacuten

MARTIN LUIS LOPEZ REQUENA SharePoint Solution Architect amp Trainer at everis martinluislopezhotmailcom

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 40: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

40

En este artiacuteculo vamos a explicar coacutemo hemos desarrolla-do un chat para SharePoint usando SignalR pero iquestqueacute es SignalR SignalR es una libreriacutea Open Source que forma parte de la familia de ASPNet Mediante SignalR podemos antildeadir funcionalidad de tipo comunicacioacuten en tiempo real entre cliente y servidor teniendo asiacute una comunicacioacuten bi-direccional

Todas las conexiones son administradas por SignalR y per-mite transmitir los cambios a todos los clientes conecta-dos o en caso de que sea necesario podemos notificar a un cliente especiacutefico

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedi-camente este preguntando al servidor si hay ldquoalgo nuevordquo (lo denominado ldquoPollingrdquo) sea el servidor el que notifique al cliente cuaacutendo se ha producido ldquoalgo nuevordquo

Imagen 1- Arquitectura de comunicaciones de SignaIR

Gracias a esta arquitectura podremos mandar mensajes 1 a N (por ejemplo cuando un usuario se conecta o se des-conecta para informar al resto de clientes) o 1 a 1 (cuando un cliente manda un mensaje a otro cliente) todo ello de una forma ligera dado que el servidor uacutenicamente actuacutea cuando tiene que realizar una tarea lo mismo en la parte cliente dado que no se realiza el llamado ldquoPollingrdquo mostra-do en la imagen anterior

En este artiacuteculo explicaremos queacute es Sig-nalR y coacutemo nos puede ayudar a crear funcionalidades en tiempo real

Para entender un poco coacutemo funciona todo esto vamos a mostrar algunos ejemplos de coacutedigo Cuando un cliente se conecta al chat lo primero que hace es establecer la cone-xioacuten con el servidor esto se hace de la siguiente manera

ltscript src=rdquosignalrhubsrdquo type=rdquotextjavascriptrdquogtltscriptgtltscript type=rdquotextjavascriptrdquogt$(document)ready(function () var chatHub = $connectionchatHub registerClientMethods(chatHub) Start Hub $connectionhubstart() done(function () registerEvents(chatHub) ) fail(function () alert(lsquoEl servicio de chat no estaacute disponible en este momentorsquo) ))ltscriptgt

Donde se incluye una referencia a ldquosignalrhubsrdquo ubica-cioacuten donde el propio SignalR genera de forma automaacutetica las libreriacuteas de JavaScript necesarias para llamar a las fun-ciones de la parte servidora Gracias a esta referencia te-nemos acceso a ldquo$connectionrdquo y de ahiacute realizar llamadas como por ejemplo a la funcioacuten ldquo$connectionhubstart()rdquo que abriraacute la conexioacuten con el servidor

Una vez establecida la conexioacuten con el servidor podremos llamar faacutecilmente a funciones del servidor mediante JavaS-cript A continuacioacuten se muestra un ejemplo de coacutemo se enviariacutea un mensaje privado a otro usuario

ltscript type=rdquotextjavascriptrdquogt$divfind(ldquobtnSendMessagerdquo)click(function () chatHubserverenviarMensajePrivado(userId toUserId msg))ltscriptgt

Al pulsar el botoacuten de enviar realizaremos una llamada a la funcioacuten ldquoenviarMensajePrivadordquo llamada que se realiza en JavaScript pero que seraacute respondida por una funcioacuten servidora que se muestra a continuacioacuten

public void EnviarMensajePrivado(string fromUserId string toUserId string message) Previamente al enviacuteo del mensaje se hariacutea la persistencia del mensaje en base de datos se ha quitado del ejemplo por simplicidad foreach (var user in toUsers) Con este foreach lo que hacemos es recorrer todas las sesiones que el usuario receptor tiene abiertas (porque puede tener varias pestantildeas varios navegadores) y enviar el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(fromUserId message) foreach (var user in fromUsers) Se recorren todas las sesiones que el usuario emisor tiene abiertas (puede tener varias pestantildeas varios navegadores) y se envia el mensaje a cada una de ellas ClientsClient(userConnectionId)sendPrivateMessage(toUserId message)

40 Creacioacuten de un Chat para SharePoint con SignalR

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 41: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

41

Al llamar a la funcioacuten ldquosendPrivateMessagerdquo lo que ha-cemos es llamar a la funcioacuten de JavaScript que estaraacute in-cluida en cada navegador del cliente (del usuario emisor o receptor) y enviaraacute el id del usuario y el mensaje para que cada uno de estos navegadores clientes refleje el mensaje en pantalla

ltscript type=rdquotextjavascriptrdquogtchatHubclientsendPrivateMensaje = function (userId message) if ($(lsquorsquo + userId)length == 0) OpenPrivateChatWindow(chatHub userId) else $(lsquorsquo + userId) append(ldquoltdiv class=rsquomessagersquogtrdquo + message + ldquoltdivgtrdquo) ltscriptgt

Al recibir el mensaje en la parte cliente se comprueba si ldquo($(lsquorsquo + userId)rdquo existe en caso de no existir significa que el usuario no tiene abierta la ventana de conversacioacuten con el usuario que le estaacute enviando el mensaje de modo que se llamaraacute a la funcioacuten ldquoOpenPrivateChatWindowrdquo para mostrar la ventana emergente En caso de ya existir la ventana de la conversacioacuten lo que se hace es mostrar el nuevo mensaje

Lo que nos ayuda a resolver SignalR es que en lugar de tener una aplicacioacuten que desde el lado del cliente perioacutedica-mente este preguntando al servidor

A continuacioacuten se muestra una captura de pantalla de coacutemo se visualiza el chat dentro de SharePoint

Imagen 2- Ejemplo de visualizacioacuten del chat en SharePoint

Y de la visioacuten que tendriacutea el usuario 5 al recibir el mensaje

Imagen 3- Recepcioacuten del mensaje por parte del destinatario

Entre las caracteriacutesticas principales que nos ofrece el chat cabe destacar

bull Informacioacuten de conexioacuten de los usuarios en tiem-po real de modo que sabemos en todo momento quieacuten estaacute conectado

bull Los mensajes son entregados correctamente a sus destinatarios aun cuando no esteacuten conectados El servicio proporciona la entrega fuera de liacutenea de mensajes personales Dispone ademaacutes de un histoacute-rico que podremos consultar para ver conversacio-nes pasadas

bull Dispone de un buscador de usuarios para encontrar raacutepidamente un usuario en concreto y ver su dispo-nibilidad

bull El disentildeo estaacute totalmente integrado con la UI de SharePoint y es faacutecilmente personalizable dado que se basa en una CSS que se puede modificar

bull Mejora la comunicacioacuten interna y garantiza la confi-dencialidad de la conversacioacuten

bull Permite un nuacutemero ilimitado de usuarios usando para ello pocos recursos del sistema y de una forma ligera gracias a la arquitectura de SignalR

SharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tec-nologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad

ConclusionesSharePoint es una plataforma extensible por naturaleza y la incorporacioacuten de tecnologiacuteas como SignaIR facilitan habilitar maacutes opciones de extensibilidad de la misma do-tando de funcionalidad adicional como la descrita en este artiacuteculo proporcionar una funcionalidad de chat de for-ma raacutepida y sencilla sin necesidad de recurrir a productos de terceros o a la integracioacuten nativa de la plataforma con Lync

RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

JOSEacute ANTONIO FRAGA SAacuteNCHEZ MVP CLUSTER | SharePoint Team Leaderjosefragafiveshareites Linkedin httpwwwmvpclusteres

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 42: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

42

En los uacuteltimos diacuteas puede que algunos de vosotros hayaacuteis oiacutedo que se acercan novedades a Office 365 en lo que res-pecta a Power BI y con el objetivo de daros un poco de luz sobre estos rumores aquiacute os dejo algunas pinceladas de lo que nos vamos a encontrar Como en toda preview quie-ro recordaros que todo lo que hoy tenemos disponible es factible de cambio yo eliminacioacuten por lo que tomar este articulo como una antesala de la realidad a corto plazo

iquestAlgo nuevoiexclPues siacute muchas cosas Tal vez uno de los puntos maacutes importantes es que Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador de reportes creados con PowerView PowerMap o PowerQuery dando un paso adelante con su propio disentildeador

Power BI DesignerAunque ya se vislumbra como la herramienta de disentildeo de Dashboards por excelencia todaviacutea sigue siendo una he-rramienta de escritorio que debes descargar A decir ver-dad y aunque imagino que en breve veremos su homoacuteloga web debo reconocer que este modelo hiacutebrido (aplicacioacuten de escritorio donde disentildeamos los informes en local pero estaacuten especialmente orientados a ser visualizados en la nube) resulta bastante coacutemoda aunque obviamente para gustos los coloreshellip

Una de las cosas maacutes importantes a tener en cuenta con esta ldquoseparacioacutenrdquo y aunque por intriacutenseco parece obvio es que este nuevo funcionamiento separa a Power BI de Excel lo que es trasladable a Excel Services lo que quiere decir quehellip iexclexacto Existe una separacioacuten patente entre SharePoint Online y Power BI lo que ademaacutes de ofrecer un modelo de licenciamiento mucho maacutes abierto y modular abre un abanico a nuevos tipos de conexioacuten hasta ahora limitados o por lo menos influenciados por Excel

Imagen 1- Inicio de Power BI

Imagen 2- Disentildeador de Power BI

El acceso a los datosOtro de los puntos a destacar que impactan a primera vista del Designer es la nueva capacidad de conectividad a nue-vas fuentes de datos predefinidas algo que hasta ahora teniacuteamos que hacer viacutea oData pero lo mejor de esto es que se abre un abanico para agregar nuevos conectores faacutecilmente

Imagen 3- Fuentes de datos disponibles para Power BI

Power BI ya no es una asociacioacuten a los Power que teniacuteamos en Excel como complementos es decir ha dejado ser un mero visualizador

Incluso (por ahora desde el interfaz web) tenemos cone-xiones predefinidas a determinadas soluciones y platafor-mas que otorgan dashboards predefinidos con los infor-mes maacutes populares

42 Novedades en Power BI

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 43: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

43

Imagen 4- Conexiones pre-definidas en Power BI

La creacioacuten de conexiones a las distintas fuentes de infor-macioacuten es sencilla y guiada y si ya has utilizado PowerPivot y PowerQuery encontraraacutes el interfaz sumamente familiar ya que la forma de editar columnas cambiar tipos enlazar con tablas relacionadas etc es muy similar La forma en que almacena los cambios que realizas sobre los oriacutegenes de datos se basa en almacenar cada modificacioacuten en pa-sos individuales cosa que ya conociacuteamos en PowerQuery como lenguaje ldquoMrdquo

Imagen 5- Edicioacuten del modelo de datos

La edicioacuten del modelo de datos es intuitiva y recuerda a la edicioacuten en PowerPivot y PowerQuery

estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atrac-tiva modular y abierta a la integracioacuten con toda clase de plataformas

Disentildeando InformesEl disentildeo de los informes es muy similar a lo que ya ha-biacuteamos visto en Power View Se basa en ir arrastrando los valores que deseamos momento en el cual el Designer construye automaacuteticamente el graacutefico maacutes adecuado a ese valor A partir de ese punto podemos agregar filtros slicers otros ejes editar las leyendas etc Es importante mencionar los nuevos tipos de graacuteficos para los informes que antes no eran tan faacuteciles de construir y que recuer-

dan a viejos conocidos para los que hemos podido trabajar hace unos antildeos con Proclarity (precursor de Performance-Point) Por mencionar algunos Tree Map (donde cada cua-drado representa el peso de ese grupo dentro del total) Gauge (especialmente pensado para grandes indicadores) dos tipos de mapas (conectan a Bing) Funnel

Imagen 6- Disentildeador de informes

El Dashboard web punto finalAunque ya hemos visto bastantes novedades la integra-cioacuten la encontramos en el dashboard que nos ofrece el interfaz web Este dashboard compuesto de Tiles nos permite vincular a varios oriacutegenes de datos y mostrar la informacioacuten de varias formas

Imagen 7- Dashboard web

Cabe destacar que los tiles que se visualizan en el dash-board pueden provenir de 3 oriacutegenes distintos de un re-porte de un dataset o como respuesta a una pregunta pero lo que debemos tener en cuenta es que un Tile es siempre una foto de la informacioacuten que representa

A nuestros usuarios les llamaraacute la atencioacuten la potencia del QampA pero debemos tener en cuenta que para que funcio-ne correctamente necesita un origen de informacioacuten bien estructurado en un fichero Excel y al mismo tiempo que todos los campos relaciones valores y elementos calcula-dos tengan una definicioacuten clara y directa en ingleacutes

Imagen 8- Q amp A del Dashboard Web

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 44: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

44

Existe una separacioacuten patente entre SharePoint Online y PowerBI

En resumen Para terminar mencionar que ya se estaacuten liberando tam-bieacuten las aplicaciones moacuteviles para consumir Power BI des-de plataformas de otros fabricantes lo que nos deja claro una vez maacutes la ldquoapertura de menterdquo por parte de Micro-soft hacia otros dispositivos y soluciones No cabe duda

que estas novedades que incorpora Power BI auguran una solucioacuten mucho maacutes atractiva modular y abierta a la inte-gracioacuten con toda clase de plataformas marcando un claro objetivo a corto plazo el aprovechamiento de la nube a todo nivel desde lo pequentildeo que nos pueda aportar un fichero plano hasta lo enorme que podamos encontrar en HDInsight

JAVIER MENEacuteNDEZ PALLODirector Oficina Centro ndash Espantildea y Portugal ENCAMINAjmenendezencaminacom

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 45: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

45

La nueva dinaacutemica empresarial y tecnoloacutegica de movimien-to hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes Este caacutelculo no es nada sencillo de hacer por cuanto depende mucho la granja las prestaciones requeridas las consideraciones de resistencia a fallos y la misma relacioacuten de la empresa con Microsoft para hacer la cuenta pero ese tampoco es el objetivo del presente artiacuteculo

Imagen 1- Portal de Microsoft Azure

En este artiacuteculo voy a permitirme la licencia de disentildear una granja desde cero intentando conseguir un ldquoestado del arterdquo de lo que se puede montar a diacutea de hoy Esta con-sideracioacuten es importante porque para cualquier persona que comienza a trabajar con Azure es impactante la velo-cidad con la que evoluciona la plataforma y esto hace que sea complicado el mantenerse al paso de los nuevos servi-cios e infraestructura en Preview y GA (Globally Available) Eso siacute siempre teniendo en cuenta la relacioacuten inversioacutenbeneficio Seriacutea muy faacutecil montar decenas de maacutequinas con cientos de Gb de RAM procesadores gigantescos y enormes discos (o al menos muchos) pero no siempre son la respuesta adecuada y su coste seriacutea desmesurado Por ello mi objetivo es proponer pequentildeas ideas yo trucos que pueden servir para tener una infraestructura oacuteptima y a un coste moderado

Consideraciones de infraestructuraPara ello nada mejor que recordar una regla importante en Azure De un nivel al siguiente el coste se dobla Esta regla implica que dos maacutequinas A5 costaraacuten aproxima-damente lo mismo que una maacutequina A6 de forma men-sual En una infraestructura SharePoint habitualmente es preferible una estrategia Scale Out (Antildeadir maacutequinas a la

granja) que una estrategia Scale Up (antildeadir recursos a las maacutequinas) Por muchos recursos que antildeadamos llegado a un determinado nivel no vamos a conseguir ganar veloci-dad a la granja y tendremos que recurrir a otras estrate-gias como antildeadir servidores de cacheado en capas adicio-nales para mejorar el rendimiento La mejor analogiacutea que se puede hacer es como potenciar un cochehellip podemos ponerle 200 caballos maacutes pero una vez llega al corte en 5ordf o 6ordf no va a correr maacutes

La nueva dinaacutemica empresarial y tec-noloacutegica de movimiento hacia la nube normalmente viene seguida de la tiacutepica pregunta iquestY cuaacutento me va a costar mes a mes

Otro punto a tener a tener en cuenta es que por lo general las maacutequinas de SharePoint suelen tener grandes reque-rimientos a nivel de discos duros y en Azure existen limi-taciones de IOPs por disco antildeadido Ante esta situacioacuten existen dos formas de atajar la situacioacuten La primera es disponer de maacutequinas muy grandes que permiten antildea-dir muchos discos y hacer stripping sobre ellos de forma que aparezcan como una sola unidad con muchos IOPs y ademaacutes disponen de mucha memoria lo que reducen los requerimientos de acceso a disco Esta era la uacutenica es-trategia de la que se disponiacutea hasta hace poco pero a diacutea de hoy (al final vamos a tener que inventar un acroacutenimo para esta expresioacuten cuando hablamos de Azure) dispone-mos de una solucioacuten maacutes oacuteptima Azure Premium Storage permite la definicioacuten de unidades con los liacutemites de tama-ntildeo y velocidad que se requiera hasta unos liacutemites bastante impresionantes 32 Tb 50000 IOPs y una latencia lt 1 mshellip Bastante impresionante iquestno Esto no solo nos dariacutea co-bertura a los requisitos de una granja de SharePoint sino que abre las posibilidades para subir a la nube a sistemas de alta demanda como un Dynamics una instalacioacuten SQL grande o un sistema SAP

Se ha tomado como premisa que el cliente dispone de las licencias bases de software y el contrato de Software As-surance necesario para utilizar las licencias en la nube En caso contrario para las maacutequinas base de SQL deberiacutea to-marse el coste de las maacutequinas de tipo SQL que ya incluye

45 Caacutelculo de costes en Microsoft Azure

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 46: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

46

el coste de licenciamiento incluido en el precio por hora

Los costes totales se han tomado con los precios P-a-G (Pay as you Go) publicados en httpazuremicrosoftcom a diacutea 10022014

Maacutequinas virtualesPara una granja estaacutendar se puede proponer una configu-racioacuten 2x2x2

bull Dos servidores WFE de tipo D12bull Dos servidores BE de tipo D12bull 1 cluster de SQL formado por dos maacutequinas de

tipo D13A estas maacutequinas se recomienda anexar tambieacuten una reacutepli-ca del AD local en la nube Para este cometido puede usar-se una maacutequina sencilla A1 El porqueacute de utilizar maacutequinas de tipo D12 es debido a que salvo que los requisitos de la aplicacioacuten destino indique lo contrario apostamos a nivel de coste maacutes por invertir en memoria que en procesador

Mis recomendaciones personales para las maacutequinas de SharePoint seriacutean

Para los SQL

Las maacutequinas especificadas tienen las siguientes caracte-riacutesticas

Una opcioacuten para reducir coste en estas maacutequinas seriacutea utilizar maacutequinas de tipo A pero estas maacutequinas no per-miten el uso de discos de Azure Premium Tomando estos datos de partida el total en coste de maacutequinas seriacutea

AlmacenamientoPara el almacenamiento vamos a instalar nuestro Share-Point sobre la unidad Premium y vamos a utilizar la uni-dad temporal para alojar el archivo de swap de forma que utilicemos la velocidad de esta unidad que es estaacutendar para las maacutequinas D Por lo tanto necesitaremos al menos de una unidad Premium por maacutequina WFE o BE

En el caso de los SQL vamos a antildeadirle tres unidades El ta-mantildeo de cada una dependeraacute de la aplicacioacuten por lo que nos basaremos en el caacutelculo en los tamantildeos estaacutendar

Para Azure Premium las configuraciones estaacutendar son

Actualmente esta funcionalidad se encuentra en vista pre-via por lo que los precios tienen una rebaja con respecto a su precio final Es muy probable que cuando se hagan GA se dispongan de maacutes tamantildeos alternativos El total de almacenamiento seriacutea

Para cualquier persona que comienza a trabajar con Azure es impactante la ve-locidad con la que evoluciona la plata-forma

OtrosAdemaacutes de los gastos correspondientes a MV y almacena-miento considerados como principales tambieacuten hay que tener en cuenta otros gastos que se pasan a enumerar

bull Conexioacuten VNET-to-VNET El traacutefico de entrada a la nube no se tarifica En cambio el de salida siacute que es tarificado El coste es 00261euro por GB Para un total de 1 Tb al mes 267264 euromes

bull Puertas de enlace 00269 por puerta de enlace Aprox 21euromes

bull Los datos de salida de Azure En Zona 1 (europa) los primeros 5 Gb al mes son gratuitos De 5 a 10 Tb se facturaraacute a 00648 GB

bull Direccionamiento Las 5 primeras reservas de IP inter-na son gratuitas

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 47: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

47

Por uacuteltimo y aunque no es necesario tenerlo en cuenta es conveniente considerar utilizar el Load Balancer configu-rado delante de los servidores frontales y aprovechar su funcionalidad de balanceo con persistencia de sesioacuten Esta funcionalidad antildeadida hace poco evita la necesidad de configurar cualquier otro tipo de balanceo sea este exter-no en nube como IMPERVA o fiacutesico del tipo F5

Costes totalesPara el ejemplo descrito y tomando en cuenta que los pre-cios pueden modificarse en funcioacuten de las decisiones yo licenciamiento efectuado el total de coste seriacutea

Y esto nos da la siguiente distribucioacuten de costes

Imagen 2- Distribucioacuten de Costes

Nada mejor que recordar una regla im-portante en Azure De un nivel al sigu-iente el coste se dobla

Conclusiones finalesA lo largo del artiacuteculo hemos visto como ir elaborando el coste para una granja de SharePoint y como resultado de esta inversioacuten disfrutariacuteamos de una granja de rendimien-to muy robusto y que podriacutea dar servicio a un gran nuacute-mero de usuarios de forma concurrente Aunque a priori pueda resultar un coste no muy reducido una vez que se compara el valor con el coste de provisionar estas maacutequi-nas tiempo para su disposicioacuten posibilidades de fallo ro-bustez de la configuracioacuten y seguridad de acceso el cos-te de esta solucioacuten se puede ver desde otra perspectiva Como se observa de forma graacutefica el grueso del coste para una solucioacuten de SharePoint en la nube corresponde con el coste de las maacutequinas virtuales y el almacenamiento De cara a bajar el coste de la solucioacuten propuesta por lo tanto podremos jugar tanto con dimensionamiento de maacutequi-nas como con el tamantildeo de las mismas Es perfectamente vaacutelido el disponer de maacutequinas de un tamantildeo en el fron-tal y otras de tamantildeo diferente en la capa de backend yo otras capas intermedias como las de cacheo o maacutequinas para la instalacioacuten de las OWA

Espero que os haya gustado y que tengaacuteis una respues-ta preparada la proacutexima vez que un cliente os pregunte iquestCuaacutento me va a costar mi granja en Azure

FABIAacuteN CALVO Team leader fcalvoencaminacom fcvspain httpwwwencaminacom

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 48: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

48

A traveacutes de una serie de artiacuteculos tratareacute de exponer con casos praacutecticos extraiacutedos de situaciones reales paradig-mas con el objetivo de que si te encuentras con un caso similar sepas enfocarlo y resolverlo

Que es la gobernanzaA mi entender la gobernanza es un conjunto de acciones comportamientos y compromisos que se relacionan con un servicio de SharePoint y contribuye a un conjunto in-tencionado de procesos establecidos de operaciones y procedimientos funciones y responsabilidades y toma de decisiones protocolarias

Imagen 1- Conceptos generales asociados a la gobernanza

bull Una accioacuten es la primera iniciativa o una respues-ta a una oportunidad

bull Un comportamiento es un conjunto de praacutecticas que se convierte en un haacutebito

bull Un compromiso es una dedicacioacuten que se desa-rrolla en un propoacutesito

La aptitud que adoptemos frente a estas tres figuras deter-minaraacute el camino correcto hacia el eacutexito una vez puestas en praacutectica de nuestro entorno SharePoint ldquoLas acciones hablan maacutes que las palabrasrdquo como dice el refraacuten En este contexto las acciones son lo primero en esta gobernanza tripartita Me gusta pensar en esto como respuesta a la oportunidad que se presenta o tomar la iniciativa para lle-gar a la cima del objetivo

La gobernabilidad de un paiacutes no puede depender de personas a los que el paiacutes no les importa

Las acciones pueden ser cosas como insuflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar a maximizar su experiencia en el uso de SharePoint mientras tambieacuten podemos orientarlos hacia el uso oacuteptimo del mismo Las acciones a veces son la parte maacutes difiacutecil porque impli-can a menudo el primer paso hacia algo y esos primeros pasos al igual que sucede en cualquier inicio suelen ser inseguros y sin impulso

Los comportamientos se definen como aquellas acciones que puestas en praacutecticas se convierten en parte de una rutina Cuando una accioacuten podriacutea implicar la investiga-cioacuten de algo diferente o la realizacioacuten de un anaacutelisis los comportamientos incorporar las actividades maacutes comunes con una reiteracioacuten de forma constante Eacutestas pueden ser cosas como procedimientos operativos el mantenimiento de la granja o el proceso de creacioacuten de una coleccioacuten de sitios Pueden ser la forma en que interactuamos con Sha-rePoint como si tiene recursos dedicados a la gestioacuten del servicio de SharePoint o si sus responsabilidades principal-mente estaacuten en otra parte pero tambieacuten son necesarios para mantener los servicios disponibles que nos ofrece SharePoint en base al uso de buenas praacutecticas

Imagen 2- Configuracioacuten tiacutepica de uso de una biblioteca de documentos

Los compromisos engloban la actitud y dedicacioacuten hacia el servicio de SharePoint iquestEs SharePoint servicio de alta prioridad o por el contrario soacutelo le prestamos atencioacuten

48La importancia de disentildear y aplicar un buen uso de Gobernanza en nuestro en-torno SharePoint 2013

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 49: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

49

cuando tenemos tiempo Dependiendo de nuestras cir-cunstancias situacioacuten individual y los objetivos de nues-tra organizacioacuten cualquiera de ellos puede ser vaacutelida Compromisos relacionados a su disciplina en la adopcioacuten de medidas y el mantenimiento de sus comportamientos Tambieacuten realizamos compromisos con nuestros clientes nuestro compromiso de ofrecer un servicio a un determi-nado nivel de servicio en el que se pueda confiar

No pretendo fijar conceptos de gobernanza para una de-terminada situacioacuten o proceso especiacutefico Mi objetivo es exponer estos conceptos basados en una forma lo sufi-cientemente geneacuterica para que pueda adoptar tal y como son o adaptarse para que se ajusten con cualquier marco que se utiliza Mi enfoque es especiacutefico de SharePoint con las consideraciones que deben regir tu entrono de Share-Point al compartir mi experiencia en la administracioacuten de SharePoint y consultar con una amplia variedad de clientes en la vida real

Tambieacuten hemos de ser objetivos y ser conscientes de que muchas veces por diferentes motivos como pueden ser falta de recursos carencia de autoridad para implemen-tar muchos de los procesos necesarios pueden convertir el objetivo que voy a proponer en una tarea complicada pero debemos de ser conscientes de que si somos capa-ces de asimilar nuevos conceptos y teacutecnicas de mejoras podremos sin duda alguna tener un mayor eacutexito en la ex-periencia y uso de nuestro entorno de SharePoint Acon-sejo comenzar el planteamiento y disentildeo de nuestra go-bernanza desde un punto de partida pequentildeo enfocar los primeros pasos en un dilema menor y como el efecto de una bola de nieve tomar impulso e ir abarcando aacutembitos mayores para construir nuestro plan de gobernanza ya que no siempre hay una solucioacuten raacutepida y seriacutea complica-do y abrumador tratar de adoptar todo a la vez En lugar de pensar en lo mucho que la gobernanza necesita cen-treacutemonos mejor en donde deseamos iniciarla

Las acciones pueden ser cosas como in-suflar a los usuarios energiacutea y ofrecerles orientacioacuten para ayudar

Por doacutende empezarEl mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint En esta descripcioacuten tambieacuten estamos definiendo lo que no hace Esta descripcioacuten da el enfoque de servicio por lo que expliacutecitamente de in-tencioacuten en lugar de reaccionario Una descripcioacuten de esta manera establece las bases clave para cualquier otra ini-ciativa de gobierno a depender y mejorar Este ha sido un componente crucial para miacute y la base sobre la que utilizo para construir todas las demaacutes tareas de gobierno e inicia-tivas Por esa razoacuten la primera cosa que hacemos frente a

como comenzamos nuestro viaje hacia la gobernanza de SharePoint Te animo a explorar algunas de estas ideas y perspectivas muchos de los cuales seraacuten referenciadas en la serie de artiacuteculos que se publicaraacuten en la revista y que recomiendo utilizar

Hago referencia a la implementacioacuten de SharePoint como los servicios de SharePoint que ofrecemos Esto es signifi-cativo para miacute ya que crea el derecho de pensar que des-plegamos SharePoint para cumplir necesidades que algu-nos necesitan para proporcionar alguacuten servicio a los que lo usan

Tomeacutemonos nuestro tiempo la gobernanza puede signi-ficar un montoacuten de cambios de acciones comportamien-tos y compromisos Las organizaciones son muy lentas en adoptar los cambios de esta naturaleza ya que pueden afectar a la cultura de la base de una organizacioacuten La gen-te todaviacutea puede resistirse el cambio por diferentes razo-nes no importa lo posible los cambios pueden parecer o la cantidad de los cambios puede beneficiar a las personas a largo plazo Algunas personas se frustran cuando pasan de hacer algo coacutemodo a algo con lo que no estaacuten fami-liarizados con la sensacioacuten de un nuevo proceso y como resultado pueden reaccionar para resistirse a lo cambios Dependiendo del enfoque que se le deacute podremos tener mayor nuacutemero de adeptos o detractores fijeacutemonos en ejemplos que pueden sernos de utilizad a la hora de poner en praacutectica nuestro plan uno de ellos podemos enfocarlo en el nuacutemero generalizado de dispositivos de taacutectiles y la naturaleza ubicua de las redes sociales como se han inte-grado en la vida de las personas - ambos elementos fueron en gran medida poco comunes para las masas hace tan soacutelo una deacutecada maacutes o menos

El cambio puede ser bueno y algunos de los cambios que pueda requerir para las ideas de gobierno pueden ser para mejor tambieacuten Permanecer abiertos a las posibilidades y saber que si coloca desde la perspectiva de coacutemo los usua-rios se beneficiaraacuten seraacuten menos propensos a resistir el cambio que queremos introducir A todo el mundo por lo general le gustan las cosas que le benefician Las herra-mientas proporcionadas en estos artiacuteculos te ayudaraacuten a realizar este cambio si los usuarios se resisten o terminan abrazaacutendolo

Voy a compartir mis ideas para que consideres y pien-ses acerca de coacutemo puedes utilizarlas para empezar con tu propia Gobernabilidad de SharePoint Sin embargo si todaviacutea no puedes decidir a menudo el mejor lugar para empezar es por el principio comenzar con la definicioacuten de su servicio de SharePoint

Gobernanza y SharePoint 2013SharePoint 2013 antildeade nuevas capacidades y mejora al-gunas ya existentes que ayudan en la consecucioacuten de dife-rentes objetivos de gobierno haciendo de este un lanza-miento muy interesante para las necesidades de gobierno Yo escogeriacutea eDiscovery como una nueva capacidad en

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 50: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

50

SharePoint 2013 que proporciona funciones ricas de go-bierno ya que proporciona la infraestructura para admi-nistrar y gobernar el contenido de elementos individua-les con colecciones de sitios completas SharePoint 2013 eDiscovery antildeade sofisticacioacuten desde una perspectiva de gestioacuten de documentos y gestioacuten de la informacioacuten y me-jorando estas capacidades antildeaden madurez a SharePoint como un sistema de gestioacuten de contenido empresarial

Con el uso de eDiscovery en SharePoint 2013 podemos gobernar la retencioacuten de contenido y otros tipos de poliacute-ticas a nivel mundial y entre granjas Tambieacuten podemos gobernar los requisitos legales y reglamentarios asiacute como realizar seguimientos e informar sobre nuestro cumpli-miento

Los Propietarios o las poliacuteticas de sitio pueden establecer sitios a un estado cerrado o congelado en lugar de simple-mente eliminarlos habilitando estrategias de gobernabili-dad para hacer frente a retirar el contenido archivado en un proceso gradual de entre un estado de contenido que se estaacute convirtiendo de on-line a off-line

Las Aplicaciones para SharePoint y la tienda de SharePoint permiten escenarios tales como permitir a los usuarios comprar y adquirir su propia funcionalidad sin modificar o afectar la granja subyacente Una organizacioacuten tambieacuten puede ofrecer un cataacutelogo interno de aplicaciones para SharePoint que los usuarios pueden consumir y utilizar en su sitio lo que permite un cataacutelogo centralizado y uacutenico punto de acceso para proporcionar aplicaciones personali-zadas y funciones de la organizacioacuten Este simplifica el pro-ceso de implementacioacuten y administracioacuten de soluciones a medida tanto para el departamento de IT a la hora de proporcionar las soluciones como para los usuarios finales a la hora de antildeadir la solucioacuten a su sitio

SharePoint 2013 mejora la funcioacuten de creacioacuten de sitios sin intervencioacuten del servicio de modo que ahora se puede recopilar maacutes informacioacuten informacioacuten como el tiempo que el sitio estaacute activo y otro tipo de informacioacuten valiosa sobre el sitio Tambieacuten puedes personalizar este proceso para agregar loacutegica adicional para ayudar a gobernar y ad-ministrar sitios Puedes utilizar la funcioacuten de cualquiera de las colecciones de sitio o nuevas redes dentro de una co-leccioacuten de sitios que es una caracteriacutestica muy uacutetil sobre todo para la aplicacioacuten de las poliacuteticas sobre la coleccioacuten de sitios o nuevas webs dentro de la coleccioacuten de sitios

Las solicitudes de acceso del sitio es otra de las caracteriacutes-ticas de SharePoint 2013 ha mejorado Estas mejoran en el proceso de peticioacuten en sitios realizando una gestioacuten de permisos y maacutes sencilla para los usuarios comunes y esto como resultado ayuda a que la gobernanza del control de acceso sea maacutes directo Por un lado existe una viacutea de audi-toriacutea de la actividad en la solicitud de permisos por lo que puede rastrear quien concedioacute queacute permiso y cuando

Otra caracteriacutestica muy uacutetil para la gobernabilidad es la paacutegina de Gestioacuten de solicitudes (Request Management

Page) donde peticiones de acceso pendientes y un histo-rial de peticiones son visibles para los administradores del sitio Las solicitudes tambieacuten tienen un lugar para comen-tarios por lo que los administradores del sitio pueden ha-cer preguntas a los solicitantes para entender del por queacute necesitan los permisos que estaacuten solicitando

Todo esto pensado para ayudar a reducir el nuacutemero de permisos excesivos e innecesarios otorgados a los usua-rios permisos concedidos simplemente porque en el pa-sado los permisos o solicitudes no eran lo suficientemente claras para ser entendidas por el administrador del sitio

Imagen 3- Lista de Solicitudes de Acceso en SharePoint 2013

Algunos cambios sutiles en la forma de gestionar el Bran-ding (marca) en SharePoint 2013 tambieacuten puede ayudar a simplificar la forma en que gobernar personalizaciones de Branding Por un lado se puede crear un paquete de Branding mediante la creacioacuten de nuestros elementos de interfaz estilos imaacutegenes etc todos en un sitio de gru-po de SharePoint y luego exportarlos como un paquete de Branding Tambieacuten podemos compartir este paquete con otros sitios SharePoint 2013 ofrece las normas de Bran-ding en HTML 5 lo que significa que nuestros disentildeado-res graacuteficos se enfrentaraacuten a menos obstaacuteculos a la hora de personalizar el aspecto y la sensacioacuten de un Sitio de SharePoint Lo maacutes importante para nosotros teniendo en cuenta la gobernabilidad esto tambieacuten significa que noso-tros o los disentildeadores de sitios pueden personalizar maacutes faacutecilmente elementos de la interfaz de usuario en los sitios de una manera estaacutendar y consistente y esto nos ayudaraacute a realizar un mantenimiento maacutes faacutecil de gestionar

El Rastreo continuo (Continuous crawling) en el motor de buacutesqueda de SharePoint 2013 nos ofrece la posibilidad de que el iacutendice de contenido permanezca actualizado de forma continua Por lo tanto para aquellas fuentes de contenido que habilite dicha accioacuten no requeriraacute de in-tervencioacuten por parte del administrador para que el iacutendice esteacute actualizado Esto simplifica programar y coordinar el servicio de buacutesqueda Hay implicaciones de rendimiento y en algunos casos es posible que todaviacutea tengamos que planificar una frecuencia de rastreo incremental para ello auacuten disponemos de los rastreos incrementales tal vez por

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 51: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

51

las acciones de archivos de red o archivo los medios de comunicacioacuten que no cambia con frecuencia y no necesita un iacutendice de ldquodulcerdquo disponible en el motor de buacutesqueda empresarial

SharePoint 2013 introduce la gestioacuten de navegacioacuten por metadatos (Managed Navigation) una caracteriacutestica que la navegacioacuten del sitio asocia con un plazo establecido en el Servicio de metadatos administrados Ahora la na-vegacioacuten de un portal puede ser faacutecilmente manejada y mantenerse coherente en muchas colecciones de sitios El uso de la navegacioacuten basada en la estructura integrada fue una de las objeciones maacutes comunes contra la implemen-tacioacuten de una arquitectura de la informacioacuten que constaba de varias colecciones de sitios pero ahora que SharePoint 2013 ofrece tanto una estructura y metadatos impulsados de navegacioacuten hay menos dificultad para poder realizar un disentildeo en muacuteltiples colecciones de sitios con mayor esca-labilidad

El mejor lugar para comenzar es definir en queacute consiste el servicio de SharePoint

Office 2013 ahora establece el archivo por defecto como ubicacioacuten de almacenamiento para los usuarios de la em-presa MySites Aunque el cuadro de diaacutelogo Guardar ar-chivo ofrecioacute MySites como una opcioacuten de ubicacioacuten para varias versiones anteriores de Microsoft Office nunca fue el valor predeterminado Este cambio es importante por-que le ayuda dar un gran salto hacia un almacenamiento de contenido centralizado Desde la perspectiva de Go-bernanza habiendo contenidos almacenados centraliza-dos nos proporciona maacutes oportunidades de administrar y gobernar el contenido por ejemplo cuando los usuarios lo almacenan en sus MySites en lugar de en sus escrito-rios SharePoint 2013 tambieacuten hace gestionar y compartir contenido en Mysites de un usuario maacutes faacutecil y con una experiencia de usuario mejorada MySites soacutelo tienen una uacutenica biblioteca de documentos personales en SharePoint 2013 por lo que los usuarios ya no tienen que negociar entre el personal y el documento puacuteblico de las bibliotecas como se haciacutea en las anteriores versiones Ahora los usua-rios pueden utilizar su biblioteca de documentos personal para almacenar los documentos a los que soacutelo ellos tienen acceso y comparten con otros usuarios

SharePoint 2013 tambieacuten hace extensible los Health Checks que en versiones anteriores soacutelo estaban acce-sible desde la Administracioacuten Central Ahora tambieacuten es-taacuten disponibles en las colecciones de sitios para realizar un chequeos que valida el sitio contra de las reglas defi-nidas Los resultados de la verificacioacuten proporcionan un informe visual en las aacutereas que necesitan atencioacuten para alertar a los administradores de las colecciones de sitio de los posibles problemas a futuro cuando actualicen su sitio o aplicaciones dentro del sitio

ConclusionesEl disentildeo de una buena gobernanza en despliegues Sha-rePoint y su aplicacioacuten es fundamental por un lado para facilitar la adopcioacuten y uso de la plataforma y por otro para garantizar su crecimiento ordenado y bajo una serie de paraacutemetros controlados por la organizacioacuten SharePoint 2013 incorpora de serie unas caracteriacutesticas y capacidades que facilitan el disentildeo y uso de estrategias de gobernanza adecuadas para una organizacioacuten

FRANCISCO RICARDO GIL GONZAacuteLEZ MVP CLUSTER | Especialista en SharePoint amp Office 365 franciscogilfiveshareites Linkedin httpwwwmvpclusteres

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 52: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

52

Alberto DiazAlberto Diacuteaz es SharePoint Team Lead en Encamina liderando el desarrollo de software con tecnologiacutea Microsoft Para la comunidad ha fundado TenerifeDev (wwwtenerifedevcom) con otros colaboradores un grupo de usuarios de NET en Tenerife y coordinador de SUGES (Grupo de Usuarios de SharePoint de Espantildea wwwsugeses) y colaborador con otras comunidades de usuarios Microsoft MVP de SharePoint Server desde el antildeo 2011 y asiduo conferenciante en webcast y conferencias de tecnologiacutea de habla hispana

Sitio Web httpblogsencaminacomnegocios-sharepoint Email adiazcanhotmailcomBlogs httpgeeksmsblogsadiazmartinTwitter adiazcan

Fabiaacuten ImazFabiaacuten Imaz MVP de SharePoint Server trabaja en el mundo del desarrollo de software desde hace maacutes de 10 antildeos teniendo la suerte de trabajar en distintas arquitecturas y tecnologiacuteas Microsoft Pertenece a la firma Siderys httpwwwsideryscom empresa de desarrollo de Software especializada en SharePoint 200720102013 y en desarrollo de soluciones inteligentes Desde los comienzos Fabiaacuten ha trabajado en distintitas comunidades donde organiza y promueve eventos locales para la difusioacuten de tecnologiacutea dentro de los miembros de las mismas Es director de la carrera SharePoint 2010 y SharePoint 2013 en Microsoft Virtual Academy httpwwwmslatamcomlatamtechnetmva2 Homeaspx y cuenta con un sitio en CodePlex con varios desarrollos httpsideryscodeplexcom

Sitio Web httpwwwsiderysbsncom Email fabianisideryscomuyBlogs httpblogsideryscomTwitter fabianimaz

52 Nosotros

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 53: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

53

Gustavo VelezGustavo Velez es Ingeniero Mecaacutenico y Electroacutenico trabaja en el disentildeo e implementacioacuten de sistemas de IT basados en tecnologiacuteas de Microsoft especialmente SharePoint para Avanade (httpwww avanadecom) una compantildeiacutea multinacional de IT Propietario del sitio especializado en informacioacuten sobre SharePoint en espantildeol httpwww gavdnet y autor de seis libros sobre SharePoint y sus tecnologiacuteas

Sitio Web httpwwwgavdnetEmail gustavogavdnetBlogs httpgeeksmsblogsgvelez

Juan Carlos Gonzaacutelez MartiacutenJuan Carlos Gonzaacutelez es Ingeniero de Telecomunicaciones por laUniversidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC) Cuenta con maacutes 10 antildeos de experiencia en tecnologiacuteas y plataformas de Microsoft diversas (SQL Server Visual Studio NET Framework etc) aunque su trabajo diario gira en torno a las plataformas SharePoint y Office 365 Juan Carlos es MVP de SharePoint Server desde el antildeo 2008 coordinador del grupo de usuarios NET de Cantabria (NuberosNet wwwnuberoses) y co-fundador del Grupo de Usuarios de SharePoint de Espantildea (SUGES wwwsugeses) del Grupo de Usuarios de Cloud Computing de Espantildea (CLOUDES) y de la Comunidad de Office 365 Desde el antildeo 2011 participa junto con Gustavo Veacutelez Fabiaacuten Imaz y Alberto Diaz en la direccioacuten de CompartiMOSS Hasta la fecha ha publicado cuatro libros sobre SharePoint y varios artiacuteculos en castellano y en ingleacutes sobre la plataforma

Email jcgonzalezmartin1978hotmailcomBlogs httpgeeksmsblogsjcgonzalez amphttpjcgonzalezmartinwordpresscom

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 54: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

54

iquestDesea colaborar con CompartiMOSS

La subsistencia del magazine depende de los aportes en contenido de todos Por ser una revista dedicada a informacioacuten sobre SharePoint en espantildeol todo el contenido deberaacute ser directamente relacionado con Microsoft SharePoint y escrito en castellano No hay limitaciones sobre el tipo de articulo o contenido lo mismo que sobre el tipo de versioacutenSi desea publicar algo por favor utilice uno de los siguientes formatos

bull Artiacuteculos de fondo tratan sobre un tema en profundidad Normalmente entre 2000 y 3000 palabras y alrededor de 4 o 5 figuras El tema puede ser puramente teacutecnico tanto de programacioacuten como sobre infraestructura o sobre implementacioacuten o utilizacioacuten

bull Artiacuteculos cortos Maacuteximo 1000 palabras y 1 o 2 figuras Describen raacutepidamente una aplicacioacuten especial de SharePoint o explica alguacuten punto poco conocido o tratado Experiencias de aplicacioacuten de SharePoint en empresas o instituciones puede ser un tipo de artiacuteculo ideal en esta categoriacutea

bull Ideas tips y trucos Algunos cientos de palabras maacuteximo Experiencias sobre la utilizacioacuten de SharePoint problemas encontrados y como solucionarlos ideas y trucos de utilizacioacuten etcLos formatos son para darle una idea sobre coacutemo organizar su informacioacuten y son una manera para que los editores le den forma al magazine pero no son obligatorios Los artiacuteculos deben ser enviados en formato Word (doc o docx) y las figuras por separado en un formato de alta resolucioacuten (tif) todo comprimido en un archivo (zip o rar) con el nombre del autor y del artiacuteculo

Si desea escribir un artiacuteculo de fondo o corto preferiblemente enviacutee una proposicioacuten antes de escribirlo indicando el tema aproximada longitud y nuacutemero de figuras De esta manera evitaremos temas repetidos y permitiraacute planear el contenido de una forma efectiva

Enviacutee sus proposiciones artiacuteculos ideas y comentarios a la siguiente direccioacutenrevistacompartimosscom adiazcanhotmailcomfabianisideryscomuy jcgonzalezmartin1978hotmailcomgustavogavdnet

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
Page 55: COMPARTIMOSS10. Integración Dynamics CRM 2015 con SharePoint 15 REST, WebAPI 2 y SharePoint 2013 – We-bAPI y OData 21. Introducción al Search Driven Development en SharePoint Online

55

  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack
  • _GoBack