Contents

Chapter 1: Architectural Overview of SharePoint 2013

What’s New from an Architectural Perspective?

On-Premise Server Farm Architecture

Service Application Architecture

Multitenancy Hosting Architecture

Search Architecture

SQL Server Database Architecture

Cloud-Hosted Architectures

Summary

Chapter 2: What’s New in SharePoint 2013

Introduction to SharePoint 2013

Deployment Scenarios

Packaging Scenarios

The Programming Model

The App Model

Remote Events

Workflows

Enterprise Content Management

Web Content Management

Search

BCS

Summary

Chapter 3: Developer Tools for SharePoint 2013

Customization Options with SharePoint

OOB Developer Experience

Understanding SharePoint Designer 2013

Understanding Visual Studio 2012 Tools

Setting Up Your Development Environment

Troubleshooting with Debugging

Summary

Chapter 4: Application Lifecycle Management in SharePoint 2013

Getting Started with Application Lifecycle Management

Understanding the SharePoint 2013 Development Models

Planning your Customization Model and Release Packaging Approach

Planning your Key Development Phases and Release Model

Planning Your Upgrade and Patching Approach

Planning Your SharePoint Team Environments

Managing SharePoint 2013 Development Teams

Managing SharePoint 2013 Testing Teams

Summary

Chapter 5: Introducing Windows Azure and SharePoint 2013 Integration

Moving to the Cloud

Introducing Windows Azure

SharePoint and Microsoft’s Cloud Of erings

Summary

Chapter 6: Getting Started with Developing Apps in SharePoint 2013

Architectural Overview of SharePoint Apps

Examining an App

Developing Your First App

Client-Side Object Model

Developing Externally Hosted Apps

Summary

Chapter 7: Further Developing Apps in SharePoint 2013

Developing Your App User Experience

Developing Your App Packaging

Developing Your App Deployment

Developing for App Upgradeability

Additional Considerations for Apps Developers

Key Recommendations

Summary

Chapter 8: Developing Social Applications in SharePoint 2013

New and Improved Social Features in SharePoint 2013

Traditionally Social User-Generated Content Experiences

Communities

Reputation

My Sites in Depth

Newsfeed in Depth

Programming with the Social API

Summary

Chapter 9: Building Search-Based Applications in SharePoint 2013

Search Architecture and Extensibility

Search Drives Applications

Working at the UX Layer

Working with Queries

Working with Content

Tailoring Relevance

Tying It All Together

Summary: Building Search-based Applications in SharePoint

Chapter 10: Web Content Management

Taxonomy and the Information Architect

Page Creation

Search-Driven Publishing

Create and Edit Content

Dynamically Displaying Content

Access Content Programmatically

Branding Sites

Design Manager

Usage Analytics

Multilingual Support

Summary

Chapter 11: Using InfoPath with SharePoint 2013

Introducing the Training Management Application

Customizing SharePoint List Forms

Designing InfoPath Form Templates

Tools for Form Developers

Summary

Chapter 12: Enterprise Document Management

The Document Management Mindset

Getting the Most from the Document Center

Content Routing

Using Document Libraries in the Document Center

Records Management

eDiscovery and Compliance

Content Management Interoperability Services (CMIS)

Summary

Chapter 13: Introducing Business Connectivity Services

Introducing Business Connectivity Services

Understanding BCS Architecture

Working with BDC Metadata Models

Working with External Data Sources

Creating Methods

Working with External Lists

Summary

Chapter 14: Advanced Business Connectivity Services

Creating .NET Assembly Connectors

Packaging Considerations

Enabling Search Support

Working with the BDC Server Runtime Object Model

Using ECTs in SharePoint Apps

Summary

Chapter 15: Workflow Development in SharePoint 2013

Introducing Core Workflow Concepts

Understanding the Workflow Platform Architecture in SharePoint 2013

Understanding Key Workflow Development Tools

Setting Up the Development Prerequisites

Modeling a Workflow Using Visio 2013

Developing Workflows Using SharePoint Designer 2013

Developing Custom Workflow Activities and Actions Using Visual Studio 2012

Developing Workflows Using Visual Studio 2012

Key Development Considerations

Summary

Chapter 16: Integrating Reporting Services

The History

Introducing SSRS 2012

Building and Deploying Reports

Caching and Snapshots

Reporting on SharePoint Data

Multiple Zones

Anonymous Access to Reports

Reporting Services Execution Account

Summary

Chapter 17: Developing Excel Applications in SharePoint 2013

What’s New

Dashboards and Excel Mashups

Excel

Excel Web Apps

Excel Apps for Office

Excel Services

Summary

Chapter 18: Performancepoint Dashboards

Business Intelligence

Introducing PerformancePoint 2013

Using PerformancePoint 2013

Extending PerformancePoint

Summary

Chapter 19: Developing Applications with Access

Access 2013

Access Services

Building an Application with Access Services

Summary

Appendix: Additional Help and Resources

Introduction

Advertisement

To Natalia, you always put a smile on my face. I am so thankful to have you in my life.

—Reza Alirezaei

To Heidi, without you this would not have been possible.

—Brendon Schwartz

To Kim, whose love and support have encouraged and inspired me to always reach for more.

—Matt Ranlett

To Hayley, Katherine, and Charlie; thank you for your support and understanding, especially after many weekends of writing. I love you with all my heart!

—Brian Wilson

To my lovely and patient wife Eve

—Jeff Fried

CREDITS

ACQUISITIONS EDITOR

Mary James

PROJECT EDITOR

Kelly Talbot

TECHNICAL EDITORS

Andy Au

Mehrdad Mehroo

Siavash Fathi

PRODUCTION EDITOR

Christine Mugnolo

COPY EDITOR

San Dee Philips

EDITORIAL MANAGER

Mary Beth Wakefield

FREELANCER EDITORIAL MANAGER

Rosemarie Graham

ASSOCIATE DIRECTOR OF MARKETING

David Mayhew

MARKETING MANAGER

Ashley Zurcher

BUSINESS MANAGER

Amy Knies

PRODUCTION MANAGER

Tim Tate

VICE PRESIDENT AND EXECUTIVE GROUP PUBLISHER

Richard Swadley

VICE PRESIDENT AND EXECUTIVE PUBLISHER

Neil Edde

ASSOCIATE PUBLISHER

Jim Minatel

PROJECT COORDINATOR, COVER

Katie Crocker

PROOFREADERS

Jennifer Bennett, Word One New York

Josh Chase, Word One New York

Jeff Holt, Word One New York

Scott Klemp, Word One New York

James Saturnio, Word One New York

INDEXER

Johnna VanHoose Dinse

COVER DESIGNER

Elizabeth Brooks

COVER IMAGE

© mbbirdy / iStockphoto

ABOUT THE AUTHORS

REZA ALIREZAEI is the founder and president of Development Horizon, a Microsoft Gold Partner based in Toronto. Reza has been a Microsoft Most Valuable Professional (MVP) for SharePoint since 2006. In addition to consulting, Reza has a decade of experience in training and speaking for corporations and the SharePoint community. He has authored several SharePoint books, papers, and online articles. Reza blogs at http://blogs.devhorizon.com/reza and can be reached at reza@devhorizon.com.

 

BRENDON SCHWARTZ is a SharePoint expert with over 10 years of SharePoint experience, starting in the early days of the product. Known as an expert on collaboration, social computing, enterprise content management, business process management, and application development, Brendon has presented at conferences and built innovative product solutions. He has managed projects for many clients, including Fortune 500 companies such as AT&T, Coca-Cola, AutoTrader.com, and The Home Depot. While leading a team for one of the first Microsoft-hosted solutions for Coca-Cola Enterprises, he helped shape the future of Office 365. Brendon has proudly received the Microsoft MVP award for both ASP.NET and SharePoint. An avid writer on SharePoint, he has authored numerous articles and books including Professional SharePoint 2007 Development and Social Computing with Microsoft SharePoint 2007. Brendon enjoys spending time with his wife, son, and new daughter.

 

MATT RANLETT is a SharePoint Server MVP and works as a solution architect and consulting practice lead with Slalom Consulting. When he’s not organizing or presenting at user group-related events, Matt writes and edits white papers, magazine articles, and books on SharePoint.

 

SCOT HILLIER is an independent consultant and Microsoft SharePoint Most Valuable Professional focused on creating solutions for Information Workers with SharePoint, Office, and related technologies. He is the author/coauthor of 18 books on Microsoft technologies including Inside SharePoint 2013 and App Development in SharePoint 2013. Scot splits his time between consulting on SharePoint projects, speaking at SharePoint events like the Microsoft SharePoint Conference, and delivering training for SharePoint developers through Critical Path Training. Scot is a former U. S. Navy submarine officer and graduate of the Virginia Military Institute. Scot can be reached at scot@scothillier.net.

 

BRIAN WILSON is a SharePoint solution and information architect and director of WiredLight, a SharePoint solutions business. With 15 years of experience (including four years as a Senior Consultant in the SharePoint and Information Worker team in Microsoft Consulting Services), Brian works with some of Microsoft’s largest customers architecting and developing solutions for enterprise environments using SharePoint technologies. Since the first version of SharePoint, he has been involved in a variety of leading-edge SharePoint projects for clients in the USA, Europe, Asia, and South Africa across many industries. Brian provides innovative design and development expertise through WiredLight, which focuses on providing consultancy, products, and solutions for SharePoint. When he gets the time, he enjoys skiing, scuba diving, and watching a great game of rugby. For more information about Brian, see http://www.wiredlight.net/ or his LinkedIn profile at http://uk.linkedin.com/in/bkvwilson.

 

JEFF FRIED is the CTO at BA Insight, focused on the development of search-based applications with SharePoint. Jeff is a frequent speaker and writer in the industry, holds 15 patents, has authored more than 50 technical papers, and has led the creation of pioneering offerings in next generation search engines, networks, and contact centers

 

PAUL SWIDER is an international speaker, trainer, and freelance consultant. In addition, he is the founder of the Charleston SharePoint Users Group and an accomplished entrepreneur straight from a barrier island near Charleston, SC where Paul also chases the tides and winds as an avid boater and sailor. Paul is involved in many community and philanthropic efforts including a founding member of Sharing the Point, an international effort which offers free SharePoint training opportunities in emerging markets. Seventeen years of software consulting experience combined with many Microsoft certifications and speaking credentials has made Paul an authority in the SharePoint community. As an MCT, Paul has trained and consulted thousands of SharePoint administrators, developers, and architects.

ABOUT THE TECHNICAL EDITORS

ANDY AU is the team lead at the consulting firm Development Horizon, a Microsoft Gold Certified Partner for SharePoint based in Toronto, Canada. Andy has over eight years of experience in which six years were spent working with SharePoint 2003, 2007, and 2010. Andy has been entrusted with the leadership and development of many solutions in his career, and he holds Microsoft Certified Technology Specialist (MCTS), Microsoft Certified IT Professional (MCITP), and Microsoft Certified Professional Developer (MCPD) certificates. In his free time, Andy enjoys watching sports and spending time relaxing with family and friends.

 

MEHRDAD MEHRJOO has dedicated the last seven years of his career to working with SharePoint. Mehrdad has become so well known as the guy who can make almost any software work and integrate with SharePoint. He is currently working in Development Horizon as a senior SharePoint consultant where he leads the foundation and infrastructure design and development practice. He is a recognized Microsoft Certified Technology Specialist (MCTS), Microsoft Certified IT Professional (MCITP), and Microsoft Certified Professional Developer (MCPD). Mehrdad enjoys spending time with his wife and son.

 

SIAVASH FATHI is a senior SharePoint consultant in Development Horizon. Siavash is passionate about SharePoint apps and is focused on client-side and remote programming. Besides SharePoint, Siavash likes to do research in robotics and artificial intelligence (AI) and has published several papers in those fields. Siavash holds Microsoft Certified Technology Specialist (MCTS), Microsoft Certified IT Professional (MCITP), Microsoft Certified Professional Developer (MCPD), and Certified ScrumMaster (CSM) certificates.

ACKNOWLEDGMENTS

WRITING A BOOK IS NEVER AN EASY TASK. It takes a lot of people who don’t get their name on the front of the book but who put in a tremendous amount of work. Thanks to my wife Heidi, who makes this all possible. Your sacrifices and willingness to take care of the family on your own never stop amazing me. Although our kids are too young to know that Daddy going to work all day on Saturdays and Sundays is not normal, I am very grateful for how wonderful our children are. No person is complete without a good support system, and I would like to thank everyone I have worked with who has pushed me to become better. First, thanks to all of our team members at Wrox for making this possible — Mary, Kelly, and all of the editors, you all rock! I’d like to thank my friend Aaron Richards for his innovative thinking and endless pursuit of solutions and InfoPath. Thanks also to my technical support system that I reach out to, such as Andrew Connell, Douglas McDowell, Robert Bogue, and Doug Ware. Doug Ware never lets me down when I have tough questions and need a blog post to explain something. Thanks to all of the SharePoint MVPs for being great friends and the best MVP community there is. And thanks for the years of encouragement from my good friends Matt Ranlett, Jeremy Howard, Jerry Pattenaude, and Chris Haldeman. A big thanks to the SharePoint team and their willingness to always provide an answer. Finally, I want to thank some of the people who have had an impact in helping me grow, learn, and keep on track, including my parents, Doug Turnure, Aaron Cutlip, Dan Attis, and countless others.

—Brendon Schwartz

FIRST AND FOREMOST I NEED TO THANK my family for putting up with the endless hours researching, writing, and editing book content. I also need to thank the talented team of editors and reviewers at Wrox who worked tirelessly to make this book a reality.

—Matt Ranlett

A BIG THANK YOU TO BILL BAER and Vesa Juvonen for your contribution to various chapters in this book. Your advice, expertise and contribution helped the writing team produce a high-quality SharePoint 2013 book. Thank you! To the SharePoint and Office product teams, and to all of you in the SharePoint Community: To standing on the shoulders of giants . . .!

—Brian Wilson

THANKS TO MY WIFE AND FAMILY for their support, to my SharePoint friends for their inspiration, and to the editors of this book for their hard work and consistent pushing.

—Jeff Fried

INTRODUCTION

IF YOU ALREADY HAVE SOME exposure to the SharePoint platform and its complementary technologies, you probably know that SharePoint is a versatile platform for building solutions that address a wide range of business needs. The growing importance and use of SharePoint in general has played an important role in the investment Microsoft has made in this platform over the years. Today, the latest version of this great product is SharePoint 2013!

There are many new features and improvements made to the core platform in SharePoint 2013. However, what is the most exciting addition is the new app model that enables developers to build apps and deploy them in isolation with few or no dependencies on any other software on the platform where it is installed and with no custom code that runs on the SharePoint servers.

In SharePoint 2013, the emphasis is more on the cloud programming and standard web technologies such as JavaScript and HTML. In that respect, it is fair to say that the majority of other changes made to the SharePoint 2013 platform are made to support this new app development model.

WHO THIS BOOK IS FOR

This book is for anyone interested in developing applications on top of SharePoint 2013 or SharePoint Online in Office 365. Although some knowledge is assumed about SharePoint, the examples are comprehensive and easy to follow if you have previous knowledge of web development and development tools.

WHAT THIS BOOK COVERS

SharePoint 2013, just like its predecessors, is a big product and this book is a big, diverse book. So, before you dive into the book, here’s a little about what each chapter entails and what you can expect after you have read the chapter.

This book starts off with giving you an architectural overview in SharePoint and then covers the new features that matter to developers in Chapters 1 and 2. Chapters 3 and 4 walk you through the tooling experience in SharePoint 2013, as well as some important information about Application Life Cycle Management (ALM) in SharePoint 2013.

Due to the importance of the app model in SharePoint 2013, Chapters 4 through 7 are dedicated to app development and the cloud.

Chapters 8 through 15 walk you through some of the important areas in SharePoint 2013, many of which received considerable updates. This section also includes Chapter 11, “Using InfoPath with SharePoint 2013.” Because there is some uncertainty about the future of InfoPath in the SharePoint stack and there are customers with existing investments, that chapter will hopefully shed some light to help developers make better decisions as they move forward.

Chapters 16 through 19 are focused on Business Intelligence (BI) and SharePoint. BI in SharePoint 2013 provides better capabilities in analysis, reporting, dashboarding, and visualizations compared to SharePoint 2010. This is made available through better BI tools and tighter integration between SharePoint, Microsoft Office applications, and SQL Server 2012.

HOW THIS BOOK IS STRUCTURED

This book is structured to build logically on the skills you learn as you progress through it. After the initial introduction and base platform chapters, the book moves into the advanced part of the platform. Each chapter builds on knowledge acquired from earlier in the book, so you should read through the chapters in succession or at least read the introductory and platform chapters before reading later chapters in the book.

WHAT YOU NEED TO USE THIS BOOK

To get the most of this book, and because this is a book for developers, you need a development environment. There are two ways to do this:

If you choose to use an Office 365 developer site, please note that you can also deploy Napa, which is an Office 365 exclusive development tool, to your developer site. This allows you to build SharePoint-hosted apps without installing Visual Studio 2012 and Office Developer Tools for Visual Studio 2012 on your development computer.

Last, but certainly not least, Microsoft has released many code samples for SharePoint 2013 covering almost every area of SharePoint development. You can find these code samples at http://msdn.microsoft.com/en-us/library/jj901637.aspx.

CONVENTIONS

To help you get the most from the text and keep track of what’s happening, we’ve used a number of conventions throughout the book.


WARNING Boxes like this one hold important, not-to-be forgotten information that is directly relevant to the surrounding text.


NOTE Notes, tips, hints, tricks, and asides to the current discussion are offset like this.

As for styles in the text:

We use a monofont type with no highlighting for most code examples.
 
We use bold to emphasize code that is particularly important in the present context or to show changes from a previous code snippet.

SOURCE CODE

As you work through the examples in this book, you may choose either to type in all the code manually or to use the source code files that accompany the book. All the source code used in this book is available for download at www.wrox.com. When at the site, simply locate the book’s title (use the Search box or one of the title lists) and click the Download Code link on the book’s detail page to obtain all the source code for the book.


NOTE Because many books have similar titles, you may find it easiest to search by ISBN; this book’s ISBN is 978-1-118-49582-7.

After you download the code, just decompress it with your favorite compression tool. Alternatively, you can go to the main Wrox code download page at www.wrox.com/dynamic/books/download.aspx to see the code available for this book and all other Wrox books.

ERRATA

Every effort is made to ensure that there are no errors in the text or in the code. However, no one is perfect, and mistakes do occur. If you find an error in one of our books, like a spelling mistake or faulty piece of code, your feedback is welcome. By sending in errata, you may save other readers hours of frustration and at the same time you will be helping us provide even higher quality information.

To find the errata page for this book, go to www.wrox.com and locate the title using the Search box or one of the title lists. Then, on the book’s detail page, click the Book Errata link. On this page, you can view all errata that has been submitted for this book and posted by Wrox editors. A complete book list, including links to each book’s errata, is also available at www.wrox.com/misc-pages/booklist.shtml.

If you don’t spot “your” error on the Book Errata page, go to www.wrox.com/contact/techsupport.shtml and complete the form there to send us the error you have found. After the information is checked, a message is posted to the book’s errata page, and the problem is fixed in subsequent editions of the book.

P2P.WROX.COM

For author and peer discussion, join the P2P forums at p2p.wrox.com. The forums are a web-based system for you to post messages relating to Wrox books and related technologies, and interact with other readers and technology users. The forums offer a subscription feature to e-mail you topics of interest of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums.

At p2p.wrox.com you can find a number of different forums that can help you not only as you read this book, but also as you develop your own applications. To join the forums, follow these steps:

1. Go to p2p.wrox.com and click the Register link.
2. Read the terms of use and click Agree.
3. Complete the required information to join, as well as any optional information you want to provide, and click Submit.
4. You will receive an e-mail with information describing how to verify your account and complete the joining process.

NOTE You can read messages in the forums without joining P2P, but to post your own messages, you must join.

After you join, you can post new messages and respond to messages other users post. You can read messages at any time on the web. If you would like to have new messages from a particular forum e-mailed to you, click the Subscribe to This Forum icon by the forum name in the forum listing.

For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works, as well as many common questions specific to P2P and Wrox books. To read the FAQs, click the FAQ link on any P2P page.

Chapter 1

Architectural Overview of SharePoint 2013

WHAT’S IN THIS CHAPTER?

Microsoft SharePoint Server 2013 introduces a lot of new functionality that you need to understand to write better applications on the SharePoint 2013 platform. Developing new functionality relies on a sound logical and physical architecture. Therefore, you must have a good appreciation and understanding of your SharePoint farm architecture to take advantage of and develop long-lasting SharePoint solutions.

This chapter provides a succinct overview of the common on-premise server farm architectures available for SharePoint 2013. You take a detailed look at service applications and dive into the evolved SharePoint 2013 search architecture. Then, you look at the improvements and updates related to the SQL database tier. Lastly, you take a look at the cloud-hosted farm architectures.

The content presented in this chapter targets architects, lead developers, and developers developing solutions tailored to their SharePoint 2013 farm topologies, but the chapter is also useful for anyone working with the product. Although all topics covered in this chapter are important, this chapter has been designed to enable you to jump to the sections you are interested in.

WHAT’S NEW FROM AN ARCHITECTURAL PERSPECTIVE?

From an architectural perspective there are a number of enhancements to the SharePoint 2013 topology. These additions and improvements continue to evolve the SharePoint platform capabilities to better handle the ever-increasing workload placed on the SharePoint platform. The key updates include:

ON-PREMISE SERVER FARM ARCHITECTURE

Server farms represent the topology that delivers SharePoint services to end users. A server farm is a collection of server machines acting together to host SharePoint services and workloads.

SharePoint 2013 provides a high degree of flexibility for planning your topology. The core principle behind implementing a server farm is the ability to scale the environment as required to support additional workloads, scenarios, and load placed on the farm by your organization.

Farms can range in size from a single SharePoint server to highly scaled-out architectures hosting server roles on dedicated sets of physical servers. Figure 1-1 shows a typical medium SharePoint server farm, as published in the TechNet article “Topologies for SharePoint Server 2013: Model” (http://go.microsoft.com/fwlink/p/?LinkId=259119).

FIGURE 1-1

Each tier in a topology represents the purpose of the server machines hosted within it, or the services dedicated to those server machines. The core components of a server farm can be categorized into the following three tiers (refer to Figure 1-1):

SharePoint 2013 can be deployed in a number of topology configurations. The basic topologies include small, medium, and large — otherwise known as single-tier, two-tier, and three-tier deployments — that define the placement and purpose of individual server machines in your server farm’s topology.

Web Server Tier

The web server tier is composed of web servers or other servers that receive and respond to HTTP requests. Web servers host SharePoint web applications in Internet Information Services (IIS). They can support additional services such as the search query component sending requests to database servers in the database server tier, or communicating with application servers in the application server tier to consume services hosted on those servers. Servers in the web server tier are exposed directly to end users and should be secured behind a firewall or within a perimeter network.

Application Server Tier

The application server tier is an optional tier composed of servers that are dedicated to the hosting of service applications associated with SharePoint 2013. Examples of servers in the application server tier include dedicated server machines that host the search service, administration, and query components, in addition to services such as PerformancePoint or Excel Services.

The application server tier is most commonly associated with large server farm environments, in which dedicated compute resources are required to support high search query volumes, large indexes, or to isolate service applications to free up resources on the web server tier to support high concurrency rates.

Database Server Tier

The database server tier is composed of servers hosting SQL Server. Database servers in the database tier respond to requests initiated by web and application servers, and update the underlying databases that support SharePoint 2013. The database server tier can be scaled both up (to improve performance) and out (to improve performance and provide additional server farm resiliency).

Small or Single-Tier Topology

A small or single-tier topology commonly consists of a single server deployment in which all components required to instantiate a SharePoint environment are installed on one machine including the database server. Figure 1-2 shows an example of a single-tier topology, which is designed to support development or small businesses where scale and redundancy are not concerns.

FIGURE 1-2

A single-tier topology does not provide any level of redundancy. Therefore, it requires an aggressive backup-and-restore strategy to be implemented because this is the extent of data protection that can be provided in this deployment topology. Because all components are installed on a single server, single-tier topologies are the least flexible and do not support seamless scale.

Medium or Two-Tier Topology

A medium or two-tier topology consists of two or more servers that support separation of SharePoint and SQL Server components. This includes one or more web servers installed with SharePoint 2013, and one or more database servers installed with SQL Server. Medium or two-tier topologies benefit from their flexibility in that they can seamlessly scale to meet the changing business needs or the demands of the organization.

Figure 1-3 shows a minimal two-tier topology composed of one web server running SharePoint Server 2013 in the web tier and one database server running SQL Server 2008 R2 SP1 or SQL Server 2012 in the database server tier.

FIGURE 1-3

Figure 1-4 shows a scaled, two-tier topology that includes two load-balanced web servers running SharePoint Server 2013 in the web server tier and two database servers running SQL Server 2008 R2 SP1 or SQL Server 2012 in the database server tier that can be clustered or mirrored to provide high availability and redundancy.

FIGURE 1-4

The two-tier topology provides the most flexible deployment type and is recommended for organizations of all sizes as a base topology. This topology can be expanded or contracted through the addition or removal of server machines. As such, it is one of the most common deployments of a server farm, providing a flexible and scalable solution. A two-tier server farm enables an organization to seamlessly implement hardware or software load balancing such as Windows NT Load Balancing Service (WLBS) to distribute incoming HTTP requests evenly between web servers. This provides a means to handle an increase in demand as the number of requests submitted to it rise (for example, as the result of a merger or acquisition).

A two-tier server farm can also seamlessly scale at the database server tier through the introduction of additional database servers in a mirrored or clustered configuration. This provides additional resiliency and distribution of load within a server farm environment.

Large or Three-Tier Topology

A large or three-tier topology is designed for large organizations that require performance, scale, and adherence to strict business-continuity management objectives.

Figure 1-5 shows a three-tier topology that consists of two or more web servers installed with SharePoint 2013, one or more application servers installed with SharePoint 2013, and two or more database servers installed with SQL Server.

FIGURE 1-5

The physical topology selected for SharePoint 2013 can drive the layout of the service application topology. In many cases, it may be easier to map the service-application topology to a physical topology to help ensure that sufficient resources exist to support the overall deployment.

Geographically Distributed Topology

Geographically dispersed deployments refer to distributing SharePoint resources to support regional or global users. For example, an organization may have its headquarters in Seattle, Washington. However, many users may be distributed globally to support various corporate functions, or to respond to opportunities in specific geographic locations.

In this scenario, it can be costly to deploy a dedicated instance of SharePoint 2013 to support small pockets of users. Therefore, the organization may opt to introduce WAN optimization devices, whether symmetric or asymmetric, to accommodate latency or leverage technologies such as BranchCache in Windows Server 2008 R2 or Windows Server 2012.

In scenarios in which the geographically dispersed user base is substantial enough to justify the cost of a localized, dedicated SharePoint 2013 deployment, an organization can opt to federate or publish service applications from the centralized server farm to the distributed regional server farms. This provides a unified experience to the remote user base. You could optionally isolate these server farms to support regulatory compliance related to those specific geographic locations.

SERVICE APPLICATION ARCHITECTURE

This section focuses on helping you understand services in SharePoint 2013. The objective is to make you familiar with the service application architecture in SharePoint 2013, and how this architecture is used in the platform to offer new and improved functionality.

Service Application Model

SharePoint 2013 uses the service application model first introduced in SharePoint 2010. Starting with SharePoint 2010 and continued in SharePoint 2013, SharePoint Foundation 2013 provides the infrastructure for hosting service applications. Figure 1-6 shows the service application model in SharePoint 2010 and 2013.

FIGURE 1-6

The idea with the service application model in SharePoint 2013 is simple. If you don’t need a particular service application, you don’t deploy it to your farm — period! In addition, you can deploy multiple instances of the services. Actually, you can create as many instances of a given service application as you like.

The second layer of granular configuration with the service model comes at the web application level. In SharePoint 2013, web applications can be configured with the service applications they want to consume, and in which combination.

After you have an instance of a service application deployed to your farm, it can be shared across multiple web applications in the same farm, or even across different farms. Regardless of the sharing model, you can always modify the association between a web application and service applications at a later time.

Service applications can be deployed to different application pools to support process isolation. You can pick and choose which service applications should be within the same process, or within separate processes.


NOTE One possible reason to think about process isolation from performance or security perspectives is when sharing service data across multiple applications.

Figure 1-7 shows how various services are distributed in two application pools.

FIGURE 1-7

Although in most implementations, the performance of your farm is best optimized if services exist in one application pool; in some scenarios the highest physical isolation of services is required. The SharePoint 2013 service application model enables you to create separate instances of service applications and place them in different application pools.

Service applications provide a better scalability model. You can select which servers host and run a particular service application service using the Services on Server page in Central Administration.

SharePoint 2013 provides a basic load balancer that uses a round-robin algorithm to send requests to service applications. When a web application requests an endpoint for an associated service application (through a proxy), the out-of-the-box load balancer returns the first available endpoint. Certain services (such as Excel Calculation Services) provide their own software load-balancing feature to ensure that no instance of a given service is overloaded at any time.

SharePoint 2013 supports cross-farm service applications. In other words, any farm can both publish and consume service applications from other farms. Each farm can consume services from more than one parent farm. This enables web applications in your SharePoint 2013 farm to use both local and remote service applications.

Available Service Applications

As an architect or developer, you must know what service applications your licensed edition of SharePoint provides. Table 1-1 provides an overview of all the service applications that ship out-of-the-box with different editions of SharePoint 2013, excluding service applications provided by other Microsoft products such Project Server, PowerPivot service, and so on.

TABLE 1-1: Service Applications Available by SharePoint 2013 Editions


NOTE Office Web Application Services is now a separate product and no longer provided as a service application. Web analytics service application is now managed as a key component of the search service application.

Following are descriptions of each service application:

Now that you are familiar with service applications in different editions of SharePoint, consider the life cycle of a service application.

Service Application Life Cycle

A typical life cycle for a service application consists of several stages. When you plan your service application, consider each stage of this cycle. For example, you should understand when you should use the Configuration Wizard to provision your service applications or use Windows PowerShell, and when you should create a custom proxy group for your service applications.

Figure 1-8 shows the stages in a life cycle for a service application.

FIGURE 1-8

Starting Services

Although service applications are different from services, they still confuse many people working with SharePoint 2013.

If you browse to the Services on Server page in SharePoint Central Administration, that page lists all services that can be started and stopped on specific servers of the farm, as shown in Figure 1-9.

FIGURE 1-9

These services are mostly SharePoint wrappers around Windows services and may or may not have an associated service application. For example, Central Administration is just a service that can be started on a server of the farm to turn it into a server that can host the Central Administration site — there is no service application associated with it.

As mentioned earlier in this chapter, a service application represents a specific instance of a given service that can be configured and shared in a particular way. Service applications are composed of Windows services, timer jobs, caching, SQL databases, and other stuff. They are just a broader concept than Windows services.

Deploying Service Applications

You can deploy service applications within a farm by using the following methods: