<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Postgres OnLine Journal - webservices</title>
    <link>http://www.postgresonline.com/journal/</link>
    <description>an In depth look at the PostgreSQL open source database</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Sat, 19 Jan 2013 17:30:32 GMT</pubDate>

    <image>
        <url>http://www.postgresonline.com/journal/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: Postgres OnLine Journal - webservices - an In depth look at the PostgreSQL open source database</title>
        <link>http://www.postgresonline.com/journal/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Creating GeoJSON Feature Collections with JSON and PostGIS functions</title>
    <link>http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html</link>
            <category>9.2</category>
            <category>application development</category>
            <category>json</category>
            <category>postgis</category>
            <category>postgresql versions</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=267</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=267</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;If you do a lot of web-based GIS applications, a common desire is to allow a user to 
draw out an area on the map and then do searches against that area and return back a FeatureCollection
where each feature is composed of a geometry and attributes about that feature. In the past the format
was GML or KML, but the world seems to be moving to prefer JSON/GeoJSON.  Normally you&#039;d throw
a mapping server that talks Web Feature Service 
, do more or less with a webscripting glue, or use a Webservice
such as &lt;a href=&quot;http://cartodb.com/maps&quot; target=&quot;_blank&quot;&gt;CartoDb&lt;/a&gt; that lets you pass along raw SQL.&lt;/p&gt;
&lt;p&gt;In this article we&#039;ll demonstrate how to build GeoJSON feature collections that can be consumed by web mapping apps.
 using
the built in JSON functions in PostgreSQL 9.2 and some PostGIS hugging.  
Even if you
don&#039;t use PostGIS, we hope you&#039;ll come away with some techniques for working with 
PostgreSQL extended types and also how to morph relational data into JSON buckets.&lt;/p&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/267-Creating-GeoJSON-Feature-Collections-with-JSON-and-PostGIS-functions.html#extended&quot;&gt;Continue reading &quot;Creating GeoJSON Feature Collections with JSON and PostGIS functions&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 24 Aug 2012 02:55:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/267-guid.html</guid>
    <category>geojson</category>
<category>json</category>
<category>plv8</category>
<category>postgis</category>
<category>postgresql 9.2</category>

</item>
<item>
    <title>PostGIS as a graphical engine</title>
    <link>http://www.postgresonline.com/journal/archives/218-PostGIS-as-a-graphical-engine.html</link>
            <category>application development</category>
            <category>gis</category>
            <category>postgis</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/218-PostGIS-as-a-graphical-engine.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=218</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=218</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;p&gt;A while back in &lt;a href=&quot;http://www.postgresonline.com/journal/archives/208-New-Additions-and-Promotions-in-PostGIS-Development-Team.html&quot; target=&quot;_blank&quot;&gt;New Additions and Promotions in PostGIS Development Team&lt;/a&gt;, I mentioned that the new addition to our team Bborie Park was working on image output functions for raster support, among other things.  His last addition was ST_AsRaster which allows a PostGIS geometry to cross the line to the raster world, all in the database.  This new addition almost completes the basic cycle of making PostGIS not only a spatial analytical tool, but also a rendering engine.&lt;/p&gt;

&lt;p&gt;To test out these new functions, I whipped up a quick ASP.NET/JQuery app as described in &lt;a href=&quot;http://www.bostongis.com/blog/index.php?/archives/174-Minimalist-Web-based-ASP.NET-PostGIS-2.0-Spatial-GeometryRaster-Viewer.html&quot; target=&quot;_blank&quot;&gt;Minimalist Web-based ASP.NET PostGIS 2.0 Spatial Geometry/Raster Viewer&lt;/a&gt;, and Bborie followed up with the PHP version which you can download from &lt;a href=&quot;http://www.postgis.us/downloads/postgis_webviewer_php.zip&quot; target=&quot;_blank&quot;&gt;http://www.postgis.us/downloads/postgis_webviewer_php.zip&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There is still much room for improvement, e.g. intersection of 2 rasters, faster response, etc,  but I can see all the lights flickering and the connections coming together like a self-orchestrating organism.  From chaos comes order.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 26 Aug 2011 18:50:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/218-guid.html</guid>
    <category>postgis raster viewer</category>

</item>
<item>
    <title>REST in PostgreSQL Part 3 B - The REST Client in Adobe Flex 3 with Paging</title>
    <link>http://www.postgresonline.com/journal/archives/52-REST-in-PostgreSQL-Part-3-B-The-REST-Client-in-Adobe-Flex-3-with-Paging.html</link>
            <category>adobe flex</category>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>tsearch</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/52-REST-in-PostgreSQL-Part-3-B-The-REST-Client-in-Adobe-Flex-3-with-Paging.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=52</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=52</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;In prior articles of this series, we covered the following:
&lt;OL&gt;&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL---The-PreQuel.html&quot; target=_blank&gt;Showcasing REST in PostgreSQL - The PreQuel&lt;/a&gt; we went over what REST is and isn&#039;t&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html&quot; target=_blank&gt;REST in PostgreSQL Part 1 - The DB components&lt;/a&gt; we loaded the Pagila database and created a db plpgsql search function to support our rest server service&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&lt;/a&gt; we demonstrated a REST web service using Mono.NET, MS.NET both in C#, VB.Net/Monobasic&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 B - The REST Server service with PHP 5&lt;/a&gt; we demonstrated a REST web service using PHP 5&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A---Simple-REST-Client-in-Adobe-Flex-3.html&quot; target=_blank&gt;REST in PostgreSQL Part 3 A - Simple REST Client in Adobe Flex 3&lt;/a&gt; we demonstrated a basic REST client in Adobe Flex&lt;/LI&gt;
&lt;/OL&gt;
&lt;/P&gt;

&lt;P&gt;In this article we shall continue where we left off by adding paging functionality to our Adobe Flex REST grid client.&lt;/P&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/52-REST-in-PostgreSQL-Part-3-B-The-REST-Client-in-Adobe-Flex-3-with-Paging.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 3 B - The REST Client in Adobe Flex 3 with Paging&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 19 May 2008 15:06:23 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/52-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 3 A - Simple REST Client in Adobe Flex 3</title>
    <link>http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A-Simple-REST-Client-in-Adobe-Flex-3.html</link>
            <category>adobe flex</category>
            <category>application development</category>
            <category>intermediate</category>
            <category>mono .NET</category>
            <category>pagila</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A-Simple-REST-Client-in-Adobe-Flex-3.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=49</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=49</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;In prior articles of this series, we covered the following:
&lt;OL&gt;&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL---The-PreQuel.html&quot; target=_blank&gt;Showcasing REST in PostgreSQL - The PreQuel&lt;/a&gt; we went over what REST is and isn&#039;t&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html&quot; target=_blank&gt;REST in PostgreSQL Part 1 - The DB components&lt;/a&gt; we loaded the Pagila database and created a db plpgsql search function to support our rest server service&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&lt;/a&gt; we demonstrated a REST web service using Mono.NET, MS.NET both in C#, VB.Net/Monobasic&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 B - The REST Server service with PHP 5&lt;/a&gt; we demonstrated a REST web service using PHP 5&lt;/LI&gt;
&lt;/OL&gt;
&lt;/P&gt;
 &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/49-REST-in-PostgreSQL-Part-3-A-Simple-REST-Client-in-Adobe-Flex-3.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 3 A - Simple REST Client in Adobe Flex 3&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 07 May 2008 15:45:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/49-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 2 B - The REST Server service with PHP 5</title>
    <link>http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html</link>
            <category>adodb</category>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=42</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;This is a continuation of our REST series.  The following topics have already been covered &lt;/P&gt;
&lt;OL&gt;&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL---The-PreQuel.html&quot; target=_blank&gt;Showcasing REST in PostgreSQL - The PreQuel&lt;/a&gt; we went over what REST is and isn&#039;t&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html&quot; target=_blank&gt;REST in PostgreSQL Part 1 - The DB components&lt;/a&gt; we loaded the Pagila database and created a db plpgsql search function that spits out XML to support our rest server service&lt;/LI&gt;
	&lt;LI&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html&quot; target=_blank&gt;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&lt;/a&gt; we demonstrated a REST web service using Mono.NET, MS.NET both in C#, VB.Net/Monobasic&lt;/LI&gt;
&lt;/OL&gt;
&lt;br /&lt;br /&gt;
Now in this Part 2B series, we shall demonstrate the same REST server service using PHP 
&lt;/P&gt;

&lt;h4&gt;Setting up the PHP application&lt;/h4&gt;
&lt;OL&gt;
	&lt;LI&gt;
		&lt;P&gt;PHP already has the PostgreSQL drivers available as a .so (on Linux) or .dll on Windows.  For windows users if you
			are running PHP under IIS and in ISAPI mode, you will not be able to dynamically load libraries, so you need to enable &lt;b&gt;php_pgsql&lt;/b&gt; in your PHP.ini file.
		&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;We tend to keep it enabled regardless of which platform we are on since a lot of our PHP development involves PostgreSQL.   The extension is &lt;i&gt;php_pgsql&lt;/i&gt; in the php.ini file&lt;/LI&gt;
	&lt;LI&gt;PHP has numerous database abstraction libraries to choose from.  We are using the adodb abstraction library for PHP which can be downloaded from &lt;a href=&quot;http://adodb.sourceforge.net/&quot; target=_blank&gt;http://adodb.sourceforge.net/&lt;/a&gt;.
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/42-REST-in-PostgreSQL-Part-2-B-The-REST-Server-service-with-PHP-5.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 2 B - The REST Server service with PHP 5&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 09 Apr 2008 22:28:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/42-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET</title>
    <link>http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>mono .NET</category>
            <category>pagila</category>
            <category>tsearch</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=37</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;h4&gt;Setting up the .NET application&lt;/h4&gt;
&lt;OL&gt;
	&lt;LI&gt;
		&lt;P&gt;Download the npgsql 1.01 driver from pgfoundary - 
		&lt;a href=&quot;http://pgfoundry.org/projects/npgsql&quot; target=_blank&gt;http://pgfoundry.org/projects/npgsql&lt;/a&gt;.
		For ASP.NET 2.0 you&#039;ll want - Npgsql1.0.1-bin-ms2.0.zip and for Mono.NET you&#039;ll want Npgsql1.0.1-bin-mono-2.0.zip.  Unzip and place the files in bin folder of your web app project.
		&lt;/P&gt;
	&lt;/LI&gt;
	&lt;LI&gt;Since we are just creating a simple REST web service and don&#039;t need any plumming of the standard SOAP like webservice, we will be using
	a .NET handler class (ashx) instead of an asmx. We have two versions listed below.  One for C# and one for VB.NET/Mono Basic&lt;/LI&gt;
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/37-REST-in-PostgreSQL-Part-2-A-The-REST-Server-service-with-ASP.NET.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 2 A - The REST Server service with ASP.NET&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 Mar 2008 22:33:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/37-guid.html</guid>
    
</item>
<item>
    <title>REST in PostgreSQL Part 1 - The DB components</title>
    <link>http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>plpgsql</category>
            <category>tsearch</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=36</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=36</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;P&gt;In this section we&#039;ll go over creating the views and stored functions that our REST Server service will rely on.&lt;/P&gt;
&lt;P&gt;Our REST service will be a thin wrapper around a pgsql function that accepts film queries and returns results in XML.&lt;/P&gt;

&lt;h4&gt;Loading the database&lt;/h4&gt;
&lt;P&gt;&lt;b&gt;Step 1:&lt;/b&gt; Download the Pagila 0.10.0 database from 
&lt;a href=&quot;http://pgfoundry.org/frs/?group_id=1000150&amp;release_id=570&quot; target=&quot;_blank&quot;&gt;http://pgfoundry.org/frs/?group_id=1000150&amp;release_id=570&lt;/a&gt;
and load the Pagila database using the following commands: &lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Note:&lt;/b&gt;For windows users - psql is usually located at &lt;em&gt;&quot;C:\Program Files\PostgreSQL\8.3\bin\psql&quot;&lt;/em&gt;&lt;br /&gt;
&lt;PRE&gt;
&lt;CODE&gt;
psql -h localhost -p 5433 -U postgres -c &quot;CREATE DATABASE pagila ENCODING &#039;UTF8&#039;&quot;
psql -h localhost -p 5433 -U postgres -c &quot;CREATE ROLE pagila_app LOGIN PASSWORD &#039;pg@123&#039;&quot;
psql -h localhost -p 5433 -U postgres -d pagila -f &quot;pagila-schema.sql&quot;
psql -h localhost -p 5433 -U postgres -d pagila -f &quot;pagila-data.sql&quot;
&lt;/CODE&gt;
&lt;/PRE&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/36-REST-in-PostgreSQL-Part-1-The-DB-components.html#extended&quot;&gt;Continue reading &quot;REST in PostgreSQL Part 1 - The DB components&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 16 Mar 2008 18:33:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/36-guid.html</guid>
    
</item>
<item>
    <title>Showcasing REST in PostgreSQL - The PreQuel</title>
    <link>http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL-The-PreQuel.html</link>
            <category>application development</category>
            <category>intermediate</category>
            <category>pagila</category>
            <category>webservices</category>
    
    <comments>http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL-The-PreQuel.html#comments</comments>
    <wfw:comment>http://www.postgresonline.com/journal/wfwcomment.php?cid=32</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.postgresonline.com/journal/rss.php?version=2.0&amp;type=comments&amp;cid=32</wfw:commentRss>
    

    <author>nospam@example.com (Leo Hsu and Regina Obe)</author>
    <content:encoded>
    &lt;h4&gt;What is REST?&lt;/h4&gt;
&lt;P&gt;
Representationl State Transfer (REST) is a term to describe an architectural style of sharing information with consumers using already existing protocols such as HTTP. In the strictest sense of the term, the transport protocol need not be HTTP. &lt;/P&gt;
REST was first coined by &lt;a href=&quot;http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm&quot; target=_blank&gt;Roy Fielding in his
year 2000 doctoral thesis&lt;/a&gt;. Unlike things like Simple Object Access Protocol (SOAP), Distributed Component Object Model (DCOM), Common Object Request Broker Architecture (CORBA), it is not an architecture nor a protocol but rather a style
of architecture.  As a result, a lot of things that don&#039;t call themselves &lt;b&gt;RESTFUL&lt;/b&gt; full under that umbrella or use some of the same concepts, or can arguably fall under that umbrella.
&lt;/P&gt;
&lt;P&gt;What is probably so alluring about REST is that it gives a catchy name to something a lot of people were doing already and describes how much of the web operates. 
Contrary to some popular belief, it is not NEW technology but rather a grouping of mainstream technology with a flashier name.  Part of this confusion is that the cult following of REST is a fairly new phenomenon although the underpinnings are relatively old.  The REST movement reflects a return back to the basics that prioritizes simplicity and accessibility over complexity and formality.
Nowadays REST is most often used to refer to web services where resources are requested via plain URIs and GET requests, representations are returned in simple XML or JSON format and resources are created using POST, updated using PUT and deleted using DELETE HTTP verbs.  This is similar to XML-RPC except that
XML-RPC has a concept of state and everything is generally encoded in an XML message envelop. XML-RPC also uses POST for both updating and accessing resources unlike REST which tends to use GETS and URIS for resource access. The advantage of using get is that resources can be bookmarked.  SOAP is similar to XML-RPC and in fact was born from the XML-RPC standard except the XML message streams are more complicated and formal, but arguably richer in functionality.&lt;/P&gt;

&lt;P&gt;Contrary to some popular belief, REST is not a silver bullet nor was it designed to be.  It doesn&#039;t work for all problems and web applications.  Our personal opinion: REST is well suited for transporting data that will be consumed by various kinds
of clients, but is not well suited for updating of data or where authenticated transactions are needed. &lt;/P&gt;

&lt;P&gt;REST has 4 basic features that differentiate/and it shares with similar Architectural styles.  

&lt;OL&gt;
	&lt;LI&gt;&lt;b&gt;Client Stateless Server&lt;/b&gt; - As the name suggests - the state of an object is part of the message, and is commonly referred to as a stateless communication.  It is not done with things like Session cookies where the 
	server maintains some stateful view of the client and the client passes a session cookie saying (here is my ticket - give me my state).  The server does not hold information about state, only the client.  
	Right away one can tell - this can not work for all modes of communication that require immense amounts of state information to be maintained, but does have the advantage of should the application server hiccup or connection to the server times out or breaks only the current message is lost.  
	It also works well for Web-Farms that are simply outputing data since the need for such Web-Farms to replicate state is not needed (think image caching networks such as Akamai).&lt;/LI&gt;
	&lt;LI&gt;&lt;b&gt;Client-Cache&lt;/b&gt; - The idea of client caching.  The server can dictate certain requests as being cacheable and if cacheable a client can use the cache request to satisfy future similar requests instead of going back to the server.  This saves on band-width but has disadvantage of possibly resulting in stale results. Keep in mind again this concept is not
	new and most webservers are designed to work that way and pass this info via http headers.&lt;/LI&gt;
	&lt;LI&gt;&lt;b&gt;Layered System&lt;/b&gt; - two way interaction.  In a REST style architecture, there is a client and a server.  The client is only dependent on the server it communicates with.  It has no knowledge of the components the server uses to fulfill its request.  
	That server can be a client in another REST interaction and keep its own cache to serve up like requests.  This does not break the &lt;i&gt;client keeps the cache&lt;/i&gt; rule as the server is acting as a client in this context.  Think &lt;b&gt;DNS&lt;/b&gt;. DNS is a perfect example of such a style where intermediaries cache 
	requests for a certain period of time and act as clients to DNS servers further up the root and behave as servers to DNS and client computers below.&lt;/LI&gt;
	&lt;LI&gt;&lt;b&gt;Resource and Resource Identifiers&lt;/b&gt; - REST is predominantly a mechanism for accessing resources although it can be used for editing as well.  The
	key element of it is a mechanism for defining resources, 
		how a resource or grouping of resources are requested via a Resource Identifier (URL or URN), transfer of representation via (HTML, XML, Jpeg etc.),
			representational metadata  (e.g. media type, last modified), control data (such as how long it can be cached). Yes this is pretty much 
			a common concept in web interfaces.&lt;/LI&gt;
&lt;/OL&gt; &lt;br /&gt;&lt;a href=&quot;http://www.postgresonline.com/journal/archives/32-Showcasing-REST-in-PostgreSQL-The-PreQuel.html#extended&quot;&gt;Continue reading &quot;Showcasing REST in PostgreSQL - The PreQuel&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 12 Mar 2008 06:49:00 -0400</pubDate>
    <guid isPermaLink="false">http://www.postgresonline.com/journal/archives/32-guid.html</guid>
    
</item>

</channel>
</rss>