<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PowerPivotGeek &#187; Architecture</title>
	<atom:link href="http://powerpivotgeek.com/tag/architecture/feed/" rel="self" type="application/rss+xml" />
	<link>http://powerpivotgeek.com</link>
	<description>An adventure in managed self-service computing</description>
	<lastBuildDate>Wed, 19 Jan 2011 23:04:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Peek Inside: Why are domain accounts needed?</title>
		<link>http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/</link>
		<comments>http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 04:39:40 +0000</pubDate>
		<dc:creator>powerpivotgeek</dc:creator>
				<category><![CDATA[A Peek Inside]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[domain accounts]]></category>
		<category><![CDATA[NEW FARM]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/</guid>
		<description><![CDATA[<p> Have you ever had to do something that you knew (you just KNEW) that lots of folks were going to scream – and scream loud – about? This is one of those cases – I can just feel it!</p>
<p>Ok, here goes. There have been several recent newsgroups postings concerning why we require domain accounts [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://powerpivotgeek.com/wp-content/uploads/2009/11/image14.png"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://powerpivotgeek.com/wp-content/uploads/2009/11/image_thumb15.png" width="46" height="46" /></a> Have you ever had to do something that you knew (you just KNEW) that lots of folks were going to scream – and scream <u>loud</u> – about? This is one of those cases – I can just feel it!</p>
<p>Ok, here goes. There have been several recent newsgroups postings concerning why we require domain accounts to install PowerPivot for SharePoint. Why must the farm account and the various service accounts be domain accounts. This causes lots of heartache for users that want to install demo or evaluation servers because we don’t support a standalone server. Well, we do support standalone, but it a different kind of standalone. Let’s get right into it.</p>
<p>First, let’s compare and contrast this requirement with SharePoint. SharePoint has two types of installations: standalone (which they do NOT support in production) and complete/farm. The standalone installation is for demo and evaluation purposes only. It has uses NETWORK SERVICE as the service account for many of its internal processes. It is right up front that it is NOT expandable into a production system; it has security issues acting across servers; etc. However, it gives you a nice “toy” to play with. Let’s be right up front about it – PowerPivot does not install nor does it support a SharePoint standalone server installation. And, oh while we are on the subject, SharePoint does not support local machine accounts within a farm configuration. In the SharePoint world, once you go to domains – you go all of the way with domains.</p>
<p>&#160;</p>
<p> <span id="more-206"></span>
<p>PowerPivot’s philosophy for the NEW FARM case is that it is a complete farm that just happens right now to be on a single machine. We take a production-view of the single server. We would expect that it would natural that at some time in the future that the SharePoint administrator would move the content and config databases off of this server and put them on their own dedicated SQL Server machine. After all, this is a best practice for SharePoint to have a dedicated (or consolidated) SQL resource off of the WFE and App Servers. And just as the RDBMS traffic is very likely to grow beyond a single combined “all-in-one” server; so would the app server requirements continue to grow and it is perfectly natural for a second, third or more app server to be added to the farm; likewise as the server becomes more main stream, there is a high-availability requirement that will become more important and multiple WFEs will be come important.</p>
<p>The bottom like is that proper capacity planning begins with your first installation. And thus we require domain accounts right from the very beginning.</p>
<p>Yes, this does impact those folks who are doing demos and evaluation. You have two options: (1) install a domain controller on your image and thus local accounts are domain account; or (2) install the server into a domain and possibly then disconnect from it (see an earlier posting from me on this topic). Approach #1 is what most users do. If you look at all of the “All-Up” VMs that Microsoft produces for other products, you will see that a self-contained domain within the VM is the way that most folks go. I personally use technique #2 because I do demos in a very constrained environment and having to modify the workbooks that I am demoing with is fine.</p>
<p>&lt; OK – Let the screaming begin <img src='http://powerpivotgeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  &gt;&#160;&#160; </p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2009%2F11%2F18%2Fa-peek-inside-why-are-domain-accounts-needed%2F&amp;linkname=A%20Peek%20Inside%3A%20Why%20are%20domain%20accounts%20needed%3F"><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2009/11/18/a-peek-inside-why-are-domain-accounts-needed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Peek Inside: The client architecture</title>
		<link>http://powerpivotgeek.com/2009/11/11/a-peek-inside-the-client-architecture/</link>
		<comments>http://powerpivotgeek.com/2009/11/11/a-peek-inside-the-client-architecture/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 08:15:00 +0000</pubDate>
		<dc:creator>powerpivotgeek</dc:creator>
				<category><![CDATA[A Peek Inside]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[ADOMD.NET]]></category>
		<category><![CDATA[AMO]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[OLEDB]]></category>
		<category><![CDATA[transports]]></category>
		<category><![CDATA[VertiPaq]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/?p=167</guid>
		<description><![CDATA[<p> Well, I have a fun one today. We get asked all of the time about how the PowerPivot add-in works. Particularly how it relates to the SSAS components that BI Pros are used to, e.g. making connections to SSAS. As I am getting ready to write an architecture overview blog posting for the PowerPivot [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://powerpivotgeek.com/wp-content/uploads/2009/11/image12.png"><img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://powerpivotgeek.com/wp-content/uploads/2009/11/image_thumb13.png" width="46" height="46" /></a> Well, I have a fun one today. We get asked all of the time about how the PowerPivot add-in works. Particularly how it relates to the SSAS components that BI Pros are used to, e.g. making connections to SSAS. As I am getting ready to write an architecture overview blog posting for the PowerPivot team blog, I decided to take the client architecture out for a spin and attempt a more detailed drilldown here . . .</p>
<p>Here is a block diagram of the PowerPivot client component architecture:</p>
<p><a href="http://powerpivotgeek.com/wp-content/uploads/2009/11/image13.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://powerpivotgeek.com/wp-content/uploads/2009/11/image_thumb14.png" width="800" height="455" /></a></p>
<p>As this is a geek discussion, I will spend a bit more time on how some of these components are implemented. As most of these components (with the exception of the ‘transports’ in the msolap OLEDB provider) are likely already known to you geek’ie SSAS pros, I will just make a few observations:</p>
<ul>
<li>Notice how the addin interfaces with the VertiPaq engine – it uses AMO and ADOMD.NET. This is one of the most powerful aspects of PowerPivot. While we expose a tabular interface to end users, the underlying model is multidimensional. It is based on the UDM and well-known and established SSAS interfaces. We use AMO and ADOMD.NET (and their resulting languages, MDX and XMLA) as the components to implement the multidimensional objects. </li>
<li>As the addin is written exclusively in C#, we use the managed libraries to interface with the VertiPaq engine. Excel itself is still native code, so when Excel pivot tables want to ‘speak’ to PowerPivot, they use the msolap OLEDB provider. </li>
<li>Inside the msolap OLEDB provider are four transports. A transport is a module that provides the physical channel used for sending messages back and forth to the server. In the case of the client addin, there are three possible transports:
<ol>
<li>TCP/IP – this is used for normal client-server connections. In this case, the SERVER=&lt;name&gt; is used in the connection string. </li>
<li>HTTP – this is used for http access, e.g. using the data pump in SSAS, or making a connection to the PowerPivot for SharePoint PWS component (PowerPivot Web Service) – more on the PWS in the full architecture blog posting coming next week. For the data pump, the connection string is SERVER=http://server/virtual_directory/msmdpump.dll. For the PWS, the connection string is: SERVER=http://sharepoint_server/webapp/site/subsite/doclib/file.xlsx </li>
<li>INPROC – this is the transport that is being used here to make a connection to the in-memory VertiPaq engine. The key that indicates that this is an in-proc connection is the SERVER=$EMBEDDED$ or DATA SOURCE=$EMBEDDED$ value. </li>
<li>There is a fourth transport, called the CHANNEL transport, but it is used on the SharePoint farm to route requests directly to the PowerPivot System Service (PSS) – so I will put off a detailed discussion of it until we talk about the midtier architecture (likely next week). </li>
</ol>
</li>
<li>AMO and ADOMD.NET have a similar transport mechanism inside the http client, but it is much more straightforward as it is written in managed code and has a less complexity as the msolap provider does. </li>
<li>Notice that the entire component stack is in-proc within the Excel process – Excel, the msolap provider, AMO, ADOMD.NET, and even the VertiPaq engine are all together. Can you spell 64-bit? </li>
<li>Not to point out the obvious, but a downside to this approach is that we have <em>no process</em> <span style="text-decoration: line-through">little</span> separation between the components, i.e. a VertiPaq crash is also an Excel crash and the reverse. We are all one happy or unhappy family (together). <img src='http://powerpivotgeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </li>
<li>As a dev team – and a supportability champion – the beauty of this architecture is that we were able to get a ton of reuse from the existing SSAS infrastructure (for example, the client libraries, and the in-proc code path is similar to SSAS local cubes). </li>
<li>The transport mechanism makes it transparent to the pivot table how the actual messages flow – everything is driven by the format of the SERVER= (or DATA SOURCE=) parameter on the connection string. So, in a way, the user does control the message flow – because he or she is the source for where the SERVER= parameter points to. </li>
</ul>
<p>So, I hope you enjoyed the slight detour in to the client ‘realm’, I hope to get back to the midtier and the server soon <img src='http://powerpivotgeek.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  but then it was fun. So maybe I will stay here for a while. You never know . . .</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2009%2F11%2F11%2Fa-peek-inside-the-client-architecture%2F&amp;linkname=A%20Peek%20Inside%3A%20The%20client%20architecture"><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2009/11/11/a-peek-inside-the-client-architecture/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Way cool SharePoint topologies poster</title>
		<link>http://powerpivotgeek.com/2009/11/06/sp-topologies-poster/</link>
		<comments>http://powerpivotgeek.com/2009/11/06/sp-topologies-poster/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 01:20:03 +0000</pubDate>
		<dc:creator>powerpivotgeek</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Architecture]]></category>

		<guid isPermaLink="false">http://powerpivotgeek.com/2009/11/06/way-cool-sharepoint-topologies-poster/</guid>
		<description><![CDATA[<p>Now this is a cool poster. SharePoint 2010 has a new shared services architecture that PowerPivot uses extensively. We have written both a new web services service and a Windows service wrapper around the SSAS msmdsrv.exe. I thought you might find it useful, or at least fun, to see how SharePoint is approaching the distributed [...]]]></description>
			<content:encoded><![CDATA[<p>Now this is a cool poster. SharePoint 2010 has a new shared services architecture that PowerPivot uses extensively. We have written both a new web services service and a Windows service wrapper around the SSAS msmdsrv.exe. I thought you might find it useful, or at least fun, to see how SharePoint is approaching the distributed systems problem. Here is a thumbnail of the poster:</p>
<p><a href="http://powerpivotgeek.com/wp-content/uploads/2009/11/sptopologies.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SharePoint topologies poster" border="0" alt="SharePoint topologies poster" src="http://powerpivotgeek.com/wp-content/uploads/2009/11/sptopologies_thumb.jpg" width="501" height="399" /></a></p>
<p>And here is a link to the full thing – which is HUGE.</p>
<p><a title="http://go.microsoft.com/fwlink/?LinkID=167089" href="http://go.microsoft.com/fwlink/?LinkID=167089">http://go.microsoft.com/fwlink/?LinkID=167089</a></p>
<p>Enjoy.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fpowerpivotgeek.com%2F2009%2F11%2F06%2Fsp-topologies-poster%2F&amp;linkname=Way%20cool%20SharePoint%20topologies%20poster"><img src="http://powerpivotgeek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://powerpivotgeek.com/2009/11/06/sp-topologies-poster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

