<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0"><channel><title>Architecture for the Real World</title><link>http://blogs.msdn.com/atanu/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/AtanuBanerjee" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="atanubanerjee" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>OSF 9: How do you start building an OBA? (aka Introduction to Spiking)</title><link>http://blogs.msdn.com/atanu/archive/2007/05/22/osf-9-how-do-you-start-building-an-oba-aka-introduction-to-spiking.aspx</link><pubDate>Tue, 22 May 2007 18:26:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2794727</guid><dc:creator>Atanu</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2794727.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2794727</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Let&amp;nbsp;us say that you've decided to build an Enterprise Architecture that supports all five layers of the architecture that &lt;a href="http://blogs.msdn.com/atanu/archive/2007/05/18/osf-8-building-a-people-ready-soa-service-oriented-architecture-via-obas.aspx"&gt;I laid out earlier&lt;/a&gt; - presentation, collaboration, process, services, and data. Let us next say that you've also picked the Microsoft stack as the&amp;nbsp;technology platform for this, and that you have decided to&amp;nbsp;build an Office Business Application. That's great, but then what next? &lt;/p&gt; &lt;p&gt;Let us assume that you start from a set of monolithic applications as below. You are faced with a number of choices now. Do you start tearing apart your existing applications? Do you start to create new OBAs from scratch? Top-down? Bottom Up? You know that there will be a transformation, but will this be business led or IT led?&amp;nbsp;&lt;/p&gt; &lt;p&gt;One approach is&amp;nbsp;top down -&amp;nbsp;often&amp;nbsp;taken&amp;nbsp;when transformation is business-driven. Here much time is spent on analysing business processes across the company, doing extensive use-case analysis, and then designing OBAs to match. The focus is on designing applications and services to promote re-use. The risk here is that a lot of time /&amp;nbsp;budget might get spent on analysing as-is business processes, without measurable returns. &lt;/p&gt; &lt;p&gt;In companies where transformation is IT-driven, then a bottom-up approach is often used. Here people talk of SOA, but what gets produced are sets of web services that map directly to existing business applications and processes.&amp;nbsp;The risk here is that no new business capabilities, or value, is being created.&amp;nbsp;&lt;/p&gt; &lt;p&gt;There is a different way - called 'spiking' - where you nail down a fixed vertical scope across all five architectural layers. This scope should be part of a&amp;nbsp;project to deliver a new cross-functional business process that cannot be easily done with existing applications. Next you follow an iterative approach, and at each iteration you expose core IT assets, you compose a new solution from them, and then you plug this solution into information channels easily accessible to users.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF9HowdoyoustartbuildinganOBAakaPaveThe_6C54/Spiking2.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="278" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF9HowdoyoustartbuildinganOBAakaPaveThe_6C54/Spiking_thumb.jpg" width="420" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Why is this called 'Spiking'? The goal is to get enough breadth in the process, that&amp;nbsp;the solution provides measurable business value. At the same time, there need to be enough depth so that significant architectual / organizational concerns are addressed at each of the tiers. At a high level, the approach for each iteration (or spike) is to do the following:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;font color="#ff0000"&gt;EXPOSE&lt;/font&gt;: standardize core IT assets that make up the solution - e.g. documents that make up the process, business events for that process, data models, performance models, web services for integration to existing Line of Business systems, etc.&amp;nbsp;  &lt;li&gt;&lt;font color="#ff0000"&gt;COMPOSE&lt;/font&gt;: you&amp;nbsp;assemble the new solution by combining different assets. Composition could be at any of the five tiers, e.g.&amp;nbsp;composing&amp;nbsp;web parts in a&amp;nbsp;portal, or composing calls to business services into workflows that orchestrate them. Here you are setting up&amp;nbsp;the server side information architecture (e.g. site hierarchies, document libraries, workflows, connection libraries and business entity definitions).  &lt;li&gt;&lt;font color="#ff0000"&gt;CONSUME&lt;/font&gt;: you connect the new solution to information channels that are accessible to those roles that make up the process. This means connecting client applications (web based, thick client, Office Client based) to the server side solution that you assembled.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;This approach differs from a top-down approach by leveraging the fixed scope of a 'spike' to ensure quick business value, while still mitigating technology risk. This approach differs from a bottom-up approach by ensuring that back end services are aligned with the way that information is being consumed by specific roles.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2794727" width="1" height="1"&gt;</description></item><item><title>OSF 8: Building a People-Ready SOA (Service Oriented Architecture) via OBAs</title><link>http://blogs.msdn.com/atanu/archive/2007/05/18/osf-8-building-a-people-ready-soa-service-oriented-architecture-via-obas.aspx</link><pubDate>Fri, 18 May 2007 15:58:58 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2709935</guid><dc:creator>Atanu</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2709935.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2709935</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I'm posting this from Singapore where I did a couple of sessions at their Strategic Architect Forum yesterday on Office Business Applications, composite business solutions,&amp;nbsp;and how to build them.&amp;nbsp;&lt;/p&gt; &lt;p&gt;Lately a&amp;nbsp;number of folks that I've talked to, have been wresting with the practicalities of building a SOA (Service Oriented Architecture). While SOA holds a lot of potential, there have been a number of large SOA projects where benefits have not been in line with expectations. This is especially true of Big Bang SOA, where large re-engineering projects have been kicked off. InformationWeek in an article &lt;a href="http://www.informationweek.com/story/showArticle.jhtml?articleID=192501102"&gt;here&lt;/a&gt; points out some troubling statistics with Big-Bang SOA (e.g. 24% projects short of expectations, 41% projects with cost overruns AND failure to meet expectations).&lt;/p&gt; &lt;p&gt;I think that&amp;nbsp;usually SOA failures arise due to inadequate consideration to how real people will use the system. There is&amp;nbsp;an inordinate emphasis on building 'perfect services' rather than supporting the&amp;nbsp;decision making processes of information users. So lets see here, what a "People-Ready SOA" might look like.&lt;/p&gt; &lt;p&gt;I once met with a large semiconductor company that wanted to introduce a new kind of product to market. In about 18 months they had retooled their manufacturing facilities to make these, and set up new sales &amp;amp; distribution channels. However&amp;nbsp;at that time, their IT systems were still nowhere close to being able to take orders for the new product, plan production and then drive their manufacturing execution systems. They had a familiar problem -&amp;nbsp;legacy business applications that were&amp;nbsp;monolithic - that&amp;nbsp;prevented change rather than enabling it. It was hard for them to build new cross-functional solutions. &lt;/p&gt; &lt;p&gt;The&amp;nbsp;problem is that most applications are architected in isolation,&amp;nbsp;and offer few opportunities for reuse. For example, let us assume that you have systems that look like this.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AppsTodayArch.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="192" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AppsTodayArch_thumb.jpg" width="394" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So you now want to unlock business value through&amp;nbsp;SOA. Usually business justification for this is some combination of the 3 A's (Agility, Alignment, Adaptability)&amp;nbsp;- &lt;a href="http://harvardbusinessonline.hbsp.harvard.edu/hbsp/hbr/articles/article.jsp?articleID=R0410F&amp;amp;ml_action=get-article"&gt;see paper by Dr. Hau Lee on this topic&lt;/a&gt;. For me, this translates to the ability to quickly and easily build new cross-functional solutions to keep up with business needs. &lt;/p&gt; &lt;p&gt;Let us suppose that you now start to build a SOA. The first thing to watch out for, is to avoid the following (very common) mistake. You've replaced applications with services - but you haven't actually&amp;nbsp;improved anything. Although for your troubles, you have introduced more complexity through a new technology stack.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AppsToServices.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="200" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AppsToServices_thumb.jpg" width="413" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So you might next want to refactor services for reuse, as shown in the next figure below. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/RefactoringServices.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="204" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/RefactoringServices_thumb%5B1%5D.jpg" width="418" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;This leads to a new kind of problem. No matter how cleanly you design your services, it is hard for business folks to relate to them. Have you ever tried explaining an API, or a WSDL doc, to somebody in the business? Also, you want to separate out things that change frequently from things that don't. In other words you want to externalize the points of variability in the system, so that they can be changed easily without long drawn development cycles.&lt;/p&gt; &lt;p&gt;So you add in&amp;nbsp;a business process management&amp;nbsp;tier next. This is a set of technologies that let you design and orchestrate interactions across services. The advantages of doing this are:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Visualization of process - visual representations of business processes that are first class citizens of the development process, rather than dusty documents&amp;nbsp;&lt;/li&gt; &lt;li&gt;Align IT resources to business imperatives - if business processes are made explicit, then it is much easier to align IT resources with business needs&amp;nbsp; &lt;/li&gt; &lt;li&gt;Monitoring - explicit processes enable monitoring of activities, which leads to oportunities for optimization and improvement&lt;/li&gt; &lt;li&gt;Enables change - it now becomes much easier to change processes and / or the business rules that drive them. The idea is that changes to core services are made relatively infrequently, and are done incrementally when needed -&amp;nbsp;most changes are made in the process tier (if services and process tiers are designed correctly). &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;But there is a problem with doing this, as shown below. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AddBPMToServices.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="248" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AddBPMToServices_thumb.jpg" width="419" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Usually BPM tools work best&amp;nbsp;to handle automation of services, processes&amp;nbsp;and systems. However&amp;nbsp;people and computers&amp;nbsp;don't work in the same way. People need an environment that is flexible and dynamic, that can handle unstructured information and documents, and that allow them to easily change the way that they receive and consume information. Computers&amp;nbsp;deal with structured information and processes. &lt;/p&gt; &lt;p&gt;So you need to design an environment that enables collaboration and human decision making. Neither of these come from the services tier, or the process tier - which mans that you have to explicitly account for this in a separate tier as shown next.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AddCollabToServices.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="213" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/CompositeApplicationsandServiceOrientedA_EF79/AddCollabToServices_thumb.jpg" width="423" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;What are the capabilities, that need to be delivered by this collaboration tier?&amp;nbsp;Some of&amp;nbsp;the capabilities provided by SharePoint - which is a good fit for the collaboration tier are as follows:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Self service content management and BI&amp;nbsp;- ability for users to create, store and share information e.g. documents, lists, reports, wikis, blogs, etc. with versioning and security. &lt;/li&gt; &lt;li&gt;Security&amp;nbsp;- ability to partition information by process, role, organizational hierarchy etc. - and set up appropriate access rights.&lt;/li&gt; &lt;li&gt;Portal - this provides a customizable / personizable&amp;nbsp;interface for users to publish information, and to search for&amp;nbsp;information. Users have&amp;nbsp;the ability to compose project / role / activity specific pages, sites, and dashboards. Emphasis here is on "employee self-service".&lt;/li&gt; &lt;li&gt;Solution services - forms services to easily create and deploy forms, and Excel services to turn spreadsheets into server side components for reporting, calculations etc.&lt;/li&gt; &lt;li&gt;Communications - track inbound emails for archival, send outbound emails for alerting / notifications, integration of portal to real time messaging channels.&lt;/li&gt; &lt;li&gt;Connections to lower tiers - back end data,&amp;nbsp;services, and structured business processes. These connections are set up by IT, with role specific access controls. Once set up, the connections can be used to access information in&amp;nbsp;the portal, e.g. in&amp;nbsp;reports, documents&amp;nbsp;and&amp;nbsp;dashboards.&amp;nbsp; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;You may notice that I have chosen not to consolidate at the data or presentation tiers. The architecture should allow for federation of data, allow&amp;nbsp;for composition at the presentation tier, and support multiple channels of information consumption.&lt;/p&gt; &lt;p&gt;What are the implications of this architecture? Well firstly, you need to choose a platform that supports this kind of decomposition and assembly. Not coincidentally, the five tiers here match up with the five tiers for an OBA &lt;a href="http://blogs.msdn.com/atanu/archive/2007/05/11/osf-6-obas-composite-applications-and-steve-ballmer.aspx"&gt;here&lt;/a&gt;. So the platform for building an OBA will deliver all elements of a "People Ready SOA". &lt;/p&gt; &lt;p&gt;Once that is done, the architecture will provide the following benefits:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Separation of concerns  &lt;li&gt;Loose coupling  &lt;li&gt;Patterns of reuse  &lt;li&gt;Enables composition &lt;li&gt;You don't need to write code for everything&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2709935" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item><item><title>OSF 7: What does composition mean for Office Client applications?</title><link>http://blogs.msdn.com/atanu/archive/2007/05/14/osf-7-what-does-composition-mean-for-office-client-applications.aspx</link><pubDate>Mon, 14 May 2007 20:45:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2629616</guid><dc:creator>Atanu</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2629616.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2629616</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Consider composition of information in the Office Client. People are used to thinking of Word, Excel and Outlook as desktop productivity tools, but they can now serve as containers for data coming from back end servers (e.g. ERP and other Line of Business applications). Consider the following diagram.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF7CompositioninOfficeClientapplication_BF02/CompositionInOfficeClient_thumb1%5B3%5D.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="256" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF7CompositioninOfficeClientapplication_BF02/CompositionInOfficeClient_thumb1_thumb.jpg" width="426" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;You can see how&amp;nbsp;Office 2007 client applications are now&amp;nbsp;customizable / extensible containers for business logic. You can use &lt;a href="http://msdn2.microsoft.com/en-us/office/aa905533.aspx"&gt;VSTO (Visual Studio Tools for Office)&lt;/a&gt; to extend Office client with application specific add-ins. These add-ins&amp;nbsp;can present the user with information and actions in the&amp;nbsp;context of his current task, and in the context of his role. The following figure shows how this might look like.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF7CompositioninOfficeClientapplication_BF02/CustomizedOfficeClient_thumb%5B3%5D.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="260" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF7CompositioninOfficeClientapplication_BF02/CustomizedOfficeClient_thumb_thumb.jpg" width="429" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;But if you do consider Office 2007 client applications as containers, then the question remains -&amp;nbsp;what gets deployed into these containers? Now that Office documents are represnted as Open XML, you can drop custom defined XML blocks into documents - as in the figure below. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF7CompositioninOfficeClientapplication_BF02/OpenXML_thumb1%5B3%5D.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="261" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF7CompositioninOfficeClientapplication_BF02/OpenXML_thumb1_thumb.jpg" width="426" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;This means two things for solution developers - firstly that client side application add ins can operate on this custom XML block. And secondly, all kinds of interesting new opportunities have opened up for server side automation that process this custom XML block. You can now do the following:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Extract information from back end systems, e.g. by a workflow running in SharePoint that gets this information via the BDC (Business Data Catalog). You could build up a custom workflow activity library for this purpose.&lt;/li&gt; &lt;li&gt;You can embed this data back to an Office client document for off-line use. This document&amp;nbsp;can reach its intended user via either a pull model (retrieving&amp;nbsp;it&amp;nbsp;from a SharePoint library), or via a push model (sending it via email). The data could be stored in the Custom XML schema embedded in the&amp;nbsp;Open XML document (i.e.&amp;nbsp;payload).&lt;/li&gt; &lt;li&gt;You can use Office applications like Excel, Word, and Outlook, with appropriate add ins&amp;nbsp;to provide client side actions and services that make use of this custom data.&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2629616" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item><item><title>OSF 6: OBAs, Composite Applications,and Steve Ballmer</title><link>http://blogs.msdn.com/atanu/archive/2007/05/11/osf-6-obas-composite-applications-and-steve-ballmer.aspx</link><pubDate>Sat, 12 May 2007 00:51:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2553810</guid><dc:creator>Atanu</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2553810.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2553810</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;What is a composite application? In the simplest sense, it is a cross-functional solution assembled from pre-existing building blocks. These building blocks could be services, workflows and activities, documents, application blocks (e.g. portal web part),&amp;nbsp;rules etc.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF6OBAsCompositeApplicationsandSteveBal_62CA/CompositeApps2.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="325" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF6OBAsCompositeApplicationsandSteveBal_62CA/CompositeApps_thumb.jpg" width="419" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;What are the components in an OBA that can be assebled into a composite app? These are:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF6OBAsCompositeApplicationsandSteveBal_62CA/Components1.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="121" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF6OBAsCompositeApplicationsandSteveBal_62CA/Components.jpg" width="240" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Steve Ballmer took the stage at the Software 2007 Conference to talk about Microsoft's software + services (or S+S) strategy. As part of that presentation, Steve talked about Office Business Applications (i.e. OBAs) as composite applications that allow information workers to use information in back office applications such as ERP in new ways. ZDNet published a report on this two days ago - which is available &lt;a href="http://blogs.zdnet.com/BTL/?p=5018"&gt;here&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;I'd like to thank&amp;nbsp;Steve and ZDNet for setting up this posting, because on that page, ZDNet has two pictures of Steve, and&amp;nbsp;ALSO an early&amp;nbsp;version of the following&amp;nbsp;diagram showing the internals of an OBA that I had created while releasing the &lt;a href="http://msdn2.microsoft.com/en-us/architecture/aa702528.aspx"&gt;OBA RAP for SCM&lt;/a&gt; (Reference Application Pack for Supply Chain Management).&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF6OBAsCompositeApplicationsandSteveBal_62CA/ContainersAndTiers9.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="318" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF6OBAsCompositeApplicationsandSteveBal_62CA/ContainersAndTiers_thumb3.jpg" width="434" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;What does this diagram mean? In my posting &lt;a href="http://blogs.msdn.com/atanu/archive/2007/05/10/osf-5-different-types-of-office-business-applications.aspx"&gt;OSF 5&lt;/a&gt; I talked about the fact that OBAs can deliver solutions that provide business capabilities for transactional needs, decision support needs, and collaboration needs. You can think of these as next generation composite business applications. However&amp;nbsp;in order to deliver solutions that provide these kinds of&amp;nbsp;business capabilities, you need a platform that provides technical / infrastructure capabilities. Those platform capabilities fall into five categories - that correspond to the five tiers that I called out in&amp;nbsp;my posting &lt;a href="http://blogs.msdn.com/atanu/archive/2007/05/04/osf-2-what-makes-architecture-for-an-oba-different.aspx"&gt;OSF 2&lt;/a&gt;&amp;nbsp;-&amp;nbsp;presentation, collaboration, process, services and data. Do you need all of these tiers to build a business application? Not for all kinds of applications ... but you if you do want to build a next generation composite business app that combines transactions, decision support and collaboration. &lt;/p&gt; &lt;p&gt;So the diagram above just breaks down the technical capabilities of the Microsoft platform into those five tiers. How does this fit the composite application paradigm? Well each of the boxes in this diagram represents a container, that provides particular application services, and into which content and data can be deployed. The different bits of content and data represent components that make up the composite solution. Components can be assembled into different groupings - each of which is a composite application. Each of the containers in the diagram above can service only particular types of components.&lt;/p&gt; &lt;p&gt;For more information on composite apps, you can check out the &lt;a href="http://msdn2.microsoft.com/en-us/architecture/bb190637.aspx"&gt;MSDN architecture site on composite apps&lt;/a&gt;, as well as the &lt;a href="http://msdn2.microsoft.com/en-us/arcjournal/bb232818.aspx"&gt;Architecture Journal issue on this topic&lt;/a&gt;. For&amp;nbsp;an article on OBA and composite applications, you can check out an &lt;a href="http://msdn2.microsoft.com/en-us/arcjournal/bb266337.aspx"&gt;earlier article&lt;/a&gt; of mine in the Journal.&lt;/p&gt; &lt;p&gt;In&amp;nbsp;later blog postings I will go into more details on each of those boxes, and show an end-to-end example. A list of links to the composition&amp;nbsp;abilities of those&amp;nbsp;various boxes are provided here - and as I post on those topics I will update this list.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Composition in the Presentation Tier  &lt;ol&gt; &lt;li&gt;&lt;a href="http://blogs.msdn.com/atanu/archive/2007/05/14/osf-7-what-does-composition-mean-for-office-client-applications.aspx"&gt;Composition in Office Client applications&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;Composition in the Collaboration Tier  &lt;li&gt;Composition in the Process Tier  &lt;li&gt;Composition in the Services Tier  &lt;li&gt;Composition in the Data Tier&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2553810" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item><item><title>OSF 5: Different types of Office Business Applications</title><link>http://blogs.msdn.com/atanu/archive/2007/05/10/osf-5-different-types-of-office-business-applications.aspx</link><pubDate>Thu, 10 May 2007 17:09:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2523894</guid><dc:creator>Atanu</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2523894.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2523894</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;[&lt;font color="#ff0000"&gt;UPDATE&lt;/font&gt;: For more info on the "OBA RAP for Price Management" (OBA type #5 below) announced yesterday,&amp;nbsp;read the blog posting by Moin &lt;a href="http://blogs.msdn.com/mmoin/archive/2007/05/09/oba-rap-for-price-management.aspx"&gt;here&lt;/a&gt;.]&amp;nbsp;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Traditional business applications have mostly either provided collaboration (focus: information sharing), decision support (focus: BI, reporting, planning, event management), or transactional support (e.g. data entry). &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF5DifferenttypesofOfficeBusinessApplic_1AD1/TypesOfApps22.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="281" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF5DifferenttypesofOfficeBusinessApplic_1AD1/TypesOfApps2_thumb.jpg" width="328" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;However the rich capabilities of the Office system enable applications that can combine elements of collaboration, decision support, and collaboration into a single, unified user experience.&lt;/p&gt; &lt;p&gt;For example, the following screenshots show examples of different types of OBAs, and illustrate how collaboration, decision support and support for business transactions / process are brought together.&lt;/p&gt; &lt;p&gt;EXAMPLE: An inventory analyst gets an email (COLLABORATION) with information on a stockout. The email shows him tabular / graphical data in Outlook. He can click on the custom ribbon for Procurement, to pull up a list of Purchase Orders in a custom task pane filtered by the item / location / date of the stockout (DECISION SUPPORT). He can then select an order to expedite, which opens up a form within Outlook for him to make changes to the order (BUSINESS TRANSACTION).&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF5DifferenttypesofOfficeBusinessApplic_1AD1/SCMOutlook2.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="247" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF5DifferenttypesofOfficeBusinessApplic_1AD1/SCMOutlook_thumb.jpg" width="341" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;This is one type of OBA, where the Office client is connecting to back end systems for data.&amp;nbsp;A list of different&amp;nbsp;types of OBA&amp;nbsp;is as follows:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Task-centric application built into a stand alone Office client with custom task panes, custom ribbons, and application-level add-ins. For example, a data visualization / analysis application built into Excel.  &lt;li&gt;Customized office client connecting to back end systems to retrieve data (e.g. inventory analyst application in Outlook above, or &lt;a href="http://www.duet.com"&gt;Duet&lt;/a&gt; v.1.0)  &lt;li&gt;Application built into the SharePoint portal (Windows SharePoint Services or Microsoft Office SharePoint Server), with all data stored in SharePoint lists, or as documents stored in document libraries. I&amp;nbsp;met a customer (large manufacturing company) that&amp;nbsp;had such an&amp;nbsp;OBA to manage their protfolio of R&amp;amp;D projects - with a SharePoint site set up for each product that was being worked on.&amp;nbsp; &lt;li&gt;Application built into the SharePoint portal (Windows SharePoint Services or Microsoft Office SharePoint Server), with connections to back end data stores. The user experience for such an app might look like this:&lt;br&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF5DifferenttypesofOfficeBusinessApplic_1AD1/DonationTracking%5B3%5D.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="266" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF5DifferenttypesofOfficeBusinessApplic_1AD1/DonationTracking_thumb%5B1%5D.jpg" width="355" border="0"&gt;&lt;/a&gt;  &lt;li&gt;End-to-end business solution&amp;nbsp;that is spread across Offfice client apps and SharePoint server. Such a solution would have all the five tiers I listed in my posting &lt;a href="http://blogs.msdn.com/atanu/archive/2007/05/04/osf-2-what-makes-architecture-for-an-oba-different.aspx"&gt;here&lt;/a&gt; - presentation, collaboration, business process, services, and data. Some examples of these kinds of OBAs are in the OBA Reference Application Packs (RAPs):&lt;/li&gt; &lt;ol&gt; &lt;ol&gt; &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/architecture/aa702528.aspx"&gt;OBA RAP for Supply Chain Management&lt;/a&gt; &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/architecture/bb265266.aspx"&gt;OBA RAP for Loan Origination&lt;/a&gt; &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa905316.aspx"&gt;OBA RAP for Store Operations&lt;/a&gt; &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/architecture/bb467601.aspx"&gt;OBA RAP for Price Management&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt; &lt;li&gt;Hosted OBAs used as the delivery mechanism for SaaS (Software as a Service). You can think of &lt;a href="http://www.officelive.com"&gt;Office Live&lt;/a&gt; as a great example of this - which is hosted on WSS, and which offers business applications for small businesses. This might be a great opportunity for &lt;a href="http://www.microsoft.com/serviceproviders/directory/wssv3.mspx"&gt;hosters offering SharePoint&lt;/a&gt; to add differentiated lightweight application templates. More on this in a later blog posting.&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2523894" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item><item><title>OSF 4: How to handle Users and Roles in an OBA</title><link>http://blogs.msdn.com/atanu/archive/2007/05/09/osf-4-how-to-handle-users-and-roles-in-an-oba.aspx</link><pubDate>Wed, 09 May 2007 10:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2497021</guid><dc:creator>Atanu</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2497021.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2497021</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Consider a team that is trying to deliver an OBA for a particular business process (e.g. to manage&amp;nbsp;procurement). This could be an internal in-house IT development team building a standardized business process for enterprise-wide deployment, or it could be a solution provider who is building a packaged application to sell to customers. In either case, development of the OBA is a separate, decoupled&amp;nbsp;activity from actual deployment of the OBA.&amp;nbsp;So the&amp;nbsp;solution provider will&amp;nbsp;not know&amp;nbsp;the end users at&amp;nbsp;the time that the&amp;nbsp;solution is being built. Instead&amp;nbsp;the solution provider&amp;nbsp;should work in terms of personas and roles, and package OBA artifacts&amp;nbsp;(e.g. document templates, reports, dashboards, actions, workflows) accordingly. Doing this in the form of an OBA actually makes it easy&amp;nbsp;to customize&amp;nbsp;the business solution at the time of deployment, to manage change post-deployment, and for end users to personalize the solution extensively at any time.&lt;/p&gt; &lt;p&gt;In most&amp;nbsp;business processes,&amp;nbsp;people and systems&amp;nbsp;interact by exchanging documents.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/Process%5B2%5D.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="196" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/Process_thumb.jpg" width="280" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;It should be straightforward for a business analyst to identify the roles that make up the process, and to create personas for these roles. For example:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/Alicia%5B8%5D.gif" atomicselection="true"&gt;&lt;img height="50" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/Alicia_thumb%5B6%5D.gif" width="50" align="left"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;Name: Alicia&amp;nbsp;&amp;nbsp; Role: Purchasing Agent&lt;/p&gt; &lt;p&gt;“I order materials and supplies.&amp;nbsp;I follow up on PO confirmations and partial receipts.&amp;nbsp;I also research suppliers to get the best quality products at the lowest price.”&lt;/p&gt; &lt;p&gt;Name: Eduardo&amp;nbsp;&amp;nbsp; Role: Order Processor&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/Eduardo%5B4%5D.gif" atomicselection="true"&gt;&lt;img height="51" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/Eduardo_thumb%5B2%5D.gif" width="51" align="left"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;“I am responsible for the physical entry of orders as well as other sales support tasks. I take orders passed to me by the sales rep as well as repeat orders directly from customers.”&lt;/p&gt; &lt;p&gt;For each persona, it should be possible to inventory their needs for this business process:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Document templates (e.g. forms, spreadsheets)&lt;/li&gt; &lt;li&gt;Metrics, reports, dashboards&lt;/li&gt; &lt;li&gt;Workflows&lt;/li&gt; &lt;li&gt;Task lists&lt;/li&gt; &lt;li&gt;List of alerts / exceptions / notifications to be monitored&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;These artifacts can be built into a set of role specific SharePoint personalization sites - one&amp;nbsp;for each&amp;nbsp;persona.&amp;nbsp;These sites could then be&amp;nbsp;packaged as a set of Site Template files (i.e. .stp files) that make up the business process. During deployment of the solution at the end customer site, the SharePoint administrator would deploy these site templates, and then create personalization sites from these&amp;nbsp;on the shared services provider using the admin console. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/SiteTemplate%5B5%5D.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="222" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF4AnatomyofanOBAsolution_D2F3/SiteTemplate_thumb%5B3%5D.jpg" width="407" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;What is the advantage of this? This allows end users to automatically discover links to role specific sites on their personal 'My Site's. This&amp;nbsp;can be&amp;nbsp;set up after deployment, by the SharePoint administrator, who would&amp;nbsp;set up 'audiences' that map to each role in the deployed solution through rules on properties stored on User Profiles. Then the personalization sites could be configured through the admin console, to automatically appear on 'My Sites' for those users who fall in each of the configured 'audiences'.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2497021" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item><item><title>OSF 3: ANATOMY OF A BUSINESS SOLUTION</title><link>http://blogs.msdn.com/atanu/archive/2007/05/07/osf-3-anatomy-of-a-business-solution.aspx</link><pubDate>Mon, 07 May 2007 23:12:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2467675</guid><dc:creator>Atanu</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2467675.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2467675</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Office Business Applications (or&amp;nbsp;OBAs)&amp;nbsp;represent a good way to provide solutions for cross-functional business processes. Office Client applications allow users to interact with systems from using familiar interfaces. Office servers bring together structured and unstructured processes, data and documents. However it is important to understand that the platform capabilities required to support a business process, are more than just what you get with the Office System.&amp;nbsp;The good news though, is that&amp;nbsp;the Office system is a good way to surface capabilities from other platform technologies&amp;nbsp;e.g.&amp;nbsp;SQL Server (data, integration&amp;nbsp;/ reporting / analysis services), BizTalk Server (business process management / monitoring), Active Directory (identity management).&lt;/p&gt; &lt;p&gt;Before going into details on how to do this, let us&amp;nbsp;look at what the anatomy of a business solution looks like. This will be done from the perspective of a software solution provider - packaging an OBA&amp;nbsp;solution for subsequent deployment and implementation at a customer location. This high level overview will set the stage for more detailed drilldown in subsequent blog posts. &lt;/p&gt; &lt;p&gt;Any business solution will need to include some (or all) of the following elements.&amp;nbsp;All of these elements&amp;nbsp;can be supported through an OBA.&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Roles:&lt;/strong&gt; Most solution providers won't know up-front who the users in the system are going to be. However they can (and should) partition artifacts of the solution by role. Later&amp;nbsp;when the OBA is deployed, and actual users are assigned to roles, then these users should automatically have solution artifacts for their roles become available to them.&amp;nbsp;Another benefit&amp;nbsp;is that knowledge networks within the enterprise become explicit (e.g. who knows what, how to search for persons by skillset).&lt;br&gt;&lt;strong&gt;Implications for OBA:&lt;/strong&gt; Consider role specific SharePoint dashboards and personalization sites. Later when people are assigned roles, then links to their dashboards / personalization sites should automatically appear on their 'My Site's i.e. auto-discovery of tasks, documents, reports, ... etc that are part of their job.  &lt;li&gt;&lt;strong&gt;Information Channels:&lt;/strong&gt; Different roles can receive information&amp;nbsp;through various channels e.g. through a web portal (i.e. ASP.Net, SharePoint), through an Office client document, through a mobile device, through a smart client application, through IM (i.e. Office Communicator). The business solution not only needs to support these multiple modes of information distribution, but also extends the reach of these front end systems into data stores in the back office.&lt;br&gt;&lt;strong&gt;Implications for OBA: &lt;/strong&gt;Consider the information architecture holistically e.g.&amp;nbsp;design&amp;nbsp;SharePoint site hierarchies and document libraries to match business processes, roles&amp;nbsp;and&amp;nbsp;organization structure.&amp;nbsp;Key artifacts (e.g. documents,&amp;nbsp;dashboards etc.) related to&amp;nbsp;particular business processes can be arranged in the context of this information architecture. Office client applications can be extended through process specific add-ins that plug into these information structures. Consider using VSTO SE to build these add-ins.  &lt;li&gt;&lt;strong&gt;Process: &lt;/strong&gt;There is a spectrum of business process from collaborative (e.g. people-to-people interactions) to transactional&amp;nbsp;(e.g. structured people-to-system, and system-to-system interactions). Any business solution needs to be able to represent business process that enables the right level of visibility and monitoring.&lt;br&gt;&lt;strong&gt;Implications for OBA&lt;/strong&gt;: For document routing within&amp;nbsp;a team or organization, consider using Workflow technologies within SharePoint. These might be simple sequential workflows that extract information out of documents that get added to document library, or might be complex state machine worflows that coordinate tasks / document routing across subordinate workflows. For managing the lifecycle of business processes / business entities (esp. when coordinating across multiple groups or organizations), consider using BizTalk to handle business processes external to SharePoint.  &lt;li&gt;&lt;strong&gt;Rules&lt;/strong&gt;:&amp;nbsp;Often business processes are fairly static. Once modeled, they are not updated very frequently. More often the dynamic elements of a business process are the business&amp;nbsp;rules that make up the process. Consider externalizing rules from workflows / orchestrations, so that their lifecycle can be managed separately from the lifecycle of the processes that they support.&lt;br&gt;&lt;strong&gt;Implications for OBA&lt;/strong&gt;: For workflows that are embedded in SharePoint, consider management of these through a separate rules service - with a deployment mechanism into SharePoint.  &lt;li&gt;&lt;strong&gt;Events&lt;/strong&gt;: Most people tend to suffer from information overload as part of their job. A typical response to this is to handle business process through a process of Manage-By-Exception. Therefore a business solution might choose to support management of the lifecycle of events / exceptions that are part of the business process. The lifecycle of an event typically is Detection - Notification - Resolution.&lt;br&gt;&lt;strong&gt;Implications for OBA:&lt;/strong&gt; Consider modeling events within SharePoint through a&amp;nbsp;Task libraries that 'own' a particular business event, and reports / dashboards to provide visibility. Consider managing the lifecycle of these events through&amp;nbsp;State Machine workflows running within SharePoint. Alternatively, the lifecycle of these&amp;nbsp;events could be managed by the BPM server (e.g. BizTalk) external to SharePoint, and SharePoint would just act as the visibility layer (for reporting / task management).  &lt;li&gt;&lt;strong&gt;Data&lt;/strong&gt;:&amp;nbsp;In some sense, data is the fuel that drives any&amp;nbsp;business solution.&amp;nbsp;For solution providers, there needs to be a well defined data interface, that clearly marks out the&amp;nbsp;data entities which are consumed in the business process - and which need to be mapped to back end data stores at deployment time.&lt;br&gt;&lt;strong&gt;Implications for OBA&lt;/strong&gt;:&amp;nbsp;Consider modeling business&amp;nbsp;entities, and the actions that can be taken on them, using the&amp;nbsp;BDC (Business Data Catalog,&amp;nbsp;a shared service within MOSS). Solution providers can map these to WSS lists, and then these could be mapped to other back end data stores at deployment time.  &lt;li&gt;&lt;strong&gt;Performance Management:&lt;/strong&gt; In order to support a complete business cycle, a business solution needs to enable roles to plan activities, carry them out, measure the impact, and make appropriate course corrections. These are covered through the following four steps - Monitor, Analyze, Plan, Execute. &lt;strong&gt;Implications for OBA&lt;/strong&gt;: Personalization sites that support particular roles in a business process, should provide artifacts that support each of these four steps e.g.&amp;nbsp;reports / dashbords for monitoring, links to activities for execution, and links to spreadsheets for analysis and planning. These artifacts should plug into the data / information / eventing&amp;nbsp;channels described above. Also consider using Performance Point that plugs into SharePoint, and that provides capabilities for three out of the fours steps listed here (monitor, analyze and plan).&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF3ANATOMYOFABUSINESSSOLUTION_B67D/OBA%5B9%5D.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="272" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF3ANATOMYOFABUSINESSSOLUTION_B67D/OBA_thumb%5B5%5D.jpg" width="438" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2467675" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item><item><title>OSF 2: What makes architecture for an OBA different?</title><link>http://blogs.msdn.com/atanu/archive/2007/05/04/osf-2-what-makes-architecture-for-an-oba-different.aspx</link><pubDate>Fri, 04 May 2007 13:51:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2408617</guid><dc:creator>Atanu</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2408617.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2408617</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;An OBA is an emerging class of business application that&amp;nbsp;bridges the gap between productivity tools like MS Office, and back-office systems such as ERP and other line-of-business applications. My colleague Mike Walker discusses this in more detail in blog postings&amp;nbsp;&lt;a href="http://blogs.msdn.com/mikewalker/archive/2007/03/29/what-are-obas.aspx" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://blogs.msdn.com/mikewalker/archive/2007/03/29/what-types-of-obas-are-there.aspx" target="_blank"&gt;here&lt;/a&gt;&amp;nbsp;- so I'm not going to talk about what an OBA is. I'll just focus on&amp;nbsp;what makes architecture for an OBA different from that of traditional enterprise applications.&lt;/p&gt; &lt;p&gt;Most business applications fall into one of three categories today:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Transactional apps (traditionally data entry such as&amp;nbsp;processing orders)  &lt;li&gt;Collaborative apps (traditionally email, FTP, or IM)  &lt;li&gt;Decision Support apps (traditionally BI tools for reporting, or analytics)&amp;nbsp;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;An OBA is different - you can think of this as a composite that combines elements of&amp;nbsp;ALL three of these kinds of applications, and in ways that can be personalized by end users. For example an OBA might be a set of role-specific dashboards that offer document sharing and management, reports, forms, and real-time communications - all in the context of specific business functions.&lt;/p&gt; &lt;p&gt;Now consider a traditional 3-tier architecture for business apps:&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF2WhatmakesarchitectureforanOBAdiffere_361E/ThreeTiers2.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="194" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF2WhatmakesarchitectureforanOBAdiffere_361E/ThreeTiers_thumb.jpg" width="304" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;This model works well only for the first kind of applications - the transactional ones (e.g. data entry). However it incompletely describes&amp;nbsp;applications for decision support or collaboration. The problem is that it doesn't account for the differences between human workflows (e.g. people-to-people interactions) and system workflows (e.g. automation of business proceses). Human workflows involve people and roles, while system workflows involve applications and services. Human workflows are flexible and dynamic, while system workflows are prescriptive and&amp;nbsp;formalized. Human workflows revolve around unstructured data and documents, while system workflows involve a different set of structured and / or transactional data.&lt;/p&gt; &lt;p&gt;So an architecture for an OBA needs to accomodate five separate tiers as shown below. This does not mean that all OBAs must have&amp;nbsp;ALL five tiers, although this might be expected from&amp;nbsp;OBAs that&amp;nbsp; deliver composition across all three types of business applications above.&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF2WhatmakesarchitectureforanOBAdiffere_361E/FiveTiers2.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="323" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF2WhatmakesarchitectureforanOBAdiffere_361E/FiveTiers_thumb.jpg" width="448" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So for example, the five tiers in this figure could be mapped to specific platform capabilities as follows.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF2WhatmakesarchitectureforanOBAdiffere_361E/OBASchematic5.jpg" atomicselection="true"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="492" src="http://blogs.msdn.com/blogfiles/atanu/WindowsLiveWriter/OSF2WhatmakesarchitectureforanOBAdiffere_361E/OBASchematic_thumb3.jpg" width="467" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2408617" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item><item><title>OSF 1: Introduction to the OBA Solutions Framework</title><link>http://blogs.msdn.com/atanu/archive/2007/05/03/osf-1-introduction-to-the-oba-solutions-framework.aspx</link><pubDate>Fri, 04 May 2007 03:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2402378</guid><dc:creator>Atanu</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/atanu/comments/2402378.aspx</comments><wfw:commentRss>http://blogs.msdn.com/atanu/commentrss.aspx?PostID=2402378</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.oba-blogathon.com"&gt;[OBA Solution Framework Index]&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The set of blog postings tagged OSF will provide architectural guidance on how to build / package / deploy / deliver business applications on&amp;nbsp;the Microsoft Platform, using Microsoft Office (Client / Server) and other platform technologies.&amp;nbsp;These solutions&amp;nbsp;are called OBAs (Office Business Applications) as they heavily leverage the new&amp;nbsp;technologies&amp;nbsp;in SharePoint&amp;nbsp;v 3.0 (MOSS / WSS) and the Office Client. However OBAs also pull through capabilities of a number of other platform technologies e.g. SQL Server (and IS, RS, AS), BizTalk, Performance Point, and the core .Net 3.0 Framework. &lt;/p&gt; &lt;p&gt;The OSF is not a product, nor even an official MS code name, but&amp;nbsp;instead a unified&amp;nbsp;set of architectural guidance (plus ref.&amp;nbsp;architecture&amp;nbsp;and ref. code) for building OBAs. I work on solution architecture in the Microsoft Architecture Strategy Team. This team (AST) works with customers, partners and the larger architect community to help come up with innovative ways to put our different technologies together. Over the past year and a half&amp;nbsp;I've been looking at the architecture of business applications in the enterprise, and focussing on OBAs. As I've talked to different architects who are trying to build their own OBAs, I've found that I usually get a common set of questions. So over the next month or two, I'm going to put out a set of blog postings on this topic -&amp;nbsp;each around a different question - and I'm infomally calling this the OBA Solution Framework. &lt;/p&gt; &lt;p&gt;I'm going to focus on three broad areas in my set of postings:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;What are the kinds of solutions that I can build as OBAs? What are the application patterns?  &lt;li&gt;What are the infrastructure / operational implications of OBAs?  &lt;li&gt;What would Management / Governance of OBA solutions look like? For example, SDLC (Software Dev LifeCycle)? ALM (Application LifeCycle Management)?&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Needless to say, feedback / discussion / comments on any of the postings in the OSF are very welcome :-). Also my views are that of a solution architect, and not the official views of the various&amp;nbsp;Office development teams.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2402378" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA+Solution+Framework/default.aspx">OBA Solution Framework</category><category domain="http://blogs.msdn.com/atanu/archive/tags/OBA/default.aspx">OBA</category></item></channel></rss>
