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

<channel>
	<title>baseplane - technology platforms &#187; technology</title>
	<atom:link href="http://baseplane.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://baseplane.com</link>
	<description>Technology Platforms, Architecture and Kits for all your codes by Ryan Christensen</description>
	<lastBuildDate>Thu, 12 Nov 2009 05:10:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scalable Web Architectures: Common Patterns and Approaches &#8211; Web 2.0 Expo NYC</title>
		<link>http://baseplane.com/2009/06/08/scalable-web-architectures-common-patterns-and-approaches-web-20-expo-nyc/</link>
		<comments>http://baseplane.com/2009/06/08/scalable-web-architectures-common-patterns-and-approaches-web-20-expo-nyc/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 06:19:11 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[scalability]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=70</guid>
		<description><![CDATA[
View more OpenOffice presentations from iamcal.
Scalable Web Architectures: Common Patterns and Approaches &#8211; Web 2.0 Expo NYC

]]></description>
			<content:encoded><![CDATA[<div id="__ss_603137" style="width: 640px; text-align: left;"><object width="640" height="520" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=expo08nycscalablewebarch-1221666482116250-9&amp;stripped_title=scalable-web-architectures-common-patterns-and-approaches-web-20-expo-nyc-presentation" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=expo08nycscalablewebarch-1221666482116250-9&amp;stripped_title=scalable-web-architectures-common-patterns-and-approaches-web-20-expo-nyc-presentation" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">OpenOffice presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/iamcal">iamcal</a>.</div>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Scalable Web Architectures: Common Patterns and Approaches - Web 2.0 Expo NYC" href="http://www.slideshare.net/iamcal/scalable-web-architectures-common-patterns-and-approaches-web-20-expo-nyc-presentation?type=powerpoint">Scalable Web Architectures: Common Patterns and Approaches &#8211; Web 2.0 Expo NYC</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2009/06/08/scalable-web-architectures-common-patterns-and-approaches-web-20-expo-nyc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mono 2.2 Released</title>
		<link>http://baseplane.com/2009/01/16/mono-22-released/</link>
		<comments>http://baseplane.com/2009/01/16/mono-22-released/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 22:23:43 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[unity3d]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=68</guid>
		<description><![CDATA[Mono 2.2 has been released.  Mono is a really great open source version of .NET and it is finding its way into many platforms that need to support multiplatform code such as Unity3D.  
This update brings in some great stuff like routing controllers to use the ASP.NET MVC architecture, csharp inteactive shell and other great [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mono-project.com/news/archive/2009/Jan-13.html" target="_blank">Mono 2.2 has been released</a>.  Mono is a really great open source version of .NET and it is finding its way into many platforms that need to support multiplatform code such as <a href="http://unity3d.com/" target="_blank">Unity3D</a>.  <a href="http://www.mono-project.com/Release_Notes_Mono_2.2" target="_blank"></a></p>
<p><a href="http://www.mono-project.com/Release_Notes_Mono_2.2" target="_blank">This update</a> brings in some great stuff like routing controllers to use the ASP.NET MVC architecture, csharp inteactive shell and other great performance enhancements to an<a href="http://shootout.alioth.debian.org/gp4/csharp.php" target="_blank"> already speedy C#</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2009/01/16/mono-22-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>2009 CWE/SANS Top 25 Most Dangerous Programming Errors</title>
		<link>http://baseplane.com/2009/01/12/2009-cwesans-top-25-most-dangerous-programming-errors/</link>
		<comments>http://baseplane.com/2009/01/12/2009-cwesans-top-25-most-dangerous-programming-errors/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 17:44:35 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[mob]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[reliability]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=66</guid>
		<description><![CDATA[This is a handy list to have.  This is the top 25 most dangerous programming errors relating to the web and keeping websites (and user data) safe. Be sure when you are building and using frameworks that you do test or expect these types of behaviors.
The Top 25 is organized into three high-level categories that [...]]]></description>
			<content:encoded><![CDATA[<p>This is a handy list to have.  This is the <a href="http://cwe.mitre.org/top25/" target="_blank">top 25 most dangerous programming errors</a> relating to the web and keeping websites (and user data) safe. Be sure when you are building and using frameworks that you do test or expect these types of behaviors.</p>
<blockquote><p>The Top 25 is organized into three high-level categories that contain  multiple CWE entries.</p>
<h3>Insecure Interaction Between Components</h3>
<p>These weaknesses are related to insecure ways in which data is sent  and received between separate components, modules, programs, processes, threads, or systems.</p>
<ul>
<li><a href="http://cwe.mitre.org/top25/#CWE-20">CWE-20</a>: Improper Input Validation</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-116">CWE-116</a>: Improper Encoding or Escaping of Output</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-89">CWE-89</a>: Failure to Preserve SQL Query Structure (aka &#8216;SQL Injection&#8217;)</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-79">CWE-79</a>: Failure to Preserve Web Page Structure (aka &#8216;Cross-site Scripting&#8217;)</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-78">CWE-78</a>: Failure to Preserve OS Command Structure (aka &#8216;OS Command Injection&#8217;)</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-319">CWE-319</a>: Cleartext Transmission of Sensitive Information</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-352">CWE-352</a>: Cross-Site Request Forgery (CSRF)</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-362">CWE-362</a>: Race Condition</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-209">CWE-209</a>: Error Message Information Leak</li>
</ul>
<h3>Risky Resource Management</h3>
<p>The weaknesses in this category are related to ways in which software  does not properly manage the creation, usage, transfer, or destruction of important system resources.</p>
<ul>
<li><a href="http://cwe.mitre.org/top25/#CWE-119">CWE-119</a>: Failure to Constrain Operations within the Bounds of a Memory Buffer</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-642">CWE-642</a>: External Control of Critical State Data</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-73">CWE-73</a>: External Control of File Name or Path</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-426">CWE-426</a>: Untrusted Search Path</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-94">CWE-94</a>: Failure to Control Generation of Code (aka &#8216;Code Injection&#8217;)</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-494">CWE-494</a>: Download of Code Without Integrity Check</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-404">CWE-404</a>: Improper Resource Shutdown or Release</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-665">CWE-665</a>: Improper Initialization</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-682">CWE-682</a>: Incorrect Calculation</li>
</ul>
<h3>Porous Defenses</h3>
<p>The weaknesses in this category are related to defensive techniques  that are often misused, abused, or just plain ignored.</p>
<ul>
<li><a href="http://cwe.mitre.org/top25/#CWE-285">CWE-285</a>: Improper Access Control (Authorization)</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-327">CWE-327</a>: Use of a Broken or Risky Cryptographic Algorithm</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-259">CWE-259</a>: Hard-Coded Password</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-732">CWE-732</a>: Insecure Permission Assignment for Critical Resource</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-330">CWE-330</a>: Use of Insufficiently Random Values</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-250">CWE-250</a>: Execution with Unnecessary Privileges</li>
<li><a href="http://cwe.mitre.org/top25/#CWE-602">CWE-602</a>: Client-Side Enforcement of Server-Side Security</li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2009/01/12/2009-cwesans-top-25-most-dangerous-programming-errors/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python 3.0 Released</title>
		<link>http://baseplane.com/2008/12/04/python-30-released/</link>
		<comments>http://baseplane.com/2008/12/04/python-30-released/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 09:40:17 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[3]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[market]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python 3000]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=59</guid>
		<description><![CDATA[Python 3000, the mythical creature for all future Python cleanup has been released.  It is breaking in many cases and will take time for all the great python libraries to be up to date but it is released.
Python 2.6 was released not too long ago as an update adding great stuff like simplejson within python.  [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.python.org/download/releases/3.0/" target="_blank"><img class="alignright" style="border: 0pt none;" title="http://www.python.org/images/python-logo.gif" src="http://www.python.org/images/python-logo.gif" alt="" width="211" height="71" />Python 3000</a>, the <a href="http://jeremyhylton.blogspot.com/2008/12/python-3000.html" target="_blank">mythical creature for all future Python cleanup</a> has <a href="http://www.python.org/download/releases/3.0/" target="_blank">been released</a>.  It is breaking in many cases and will take time for all the great python libraries to be up to date but it is released.</p>
<p>Python 2.6 was released not too long ago as an update adding great stuff like simplejson within python.  But Python 3000 might be the release that draws lots of usage and programmers new and veteran.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/12/04/python-30-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>All About Scaling a Large Video Site, YouTube Insights into Their Growth and Scalability Challenges</title>
		<link>http://baseplane.com/2008/11/30/all-about-scaling-a-large-video-site-youtube-insights-into-their-growth-and-scalability-challenges/</link>
		<comments>http://baseplane.com/2008/11/30/all-about-scaling-a-large-video-site-youtube-insights-into-their-growth-and-scalability-challenges/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 05:56:42 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=57</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://baseplane.com/2008/11/30/all-about-scaling-a-large-video-site-youtube-insights-into-their-growth-and-scalability-challenges/"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/11/30/all-about-scaling-a-large-video-site-youtube-insights-into-their-growth-and-scalability-challenges/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mono 2.0 Officially Released</title>
		<link>http://baseplane.com/2008/10/06/mono-20-officially-released/</link>
		<comments>http://baseplane.com/2008/10/06/mono-20-officially-released/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 10:40:30 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[baseplane]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[2.0]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[3.5]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[multi-platform]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=56</guid>
		<description><![CDATA[Mono 2.0 the open source .NET framework has been released.  Mono has made it&#8217;s way into many great systems by now from websites to even 3d engines such as Unity3D. It is great to have a toolkit that is powerful, has a great language set from C# to Boo and that is available on multiple [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mono-project.com/Release_Notes_Mono_2.0" target="_blank">Mono 2.0</a> the open source .NET framework has been released.  Mono has made it&#8217;s way into many great systems by now from websites to even 3d engines such as <a href="http://unity3d.com/" target="_blank">Unity3D</a>. It is great to have a toolkit that is powerful, has a great language set from C# to Boo and that is available on multiple platforms.  From Windows, to *nix to of course Mac OSX built on unix, it all just works.</p>
<p>Having 2.0 solid and complete is a great step to making production apps run off of it.</p>
<h2 style="padding-left: 30px;">Microsoft Compatible APIs</h2>
<ul style="padding-left: 30px;">
<li> ADO.NET 2.0 API for accessing databases.</li>
</ul>
<ul style="padding-left: 30px;">
<li> ASP.NET 2.0 API for developing Web-based applications.</li>
</ul>
<ul style="padding-left: 30px;">
<li> Windows.Forms 2.0 API to create desktop applications.</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.XML 2.0: An API to manipulate XML documents.</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.Core: Provides support for the Language Integrated Query (LINQ).</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.Xml.Linq: Provides a LINQ provider for XML.</li>
</ul>
<ul style="padding-left: 30px;">
<li> System.Drawing 2.0 API: A portable graphics rendering API.</li>
</ul>
<p style="padding-left: 30px;"><a name="Mono_APIs"></a></p>
<h2 style="padding-left: 30px;">Mono APIs</h2>
<ul style="padding-left: 30px;">
<li> Gtk# 2.12: A binding to the Gtk+ 2.12 and GNOME libraries for creating desktop applications on Linux, Windows and MacOS X.</li>
<li> Mono.Cecil: A library to manipulate ECMA CLI files (the native format used for executables and libraries).</li>
<li> Mono.Cairo: A binding to the Cairo Graphics library to produce 2D graphics and render them into a variety of forms (images, windows, postscript and PDF).</li>
<li> Mono&#8217;s SQLite support: a library to create and consume databases created with SQLite.</li>
<li> Mono.Posix: a library to access Linux and Unix specific functionality from your managed application. With both a low-level interface as well as higher level interfaces.</li>
</ul>
<p style="padding-left: 30px;"><a name="Third_Party_APIs_bundled_with_Mono"></a></p>
<h3 style="padding-left: 30px;">Third Party APIs bundled with Mono</h3>
<ul style="padding-left: 30px;">
<li> Extensive support for databases: PostgresSQL, DB2, Oracle, Sybase, SQL server, SQLite and Firebird.</li>
<li> C5 Generics Library: we are bundling the C5 generics collection class library as part of Mono.</li>
</ul>
<p style="padding-left: 30px;"><a name="Compilers"></a></p>
<h2 style="padding-left: 30px;">Compilers</h2>
<p style="padding-left: 30px;">These compilers are part of the Mono 2.0 release:</p>
<ul style="padding-left: 30px;">
<li> C# 3.0 compiler implementation, with full support for LINQ.</li>
<li> Visual Basic 8 compiler.</li>
<li style="padding-left: 30px;"> IL assembler and disassembler and the development toolchain required to create libraries and applications.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/10/06/mono-20-officially-released/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mono Now Has .NET 3.0 Support and 3.5 Features like LINQ and Expression Trees</title>
		<link>http://baseplane.com/2008/07/25/mono-now-has-net-30-support-and-35-features-like-linq-and-expression-trees/</link>
		<comments>http://baseplane.com/2008/07/25/mono-now-has-net-30-support-and-35-features-like-linq-and-expression-trees/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 07:14:34 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[baseplane]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[market formats]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[3.0]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[linq]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[platform]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=55</guid>
		<description><![CDATA[Great news!  Mono has made it to .NET 3.0 support and this includes some of the latest stuff like LINQ expressions.
I am pleased to announce that Mono C# compiler (gmcs) has now full C# 3.0 support. Most of the features has been available since Mono 1.2.6 release. However, with the upcoming Mono 2.0 release we [...]]]></description>
			<content:encoded><![CDATA[<p>Great news!  <a href="http://mareksafar.blogspot.com/2008/07/mono-c-compiler-gets-full-c-30-support.html" target="_blank">Mono has made it to .NET 3.0 support</a> and this includes some of the latest stuff like LINQ expressions.</p>
<blockquote><p>I am pleased to announce that Mono C# compiler (gmcs) has now full C# 3.0 support. Most of the features has been available since Mono 1.2.6 release. However, with the upcoming Mono 2.0 release <strong>we will also support complex LINQ expressions and mainly <a href="http://msdn.microsoft.com/en-us/library/bb397951.aspx">expression trees</a> which is fairly overlooked new feature with a lot of potential</strong>.</p>
<p>For anyone interested in compiling and running <a href="http://blogs.msdn.com/lukeh/archive/2007/10/01/taking-linq-to-objects-to-extremes-a-fully-linqified-raytracer.aspx">this</a> LukeH&#8217;s slightly extreme LINQ example I have good news. It compiles on Mono and it runs as fast as on .NET.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/07/25/mono-now-has-net-30-support-and-35-features-like-linq-and-expression-trees/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>REST Pattern</title>
		<link>http://baseplane.com/2008/06/30/rest-pattern/</link>
		<comments>http://baseplane.com/2008/06/30/rest-pattern/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 03:00:19 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[baseplane]]></category>
		<category><![CDATA[generation]]></category>
		<category><![CDATA[mob]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[philosophy]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[architect]]></category>
		<category><![CDATA[ontology]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[semantic]]></category>
		<category><![CDATA[unique]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[web3]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=54</guid>
		<description><![CDATA[
UNIVERSITY OF CALIFORNIA, IRVINE
Architectural Styles and
the Design of Network-based Software Architectures
DISSERTATION
submitted in partial satisfaction of the requirements for the degree of
DOCTOR OF PHILOSOPHY
in Information and Computer Science
by
Roy Thomas Fielding
2000
Dissertation Committee:
Professor Richard N. Taylor, Chair
Professor Mark S. Ackerman
Professor David S. Rosenblum

PDF Editions

1-column for viewing online
2-column for printing

Table of Contents

Dedication
Acknowledgments
Curriculum Vitae
Abstract of the Dissertation
Introduction
CHAPTER 1: Software Architecture

1.1 [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>UNIVERSITY OF CALIFORNIA, IRVINE</p>
<h1>Architectural Styles and<br />
the Design of Network-based Software Architectures</h1>
<p>DISSERTATION</p>
<p>submitted in partial satisfaction of the requirements for the degree of</p>
<p>DOCTOR OF PHILOSOPHY</p>
<p>in Information and Computer Science</p>
<p>by</p>
<p><a href="http://www.ics.uci.edu/%7Efielding/">Roy Thomas Fielding</a></p>
<p>2000</p>
<p>Dissertation Committee:<br />
Professor Richard N. Taylor, Chair<br />
Professor Mark S. Ackerman<br />
Professor David S. Rosenblum</p>
</div>
<h2><a name="pdf">PDF Editions</a></h2>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/fielding_dissertation.pdf">1-column for viewing online</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/fielding_dissertation_2up.pdf">2-column for printing</a></dd>
</dl>
<h2><a name="toc">Table of Contents</a></h2>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/dedication.htm">Dedication</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/acknowledgments.htm">Acknowledgments</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/fielding_cv_2000.htm">Curriculum Vitae</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/abstract.htm">Abstract of the Dissertation</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/introduction.htm">Introduction</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm">CHAPTER 1: Software Architecture</a>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_1">1.1 Run-time Abstraction</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_2">1.2 Elements</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_3">1.3 Configurations</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_4">1.4 Properties</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_5">1.5 Styles</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_6">1.6 Patterns and Pattern Languages</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_7">1.7 Views</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_8">1.8 Related Work</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/software_arch.htm#sec_1_9">1.9 Summary</a></dd>
</dl>
</dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_app_arch.htm">CHAPTER 2: Network-based Application Architectures</a>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_app_arch.htm#sec_2_1">2.1 Scope</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_app_arch.htm#sec_2_2">2.2 Evaluating the Design of Application Architectures</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_app_arch.htm#sec_2_3">2.3 Architectural Properties of Key Interest</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_app_arch.htm#sec_2_4">2.4 Summary</a></dd>
</dl>
</dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm">CHAPTER 3: Network-based Architectural Styles</a>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_1">3.1 Classification Methodology</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_2">3.2 Data-flow Styles</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_3">3.3 Replication Styles</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_4">3.4 Hierarchical Styles</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_5">3.5 Mobile Code Styles</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_6">3.6 Peer-to-Peer Styles</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_7">3.7 Limitations</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_8">3.8 Related Work</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#sec_3_9">3.9 Summary</a></dd>
</dl>
</dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/web_arch_domain.htm">CHAPTER 4: Designing the Web Architecture: Problems and Insights</a>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/web_arch_domain.htm#sec_4_1">4.1 WWW Application Domain Requirements</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/web_arch_domain.htm#sec_4_2">4.2 Problem</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/web_arch_domain.htm#sec_4_3">4.3 Approach</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/web_arch_domain.htm#sec_4_4">4.4 Summary</a></dd>
</dl>
</dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm">CHAPTER 5: Representational State Transfer (REST)</a>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#sec_5_1">5.1 Deriving REST</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#sec_5_2">5.2 REST Architectural Elements</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#sec_5_3">5.3 REST Architectural Views</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#sec_5_4">5.4 Related Work</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#sec_5_5">5.5 Summary</a></dd>
</dl>
</dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/evaluation.htm">CHAPTER 6: Experience and Evaluation</a>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/evaluation.htm#sec_6_1">6.1 Standardizing the Web</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/evaluation.htm#sec_6_2">6.2 REST Applied to URI</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/evaluation.htm#sec_6_3">6.3 REST Applied to HTTP</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/evaluation.htm#sec_6_4">6.4 Technology Transfer</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/evaluation.htm#sec_6_5">6.5 Architectural Lessons</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/evaluation.htm#sec_6_6">6.6 Summary</a></dd>
</dl>
</dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/conclusions.htm">Conclusions</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/references.htm">References</a></dd>
</dl>
<h2><a name="lof">List of Figures</a></h2>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_1">Figure 5-1. Null Style</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_2">Figure 5-2. Client-Server</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_3">Figure 5-3. Client-Stateless-Server</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_4">Figure 5-4. Client-Cache-Stateless-Server</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_5">Figure 5-5. Early WWW Architecture Diagram</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_6">Figure 5-6. Uniform-Client-Cache-Stateless-Server</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_7">Figure 5-7. Uniform-Layered-Client-Cache-Stateless-Server</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_8">Figure 5-8. REST</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_9">Figure 5-9. REST Derivation by Style Constraints</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#fig_5_10">Figure 5-10. Process View of a REST-based Architecture</a></dd>
</dl>
<h2><a name="lot">List of Tables</a></h2>
<dl>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#tab_3_1">Table 3-1. Evaluation of Data-flow Styles for Network-based Hypermedia</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#tab_3_2">Table 3-2. Evaluation of Replication Styles for Network-based Hypermedia</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#tab_3_3">Table 3-3. Evaluation of Hierarchical Styles for Network-based Hypermedia</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#tab_3_4">Table 3-4. Evaluation of Mobile Code Styles for Network-based Hypermedia</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#tab_3_5">Table 3-5. Evaluation of Peer-to-Peer Styles for Network-based Hypermedia</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/net_arch_styles.htm#tab_3_6">Table 3-6. Evaluation Summary</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#tab_5_1">Table 5-1. REST Data Elements</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#tab_5_2">Table 5-2. REST Connectors</a></dd>
<dd><a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/rest_arch_style.htm#tab_5_3">Table 5-3. REST Components</a></dd>
</dl>
<hr size="1" noshade="noshade" />
<table border="0" width="100%">
<tbody>
<tr>
<td align="left" valign="top"><em>[<a rel="next" href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/dedication.htm">Next</a>]</em></td>
<td align="center" valign="top">© <a href="http://www.ics.uci.edu/%7Efielding/">Roy Thomas Fielding</a>, 2000.  All rights reserved.</td>
<td align="right" valign="top"><em>[<a href="http://www.ics.uci.edu/%7Efielding/pubs/dissertation/faq.htm">How to reference this work.</a>]</em></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/06/30/rest-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kepler a Lua Based Web Development Framework</title>
		<link>http://baseplane.com/2008/06/22/kepler-a-lua-based-web-development-framework/</link>
		<comments>http://baseplane.com/2008/06/22/kepler-a-lua-based-web-development-framework/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 22:45:05 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[announcement]]></category>
		<category><![CDATA[baseplane]]></category>
		<category><![CDATA[generation]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[utility]]></category>
		<category><![CDATA[base]]></category>
		<category><![CDATA[based]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[kit]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[table]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=53</guid>
		<description><![CDATA[Lua is a very useful language for many things.  Extending core base code with modules and add-ons have made it very useful in game development but since Lua is table-based it can also be easily applied to web development. Well that time has come, See the Kepler Project for a nice collection of modules that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.keplerproject.org/" target="_blank"><img class="alignright" style="float: right;" src="http://farm4.static.flickr.com/3204/2601483827_a3764cfe7c_o.gif" alt="" width="275" height="52" /></a>Lua is a very useful language for many things.  Extending core base code with modules and add-ons have made it very useful in game development but since Lua is table-based it can also be easily applied to web development. Well that time has come, See the Kepler Project for a nice collection of modules that make a good start for web development with Lua.</p>
<p style="padding-left: 30px;">Kepler is an open source platform that brings the power of <a class="local" href="http://www.keplerproject.org/en/Lua">Lua</a> to web development. There are a number of great Web development platforms out there but none balances portability, size, power and extensibility quite like Kepler does:</p>
<ul style="padding-left: 30px;">
<li>Being extremely portable and light means that it can be installed in very constrained devices as much as in providers that limit the amount of RAM and processing time for your scripts.</li>
<li>If you ever heard of the customization features of games such as <a href="http://www.worldofwarcraft.com/">World of Warcraft</a>, think about all that power applied to web scripting.</li>
<li>Being extensible means both that we can extend the platform by adding new modules and that the users of the applications that you build can extend those applications using Lua.</li>
</ul>
<p style="padding-left: 30px;">Kepler was created by Fábrica Digital and PUC-Rio and is continuously being improved by a core team of commiters (see <a class="local" href="http://www.keplerproject.org/en/Dev_Team">Dev Team</a>) and lots of contributors (see <a class="local" href="http://www.keplerproject.org/en/Credits">Credits</a>).</p>
<p style="padding-left: 30px;">Kepler is free software and uses the MIT license model: it can be used for both academic and commercial purposes at absolutely no cost. See the Kepler <a class="local" href="http://www.keplerproject.org/en/License">License</a> for more details.</p>
<p>Kepler is a platform that uses <a href="http://www.luarocks.org/">LuaRocks</a> to offer <a class="local" href="http://www.keplerproject.org/en/Modules">Modules</a> such as:</p>
<ul>
<li>Page based and MVC XHTML generation (WSAPI, CGILua and Orbit)</li>
<li>SQL and XML processing (LuaSQL and LuaExpat)</li>
<li>Hash (MD5) and a pair crypt/decrypt</li>
<li>Zip files reading (LuaZip)</li>
</ul>
<p>The Lua community is constantly contributing with more modules that can be used with the Kepler <a class="local" href="http://www.keplerproject.org/en/Architecture">Architecture</a>. Most of those modules are catalogued on <a href="http://luaforge.net/">LuaForge</a> and new ones keep coming.</p>
<h2>Unix installation</h2>
<p>Please check <a class="local" href="http://www.keplerproject.org/en/UNIX_Installation">UNIX Installation</a> for a detailed view of how to install Kepler on Unix machines (including OSX).</p>
<h2>Windows installation</h2>
<p>Installing Kepler on Windows does not require any C compiler and should work on any Windows machine with internet access.</p>
<ol>
<li>Download <a href="http://luarocks.org/">LuaRocks</a> and install it using <code>install /SCRIPTS c:\luarocks\0.5.2</code></li>
<li>Add the LuaRocks scripts dir to your system path (the same directory used in the <code>/SCRIPTS</code> parameter above)</li>
<li>Install Kepler and Xavante using <code>luarocks install kepler-xavante</code></li>
<li>Configure everything using <code>setup-kepler</code> and following the instructions</li>
<li>Use <code>xavante</code> to run Xavante as a tray bar application, or use &#8216;xavante_start&#8217; to run Xavante     from the command prompt. Another option is to run Kepler using CGI</li>
</ol>
<p>Once Kepler is running, you might want to look at those pages:</p>
<ul>
<li><a class="local" href="http://www.keplerproject.org/en/Hello_World">Hello World</a> will tell you how to write a simple application</li>
<li><a class="local" href="http://www.keplerproject.org/en/Using_a_Database">Using a Database</a> will tell you how to use some of the popular databases with Kepler.</li>
<li><a class="local" href="http://www.keplerproject.org/en/Configuring_Web_Servers">Configuring Web Servers</a> will tell you how to use Kepler with some specific web servers.</li>
</ul>
<p>The Kepler 1.1 Unix installer can be downloaded from its <a href="http://luaforge.net/frs/?group_id=104">downloads</a> page. Check the <a class="local" href="http://www.keplerproject.org/en/Installation">Installation</a> page for more details and for the Windows installation instructions (using LuaRocks).</p>
<p>If you need the binaries for specifics <a class="local" href="http://www.keplerproject.org/en/Modules">Modules</a> you can also get them from LuaForge, on the module respective project page.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/06/22/kepler-a-lua-based-web-development-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Restlet RESTful Lightweight Kit for Java</title>
		<link>http://baseplane.com/2008/06/20/restlet-restful-lightweight-kit-for-java/</link>
		<comments>http://baseplane.com/2008/06/20/restlet-restful-lightweight-kit-for-java/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 03:24:36 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[baseplane]]></category>
		<category><![CDATA[formal]]></category>
		<category><![CDATA[generation]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[languages]]></category>
		<category><![CDATA[market formats]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[toolkits]]></category>
		<category><![CDATA[utility]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jax]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[Restlet]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://baseplane.com/?p=52</guid>
		<description><![CDATA[Finally rest for all that boilerplate in Java.  At each turn of lots of Java frameworks you are bombarded with layers.  I felt this long ago and see it in the developers eyes that work with Java.  Java can be easy, it can be RESTful and it will make you look sharp.

Lightweight REST framework for [...]]]></description>
			<content:encoded><![CDATA[<p>Finally rest for all that boilerplate in Java.  At each turn of lots of Java frameworks you are bombarded with layers.  I felt this long ago and see it in the developers eyes that work with Java.  Java can be easy, it can be RESTful and it will make you look sharp.</p>
<p style="padding-left: 30px;"><a href="http://www.restlet.org/"><img src="http://farm4.static.flickr.com/3283/2597021628_8bbf4d5baa_o.gif" alt="" width="200" height="71" /></a></p>
<p style="padding-left: 30px;"><a href="http://www.restlet.org/" target="_blank"><strong>Lightweight REST framework for Java</strong></a></p>
<p class="welcome" style="padding-left: 30px;">Do you want to embrace the architecture of the Web and benefit from its simplicity and scalability? Leverage our innovative REST engine and start blending your Web Sites and Web Services into uniform Web Applications!</p>
<p class="welcome">Java is making things more lightweight now with lots of emerging kits that compete with other web ready platforms like Python, Ruby, .NET, PHP etc. After this many years things get bloated and need to be simplified.  I think this will start winning people over in this direction.</p>
]]></content:encoded>
			<wfw:commentRss>http://baseplane.com/2008/06/20/restlet-restful-lightweight-kit-for-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
