Managed Metadata under the hood
Post date: May 26, 2012 1:53:36 AM
Metadata repository at a logical and physical level
Physical Level:
Managed Metadata Services Application (MMS); when managed metadata is enabled in our SPS2010 Central Administration Services, a managed metadata service and connection are created automatically. The service identifies the database to be used as the term store, and the connection provides access to the service, so that this service can be consumed by our site collections.
Logical Implementation:
Managed Metadata Terms (MMT) is a hierarchical collection of centrally managed terms that we can define, and then use in our SPS 2010, for items such as Pages, Lists and Libraries. When we create new managed terms these are stored in the database that is specified in the MMS when we publish a managed metadata service, a URL to the service is created, These URL are then used by our site collections to consume these services.
Managed Metadata Connections (MMC): To consume managed metadata, a web application such as our Authoring environments in all of our farms must have a connection to a MMS. A Web application can have connections to multiple services, and the services can be local to the Web application or remote to another farm as long as the farm can talk to each other. When a managed metadata service is first created, a connection to the service is created automatically in the same Web application as the service.
A Term
A term is a word or phrase that can be associated with an item in SharePointServer2010
Global MMT VS Local MMT
The development lifecycle of a metadata repository
OOTB SPS 2010 offers a centralised UI so that Term Sets can be easily and logical created, edited, deleted and managed:
Term Sets can also be imported using a spread sheet. Term Sets can also be programmatically created, edited, deleted however it is a bit more difficult and error prone to go this way.
IMPORTANT: We cannot use our regular deployment lifecycle to deploy new metadata using Visual Studio solutions.
As I have explained in the first question, we can consume a MMT as long as the following prerequisites are met:
Must have a valid URL of the service
If this will be a cross-farm connection, the farm on which the service runs and the farm on which the connection runs must have a trust relationship.
The service must have granted permission to the application pool account of the Web application in which the connection is created.
View the nature of specific secure farm architecture which uses SQL Authentication between our Authoring and Publishing I can foresee issues such as content migration from Authoring to Publishing breaking, search not be able to properly index and more.
The idiosyncrasies of a SharePoint 2010 metadata repository
I have listed some of the know issues below:
No SharePoint Workspace support (If a list or library is offline and contains required taxonomy fields, it will be inaccessible).
No support for bulk edit (There may be third party tools to do that)
No built-in support based on synonyms
Limited Support in List Views, so data filtering issues:
Cannot be used in calculated columns:
Ampersands Issues
Ampersands are stored as full width ampersands within the MMS database. Working with terms in PowerShell and custom solutions (e.g. exporting terms to CSV) becomes a must, thus preventing Communication access, and writing CAML Query becomes a problem.
PowerShell cmdlets do not contain the same features available in the Taxonomy API
The Get-SPTaxonomySession always retrieves a cached version of the TermStore
Backup and Restore requires more planning, Local Term Stores become problematic, terms are ultimately created and stored within the Service Application database(not the content database) and this could ultimately break our content migration process.
http://www.sharepointanalysthq.com/2011/06/managed-metadata-column-limitations