TFS: Filtrado de metadatos de Work Items para clientes

En el blog de Martin Woodward podemos encontrar un excelente artículo en el que se explica la nueva funcionalidad de TFS 2008 SP1 de filtrado de metadatos de Work Items para clientes. Aparte de que nos permite conocer cómo activar y utilizar esta útil característica, podemos aprender bastante de cómo funciona un cliente de TFS y por qué pueden ocurrir ciertos problemas de rendimiento inesperados durante las consultas realizadas a TFS.

Aunque os recomiendo encarecidamente la lectura del artículo, voy a intentar hacer un resumen de lo que Martin nos explica:

  • TFS proporciona el WIT (Work Item Tracking System), el cual trabaja con metadatos de los Work Items y permite gestionar entre otras cosas el hecho de que podamos personalizar los mismos y que estos cambios se reflejen en todos los clientes
  • Los clientes de TFS (por ejemplo, Visual Studio Team Explorer, Teamprise o Team System Web Access) tienen conocimiento inmediato de cualquier cambio en los tipos de WI (por ejemplo la adición de un campo nuevo en un tipo de WI). Esto es debido a que mantienen una cache local de los metadatos de dichos WI, la cual se va actualizando en cada consulta relacionada con WI's que se haga a TFS, mediante una comparación entre la versión de WI almacenada en la cache de cliente y la almacenada en TFS. Es decir, para cada consulta, TFS envía los datos que ha pedido el cliente y además le notifica de posibles cambios en los metadatos de los WI's
  • El problema con todo esto es que desde TFS 2005, la cache mantenida en cliente contiene todos los metadatos correspondientes a todos los proyectos, independientemente de si el usuario tiene o no acceso a los mismos. Aparte del filtrado de información de proyectos, aparecen problemas de rendimiento y otros que limitan el número máximo de proyectos que puede manejar TFS (debido al gran tamaño de los metadatos). Un escenario posible de problemas de rendimiento consiste en que todos los clientes van a descargar todos los metadatos de todos los proyectos en diversos momentos, por ejemplo la primera vez que se conecten o después de aplicar un service pack. Os podéis imaginar la carga que eso supone sobre IIS en sitios como codeplex, o si se empiezan a conectar clientes un lunes después de un fin de semana de aplicación de un service pack
  • Con TFS 2008 SP1 se ha introducido una nueva característica, el filtrado de metadatos WIT para clientes, que nos permite especificar por configuración que cada cliente recibirá sólo los metadatos aplicables a su identificador de usuario. Con esto estamos disminuyendo significativamente la cantidad de datos que viajan desde TFS a los clientes
  • Aunque la configuración se aplica a nivel de servidor, se puede especificar qué clientes seguirán descargándose la totalidad de los metadatos (por ejemplo, esto es necesario para Team System Web Access, al que pueden conectarse usuarios con distintos identificadores). Esto se hace especificando los User Agents que queremos que se excluyan del filtrado

El modo de activar la característica de filtrado de metadatos WIT para clientes consiste en incluir algo similar a lo siguiente en la sección appSettings del web.config del nuestro servidor TFS (%ProgramFiles%\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\WorkItemTracking\web.config):

   1: 1: <add key ="filterClientMetadata" value="true"/>
   2:  
   3: 2: <add key ="excludedUserAgents" value="WebAccess:w3wp:witfields:witimport:witexport:witadmin"/>

Creo que  las ventajas pueden ser muy grandes; habrá que activarlo y probarlo para ver si se nota en el rendimiento de nuestro TFS.

Un saludo!!!

 

Jose Luis Soria Teruel
TFS: Filtrado de metadatos de Work Items para clientes
Jose Luis Soria Teruel

Jose Luis es uno de los mejores profesionales con los que he tenido el gusto de trabajar. Es un técnico excelente y mejor persona. Es experto en técnologias Microsoft (.Net, SQL Server, C#, ASP.Net ...) y arquitecturas distribuidas (Replicación, Service Broker, WCF ...). Actualmente trabaja como Developer Advisor en Plain Concepts Jose Luis publica los contenidos de su blog paralelamente en devjoker.Podeis leer su blog AQUI
Fecha de alta:21/10/2008
Última actualizacion:21/10/2008
Visitas totales:1887
Valorar el contenido:
Últimas consultas realizadas en los foros
Últimas preguntas sin contestar en los foros de devjoker.com