Better SharePoint through Service Oriented Architecture and Development DEV346, PM346.

Slides:



Advertisements
Similar presentations
PCT303 – Content Publishing in SharePoint Eugene Rosenfeld Black Blade Associates
Advertisements

Implementing Tableau Server in an Enterprise Environment
Mythbusters Debunking Common SharePoint Farm Misconceptions ITP361 Spencer Harbar.
Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
Getting Started with SharePoint 2013 Apps
Total Resource Management RulesManager New Features August 21, 2012 Al Johnson, VP RulesManager Architecht.
Michael S. Chan xLM Solutions, LLC
Siebel Web Services Siebel Web Services March, From
Describing Complex Products as Configurations using APL Arrays.
Testing Web Applications & Services Testing Web Applications & Web Services.
Microsoft Office SharePoint Portal Server 2007 Introduction to InfoPath Forms Services Daryl L. Rudolph.
Extending Your Reach with SharePoint and Office. Ignite: Office SharePoint Azure.
Microsoft SharePoint 2010 technology for Developers
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
COM vs. CORBA.
Intro to SharePoint 2013 Architecture Liam Cleary.
Re-Architecting Search Solutions with SharePoint’s new Federation Features ITP314, CIO314, PM314, IA314.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Web Services Members Troy Tony Ellen Vincent. Web Services What is it Why is it useful What have been solved Demo Alternative technologies Question.
SharePoint Saturday Sponsors Gold Bronze Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
Web Programming Language Dr. Ken Cosh Week 1 (Introduction)
©2012 Microsoft Corporation. All rights reserved. Content based on SharePoint 15 Technical Preview and published July Thierry Gasser TSP
Midwest Documentum User Group Harley-Davidson Documentum WCM 10/10/2006.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
©2012 Microsoft Corporation. All rights reserved. Content based on SharePoint 15 Technical Preview and published July 2012.
Users’ reviews of TuneUp Utilities 2011 A brief Introduction of types of software Install Internet Information Services Install Microsoft Office 2010.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Facebook Like Solution in SharePoint Using JavaScript Amie Seisay
Using Microsoft ACCESS to develop small to medium applications on campus.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
DEV290 Building Office Solutions with Visual Studio Eric Carter Lead Developer Developer Platform & Evangelism Microsoft Corporation.
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
Introduction to Cloud Computing
Microsoft and Community Tour 2011 – Infrastrutture in evoluzione Community Tour 2011 Infrastrutture in evoluzione.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Sponsors Gold Silver Bronze Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
Dudok de Wit David.  Documents management in a deskless company  SharePoint Online as a solution  Redesigning the documentary organization  Interoperability.
Sponsors Gold Silver Bronze Custom REST services and jQuery AJAX Building your own custom REST services and consuming them with jQuery AJAX.
Page 1 © 2001, Epicentric - All Rights Reserved Epicentric Modular Web Services Alan Kropp Web Services Architect WSRP Technical Committee – March 18,
Service Oriented Architecture CCT355H5 Professor Michael Jones Suezan Makkar.
Microsoft Dynamics NAV 2009 and Architecture Overview Name Title Microsoft Corporation.
Comprehensive Project Management Solutions with the.NET Server family.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Basics of SOA Testing Assurance Services Unit 24 February 2016.
Application Hosting and Customization Introducing Sandboxed Solutions Executing Code in the Sandbox Sandbox Resource Monitoring.
Leveraging Web Content Management in SharePoint 2013 Christina Wheeler.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
Configuring SQL Server for a successful SharePoint Server Deployment Haaron Gonzalez Solution Architect & Consultant Microsoft MVP SharePoint Server
Office 365 What Is The Right Fit For You? Andrew Riley, MCTS, MCTIP, ITIL v3.
Search can be Your Best Friend You just Need to Know How to Talk to it IW 306 Ágnes Molnár.
Unit 3 Virtualization.
The Object-Oriented Thought Process Chapter 13
Web Programming Language
Build Fundamentals and Continuous Integration
Integrating Enterprise Applications Into SharePoint® Portal Server
SPC Developer 6/25/2018 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
GeneXus 9.0: Web applications at their higher power
Microsoft SharePoint Server 2016
Chapter 18 MobileApp Design
Migrating Oracle Forms Using Oracle Application Express
Transforming SharePoint Farm Solutions to the Add-in Model
The Application Lifecycle
ApplinX Rod Carlson Senior Technical Lead.
ARCH-1: Application Architecture made Simple
Please thank our sponsors!
Session Abstract This session will provide an overview of the latest improvements and enhancements made to the Ed-Fi ODS/API in 2016, as well as a preview.
Presentation transcript:

Better SharePoint through Service Oriented Architecture and Development DEV346, PM346

Eugene Rosenfeld, MVP, MCAD CTO, Black Blade Associates Programmer, better programmer, architect, CTO.

About this Session Intended audience Application architects Some SharePoint dev experience is helpful Some distributed application design experience is helpful Very little code, mostly Visios

Agenda EAI and SOA Traditional SharePoint Application Architecture SOA Intro Rethink the Application as Services Case Study: Document Section Manager application to docBlock service

EAI and SOA EAI – Enterprise Application Integration What does EAI have to do with SOA? The goal of both EAI and SOA is to let systems communicate

Prime Tenet of EAI Minimal intrusion into a system The fewer changes made to a system, the fewer things break The fewer changes made to a system, the fewer things to maintain The fewer changes made to a system, the fewer things will break when the system is upgraded

Intrusiveness (low to high) Client-side artifacts Images CSS JavaScript Server-side artifacts CAML (List / site def, content types, etc) Web Parts / application pages Event Receivers / workflows Any other compiled code

Agenda EAI and SOA Traditional SharePoint Application Architecture SOA Intro Rethink the Application as Services Case Study: Document Section Manager application to docBlock service

Sample SharePoint Application

Aspects of the Architecture Entire codebase must reside on each web front end server Web front end servers bear the bulk of the load for executing the code Most code runs in the w3wp.exe process Most code runs in the context of an HTTP request

Problems with the Architecture Entire codebase must reside on each web front end server Deployment complexity Configuration complexity Potential application compatibility issues One more thing to worry about when upgrading to next version of SharePoint

Problems with the Architecture Web front end servers bear the bulk of the load for executing the code Difficult to determine load application places on farm May require scaling out the web front ends

Problems with the Architecture Most code runs in the w3wp.exe process Recycling the w3wp.exe process causes all applications to restart

Problems with the Architecture Most code runs in the context of an HTTP request HTTP has a 60 second timeout Bad code can break the HTTP request pipeline

Agenda EAI and SOA Traditional SharePoint Application Architecture SOA Intro Rethink the Application as Services Case Study: Document Section Manager application to docBlock service

SOA Intro SOA: Service Oriented Architecture SOA is architecture, not technology

SOA Myths Myth: SOA is new Myth: SOA needs an Enterprise Service Bus Myth: SOA requires a particular technology Myth: SOA requires Web Services Myth: SOA requires XML Myth: SOA requires text-based interface Myth: SOA requires HTTP Proof: Look at WCF in.Net 3.0

Web Service is not a SOA Service

Whats Left in SOA Definition? SOA is a design principle that abstracts a business capability from the interface used to access the capability. SOA services should: Scale up Scale out Be distributable –Have remotable interfaces –Be topology-aware

Who are the Clients? HTML Client: IE, Firefox, Safari, etc RSS Client: Outlook, NewsGator, etc SMTP Client: Outlook, Notes, Evolution, etc Terminal Client: HyperTerminal, x3270, etc Web Service Client: ? – Custom Code XML Client: ? – Custom Code

Agenda EAI and SOA Traditional SharePoint Application Architecture SOA Intro Rethink the Application as Services Case Study: Document Section Manager application to docBlock service

Design Goals Get as much code out of the w3wp.exe process as possible Get as much code out of SharePoint web front ends as possible

Why? To Mitigate Risk Writing the application is the easy part Operational cost of the application 70% of app cost after completion, during operations and maintenance Platform updates and configuration changes Platform variations –Windows Server 2003 / 2008 –x86 / x64 Permissions

Achieving the Design Goals Separate processing into 2 categories: Requires SharePoint infrastructure Does not require SharePoint infrastructure Separate processing duration into 3 categories Fast (< 15 sec) Medium ( > 15 sec) long running ( > 60 sec)

Design Implementation

My code fits more than one box Of course it does. It should. Most non-trivial applications will use at least 2-3 boxes.

For Example… Box 1: A click in a web part causes a document property in SharePoint to change. Box 2: The property change triggers an asynchronous event receiver to call a remote web service. Box 4: The remote web service starts a long- running operation. Box 6: The long-running operation completes and publishes the results back to SharePoint. Box 1: The web part displays the new state of the data when a user revisits the page.

Re-architecting an Application Its time when… foreach(SPWeb web in currentWeb.Webs) foreach(SPList list in web.Lists) //do lots of work! Process flows are the key to re- architecture Reuse processes, not code

Agenda EAI and SOA Traditional SharePoint Application Architecture SOA Intro Rethink the Application as Services Case Study: Document Section Manager application to docBlock service

Document Section Manager App What it did Software that allowed multiple people to edit the same document at the same time How it did it Converted a physical document into a virtual document with multiple physical sections Merged section changes back into main document so main document was always current

Document Section Manager App Implementation Document section changes trigger an asynchronous event receiver Event receiver invokes a custom Windows service to process document sections Windows service invokes MS Word through PIA / DCOM to perform the section merges Another Windows service uploads the processed document back to SharePoint

DSM Process Flow

DSMs Place in SharePoint Farm

Issues with the Architecture All processing ran on each web front end Deployment was a nightmare Deploy and configure MS Word to each WFE Deploy and configure custom Windows service to each WFE System reliability was sub-optimal, mostly due to constant DCOM issues

Issues with the Architecture Application did not work when SharePoint was installed on Windows Server 2008, due to DCOM differences Application did not work when SharePoint was installed on Windows Server 2003 x64 Document processing put substantial load on WFEs

Issues with the Architecture Main issue: The Document Section Manager was too intrusive in the SharePoint system. This caused the deployment, configuration, stability, and maintenance issues. This is an architectural issue that required a fundamental redesign of the application.

Re-architecting the DSM 1 3 4, 6

Re-architecting the DSM Document Assembler Service remains mostly unchanged but is moved from SharePoint farm to external application server on external hardware. Uploader Service remains mostly unchanged but is moved from SharePoint farm to external application server on external hardware.

Re-architecting the DSM New SOAP Service interface created for Document Assembler and Uploader services on external application server. Event receiver remains mostly unchanged but now invokes the Document Assembler Service remotely rather than locally. MS Word is removed from SharePoint WFEs.

docBlocks Place in SharePoint 10%90%

docBlock Client Process Flow

docBlock Service Process Flow

Tech Benefits of Re-architecture Deployment is 80% easier 90% less code running on SharePoint WFEs MS Word no longer required on SharePoint WFEs 95% less load on SharePoint WFEs 75% increase in processing reliability

Non-Tech Benefits Easier to find developer resources: not everyone working on the app needs to be a SharePoint expert. Easier to sell the application: very little push-back from IT concerned about what gets installed on SharePoint farm. Companies requesting services work to help them similarly re-architect their applications.

Non-Tech Benefits Application can now be distributed as a virtual or physical appliance. Application can now be hosted in the cloud.

Summary If processing doesnt require SharePoint, dont run the processing in SharePoint. Minimal intrusion into SharePoint yields a more stable, reliable, performant platform. Execute slow code asynchronously with respect to the web UI. Utilizing SOA service interfaces yields more manageable, upgradable, and supportable code.

Additional Resources Document Section Manager code: Things that Should be Easy Black Blade Web Site

Thank you for attending! Please be sure to fill out your session evaluation! Eugene Rosenfeld DEV346, PM346: Better SharePoint through Service Oriented Architecture and Development