05 April, 2011

Using the SharePoint 2010 Service Application Framework for vertical solutions

SharePoint 2010 introduces the concept of Service Applications. It is effectively a replacement for the Shared Services Provider (SSP) in the previous version of SharePoint and the new architecture offers a modular approach which has a lot of benefits from an administration and manageability perspective. The plumbing for the Service Application Framework is baked into SharePoint Foundation and many of the server capabilities provided by both SharePoint Foundation and SharePoint Server are in fact Service Applications. These services include, but are not limited to Search Services, Excel Services, InfoPath Forms Services, Visio Services, User Profile Services, PerformancePoint Services and Managed Metadata Services.

There is a quite a bit of coverage out there about what Service Applications mean for administrators and the benefits they bring to the management of a SharePoint farm. There are also some high-level articles about what opportunities the framework brings to application development on the SharePoint platform. For example, check out Andrew Connell’s general introduction and Spencer Harbar’s coverage of the core concepts. There is also a section about the Service Application Framework on MSDN, although this is still a bit light on actual content.

What I wanted to explore here is the opportunity for ISVs to leverage the Service Application model since it is an open framework that third-parties can take advantage of. This means that third-party applications can potentially offer a lot more capabilities than was the case in SharePoint 2007. A Service Application can take advantage of the following:

  • Use a custom database for application specific data and have the database managed by SharePoint.
  • Host and manage middle-tier web services.
  • Perform scheduled operations with a service-scoped timer job infrastructure.
  • Store application settings within a configuration store in the SharePoint configuration database.
  • Take advantage of claims-based security.
  • Rely on SharePoint infrastructure for scalability, performance and availability.

All of above offer some interesting opportunities for ISV applications. When you combine a custom database, a middle-tier of web services and timer job infrastructure, quite advanced functionality can be built leveraging these core server capabilities. This may significantly increase the scope of vertical applications deployed through SharePoint. Potentially, ISVs can develop more server products based on the SharePoint foundation rather than building everything from scratch. The primary benefit being that ISVs can focus on what they are truly good at, namely building functionality for their domain of expertise, and spend less resources on implementing core server components.

There certainly are vendors that have advanced products based on the SharePoint 2007 platform which include databases, web services and timer jobs. However, with the Service Application Framework, these products can potentially be redesigned to be less of a patchwork and more aligned with standard SharePoint infrastructure. It also offers new opportunities for deeper integration between SharePoint and various third-party applications. For example, some of the BPM and ECM vendors have been providing a SharePoint integration option for years for both SharePoint 2003 and 2007. These vendors, along with others, now have an opportunity to take this integration to a new level using the Service Application Framework.

From a cloud computing perspective, the Service Application Framework compliments the Sandboxed Solutions in a multi-tenant SharePoint environment. Sandboxed Solutions are well suited for building add-on functionality to SharePoint itself. However, with limitations such as no web services, no application pages, etc., they are not adequate for building vertical solutions. If you rely on those capabilities and want to build a multi-tenant ready application, then the Service Application Framework is your answer.

It all sounds good. The big question, of course, is how mature is this framework at this point in time? Third-party Service Applications are not yet supported on SharePoint Online (SharePoint Online Standard Developer Guide), so the framework hasn’t been truly tested in a large-scale multi-tenancy environment yet. For on-premise solutions, I am also yet to come across ISVs where they are building their products based on the Service Application Framework. It’s an interesting and promising architecture that could potentially take SharePoint to the next level in terms of vertical integration, but the technology is still in its infancy and time will tell whether it’ll be a successful platform for third-party products.