<?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"
	>

<channel>
	<title>Brandon Werner</title>
	<atom:link href="http://www.brandonwerner.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandonwerner.com</link>
	<description>Brandon Werner writes about business, leadership and technology with special emphasis on cloud computing, concurrency, and high performance architectures</description>
	<pubDate>Mon, 25 Aug 2008 23:02:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Microsoft Live Mesh on Apple Mac OS X</title>
		<link>http://www.brandonwerner.com/2008/08/25/microsoft-live-mesh-on-apple-mac-os-x/</link>
		<comments>http://www.brandonwerner.com/2008/08/25/microsoft-live-mesh-on-apple-mac-os-x/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 09:46:28 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Live Mesh]]></category>

		<category><![CDATA[Live Platform]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[OSX]]></category>

		<category><![CDATA[Operating Systems]]></category>

		<category><![CDATA[REST]]></category>

		<category><![CDATA[Software Design Patterns]]></category>

		<category><![CDATA[Software Frameworks]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[.mac]]></category>

		<category><![CDATA[JSON]]></category>

		<category><![CDATA[live]]></category>

		<category><![CDATA[mesh]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[RSS]]></category>

		<category><![CDATA[silverlight]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=367</guid>
		<description><![CDATA[This is a screenshot of Mesh running on the Silverlight platform on Mac OS X. Pretty neat example of the future.
By the way, if your interested in developing for Live Mesh, there are some new videos posted on Microsoft Videos  that provide an impressive amount of content. The RESTful services and the Pub/Sub model [...]]]></description>
			<content:encoded><![CDATA[<p>This is a screenshot of Mesh running on the Silverlight platform on Mac OS X. Pretty neat example of the future.</p>
<p>By the way, if your interested in developing for Live Mesh, <a href="http://preview.microsoft.com/video/videoDetails.aspx?video=081d3b89-97c1-4d9a-b93a-1f6fc57d40fc&#038;vp_evt=eref&#038;vp_video=Live+Mesh+for+Developers" title="Live Mesh for Developers">there are some new videos posted on Microsoft Videos</a>  that provide an impressive amount of content. The RESTful services and the Pub/Sub model are of particular interest to me, since I think it will unleash a host of service aggregation possibilities in the future. The ability to ask the cloud to give you JSON or RSS without mapping or conversion is amazing.</p>
<p><a href="http://media.brandonwerner.com/images/silverlight-mac.gif" title="Image of Microsoft Mesh Running In Safari Browser on OS X"><img src="http://media.brandonwerner.com/images/silverlight-mac-small.gif" alt="Microsoft Mesh Running In Safari Browser on OS X" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/08/25/microsoft-live-mesh-on-apple-mac-os-x/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Seattle Heat, Software Transactional Memory, Cloud Computing Storage, and me</title>
		<link>http://www.brandonwerner.com/2008/08/16/seattle-heat-software-transactional-memory-cloud-computing-storage-and-me/</link>
		<comments>http://www.brandonwerner.com/2008/08/16/seattle-heat-software-transactional-memory-cloud-computing-storage-and-me/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 17:10:32 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[C#]]></category>

		<category><![CDATA[Concurrency]]></category>

		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Haskell]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Software Architecture]]></category>

		<category><![CDATA[Software Development]]></category>

		<category><![CDATA[Software Languages]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[ada]]></category>

		<category><![CDATA[boxwood]]></category>

		<category><![CDATA[closures]]></category>

		<category><![CDATA[concurrent]]></category>

		<category><![CDATA[concurrent+haskell]]></category>

		<category><![CDATA[generic+programming]]></category>

		<category><![CDATA[GIGA]]></category>

		<category><![CDATA[gpfs]]></category>

		<category><![CDATA[haskell]]></category>

		<category><![CDATA[high+perforamce+computing]]></category>

		<category><![CDATA[HPC]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[microsoft+research]]></category>

		<category><![CDATA[software+transactional+memory]]></category>

		<category><![CDATA[stephanov]]></category>

		<category><![CDATA[stm]]></category>

		<category><![CDATA[summer+sucks]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=339</guid>
		<description><![CDATA[Here in Seattle we are in the middle of a mini heat-wave, which usually means to our sensitive and water worn skin that the temperature is above 80 degrees. However, we&#8217;ve run in to a stretch of 90 degree weather these last few days - and since Seattle seems proud of its lack of air [...]]]></description>
			<content:encoded><![CDATA[<p>Here in Seattle we are in the middle of a mini heat-wave, which usually means to our sensitive and water worn skin that the temperature is above 80 degrees. However, we&#8217;ve run in to a stretch of 90 degree weather these last few days - and since Seattle seems proud of its lack of air conditioning it&#8217;s much worse here than other places that get that hot regularly. In Cincinnati you would go from air conditioned homes to air conditioned cars to air conditioned office buildings. Here that isn&#8217;t the case. The situation is slightly worse in Redmond since the farther away from the Puget Sound you get the hotter the air. The best you can do is go out for the day, as my condo and most houses don&#8217;t have any air conditioning at all. Worse, all but the wimpiest indoor air conditioners are banned due to decree from the Home Owners Association, which I have come to suspect is a front for the Communist party. After all, the McCarthy trials were happening about the same time suburbs were getting built in the 1950s. Where were the poor communist to hide?</p>
<p>I&#8217;m not saying, I&#8217;m just saying.</p>
<h3>Summer Reading While The Boss Is Away</h3>
<p>If you are elsewhere in the country in late August, chances are you are acting like Seattle folks do the rest of the year - taking refuge inside and away from the weather outside. While you are in your air conditioned home waiting for the last and hottest part of summer to pass, why not do some good reading to prepare for the fall when everyone returns from vacation and you get back to the serious business of deadlines, programming and of course geeky arguments about the topics of the day. Here is a good reading list to bookmark. </p>
<h3> Get up to speed of Generic Programming, or Programming In General</h3>
<p>My first recommendation is the collected papers of Alexander Stepanov, which you can get from his website entitled&#8230; <a href="http://www.stepanovpapers.com/" title="Collected Papers of Alexander Stepanov">Collected Papers of Alexander Stepanov</a>. For those who don&#8217;t know, Stepanov is the key person behind the C++ Standard Template Library, which he started to develop around 1993. He had earlier been working for Bell Labs close to Andrew Koenig and tried to convince Bjarne Stroustrup to introduce something like Ada Generics in C++. His papers are a treasure of thought on generic programming, logic, robotics and anything else that made you turn to the Computer Science page in your university&#8217;s catalog. Best of all he also provides slides for his book in progress, written with Paul McJones, called Programming Elements. This is a great book for refreshing your knowledge of abstract and concrete concepts in quick and easy powerpoint format. Just take a look at the table of contents and I dare you not to click on at least one of the Chapter links. Don&#8217;t worry, I won&#8217;t tell.</p>
<h3>The &#8220;Core&#8221; Debate of the Community: Concurrent Programming and Software Transaction Memory</h3>
<p>Yes, the pun was bad. It does however illustrate one of the facets of the problem that is burning up academic and commercial researchers alike, and responsible for a large amount of papers flooding the ACM portal: Software Transactional Memory (STM). Well, actually, that&#8217;s a possible answer to the problem - not the problem itself. They are often confused now. The problem is that since Intel and AMD have decided to start introducing more cores on to single chip we have to deal with the big problem that comes along with that: managing the threads of multiple cores trying to do the same work on behalf of the system it&#8217;s working for. It also scales in to bigger problems of any type of work you may want to farm off to &#8220;locales&#8221; that may need to cross boundaries and work on the same data within a transaction (for more information on some of this, <a href="http://www.brandonwerner.com/2008/06/16/thoughts-on-googles-conference-on-scalability-in-seattle/" title="Thoughts On Google’s Conference on Scalability In Seattle">see my post from the Google Scalability Conference</a> regarding Cray&#8217;s work to replace MPI with a new concurrent language Chapel and the GIGA+ filesystem below) </p>
<p>I think <a href="http://research.microsoft.com/~simonpj/" title="Simon Peyton Jones">Simon Peyton Jones</a> from Microsoft Research in Cambridge illustrates it best in his paper <a href="http://research.microsoft.com/~simonpj/papers/stm/#composable" title="Composable Memory Transactions">Composable Memory Transactions</a>(PPOPP&#8217;05) :</p>
<blockquote><p> The dominant programming technique is based on locks, an approach that is simple and direct, but that simply does not scale with program size and complexity. To ensure correctness, programmers must identify which operations conﬂict; to ensure liveness, they must avoid introducing deadlock; to ensure good performance, they must balance the granularity at which locking is performed against the costs of ﬁne-grain locking. Perhaps the most fundamental objection, though, is that lock-based programs do not compose: correct fragments may fail when combined. For example, consider a hash table with thread-safe insert and delete operations. Now suppose that we want to delete one item A from table t1, and insert it into table t2; but the intermediate state (in which neither table contains the item) must not be visible to other threads. Unless the implementor of the hash table anticipates this need, there is simply no way to satisfy this requirement. Even if she does, all she can do is expose methods such as LockTable and UnlockTable – but as well as breaking the hash-table abstraction, they invite lock-induced deadlock, depending on the order in which the client takes the locks, or race conditions if the client forgets. Yet more complexity is required if the client wants to await the presence of A in t1, but this blocking behaviour must not lock the table (else A cannot be inserted). In short, operations that are individually correct (insert, delete) cannot be composed in to larger correct operations. </p></blockquote>
<p>The most that has come out of this is that we know it&#8217;s a problem and we&#8217;d love to use the keyword &#8220;atomic&#8221; to wrap our transactional code in our languages. Beyond that, it&#8217;s a lot of hand waiving and Powerpoint slides. Some people though are actually trying to work it out. The best starting point here are the papers from the before mentioned researcher Simon Peyton Jones. His <a href="http://research.microsoft.com/~simonpj/papers/stm/" title="Papers and presentations about transactional memory in Haskell">collection of papers on STM</a> offers a good starting point of the problem and what some possible solutions are. In his papers he uses Haskell, and his work has led to <a href="http://haskell.org/ghc/docs/papers/concurrent-haskell.ps.gz" title="Concurrent Haskell"> Concurrent Haskell</a>. Haskell lends itself to STM for reasons I won&#8217;t go in to here, but it will be quite a bit more of a challenge to get the same functionality in Java and C#, but there is already an <a href="http://research.microsoft.com/research/downloads/Details/6cfc842d-1c16-4739-afaf-edb35f544384/Details.aspx?CategoryID=" title="C# Software Transactional Memory">API for C# Software Transactional Memory from Microsoft Research</a> you may want to explore.</p>
<p>If you don&#8217;t care about this, just don&#8217;t go naming classes atomic and you should be fine.</p>
<h3>Storing The Cloud: How Do We Scale?</h3>
<p>Solid State (read: Flash) drives aren&#8217;t the only thing showing the age of our old file system technologies. As we expose software as services and begin taking on large numbers of tenants for our software, cloud computing needs clusters with thousands of nodes that, with the multi-core technology mentioned above, will impose a challenge for storage systems. We will need the ability to scale to handle data generated by applications executing in parallel in tens of thousands of threads. There have been some solutions posed, such as <a href="http://www-03.ibm.com/systems/clusters/software/gpfs/index.html" title="IBM General Parallel File System">IBM General Parallel File System (GPFS)</a> and Microsoft Research&#8217;s <a href="http://research.microsoft.com/research/sv/Boxwood/boxwoodOSDI04.pdf" title="Boxwood: Abstractions as the Foundation for Storage Infrastructure">Boxwood</a> technology. </p>
<p>I was lucky enough to watch a presentation on GIGA+, another solution that is being researched by Swapnil V. Patil at Carnegie Mellon University. One of its neatest ideas is leaving the header-table behind, using a bitmap instead. I got to sit down with him afterward and talk about the challenges we face in this space. It was a great time. His primary concern about GPFS and Boxwood is the use of hashing and B-trees, which causes the possibility of bottlenecks and synchronization issues. By using a bitmap, and keeping it small so that it can be shared across nodes easily, GIGA+ eliminates a need for &#8220;metanodes&#8221; or other controllers on the HPC storage architecture.</p>
<p>His paper, <a href="http://www.pdl.cmu.edu/PDL-FTP/HECStorage/sc07-patil.pdf" title="GIGA+ : Scalable Directories for Shared File Systems">GIGA+ : Scalable Directories for Shared File Systems</a>, is a great read for those interested both in the problem of high-performance computing and storage. Their work seeks to maintain the UNIX file structure however, so those who care about scaling Microsoft infrastructure may find less to enjoy, but the overall architecture and problems outlined in the paper is applicable to any massively large storage cluster technology. </p>
<h3>Enough Already</h3>
<p>That should be enough to get you through August. When your boss comes back from his Alaskan cruise, nothing will ensure he leaves you alone more than talking about Concurrent Haskell or how much you enjoyed Chapter 9 of Programming Elements: Algorithms on increasing ranges. Enjoy the air conditioning you lucky bums.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/08/16/seattle-heat-software-transactional-memory-cloud-computing-storage-and-me/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Harvard Business Review: 8 Things We Hate About IT - Susan Cramm</title>
		<link>http://www.brandonwerner.com/2008/08/05/harvard-business-review-8-things-we-hate-about-it-susan-cramm/</link>
		<comments>http://www.brandonwerner.com/2008/08/05/harvard-business-review-8-things-we-hate-about-it-susan-cramm/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 17:08:33 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Business]]></category>

		<category><![CDATA[Enterprise Technology]]></category>

		<category><![CDATA[Industry]]></category>

		<category><![CDATA[Management]]></category>

		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/2008/08/05/harvard-business-review-8-things-we-hate-about-it-susan-cramm/</guid>
		<description><![CDATA[If you don&#8217;t read Susan Cramm&#8217;s articles at HBR, you should. It has great stuff that deals with the intersection of technology and business in brutally honest fashion. Cramm has been both a CIO and CFO, so she&#8217;s seen it from both sides and gives a honest and direct point of view from the business [...]]]></description>
			<content:encoded><![CDATA[<p>If you don&#8217;t read <a href="http://discussionleader.hbsp.com/cramm/" title="Susan Cramm on HBR">Susan Cramm&#8217;s</a> articles at HBR, you should. It has great stuff that deals with the intersection of technology and business in brutally honest fashion. Cramm has been both a CIO and CFO, so she&#8217;s seen it from both sides and gives a honest and direct point of view from the business space. <a href="http://discussionleader.hbsp.com/cramm/2008/06/8-things-we-hate-about-it.html" title="Eight Things We Hate About It">This particular podcast</a> from the Harvard Business Review talks about these frustrations in general terms. We should figure out how perhaps our behavior and processes can lead to this frustration (I can think of a few) </p>
<p><a href="http://discussionleader.hbsp.com/cramm/2008/06/8-things-we-hate-about-it.html" title="8 Things We Hate About IT">http://discussionleader.hbsp.com/cramm/2008/06/8-things-we-hate-about-it.html</a> </p>
<p>Overview: </p>
<ol>
<li><strong>IT Limits Managers&#8217; Authority</strong> You bring in 10% of the company&#8217;s revenue but can&#8217;t authorize a $100,000 project if it requires IT. Furthermore, IT&#8217;s bureaucratic governance process rivals the tax code in complexity and inhibits rather than promotes innovation. </li>
<li><strong>They&#8217;re Missing Adult Supervision</strong> The CIO is impressive, but totally unavailable. So the next best option is your IT &#8220;relationship manager&#34; who&#8217;s a few clicks down the evolutionary scale and doesn&#8217;t have the breadth of expertise to truly act as a trusted IT advisor to senior business executives. </li>
<li><strong>They&#8217;re Financial Extortionists</strong> When was the last time there <em>wasn&#8217;t</em> some emergency in IT (e.g. Y2K, SOX, HIPAA) that requires a zillion dollars? Compound this with the lack of visibility into how IT spends non-project dollars and it makes you want to become a technology vendor to cash in on the booty. </li>
<li><strong>Their Projects Never End</strong> In-process projects are always 90% done. &#34;Completed&#34; projects don&#8217;t have agreed to functionality, and the team that promises to deliver missing functionality in future phases are always mysteriously missing-in-action. </li>
<li><strong>The Help Desk is Helpless</strong> When glitches emerge, you are become a technology pauper, going door-to-door begging for help while functional specialists defend the reliability of their piece of the byzantine infrastructure. </li>
<li><strong>They Let Outsourcers Run Amok</strong> You know that outsourcing wasn&#8217;t really IT&#8217;s idea, but you blame them when you&#8217;re trying to communicate with external &#8220;service&#8221; providers that lack even a basic understanding of your business. It&#8217;s like trying to teach calculus to a 4 year old. </li>
<li><strong>IT is Stocked with Out-of-Date Geeks</strong> It&#8217;s not good when you learn about social networking from your 12-year old at home while IT is still trying to cope with email. Then, when you try to brainstorm with IT about how to apply new technology, you get paternalistic responses akin to the look that parents give their children when they play dress up. </li>
<li><strong>IT Never Has Good News</strong> No matter how much you spend and how hard you work, you never have anything to celebrate and little to look forward to as the promise of technology seems perpetually beyond your reach. </li>
</ol>
<p>What do you think of this list? Is it out of line or hit uncomfortably close to home?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/08/05/harvard-business-review-8-things-we-hate-about-it-susan-cramm/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FYI: The New Communications of the ACM Redesign makes it the best comp sci magazine on earth.</title>
		<link>http://www.brandonwerner.com/2008/06/29/fyi-the-new-communications-of-the-acm-redesign-makes-it-the-best-comp-sci-magazine-on-earth/</link>
		<comments>http://www.brandonwerner.com/2008/06/29/fyi-the-new-communications-of-the-acm-redesign-makes-it-the-best-comp-sci-magazine-on-earth/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 06:21:16 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Technology]]></category>

		<category><![CDATA[acm]]></category>

		<category><![CDATA[Association+for+Computing+Machinery]]></category>

		<category><![CDATA[cacm]]></category>

		<category><![CDATA[communication+of+the+ACM]]></category>

		<category><![CDATA[compsci]]></category>

		<category><![CDATA[computer+science]]></category>

		<category><![CDATA[JAMA]]></category>

		<category><![CDATA[journal]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=292</guid>
		<description><![CDATA[ A while ago ACM embarked on an ambitious mission: to change their flagship publication, Communications of the ACM, for Association for Computing Machinery members, in to the JAMA of Computer Science. If this new issue of the re-designed CACM is any indication, they will succeed. In the first few pages we have quantum computing, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://media.brandonwerner.com/media/acm-com.gif"><img src="http://media.brandonwerner.com/images/acm-com-small.gif" alt="Communications of the ACM July 08" /></a> A while ago ACM embarked on an ambitious mission: to change their flagship publication, Communications of the ACM, for Association for Computing Machinery members, in to the JAMA of Computer Science. If this new issue of the re-designed CACM is any indication, they will succeed. In the first few pages we have quantum computing, modeling to eliminate errors in software, an analysis of cloud computing, a debate about the future of the computer science curriculum and what it means for their career path as programming becomes offshored, and the history of the IT industry in India. </p>
<p>.. and I&#8217;m only on page 33.</p>
<p>There are 112 pages.</p>
<p>It use to be that way - back from the inception of CACM on through the 1970s the magazine was a collection of computer science research for the academic professional. However, as the 1980s and 1990s moved computers in to people&#8217;s homes and the IT field changed from Phds toying with large Turing machines to undergrads who used Visual Basic and Java for basic business purposes, the magazine changed. These new practitioners didn&#8217;t come from the academic field, didn&#8217;t really understand the basic underpinnings of a computer, and usually didn&#8217;t care. The funding of the ACM dried up as well, even as the number of people in the field boomed. The CACM changed to grab these people by becoming more of a mainstream magazine geared towards those new entrants - maybe to attract these people to the ACM membership. It didn&#8217;t seem to work. The magazine lost its way.</p>
<p>Now we are once again approaching a change in the computer science field. Much like the way Cloud Computing is taking us back to the large machines in the back rooms and thin clients at the edge, software engineering is changing back from large numbers of engineers with basic knowledge to a smaller number with more specialized knowledge. The Googles of this world are not as worried about basic applications written across millions of detached machines - things that usually create reusable patterns and easy software construction from a weekend&#8217;s reading of O&#8217;Reilly books. Instead, they are worried about problems of concurrency, massively scalable storage systems and parallel processing while sharing the same memory space. The choice of the language has changed to an implementation detail to express these ideas and can be interchangeable. These problems require knowledge of tuples and binary trees and graph theory, to name a few.</p>
<p>At the same time programming jobs that boomed in the 90s and 00s are being outsourced to cheaper and cheaper labor overseas with the harder proofs being demonstrated once on the internet and then communicated across the world for others to incorporate. Pre-packaged software for businesses are becoming more configurable to existing systems and removing the need for custom software from programmers in non-software companies. This means that those who are serious about the profession are diving deeper in to the roles of architect, designer and academic - while those whom aren&#8217;t as interested are moving on to other careers. These two changes are providing an entrance for a journal like CACM to come alive again and publish the best research available needed to solve these hard problems.</p>
<p>The new CACM couldn&#8217;t come at a better time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/06/29/fyi-the-new-communications-of-the-acm-redesign-makes-it-the-best-comp-sci-magazine-on-earth/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Typical Architecture Roles in an Enterprise Environment</title>
		<link>http://www.brandonwerner.com/2008/06/23/typical-architecture-roles-in-an-enterprise-environment/</link>
		<comments>http://www.brandonwerner.com/2008/06/23/typical-architecture-roles-in-an-enterprise-environment/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 05:29:04 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Enterprise Architecture]]></category>

		<category><![CDATA[Enterprise Technology]]></category>

		<category><![CDATA[Service Oriented Architecture]]></category>

		<category><![CDATA[Software Architecture]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[architects]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[Enterprise Software]]></category>

		<category><![CDATA[integration]]></category>

		<category><![CDATA[responsibilities]]></category>

		<category><![CDATA[roles]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=291</guid>
		<description><![CDATA[I created the following slide on typical architecture roles and I thought I&#8217;d share it.

Typical Architecture Team
Enterprise Architects
Primary role is to manage large scale product and process integrations and determine which products and processes are best suited to deliver on business requirements. They control the large picture of how everything works in an organization and [...]]]></description>
			<content:encoded><![CDATA[<p>I created the following slide on typical architecture roles and I thought I&#8217;d share it.</p>
<p><a href="http://media.brandonwerner.com/images/arch-roles.png" title="Typical Architecture Roles in an Enterprise Environment" rel="lighthouse"><img src="http://media.brandonwerner.com/images/arch-roles-small.gif" alt="Typical Architecture Roles in an Enterprise Environment" /></a></p>
<h3>Typical Architecture Team</h3>
<h4>Enterprise Architects</h4>
<p>Primary role is to manage large scale product and process integrations and determine which products and processes are best suited to deliver on business requirements. They control the large picture of how everything works in an organization and maintains this in a centralized location. They should be experts in software and enterprise design methodologies with experience in how large systems interact and manage data. These architects are essential to competitive and cost-effective decision making and use of technologies.</p>
<p><em>Water-Cooler Talk:</em> The latest research in to The Staged Event-Driven Architecture for Highly Concurrent Server Applications  </p>
<h4>Integration Architects</h4>
<p>This is an emerging role in larger companies that have large and complicated deployments, particularly around Service Oriented Architecture (SOA). They are usually the ones that have the task of managing Business Processes. Put simply, they tie the software platforms the Software Architect designs together on the environments the Enterprise Architects deliver and purchase. Although Enterprise Architects are typically restricted to existing thinking and technology products, it is the combination of Integration and Software Architects that differentiate an organization and provide maximum benefit.</p>
<p><em>Water-Cooler Talk:</em> How to change the business workflow so that they can be quicker than their competitors. May need to talk to the Software Architects about how the platform can be changed for quicker processing too.</p>
<h4>Software Architects</h4>
<p>Primary role is to take architectural directions and artifacts and produce and manage a software platform that  provides strategic and operational advantage to an organization. They are usually the ones who maintain the core frameworks of an organization and are considered the gurus of whatever technology they design for. They are very important as they tend to add order and discipline to projects and ensure that best practices, appropriate abstraction and code re-use occurs. These architects are essential to good outsourcing of software development, especially near-shore and off-shore.</p>
<p><em>Water-Cooler Talk:</em> The latest research in to how Dependency Injection in Java 5 eliminates the need for the Composite Entity pattern in enterprise development.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/06/23/typical-architecture-roles-in-an-enterprise-environment/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gartner Podcast: SOA Lessons Learned From the Trenches</title>
		<link>http://www.brandonwerner.com/2008/06/22/gartner-podcast-soa-lessons-learned-from-the-trenches/</link>
		<comments>http://www.brandonwerner.com/2008/06/22/gartner-podcast-soa-lessons-learned-from-the-trenches/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 04:58:03 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Enterprise Architecture]]></category>

		<category><![CDATA[Enterprise Technology]]></category>

		<category><![CDATA[Service Oriented Architecture]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[bpel]]></category>

		<category><![CDATA[bpm]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[Enterprise Software]]></category>

		<category><![CDATA[gartner]]></category>

		<category><![CDATA[lessons+learned]]></category>

		<category><![CDATA[podcast]]></category>

		<category><![CDATA[services]]></category>

		<category><![CDATA[soa]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=290</guid>
		<description><![CDATA[Gartner came out with a good podcast of one of their sessions from the Gartner Enterprise Architecture Summit. It is a very informative panel discussion about &#8220;Lessons Learned From the Trenches&#8221; with SOA/Enterprise Architecture. Anyone who is an Enterprise Architect or Technology/Business Executive embracing the change and possibilities of SOA in their organization will want [...]]]></description>
			<content:encoded><![CDATA[<p><a href="www.gartner.com" title="Garnter Analyst">Gartner</a> came out with a good podcast of one of their sessions from the Gartner Enterprise Architecture Summit. It is a very informative panel discussion about &#8220;Lessons Learned From the Trenches&#8221; with SOA/Enterprise Architecture. Anyone who is an Enterprise Architect or Technology/Business Executive embracing the change and possibilities of SOA in their organization will want to give it a listen. Chances are very good you&#8217;ll be vigorously nodding your head and maybe even feeling a little bit better about yourself knowing you are not alone in dealing with these problems.</p>
<p>Much of the conversation is about how to drive SOA adoption (it appears relying on developers to browse a repository is not working), how to measure cost benefits and savings to an organization (hint: measure your service reuse) and how they approach funding services which may not have an exact business advocate and therefore pocketbook to work against.</p>
<p>The last piece comes up all the time in organizations implementing a service oriented architecture. There are many business areas that would benefit from a high level &#8220;business service&#8221; which would result from the orchestration through externalized business logic (BPM/BPEL) of lower level &#8220;technology services&#8221;. Yet, if asked who would fund these lower level technology services so that the business services can emerge, the money dries up. Many take on the model of &#8220;first to need, first to pay&#8221; but that only works when the technology services and service orchestration aren&#8217;t that expensive. It&#8217;s hard to get project specific business users to fund enterprise wide services for the &#8220;greater good&#8221;. It&#8217;s something that has yet to be solved.</p>
<p>Here is the <a href="http://www.gartnerinfo.com/eainsider/ea8_ea11b_panel.mp3" title="SOA Lessons Learned From the Trenches">link</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/06/22/gartner-podcast-soa-lessons-learned-from-the-trenches/feed/</wfw:commentRss>
<enclosure url="http://www.gartnerinfo.com/eainsider/ea8_ea11b_panel.mp3" length="12610935" type="audio/mpeg" />
		</item>
		<item>
		<title>Google Scalability Conference: Haskell with DHT for Wikipedia / GIGA+ Filesystem</title>
		<link>http://www.brandonwerner.com/2008/06/20/google-scalability-conference-haskell-with-dht-for-wikipedia-giga-filesystem/</link>
		<comments>http://www.brandonwerner.com/2008/06/20/google-scalability-conference-haskell-with-dht-for-wikipedia-giga-filesystem/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 17:34:25 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Concurrency]]></category>

		<category><![CDATA[Enterprise Software]]></category>

		<category><![CDATA[Internet]]></category>

		<category><![CDATA[Seattle]]></category>

		<category><![CDATA[Software Architecture]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[compsci]]></category>

		<category><![CDATA[conference]]></category>

		<category><![CDATA[DHT]]></category>

		<category><![CDATA[filesystems]]></category>

		<category><![CDATA[GIGA]]></category>

		<category><![CDATA[goog]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[hashmaps]]></category>

		<category><![CDATA[hashtable]]></category>

		<category><![CDATA[haskell]]></category>

		<category><![CDATA[memory]]></category>

		<category><![CDATA[research]]></category>

		<category><![CDATA[scalability]]></category>

		<category><![CDATA[software+transactional+memory]]></category>

		<category><![CDATA[stm]]></category>

		<category><![CDATA[transacational]]></category>

		<category><![CDATA[wikipedia]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=289</guid>
		<description><![CDATA[Google just published some of the slides of the Google Scalability conference online that I attended last weekend and wrote a commentary about earlier this week. The two I’d like to call out are the GIGA+ file system (for storage geeks) and the Software Transactional Memory slides (for software geeks). Also, the ideas presented in [...]]]></description>
			<content:encoded><![CDATA[<p>Google just published some of the slides of the <a href="http://groups.google.com/group/seattle-scalability-conference/files" title="Google Seattle Conference on Scalability ">Google Scalability conference online</a> that I attended last weekend and <a href="http://www.brandonwerner.com/2008/06/16/thoughts-on-googles-conference-on-scalability-in-seattle/" title="Thoughts On Google’s Conference on Scalability In Seattle">wrote a commentary about earlier this week</a>. The two I’d like to call out are the <a href="http://seattle-scalability-conference.googlegroups.com/web/google08-gigaplus-slides.pdf?gda=tCL2qU0AAAAZLIR1An_JBJjgo51Lh6WYwwwOU05vV6neyOgjueI1z2G1qiJ7UbTIup-M2XPURDTysIL5llqRBDtkA6wXs7-QGCTnST4StDET9t-GDzP_xg&#038;gsc=-nEfIQsAAAA5IncPOKmnBlBuYB_KXyj_" title="GIGA+ Slides 08">GIGA+ file system</a> (for storage geeks) and the <a href="Google Seattle Conference on Scalability " title="Transactional Memory">Software Transactional Memory slides</a> (for software geeks). Also, the ideas presented in the Wikipedia for Haskell / DHT I found really interesting as well.</p>
<p>Just consider it some light reading for your geek weekend.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/06/20/google-scalability-conference-haskell-with-dht-for-wikipedia-giga-filesystem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thoughts On Google&#8217;s Conference on Scalability In Seattle</title>
		<link>http://www.brandonwerner.com/2008/06/16/thoughts-on-googles-conference-on-scalability-in-seattle/</link>
		<comments>http://www.brandonwerner.com/2008/06/16/thoughts-on-googles-conference-on-scalability-in-seattle/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 08:38:42 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Concurrency]]></category>

		<category><![CDATA[Functional Programming]]></category>

		<category><![CDATA[Haskell]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Service Oriented Architecture]]></category>

		<category><![CDATA[Software Architecture]]></category>

		<category><![CDATA[Software Languages]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Carmen]]></category>

		<category><![CDATA[Chapel]]></category>

		<category><![CDATA[concurrent+haskell]]></category>

		<category><![CDATA[cray]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[DHT]]></category>

		<category><![CDATA[distributed]]></category>

		<category><![CDATA[erlang]]></category>

		<category><![CDATA[GIGA]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[haskell]]></category>

		<category><![CDATA[HPC]]></category>

		<category><![CDATA[HPCS]]></category>

		<category><![CDATA[maidsafe]]></category>

		<category><![CDATA[MapReduce]]></category>

		<category><![CDATA[MPI]]></category>

		<category><![CDATA[NetWorkSpaces]]></category>

		<category><![CDATA[NWS-R]]></category>

		<category><![CDATA[parallel]]></category>

		<category><![CDATA[R]]></category>

		<category><![CDATA[scalability]]></category>

		<category><![CDATA[software+transactional+memory]]></category>

		<category><![CDATA[stm]]></category>

		<category><![CDATA[supercomputing]]></category>

		<category><![CDATA[wikipedia]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=275</guid>
		<description><![CDATA[If you are looking for a good collection of notes regarding the topics covered at the Seattle Conference on Scalability, you can do no better than what James Hamilton put together. Instead, I&#8217;ll write a quick commentary on what I experienced.
Scalability Is Your Problem Too
The goals of the conference are laudable. Scalability is an issue [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://media.brandonwerner.com/images/google-scale.gif" alt="Google Scalability Conference Logo" />If you are looking for a good collection of notes regarding the topics covered at the <a href="http://www.google.com/events/scalability_seattle/" title="Seattle Conference on Scalability">Seattle Conference on Scalability</a>, you can do no better than what <a href="http://perspectives.mvdirona.com/2008/06/15/GoogleSeattleConferenceOnScalability.aspx" title="Google Seattle Conference on Scalability" rel="colleagueOf">James Hamilton put together</a>. Instead, I&#8217;ll write a quick commentary on what I experienced.</p>
<h3>Scalability Is Your Problem Too</h3>
<p>The goals of the conference are laudable. Scalability is an issue that almost all practitioners of software engineering face, especially as we move towards offering services both inside and outside the enterprise. Many are taken off guard by the sudden issues that confront them after wiring up a large scale services-based environment; especially around distributing load, distributing the data, and writing the data quickly. Sadly, I didn&#8217;t see too many people from large companies there - most were software companies like Microsoft, Google, MySpace and Amazon.com. The attendance may be a consequence of the subject matter. This was some intense stuff dealing with MPI at Cray and its hopeful successor, Wikipedia redone with DHT and Erlang, a b-tree vs. Hashmap debate and scalable storage issues when dealing with billions of files. A more fun loving person would have done better going over to Adobe and hanging out at <a href="http://pathable.com/events/barcampseattle" title="BarCampSeattle">BarCampSeattle</a>, which was going on at the same time.</p>
<p>Despite the intimidating material, there are real architectural and design issues that these discussions present that should be in the mind of anyone dealing with large datacenters that scale globally or even nationally. The approach of <a href="http://www.sosp2007.org/talks/WIP/1%20-%20sosp07-wip.pdf" title="GIGA+">GIGA+ file storage</a>, maidsafe&#8217;s new computer architecture, and <a href="http://nws-r.sourceforge.net/" title="NetWorkSpaces for R">NetWorkSpaces for the R language</a> was uniform: off-loading responsibility for management of data (meta or otherwise) to all vertices in the deployment graph instead of a central repository. NetWorkSpaces in R and maidsafe even discussed computational scalability - while Cray&#8217;s new <a href="http://chapel.cs.washington.edu/" title="Chapel:The Cascade High-Productivity Language">Chapel language</a> and the discussion around Software Transactional Memory focused on scalability across processing cores as well as machines. </p>
<p><img src="http://media.brandonwerner.com/images/giga.gif" alt="GIGA+ Bitmap Example" /></p>
<p>GIGA+&#8217;s approach of maintaining a small bitmap file on each node and passing that around - while anticipating and accepting stale data on a few edge nodes - was brilliant in the patterns it hinted at, including that perhaps being right all the time isn&#8217;t as important as being fast. You can be right most of the time and accept the performance hit of not being right some of the time. There are many people who would cringe at this, but at this point we&#8217;re going to have to play loose and leave a few balls up in the air as we juggle - doing the math of how often one may fall while keeping the rest going as fast as we can.</p>
<h3>Pay No Attention To The Man Behind The Curtain</h3>
<p>Yet if I had to sum up the content of the conference I would say it was big on strategy and architecture but short on implementation. There was a lot of things hinted at &#8220;behind the curtain&#8221; but nothing assured hand raising from the compsci geeks in the room more than hand waving when you got to the distributed piece of your solution. For instance, one of the big benefits of Chapel - the MPI successor that Bratford Chamberlain of Cray presented - was that you could have distributed arrays and graphs that would be automatically sliced up to be distributed to parallel cores or even other &#8220;locales&#8221; if desired. How the language determines where to split these large arrays and graphs and farm them out was not discussed. One of the more interesting slides was dashed lines drawn across various nodes and vertices of a graph symbolizing how it would be chopped and distributed. Someone in the audience raised their hand at this - but he moved on and the hand went back down. To be fair, Chapel was called a &#8220;multi-resolution&#8221; language where one could start fairly abstract and then add more detail and control to get the best desired result - something I assume you have to do to get good or intelligent chopping and distribution of the data. Given that one of his slides was a comparison of code lines between Fortan using MPI and Chapel: seeing a working code snippet of Chapel would have been helpful. It may turn out to be the same amount of work after you get past the &#8220;global view&#8221;.</p>
<p>This was the trend though, as all of the presentations had a bit of hand waving regarding performance metrics and distribution of computation. This was highlighted by the talk of Vijay Menon of Google - whose work at Intel I was familiar with - discussing Software Transactional Memory. He illustrated the challenges of implementing this in an imperative language (I&#8217;m suspicious you can even do STM well in an imperative language with state - <a href="http://www.brandonwerner.com/2008/01/13/the-rise-of-functional-programming-fscalahaskell-and-the-failing-of-lisp/" title="The Rise Of Functional Programming: F#/Scala/Haskell and the failing of Lisp">as I discussed before</a>) but beyond suggesting the keyword &#8220;atomic&#8221; to replace &#8220;synchronized&#8221; in the Java language there was very little real content discussed for those already familiar with the issue of locks and multiprocessors. <a href="http://en.wikipedia.org/wiki/Concurrent_Haskell" title="Concurrent Haskell on Wikipedia">Concurrent Haskell</a> wasn&#8217;t even mentioned. A better introduction and discussion is to be had by <a href="http://s5.video.blip.tv/1720000615947/OSCON-OSCON2007SimonPeytonJones914.mov" title="OSCON - Simon Peyton-Jones">watching the O&#8217;Reily&#8217;s OSCON video</a> from <a href="http://research.microsoft.com/%7Esimonpj/" title="Simon Peyton-Jones">Simon Peyton-Jones</a> (the writer of GHC and now at Microsoft Research) on the subject. After that, if you&#8217;re still hungry, his collection of <a href="http://research.microsoft.com/%7Esimonpj/papers/stm/" title="Papers and presentations about transactional memory in Haskell">papers on his Microsoft Research site</a> is a delight.</p>
<p>Of course the point of these conferences is the discussions that occur during the breaks and in the networking event afterwards - something that I treasure having newly moved to the Seattle area from Cincinnati. Instead of just observing and blogging from afar - I get to be at the same table as Vijay Menon, <a href="http://www.zib.de/schuett/" title="Thorsten Schuett" rel="colleagueOf">Thorsten Schuett</a>, <a href="http://www.cs.cmu.edu/~svp/" title="Swapnil Patil" rel="colleagueOf">Swapnil Patil</a>, <a href="http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/w/Watson:Paul.html" title="Paul Watson" rev="hasMet colleagueOf">Paul Watson</a> and others.</p>
<h3>Summary of the Architectural Patterns I Saw</h3>
<p>If I had to summarize what I took away from the conference from a high-level architectural stand-point, here are they are:</p>
<ul>
<li>Every node must be aware of the state of every other node without a centralized controller.</li>
<li>To do this, a mechanism should be in place to share state quickly but peer-to-peer.</li>
<li>It&#8217;s ok to let some nodes go stale.</li>
<li> Client/Server is now one thing. Pub/Sub with computation. Every node on the graph should do work.</li>
<li> As much as possible, each node should maintain its own security and state. You should be able to have anonymous resources appear in your data center and be put to use without much configuration.</li>
<li>As much as possible, abstract the distribution of processing away from programmers.</li>
<li>Key,Value with Hashes are best for scalability and distribution (it seems to have won out in all the solutions presented here.) Blame <a href="http://labs.google.com/papers/mapreduce.html" title="MapReduce">MapReduce</a>.</li>
<li>Ants can be used to demonstrate anything.</li>
</ul>
<p>I hope everyone had a good of a time as I did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/06/16/thoughts-on-googles-conference-on-scalability-in-seattle/feed/</wfw:commentRss>
<enclosure url="http://s5.video.blip.tv/1720000615947/OSCON-OSCON2007SimonPeytonJones914.mov" length="46172324" type="video/quicktime" />
		</item>
		<item>
		<title>Presenting Semantic Web at BarCamp Seattle</title>
		<link>http://www.brandonwerner.com/2008/06/13/presenting-semantic-web-at-barcamp-seattle/</link>
		<comments>http://www.brandonwerner.com/2008/06/13/presenting-semantic-web-at-barcamp-seattle/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 18:57:40 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<category><![CDATA[Social Networks]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[appengine]]></category>

		<category><![CDATA[barcamp]]></category>

		<category><![CDATA[barcampseattle]]></category>

		<category><![CDATA[foaf]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[maestro]]></category>

		<category><![CDATA[Seattle]]></category>

		<category><![CDATA[semantic]]></category>

		<category><![CDATA[semanticweb]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=274</guid>
		<description><![CDATA[I will be doing a presentation with Daniel Maycock, an Information Architect from Boeing, at BarCamp Seattle this weekend on the Semantic Web. I&#8217;ll be filling in stuff on FoaF, maybe including my Semantic Maestro project and the results of using Google AppEngine if I can get the engine ported over to Python in time. [...]]]></description>
			<content:encoded><![CDATA[<p>I will be doing a presentation with <a title="Daniel Maycock" href="http://pathable.com/events/barcampseattle/user_profiles/993231946" rev="colleagueOf wouldLikeToKnow">Daniel Maycock</a>, an Information Architect from Boeing, at <a title="BarCamp Seattle" href="http://pathable.com/events/barcampseattle">BarCamp Seattle</a> this weekend on the Semantic Web. I&#8217;ll be filling in stuff on <a title="Friend of a Friend" href="http://www.ibm.com/developerworks/xml/library/x-foaf.html">FoaF</a>, maybe including my <a title="Semantic Maestro" href="http://semanticmaestro.appspot.com">Semantic Maestro</a> project and the results of using Google AppEngine if I can get the engine ported over to Python in time. Chances are it&#8217;ll just be the idea of FoaF, open social networks, users and tools out on the web.</p>
<p>If you will be there, <a title="Brandon Werner on Twitter" href="http://www.twitter.com/bbjwerner">let me know</a> be sure to say hi!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/06/13/presenting-semantic-web-at-barcamp-seattle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ACM Article: Restful web services vs. big web services: making the right architectural decision</title>
		<link>http://www.brandonwerner.com/2008/06/03/acm-article-restful-web-services-vs-big-web-services-making-the-right-architectural-decision/</link>
		<comments>http://www.brandonwerner.com/2008/06/03/acm-article-restful-web-services-vs-big-web-services-making-the-right-architectural-decision/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 13:54:15 +0000</pubDate>
		<dc:creator>Brandon Werner</dc:creator>
		
		<category><![CDATA[Enterprise Software]]></category>

		<category><![CDATA[IBM]]></category>

		<category><![CDATA[J2EE]]></category>

		<category><![CDATA[SOAP]]></category>

		<category><![CDATA[Service Oriented Architecture]]></category>

		<category><![CDATA[Software Architecture]]></category>

		<category><![CDATA[Software Languages]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Websphere Process Server]]></category>

		<category><![CDATA[XML]]></category>

		<category><![CDATA["REpresentational State Transfer"]]></category>

		<category><![CDATA[REST]]></category>

		<category><![CDATA[restful]]></category>

		<category><![CDATA[services]]></category>

		<category><![CDATA[soa]]></category>

		<category><![CDATA[standards]]></category>

		<category><![CDATA[tibco]]></category>

		<category><![CDATA[uddi]]></category>

		<category><![CDATA[webservices]]></category>

		<category><![CDATA[ws-*]]></category>

		<category><![CDATA[ws-addressing]]></category>

		<category><![CDATA[ws-binding]]></category>

		<guid isPermaLink="false">http://www.brandonwerner.com/?p=273</guid>
		<description><![CDATA[Great article on ACM regarding when to use REST vs. WS-* standards that are in wide use in SOA architectures today. Very interesting reading for those who may want to take the light-weight approach vs. using the webservice composition and discovery tools that enterprises may find in the TIBCO and IBM SOA stack.
ABSTRACT
Recent technology trends [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://portal.acm.org/citation.cfm?id=1367497.1367606" title="restful web services vs big web services - making the right architectural decision">Great article on ACM</a> regarding when to use REST vs. WS-* standards that are in wide use in SOA architectures today. Very interesting reading for those who may want to take the light-weight approach vs. using the webservice composition and discovery tools that enterprises may find in the TIBCO and IBM SOA stack.</p>
<p>ABSTRACT</p>
<blockquote><p>Recent technology trends in the Web Services (WS) domain indicate that a solution eliminating the presumed complexity of the WS-* standards may be in sight: advocates of REpresentational State Transfer (REST) have come to believe that their ideas explaining why the World Wide Web works are just as applicable to solve enterprise application integration problems and to simplify the plumbing required to build service-oriented architectures. In this paper we objectify the WS-* vs. REST debate by giving a quantitative technical comparison based on architectural principles and decisions. We show that the two approaches differ in the number of architectural decisions that must be made and in the number of available alternatives. This discrepancy between freedom-from-choice and freedom-of-choice explains the complexity difference perceived. However, we also show that there are significant differences in the consequences of certain decisions in terms of resulting development and maintenance costs. Our comparison helps technical decision makers to assess the two integration styles and technologies more objectively and select the one that best fits their needs: REST is well suited for basic, ad hoc integration scenarios, WS-* is more flexible and addresses advanced quality of service requirements commonly occurring in enterprise computing.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.brandonwerner.com/2008/06/03/acm-article-restful-web-services-vs-big-web-services-making-the-right-architectural-decision/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
