Thursday, 21 March 2013

Machine Translation Service


The new machine translation service in SharePoint 2013 is an attempt to finally make the variations feature useful.
The feature is intended to translate published content (documents, list items, entire sites) into other languages.  It is an extension of variations, that either synchronously or asynchronously sends the content to a translation service in the cloud.  By default it is configured to use a Microsoft cloud hosted translation service, but can be configured to use other third party services.  The key to this is that it uses a cloud hosted service to take the load of your internal infrastructure.
Besides the cloud based translation, this service application offers a few other improvements to the variations feature:

  • Variations now supports up to 209 variation labels for on prem deployments and 50 variation labels in the cloud
  •  No longer required to unpublish/publish documents to get changes to sync in related resources.  List/Libraries now sync independently
  •  Localized sites now use XML Localization Interchange File Format (XLIFF).  This is the standard and makes it easier to use third party translation services to translate your app


The architecture of this service is very similar to that of the Word Automation service; they both have similar components, for example: Timer Jobs and Document queues.  If you are familiar with the Word Automation service object model you should have very little problems using the machine translation object model.  Here is a great technet overview.
Asynchronous translation requests are handled through the document queue and a timer job.  By default the timer job is set to run every 15 minutes, but this configurable.
Like all other service applications, it can be configured through either PowerShell or the SharePoint Central Admin…but seriously, who uses Central Admin?


The following pieces are required to use the Machine Translation Service:

  •  SharePoint 2013 Standard or Enterprise
  • App Management Service is started
  • Server – to – Server app authentication is configured
  • User Profile Service Application Proxy in default group
  • User Profile Service provision and configured
  • Internet connection


The machine translation service provides the following APIs:

  • Server Object Model
  • Client Object Model
  • REST Web Services
Through all three methods you are able to translate a single file or all items in a list, library or folder either synchronously or asynchronously.  You are also able to translate a file stream (must be synchronous), for on the fly translation of uploaded content.


This new service application is a very powerful new feature for SharePoint, but like anything else comes with its own set of risks.  The two main ones that jump out at me are: Security and Reliability.  Both are fairly obvious.  On the security front, you are now sending your content into the cloud.  This puts your content at risk of being seen by people both inside and outside your organization that may not have permissions to the content.  Generally this feature will be used for public sites which require multiple language support.  This mitigates the risk somewhat as the content was always intended for public consumption.  Of course this leads into the second risk, reliability.  Remember this is a machine doing the translation, not a human.  It is basically taking each work in the source document and turning it into the equivalent word in the destination language.  This may not end up conveying the message you are looking for.  Anyone who has traveled to non-English speaking countries have seen their fair share of engrish.  You probably want someone to proof reading the translations to ensure your website doesn’t become popular for the wrong reasons.

Wednesday, 6 March 2013

SharePoint 2013 Service Applications

What’s the same?


Over all this is the same architecture as SharePoint 2010:
  • Proxy Group (Groups of Service Applications consumed by a Web Application)
    • Service Application Proxy (Proxy between the Group and the Application)
      • Service Application (Search, User Profile, etc)
        • Service Application Instance (may be multiple instances of certain service applications)
          • Database (if needed)
This architecture is intended for multitenant (think cloud hosted) farms.  It allows you to have a central set of service applications and share them, as required, to all the site collections within the farm and even to site collections in different SharePoint farms.  The inter-farm sharing is a very interesting concept for the larger enterprise clients, along with companies hosting SharePoint.  When dealing with a large group of users these service applications can become very resource intensive.  One way to plan for this is to have a farm that is dedicated to the services.  This allows you to have smaller farm(s) that are only required the resources needed to render the SharePoint sites, but still have a common set of search results or user profiles for example.


You have the same two choices: either through the Central Admin GUI or through PowerShell.  Although if you really consider yourself a SharePoint administrator, then your only option is through PowerShell.  All jokes aside, avoid setting up Service Applications through the GUI.  The SharePoint GUI makes lots of bad decisions when creating your service applications, for example: using GUIDs when creating the databases, using the server name when creating web applications for the service applications.

What’s Changed


This is what allows you to share service applications across farms both locally and remotely.  Although this hasn't really changed in SharePoint 2013, the service applications that can shared across farms has.  Here is a list of the service applications that can shared across farms:
  • BCS 
  • Managed Metadata 
  • Search 
  • Secure Store 
  • Machine Translation Services 
  • User Profile

In addition the remote farm no longer requires permissions to the parent database.

New Service Applications

Here is a list of the new Service Applications for SharePoint 2013
  • Access Services: Create, deploy and manage collaborative web-based Access applications. This can also be used when developing SharePoint Apps 
  • App Management Service: For the Market Place 
  • Machine Translation Services: Cloud based translation service for documents, pages and sites. Has been built to be extendable, has the ability to use third party translators 
  • Work Management Services: Puts all your outstanding tasks in My Tasks. Has two way sync with Project Server, Exchange and plugins for other systems (MS is very vague on what that means). Even has the ability to remind you of tasks on your mobile device. You’ll never be safe again

Improved Service Applications

These service applications have gotten even better in SharePoint 2013
  • Managed Metadata: Improved Managed Metadata navigation 
  • Search Service: FAST and Web Analytics have been rolled into search 
  • Subscription Settings Service: Now handles app management 
  • User Profile Service: Added back in a 2007 style sync (strictly read only and faster), ability to import additional properties from BCS

Removed Service Applications

These service applications did not make the cut in SharePoint 2013
  • Web Analytics: Rolled into Search Service 
  • Office Web Apps: Now its own product, but available for externally facing (internet) SharePoint sites