<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>All About Interop : Portals</title><link>http://blogs.msdn.com/dotnetinterop/archive/tags/Portals/default.aspx</link><description>Tags: Portals</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Sharepoint 2007 Business Data Catalog enables Interop with LOB systems</title><link>http://blogs.msdn.com/dotnetinterop/archive/2007/03/20/ways-to-get-data-into-a-sharepoint-2007-web-part.aspx</link><pubDate>Tue, 20 Mar 2007 23:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1921225</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/1921225.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=1921225</wfw:commentRss><description>&lt;P&gt;I just listened to an on-demand webcast on the Sharepoint &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/ms563661.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms563661.aspx"&gt;Business Data Catalog&lt;/A&gt; - aka BDC.&amp;nbsp; The webcast is&amp;nbsp;laboriously called "Office SharePoint Server 2007 Business Data Catalog (Part 1 of 2): Integrating Line-of-Business Data and Applications into Your Enterprise Portal (Level 200)" and is available here: &lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=238622" mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=238622"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=238622&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Mike Fitzmaurice listed 4 ways that historically LOB apps could be surfaced into Sharepoint Portal.&amp;nbsp; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Re-use an existing HTTP/HTML interface&lt;/STRONG&gt;.&amp;nbsp; For example, the LOB system might have a companion web interface, and the portal could simply do HTML "screen scraping."&amp;nbsp; This might be called the quick-and-dirty approach.&amp;nbsp; &amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Point-to-point &lt;/STRONG&gt;approach.&amp;nbsp; The webpart does all the work to integrate with the back-end system.&amp;nbsp; This approach involves the fewest layers, but the most code.&amp;nbsp; The webpart might, for example, communicate with the back-end system via a built-in messaging interface supported by that back-end LOB system.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data caching&lt;/STRONG&gt;.&amp;nbsp; If you've already&amp;nbsp;got a data warehouse or datamart, your webpart could just access the staged data from the LOB system that is already cached in the DM or DW.&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;via an Integration Server&lt;/STRONG&gt;.&amp;nbsp;&amp;nbsp; In this case, your webpart calls into a service layer, possibly hosted by an integration or process server (like BizTalk Server), and the logic in the integration server does the work to bridge into the backend system. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Mike pointed out that Sharepoint customers asked for easier and better integration.&amp;nbsp;For example, maybe index the LOB data for search purposes, centrally manage the connections from a portal to various back-end systems, and so on.&amp;nbsp; This was the catalyst for the BDC. &lt;/P&gt;
&lt;P&gt;Though the Business Data Catalog is a feature of Microsoft Office Sharepoint Server 2007 (MOSS 2007), and ships as part of MOSS 2007, it can be utilized from any app, including a non-portal app or an app that isn't a traditional Sharepoint app.&amp;nbsp; Though the BDC is particularly easy to use from within Sharepoint, it is also nice to be able to use it from outside systems.&amp;nbsp;&amp;nbsp; What does the BDC do?&amp;nbsp; Essentially it is acts as a&amp;nbsp;broker of back-end systems that can be accessed either via standard data interfaces (ADO.NET) or web services.&amp;nbsp; People can register back-end systems once in the catalog, then any Sharepoint webpart will be able to pick-and-choose from those registered data sources to display that data.&amp;nbsp; Additionally, any .NET app (with a web UI or not) can connect to the BDC to indirectly access back-end systems.&amp;nbsp;&amp;nbsp; In this way BDC acts as&amp;nbsp;a broker for LOB data.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;The BDC includes webservices for common SAP and Siebel entities, "in the box", with the Sharepoint 2007 product.&amp;nbsp; Partners can create definitions for arbitrary back end systems.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;There is now a third-party tool for manipulating the metadata managed by the BDC - &lt;A class="" href="http://www.bdcmetaman.com/" mce_href="http://www.bdcmetaman.com"&gt;BDCMetaMan&lt;/A&gt;. &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1921225" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Portals/default.aspx">Portals</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>BEA AquaLogic User Interface (ALUI) - write portlets in .NET</title><link>http://blogs.msdn.com/dotnetinterop/archive/2007/01/30/bea-aqualogic-user-interface-alui-write-portlets-in-net.aspx</link><pubDate>Tue, 30 Jan 2007 16:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1554302</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/1554302.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=1554302</wfw:commentRss><description>&lt;P&gt;Hmm, what's ths?!?!&amp;nbsp;&amp;nbsp; BEA has introduced a new line of stuff, under the name Aqualogic Interface, or ALI (I think).&amp;nbsp; As part of that, there is the Aqualogic User Interface (ALUI?).&amp;nbsp; One of the things under that umbrella is the &lt;A class="" href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;amp;FP=/content/products/more/accelerator" mce_href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;amp;FP=/content/products/more/accelerator"&gt;.NET Application Accelerator&lt;/A&gt;, whereby BEA is offering technical magic to enable .NET Developers to write code that runs on or adds value to an Aqualogic server.&amp;nbsp; Intriguing! &lt;/P&gt;
&lt;P&gt;The &lt;A class="" title=JSR-168 href="http://www.jcp.org/en/jsr/detail?id=168" mce_href="http://www.jcp.org/en/jsr/detail?id=168"&gt;Java Portal Spec&lt;/A&gt; describes the model and APIs for Java developers to write portlets - fragments of Web UI that could be composed together to build a single, aggregated portal page.&amp;nbsp; The goal was to enable developers to produce something like my.yahoo.com or one of any number of other web portals, but developers would be able to build these things inside enterprises, and the portlets (or fragments) could theoretically connect to any other system in the enterprise - mainframe transaction systems, databases, packaged apps, custom operational apps, and so on.&amp;nbsp; The portal idea was a good one, lots of companies and vendors latched on to it, including Microsoft, with its Sharepoint products, which were at one point &lt;A class="" href="http://www.channelregister.co.uk/2005/01/27/office_update/" mce_href="http://www.channelregister.co.uk/2005/01/27/office_update/"&gt;the fastest growing products at Microsoft&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;The portal spec was good for Java vendors like BEA and IBM, because it extended the idea of the "application server" to include personalization features, membership, and so on - all extensions beyond the rapidly commoditizing J2EE specification on which their application server businesses were based. Java portal servers were like Java app servers++.&amp;nbsp; And so BEA and IBM charged &lt;A class="" title="$57,000 per cpu!!!" href="http://www.eweek.com/article2/0,1895,1372035,00.asp" mce_href="http://www.eweek.com/article2/0,1895,1372035,00.asp"&gt;LOTS&lt;/A&gt; of &lt;A class="" title='$980 per "value unit", hmmm' href="https://www-112.ibm.com/software/howtobuy/buyingtools/paexpress/Express?P0=E1&amp;amp;part_number=D55UCLL,D55UHLL,D55RELL,D55RJLL,D59EILL,D59G0LL,D59EKLL,D59FDLL,D59FLLL,D59FULL,D596TLL,D596YLL&amp;amp;catalogLocale=en_US&amp;amp;Locale=en_US&amp;amp;country=USA&amp;amp;PT=html&amp;amp;S_TACT=none&amp;amp;S_CMP=none" mce_href="https://www-112.ibm.com/software/howtobuy/buyingtools/paexpress/Express?P0=E1&amp;amp;part_number=D55UCLL,D55UHLL,D55RELL,D55RJLL,D59EILL,D59G0LL,D59EKLL,D59FDLL,D59FLLL,D59FULL,D596TLL,D596YLL&amp;amp;catalogLocale=en_US&amp;amp;Locale=en_US&amp;amp;country=USA&amp;amp;PT=html&amp;amp;S_TACT=none&amp;amp;S_CMP=none"&gt;money&lt;/A&gt; for these things.&amp;nbsp; [ actually, until just now,&amp;nbsp;I did not know, precisely how much money these other vendors were charging for portal servers, but I thought that it was "lots of money."&amp;nbsp; Now that I looked, it knocked my socks off!&amp;nbsp; &lt;STRONG&gt;IBM is charging $980 per value unit for WebSphere Portal Server.&amp;nbsp; &lt;/STRONG&gt;Just what is a value unit, you say?&amp;nbsp; A value unit is 1/100th of a CPU, if you are running a dual-core Xeon or Opteron on your server, as near as I can tell.&amp;nbsp; If you go to quad-core or some other processor, then you'll probably have to call IBM to find out how many "value units" you need to buy for your server.&amp;nbsp; So for an x86 server, you will pay, I think, $98,000 per CPU to run WebSphere Portal Server.&amp;nbsp; Zowie!&amp;nbsp;&amp;nbsp;&amp;nbsp; I promise that &lt;A class="" href="http://office.microsoft.com/sharepoint/" mce_href="http://office.microsoft.com/sharepoint/"&gt;Microsoft Office Sharepoint Server&lt;/A&gt; is not that expensive. ]&lt;/P&gt;
&lt;P&gt;The model of selling pricey server licenses continues today, for both BEA and IBM, But, apparently BEA is noticing there are a whole lot of .NET developers in the enterprise today, and if they want to continue to sell high-priced servers, they better somehow allow enterprises to take advantage of all the .NET talent.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Hence, the .NET Application Accelerator.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Where does the interop come in?&amp;nbsp; Well, if I have understood the product literature correctly, this widgetry allows .NET developers to build stuff that shows up as portlets in a BEA Portal server, using the WSRP standard or RSS.&amp;nbsp; Hence, on-the-glass interop, via the portal server. &lt;/P&gt;
&lt;P&gt;This looks like more of a good thing.&amp;nbsp; In general, more options and choices for interop is good for customers, I think.&amp;nbsp; I will be interested to hear any feedback on this interop-focused product, based on hands-on experience. &lt;/P&gt;
&lt;P&gt;cheers!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1554302" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Portals/default.aspx">Portals</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item><item><title>on WSRP</title><link>http://blogs.msdn.com/dotnetinterop/archive/2005/06/10/on-wsrp.aspx</link><pubDate>Fri, 10 Jun 2005 23:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:427848</guid><dc:creator>DotNetInterop</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/dotnetinterop/comments/427848.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dotnetinterop/commentrss.aspx?PostID=427848</wfw:commentRss><description>&lt;!-- ------------------------------------------------------- --&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;I have a bunch of kids, I lost count after 3. They are all under 10 years of age, as far as I know. They move so fast, that Heisenberg effects occur. You can never really be certain exactly where they are, and exactly how fast or in what direction they are moving. And it's the same thing with their thinking, too. When you have a conversation with little ones, you can never be sure what direction they are taking you. Sometimes they spin off into outer space and I have to say, "Whoa, hold on. Take a breath. Start over, at the beginning." &lt;/P&gt;
&lt;P&gt;I am no expert on child-rearing (though I am actively engaged in the pursuit), so I don't know whether the current psycho-recommendation is to let the kids fly with their thoughts, or to encourage them to relate more to reality. But I yam what I yam: habitually rational, so I encourage the kids to be rational, too. &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H3&gt;What about WSRP? &lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;Oh, I hear you, brothers and sisters. I hear you thinking, "Umm....I thought this was a geek blog? What does this have to do with WSRP?" Trust me on this. &lt;/P&gt;
&lt;P&gt;Lots of people ask me about WSRP. Often, I'll get email citing excerpts of my posts to a newsgroup, like this one: &lt;/P&gt;
&lt;BLOCKQUOTE&gt;It is less optimal to integrate portal artifacts at the UI level. There is a WSRP standard that attempts to cover this, but it is (IMO) neither well thought out nor well-supported by either Websphere or .NET. Architecturally, WSRP is an odd bird, and the implementation itself introduces lots of challenges. &lt;/BLOCKQUOTE&gt;
&lt;P&gt;In the emails, people say, "I would appreciate if you would elaborate on this view." and so on. Ok, here 'tis. &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H3&gt;Now We're Getting Somewhere&lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;Customers sometimes say things like: "We want to build a WSRP-based portal for application aggregation." My response is, "Whoa, hold on. Take a breath. Start over, at the beginning." (see!? I told you the kid story was related!) The beginning for application architecture is... the business goal. Is "deploy a WSRP-based portal" the business goal? It shouldn't be, unless you are a vendor trying to sell WSRP. Just as "use web services" should not be a business goal, nor should "deploy Intel- or AMD-based hardware" be a business goal. &lt;/P&gt;
&lt;P&gt;The business goal is usually something like, &lt;/P&gt;
&lt;BLOCKQUOTE&gt;"We want (a) to speed up a delivery of new functions by re-using existing silo-ed web applications, and to enable future re-use for new apps. Also, we want (b) to deliver such applications to a broad audience, and for them, we have little control over the mode of access to the app." &lt;/BLOCKQUOTE&gt;
&lt;P&gt;The first part of that says, Speed through re-use, now and in the future. Good. That sounds businessy. The second says, Reach. That's businessy, too. And even better, both sound like good, valid goals. &lt;EM&gt;We can work with this.&lt;/EM&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H3&gt;Last things First: Reach means Portal and More&lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;To me the "Reach" goal implies "web", and probably "web portal". But probably very soon it will also imply "speech" and "mobile device". In other words, the PC-based web browser is not the last word in "Reach". For true broad reach, you need multi-channel access, and a web-browser centered portal is not going to deliver that. True, a web portal page can be consumed by a browser on a mobile device, but the UI is non-optimal. 1024x768 just doesn't translate well to 160x160. &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H3&gt;The Requirement for Re-Use means Web services&lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;Re-use is so often cited as a justification or goal, that it almost seems like a meaningless cliche, but it is still the absolute #1 best-bar-none way to reduce costs in delivering applications. The #1 cost component of applications is labor - the &lt;STRONG&gt;People&lt;/STRONG&gt; that construct and maintain the app code and its surrounding support super-structure (admin scripts, db load scripts, and so on). If you don't have to incur that labor cost, the cost of the app drops to the floor. So re-use is truly a worthwhile goal. &lt;/P&gt;
&lt;P&gt;Re-use is good. The next question is, What gets re-used, and how? For the past 5-6 years, web services has been the standard answer here. Starting with XML, SOAP, and WSDL, and building on top of that things like Ws-Security, the industry has constructed a set of standards to allow broad general-purpose interop across any variety of computing infrastructure. handhelds, PCs, servers. Java, .NET, VB, COBOL, PHP, Perl. and so on. It just works. &lt;/P&gt;
&lt;P&gt;But web services have been over-hyped and over-applied. Would you use web services to replace database-specific networking, like Oracle's SQL*Net? You &lt;EM&gt;could&lt;/EM&gt;. Should you? No! SQL*Net just works, it's mature, it's tested, it's highly optimized for what it does, so why break it? The point is, web services is a good tool, but should not be used everywhere. &lt;/P&gt;
&lt;P&gt;Web services are best applied at facilitating the inter-connect between providers and consumers of new custom application function. What we used to call "function shipping" or "RPC". Ok, before you jump down my throat, web services is much more than an XML-based RPC, but today, that is the sweet spot. For example, using the [&lt;A href="http://msdn.microsoft.com/library/en-us/vbcon/html/vbtskUsingWebMethodAttribute.asp" mce_href="http://msdn.microsoft.com/library/en-us/vbcon/html/vbtskUsingWebMethodAttribute.asp"&gt;webmethod&lt;/A&gt;] attribute, any .NET programmer can expose new logic endpoints in an app. And &lt;A href="http://www.jcp.org/en/jsr/detail?id=181" mce_href="http://www.jcp.org/en/jsr/detail?id=181"&gt;JSR-181&lt;/A&gt; aims to make it that simple in the Java world, too. Nice. &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H3&gt;Seriously, when do we get to the WSRP Part? &lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;Yeah, I'm getting there. &lt;/P&gt;
&lt;P&gt;WSRP is, in my opinion, "web services gone wild". Not a pleasant thought, is it? WSRP allows user interface to be transmitted over a web services protocol. As stated in the &lt;A href="http://www.oasis-open.org/committees/download.php/3343/oasis-200304-wsrp-specification-1.0.pdf" mce_href="http://www.oasis-open.org/committees/download.php/3343/oasis-200304-wsrp-specification-1.0.pdf"&gt;WSRP spec&lt;/A&gt;, the goal is re-use of Portal UI. &lt;/P&gt;
&lt;P&gt;Re-use is good, but it has to be re-use at the right level. The most commonly stated motivation for using WSRP is something like "well I just did a lot of work writing this portlet -- I don't want to go through that again for a different platform." This is wrongheaded. If you've invested a great deal of work in building a portlet, and the only re-use interface is the UI, you've made a poor design decision. This implies that the portlet (the UI logic) hides and obscures business logic and maybe data access logic behind the presentation code, and there's no opportunity for re-use except at the UI layer. If that's the case, that is a bad design. Bad bad bad. &lt;/P&gt;
&lt;P&gt;What if you want to re-use that app logic in a mobile app? What if you want it in an RSS feed? What if you want a speech interface? a smart client? What if you want to build a composite app, maybe an agent with no UI whatever, that re-uses that logic? None of these things are possible if UI is the re-use layer. None of these are possible if WSRP is the re-use substrate. See? Bad, brittle design. &lt;/P&gt;
&lt;P&gt;Yet this is exactly what WSRP does. Web services gone wild. Re-use of UI is brain-dead. Come on, people, do you really think that that glorious portal, the one you spent so much time building, is going to be the last app to inhabit your enterprise? Of course not! There will always be more, and many of them will not be web-based. That's known, right? Not a matter of opinion. That's fact. Mobile is happening, speech is happening. If you think the web portal is the last app architecture, you need to meet up with the people that built all the CICS apps that mingled 3270 screen logic inside the program logic. You can all sit around and curse progress together. &lt;/P&gt;
&lt;P&gt;Because new apps and new app models happen, and because web is not "the last app model you will ever need," architecting systems for re-use means more than "portal UI re-use". WSRP is the wrong direction to go. Re-use should be done using application-oriented web services. Business logic. And sure, there are multiple levels of granularity. Some web services may be "top level services" while others may be foundational. But UI is NOT wrapped into these services. Never. ever ever ever. Did we learn nothing from the days of 2-tier computing? Are we not smarter after having done 3270 screen-scraping for 20 years? &lt;/P&gt;
&lt;P&gt;This is where I try to lead customers who start with WSRP. When I tell them, "Whoa, slow down. Start from the beginning," the point is to get them to think bigger, beyond "re-use of portal UI". &lt;/P&gt;
&lt;P&gt;Let's say you have a portal today, and you want to exploit re-use. The right way is to expose business services via XML and SOAP, and then built thin webparts/portlets/gadgets that present the data and capability of those services. The artifacts at the UI layer should be thin. If you then need that service/info in another UI channel, it should be straightforward to build the (unique) UI for that other channel, be it speech/voice, smart client, or something else. Re-use at the service layer, not the UI layer. This, by the way, is a technology-neutral approach. It applies equally well if you are an ASP.NET shop, a Java-based shop, something else, or a mix of all of the above. &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H3&gt;Q&amp;amp;A&lt;/H3&gt;&lt;FONT face=Tahoma size=2&gt;
&lt;P&gt;&lt;STRONG&gt;Q. Is this &lt;EM&gt;Microsoft's Official Position&lt;/EM&gt; on WSRP?&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;A. No way, buddy, I'm not going there. This is not Microsoft's official position on WSRP. This is my opinion. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q. Are you saying WSRP is never useful? &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A. No. But it is mostly not useful. It's a niche thing. And mostly, it is either misunderstood, or deployed for the wrong reasons. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q. So, in your opinion, when is WSRP useful? &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A. The WSRP spec says, when you want to re-use portal UI. In my opinion, WSRP is useful when you have pre-existing (maybe vendor supplied, maybe custom-developed) portlets or web-parts, and they do not admit any re-use. They comingle UI and logic, and they cannot easily be re-factored. There, in that situation, WSRP is useful. But as a temporary measure only. Long term, you want to refactor. 
&lt;P&gt;&lt;STRONG&gt;Q. But, WSRP is an industry standard! And I thought Microsoft supported standards! How can you say such deceitful things about WSRP?!! &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A. This is technology; It's not a religion for me. I thought it through, and conclude that WSRP is probably the wrong tool for the re-use job. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q. Does Microsoft support WSRP? &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A. No, not directly. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q. Aha! Gotcha! All of this badmouthing WSRP is because you don't support it! &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A. Um, if you like conspiracy theories, sure! But that reverses the actual cause and the effect: Microsoft doesn't directly support WSRP &lt;U&gt;because&lt;/U&gt; it is so limited. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q. Wait, then why do I see support for WSRP from so many companies, like IBM, BEA, SAP...? Hmm?!?! Answer &lt;EM&gt;that one&lt;/EM&gt;, smart guy!&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;A. JSR-168 is the reason WSRP exists. See, JSR-168 is a portlet portability API. All those portlet vendors, after delivering their JSR-168 implementations, just realized their portlets were no longer sticky. Now someone could rip out WebSphere Portal Server at $57,000/cpu, and replace it with Apache JetSpeed (free). WSRP mitigates that risk. It provides protection from commoditization &lt;EM&gt;to the Java portal vendors.&lt;/EM&gt; Remember, these are the same vendors that got scorched when Tomcat and JBoss dropped the price of the Java-based app server to zero. They don't want that to happen with portals. So now, the portal vendors tell their customers - &lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;SPAN style="COLOR: #005566"&gt;"Oh, that JSR-168 portability spec? No, no, don't actually use &lt;EM&gt;that&lt;/EM&gt;. &amp;nbsp;&amp;nbsp;No. &amp;nbsp;&amp;nbsp; Oh my, no. &amp;nbsp;&amp;nbsp; Think of the mess, moving a portlet from &lt;EM&gt;our&lt;/EM&gt; portal server to someone else's! Oh I guess if you want to install another vendor's portal server that would be ok, but certainly don't turn &lt;EM&gt;ours&lt;/EM&gt; off. Instead, run 4 different flavors of portal server, and in each one, run a unique set of portlets. Then, allow the portlets to interop via WSRP! Much better! You never need to stop running our portal server! Won't that be nice?" &lt;/SPAN&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Does this make business sense to the customer? Probably not. Redundancy is never a cost-saving approach. But it does preserve the presence of multiple Java-based portals in an account. It acts as a brake to commoditization that killed the app server revenue. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q. Now, &lt;EM&gt;that&lt;/EM&gt; is what I call a conspiracy. &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A. WSRP is so weird, and technically speaking, so weakly justified, the only reasonable conclusion is that it is a spec driven by the vendors' business case. It solves a technical problem in a very complex way. It is redundant, and adds no new real capability. How to explain its existence? To me it is obvious that MBAs conceived the spec. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Q. Is there no way to "do" WSRP using Microsoft technologies? &lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A. There are options. There's a &lt;A href="http://workspaces.gotdotnet.com/wsrpwebpart" mce_href="http://workspaces.gotdotnet.com/wsrpwebpart"&gt;WSRP Consumer Web Part available on GotDotNet&lt;/A&gt;. It's a community-supported workspace, not an officially-supported product. It may work for you. "WSRP Consumer" means, it is a Sharepoint webpart that can connect to a potentially remote WSRP artifact, and display that UI in the webpart. You can also implement WSRP producers in the form of ASP.NET Web services. An &lt;A href="http://workspaces.gotdotnet.com/SharePointWsrpProducer" mce_href="http://workspaces.gotdotnet.com/SharePointWsrpProducer"&gt;example of how to do this is available on GotDotNet&lt;/A&gt;, again as a community-supported, unofficial effort. &lt;/P&gt;
&lt;P&gt;Also, there is a third party add on to .NET from &lt;A href="http://blogs.msdn.com/controlpanel/blogs/www.netunitysoftware.com" mce_href="www.netunitysoftware.com"&gt;NetUnity Software&lt;/A&gt;. It is packaged as a Visual Studio add-in and a set of classes that allow you to build WSRP producer Web services. &lt;/P&gt;&lt;/FONT&gt;&lt;!-- ------------------------------------------------------- --&gt;
&lt;H3&gt;Any Last Advice?&lt;/H3&gt;
&lt;P&gt;&lt;FONT face=Tahoma size=2&gt;Yep. &lt;/FONT&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;If your goal is re-use, do it primarily with business-oriented web services. Don't optimize around re-using UI. If you've already got a portlet/webpart/gadget and it is not factored for re-use, re-factor it. Now. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;If there already exists a portal artifact (portlet/webpart/gadget/etc), and you want to re-use it, first inquire if you can re-use a web-service that resides behind the UI. If it is properly architected, this will be possible. If not, then you are stuck re-using at the UI layer. If the re-use is to happen within a SharePoint portal (using SPS) or a SharePoint site (using WSS), use the .NET WSRP consumer Web Part on GotDotNet and consume that remote portal artifact using WSRP. &lt;/FONT&gt;
&lt;LI&gt;&lt;FONT face=Tahoma size=2&gt;if you are building new portal artifacts, and want to promote re-use, and for some really weird reason, despite the recommendations of reason and clear-headed thinking, you &lt;EM&gt;still&lt;/EM&gt; want to allow re-use at the UI layer (maybe it's due to a misguided proclamation from a pointy-headed boss), then write a WSRP Web service. If you are doing it in .NET, either use the example on GotDotNet or make use of NetUnity Software's stuff. &lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=427848" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Interop/default.aspx">Interop</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Portals/default.aspx">Portals</category><category domain="http://blogs.msdn.com/dotnetinterop/archive/tags/Java/default.aspx">Java</category></item></channel></rss>