Hace unos días, ante una consulta de un cliente, estuve profundizando en el tema del Remote Blob Storage.

En este post os dejo algunas conclusiones y un “mini-roadmap” para los que necesitéis empezar con el RBS.

Resumiendo, el RBS nos va a permitir que los tipos BLOB de Sharepoint, vamos, los ficheros, se almacenen fuera de la Base de datos, por ejemplo, en el File System. Si por ejemplo, estamos haciendo streaming de video, o tenemos una gran cantidad de ficheros físicos, es posible que queramos almacenarlos en el File system, mejorando así el rendimiento.

El RBS no es propio de SharePoint, en realidad es una característica del SQL Server 2008, llamada FILESTREAM, y que es compatible con Sharepoint.

El cómo funciona, también a groso modo sería: El RBS es un API que se “mete” entre medio de Sharepoint y la BD de contenido. Recoge los tipos de datos BLOB, y la API decide a dónde envía ese contenido BLOB, devolviendo una referencia del destino a la BD. A la hora de leer, hace el proceso contrario, recibe la referencia que previamente generó, accede al almacenamiento, y devuelve el BLOB.

Y aquí os dejo algunas referencias muy interesantes para comenzar con el tema:

Perfecta introducción del equipo de Sharepoint al FILESTREAM (en castellano): http://blogs.msdn.com/b/sharepoint_sp/archive/2011/06/07/filestream-con-sharepoint-2010.aspx

Enlaces de Technet sobre la instalación y configuración de RBS del SQL Server para Sharepoint: http://technet.microsoft.com/en-us/library/ee748638.aspx

Un post muy interesante de un miembro de Microsoft con FAQs sobre RBS: http://blogs.msdn.com/b/opal/archive/2010/03/24/faq-sharepoint-2010-remote-blob-storage-rbs.aspx

El blog del grupo de equipo de MS (llevan casi un año sin escribir nada nuevo): http://blogs.msdn.com/b/sqlrbs/

Además, como os decía anteriormente, el RBS es un provider con una API específica que puede ser personalizado. El caso más típico es la escritura a disco, pero se podría crear un proveedor personalizado para enviar el Blob a otro sistema externo.

Algunos enlaces sobre esto:

En codeplex MS ha creado algunos ejemplos de Custom providers: http://sqlrbs.codeplex.com/

Remote BLOB Store Provider Library Implementation Specification: http://msdn.microsoft.com/en-us/library/cc905212.aspx

Para acabar, que sepáis que existen proveedores RBS de terceros. Uno que pinta bastante bien es el de DocAve

Espero que os sea de utilidad.

Saludos!!