Milan's blog

« J2SE Web Services -... | Main | Using JAXB and JAX-W... »

http://blogs.sun.com/milan/date/20061016 Monday October 16, 2006

Web Services: REST vs. SOAP

Web Services: REST vs. SOAP

Imagine, you have the WSDL file discribing a simple "Hello" web service. These are steps you need to provide a client, using JAX-WS technology :

  • run the wsimport utility to generate all necessary JAX-WS artifacts(java classes) from WSDL. Setting up correctly the wsimport options(attributes) isn't so trivial here
  • write the client code against(or using) the generated artifacts

Though, Netbeans5.5 radically simplifies the client scenario it is not always simple to detect the problems(if occure) or understand the request-response trafic on the wire.

There is an alternative way that could help: REST services. REST (REpresentational State Transfer) isn't a framework or toolkit but architectural style or approach trying to simplify the life in web services. See the RESTful Web Services.

I'd like to compare both styles on a simple HelloService client example.

SOAP Client (supported by Netbeans 5.5) :

This is an example of wsimport ant task that generates JAX-WS artifacts

<target name="wsimport-client-hello" depends="wsimport-init>
<wsimport sourcedestdir="${build.generated.dir}/wsimport/client"
extension="true"
package="soap.client"
destdir="${build.generated.dir}/wsimport/binaries"
wsdl=""${basedir}/${conf.dir}/xml-resources/web-service-references/hello/wsdl/localhost_8080/SoapHello/hello.wsdl"
wsdlLocation="http://localhost:8080/SoapHello/hello?wsdl"
catalog="catalog.xml"/>
</target>

(fortunately all those crazy stuff is generated automatically for you by Netbeans5.5

This is the Netbeans5.5 Projects View with a JSP file from which the "HelloService" web service is called :
SOAP Client

And these are the soap messages on the wire :

SOAP Request


<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://duke.org/hello">
<soapenv:Body>
<ns1:hello>
<name>John</name>
</ns1:hello>
</soapenv:Body>
</soapenv:Envelope>

SOAP Response


<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://duke.org/hello">
<soapenv:Body>
<ns1:helloResponse>
<return>Hello John !</return>
</ns1:helloResponse>
</soapenv:Body>
</soapenv:Envelope>

Rather compliated, isn't it ? I cannot imagine creating soap request manually and pass it throug http protocol to get the result ("Hello John !" string).

REST Client for REST Service (not supported by Netbeans5.5):

Creating a HelloService client for HelloService created in a REST way is wery simple and supported by all browsers.
All you need to know is address of the web service :
http://localhost:8084/RestHello/HelloService
and address of the resource:
/name/John

This is the resulted (XML)page :
REST Client

See that "http://localhost:8084/RestHello/HelloService/name/John" URLrepresents the logical resource, not the real html page. The server doesn't have the million of static html pages for each existing (and even non existing) name.
The resource can be accessed by using all HTTP methods: POST, GET, DELETE, PUT. In this case the HTTP GET method was used.
The REST approach is characterized by creating a "network" of resources that can be accessed or manipulated by HTTP methods.
For example, the GET method can only return the representation of the resource but cannot modify the resource.
These are, in very few words, the main principles of the REST architecture.

Advantages and Disadvantages of SOAP and REST styles.

The SOAP/WSDL style is useful when a formal contract must be established to describe the interface that the web service offers. The Web Services Description Language (WSDL) describes the details such as messages, operations, bindings, and location of the web service.
Also the SOAP/WSDL style is useful when the application architecture needs to handle asynchronous processing and invocation (e.g. using JAX-WS the assynchronous clients can be created).

The disadvantages of SOAP/WSDL style are
  • its complexity: tools are required to create a client
  • heavier on Bandwidth : SOAP requires a heavy XML wrapper arround each request or response
  • complicated security rules
The advantages of REST style are
  • simplicity: REST client can be accessed  from any browser (however, this is only true for GET method. Data creation request requires also the XML wrapper). 
  • lighter on Bandwidth : data on the wire are usually bare xml elements (not wrapped within the <Envelope><Body> tags).
  • REST application security rules can be setup using the http standards:  the administrator (or firewall) can discern the intent of each message by analyzing the HTTP command used in the request.
    For example, a GET request can always be considered safe because it can't, by definition, modify any data.
The disadvantege of REST style is that it still doesn't cover all business requirements
  • there is no common standard accepted yet for the formal REST service description
  • REST requests (especially GET method) are not suitable for large amount of data
  • REST doesn't cover all web services standards, like Transactions, Security, Addressing, Trust, Coordination,

SOAP1.2 and REST

Good news is that SOAP1.2 moved forward to support the REST services architecture : the SOAP1.2 specification now allows certain types services to be exposed through URIs (although the response is still a SOAP message). Another good news is that JAX-WS 2.0 implemented few classes that support the REST style significantly : see the Provider interface or Dispatch  interface. Using those classes the REST Service and REST Client creation is pretty straightforward.

This is the example of REST HelloService implementation from RestHello web application.

package server;

import java.io.ByteArrayInputStream;
import java.util.StringTokenizer;
import javax.annotation.Resource;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.ws.Provider;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.WebServiceProvider;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.http.HTTPException;
import javax.xml.ws.http.HTTPBinding;
import javax.xml.ws.BindingType;

@
WebServiceProvider
@BindingType(value=HTTPBinding.HTTP_BINDING)
public class HelloService implements Provider<Source> {
@Resource(type=Object.class)
protected WebServiceContext wsContext;
public Source invoke(Source source) {
try {
MessageContext mc = wsContext.getMessageContext();
String query = (String)mc.get(MessageContext.QUERY_STRING);
String path = (String)mc.get(MessageContext.PATH_INFO);
System.out.println("Query String = "+query);
System.out.println("PathInfo = "+path);
System.out.println("Request Method = "+mc.get(MessageContext.HTTP_REQUEST_METHOD));
if ("GET".equals(mc.get(MessageContext.HTTP_REQUEST_METHOD))) {
if (query != null && query.contains("name=")) {
return createSource(query);
} else if (path != null && path.contains("/name")) {
return createSource(path);
} else {
// invalid URL resource
throw new HTTPException(404);
}
} else {
// not supported method
throw new HTTPException(500);
}
} catch(Exception e) {
e.printStackTrace();
throw new HTTPException(500);
}
}

private Source createSource(String str) {
System.out.println("creating source");
StringTokenizer st = new StringTokenizer(str, "=/");
// skip the '/name/' or 'name=' parameter name
String token = st.nextToken();
// get the name
String name = st.nextToken();
String body =
"<ns:helloResponse xmlns:ns=\"http://duke.org/hello\">"
+"Hello "+name+" !"
+"</ns:helloResponse>";
Source source = new StreamSource(new ByteArrayInputStream(body.getBytes()));
return source;
}
}

These are the web.xml and sun-jaxws.xml files used in the RestHello Web Application (WEB-INF directory):
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>restful-hello</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>restful-hello</servlet-name>
<url-pattern>/HelloService/*</url-pattern>
</servlet-mapping>
</web-app>

<?xml version="1.0" encoding="UTF-8"?>
<endpoints
xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">

<endpoint
name="restful-hello"
implementation="server.HelloService"
url-pattern="/HelloService/*" />
</endpoints>

Comments:

"...Setting up correctly the wsimport options(attributes) isn't so trivial here ..." Its not clear from this blog as whats non-trivial about setting up wsimport ant target. We are working on improving wsimport tool and would like to get feedback to make it easier to use. -vivek.

Posted by Vivek on October 16, 2006 at 07:35 PM CEST #

Sorry, may be I haven't chosen ideal words (crazy stuff) to describe the usage of wsimport. I didn't want to dishonour the wsimport utility or JAX-WS. Comparing to wscompile, the wsimport is significantly easier to use and I appreciate the effort to simplify it more. I wanted just to point out what are the user responsibilities to create a SOAP client in JAX-WS. Generally, any ant task requires several things to cope with: - read the documentation - how to set up the task (wsimport-init) - how to set up the task attributes Here, I see the important role of IDE (like Nb5.5) that can perform this step for user.

Posted by Milan Kuchtiak on October 17, 2006 at 10:50 AM CEST #

gggg

Posted by 220.227.64.70 on October 25, 2007 at 11:01 AM CEST #

thanks for a lot

Posted by güzel sözler on January 13, 2008 at 06:47 PM CET #

thax.

Posted by güzel sözler on March 22, 2008 at 02:07 AM CET #

thx

Posted by youtube on March 22, 2008 at 02:07 AM CET #

niceee

Posted by maynet on March 22, 2008 at 02:08 AM CET #

danke

Posted by melodi indir on March 22, 2008 at 02:08 AM CET #

thx.

Posted by sinema izle on March 22, 2008 at 02:08 AM CET #

nice article. thanks.

Posted by sinema seyret on March 22, 2008 at 02:10 AM CET #

thax.

Posted by online sinema on March 22, 2008 at 02:10 AM CET #

thx.

Posted by bedava sinema on March 22, 2008 at 02:10 AM CET #

danke

Posted by canlı sinema on March 22, 2008 at 02:11 AM CET #

very good article.

Posted by bedava melodi on March 22, 2008 at 02:12 AM CET #

thx

Posted by melodi on March 22, 2008 at 02:12 AM CET #

thx.

Posted by canlı tv on March 22, 2008 at 02:13 AM CET #

thxxx

Posted by fragmanlar on March 22, 2008 at 02:13 AM CET #

gracias..

Posted by radyo dinle on March 22, 2008 at 02:14 AM CET #

rere thxx.

Posted by canlı tv on March 22, 2008 at 02:14 AM CET #

thnk u

Posted by you tube on March 25, 2008 at 10:12 PM CET #

thnkx

Posted by sinema on March 25, 2008 at 10:15 PM CET #

thnk.

Posted by sinemalar on March 25, 2008 at 10:16 PM CET #

tsk

Posted by online radyo on April 02, 2008 at 08:04 PM CEST #

tsk

Posted by bedava radyo on April 02, 2008 at 08:04 PM CEST #

tsk

Posted by canli radyo dinle on April 02, 2008 at 08:05 PM CEST #

tsk

Posted by canli tv izle on April 02, 2008 at 08:05 PM CEST #

tsk

Posted by powerturk on April 02, 2008 at 08:05 PM CEST #

tsk

Posted by powerfm on April 02, 2008 at 08:05 PM CEST #

thx

Posted by güzel sözler on April 03, 2008 at 03:41 AM CEST #

thx

Posted by video izle on April 03, 2008 at 03:42 AM CEST #

danke

Posted by video seyret on April 03, 2008 at 03:42 AM CEST #

thanssx

Posted by bedava video on April 03, 2008 at 03:42 AM CEST #

thnxs

Posted by you tube video on April 03, 2008 at 03:43 AM CEST #

danke

Posted by youtube video on April 03, 2008 at 03:43 AM CEST #

danke

Posted by tv izle on April 03, 2008 at 03:43 AM CEST #

gracias

Posted by tv seyret on April 03, 2008 at 03:44 AM CEST #

thnx

Posted by fragman izle on April 03, 2008 at 03:44 AM CEST #

danke

Posted by fragman seyret on April 03, 2008 at 03:44 AM CEST #

tskkk

Posted by piknik tube on April 03, 2008 at 03:45 AM CEST #

tnkx

Posted by pikniktube on April 03, 2008 at 03:45 AM CEST #

thnx

Posted by şifalı bitkiler on April 03, 2008 at 03:45 AM CEST #

danke

Posted by alternatif tıp on April 03, 2008 at 03:46 AM CEST #

tskkk

Posted by bitkilerle tedavi on April 03, 2008 at 03:46 AM CEST #

thnxx

Posted by bitkisel tedavi on April 03, 2008 at 03:46 AM CEST #

tnkx

Posted by شباب ليبيا on May 25, 2008 at 02:19 PM CEST #

thanssx
http://tiffanyline.com/

Posted by Necklaces on August 13, 2008 at 05:55 AM CEST #

Thanks and you good blog and page

Posted by site ekle on September 21, 2008 at 08:09 PM CEST #

thnx

Posted by Driver indir on September 26, 2008 at 09:26 PM CEST #

thanks you site admins wery good

Posted by seks shop on October 17, 2008 at 09:13 PM CEST #

I might tend to agree with you.

Posted by Electronic Cigarette Manufacture on November 24, 2008 at 08:01 AM CET #

Some commonly used jewelry http://www.fabeibei.com/stainlesssteelbracelet.htm stainless steel bracelet to buy the rings http://www.fabeibei.com/jewelrywholesale.htm jewelry wholesale, necklaces http://www.fabeibei.com/menjewelry.htm men jewelry, bracelets http://www.fabeibei.com/stainlesssteelbangle.htm stainless steel bangle and earrings http://www.fabeibei.com/jewelrycompany.htm jewelry company. In these works the stones have different colors, shapes and sizes to consider. In the precious stones can be mixed and matched, so you can create your own look, you can choose a pre-set jewelry http://www.fabeibei.com/fashionjewelry.htm fashion jewelry.
You can buy jewelry http://www.fabeibei.com/316L_stainless_steel_jewelry.htm 316L stainless steel jewelry in the jewelry http://www.fabeibei.com/fashionaccessories.htm fashion accessories department stores and private shops. Many major stores give you the sale of goods in this regard, but you have to check their certification guarantees and, even if they are they. In the store, only sells jewelry http://www.fabeibei.com/stainlesssteelaccessoriesfactory.htm stainless steel accessories factory, diamonds and other precious stones are these. Jewelry http://www.fabeibei.com/stainlesssteelaccessoriesmanufacture.htm stainless steel accessories manufacture stores may also have a high standard of the scope of warranty.

Posted by stainless steel cufflinks on December 10, 2008 at 10:24 AM CET #

thanks

Posted by mirc on December 25, 2008 at 07:03 PM CET #

thanks.

Posted by Chat on January 08, 2009 at 02:10 PM CET #

great.

Posted by Muhabbet on January 08, 2009 at 02:12 PM CET #

hmm great. thank you.

Posted by Egitim on January 08, 2009 at 02:20 PM CET #

so good..

Posted by Egitim on January 08, 2009 at 02:20 PM CET #

oh good..

Posted by Egitim on January 08, 2009 at 02:21 PM CET #

thanks

Posted by müzik on January 08, 2009 at 06:45 PM CET #

http://www.tiffanysjewelry.co.uk
http://www.idealtest.net

Posted by tiffanys jewelry on February 09, 2009 at 09:06 AM CET #

Thanks you too much !

Posted by ARTI AJANS on March 04, 2009 at 03:50 PM CET #

chat odalari bedava chat bedava oyun oyna
http://www.gevezechat.net
http://www.gevezechat.net
http://www.gevezechat.net

Posted by chatodalari on March 25, 2009 at 12:34 AM CET #

Perfect Sites..

Posted by cet on May 02, 2009 at 03:16 AM CEST #

<a href="http://www.chat.t7b.com/1.htm ">شات الشله</a>
<a href="http://www.chat.t7b.com/2.htm ">شات الود</a>
<a href="http://www.chat.t7b.com/33.htm ">شات تعب قلبي</a>
<a href="http://www.chat.t7b.com/160.htm ">شات برق</a>
<a href="http://www.chat.t7b.com/146.htm ">شات الخليج</a>
<a href="http://www.chat.t7b.com/28.htm ">شات بنت السعودية</a>

Posted by شات سعودي on May 19, 2009 at 07:20 PM CEST #

Thank you very much

Posted by Sikis on June 14, 2009 at 05:12 PM CEST #

Thank you very much

Posted by Müzik Dinle on June 14, 2009 at 05:12 PM CEST #

Tiffanys jewellery is your best <a href="http://www.tiffanysjewellery.co.uk/Pendants/">Tiffany Pendants</a> Silver jewelry online store.We have added 200+ <a href="http://www.tiffanystore.co.uk/Bracelets/index.html">Tiffany Bracelets</a>jewellery for our customers at hot price.-BWW

Posted by links of london silver on July 30, 2009 at 11:29 AM CEST #

<a href="http://www.tiffanystore.co.uk/Pendants/index.html">Tiffany Pendants</a> are made in high quality and magnificent design. In our Tiffanysjewellery rings collection, you can find classical, elegant and various styles of rings. And all rings sizes range from 5 to 11 US size.You will find the great selection of <a href="http://www.tiffanysilvers.co.uk/Bracelets/index.html">Tiffany Bracelets</a> at Tiffanys jewellery online store. We have added 200+ <a href="http://tiffanyline.com/Bracelets/index.html">Tiffany Bracelets</a>jewellery for our customers at hot price.We have added 200+ <a href="http://www.tiffanyonsale.com/">Tiffany & Co</a>jewellery for our customers at hot price.-BWW

Posted by link of london on August 04, 2009 at 01:48 PM CEST #

Buy cheap <a href="http://www.glassesshop.com/">prescription eyeglasses</a> in this economic crisis moment. many people buy <a href="http://www.glassesshop.com/">cheap glasses</a> online from Glassesshop.com. Where to buy america's best <a href="http://www.glasses4you.org/">eyeglasses</a>. -BWW

Posted by stylish glasses on August 07, 2009 at 01:55 PM CEST #

http://www.crezeman.com
http://www.crezeman.com/vb/forumdisplay.php?f=2
http://www.crezeman.com/vb/forumdisplay.php?f=4
http://www.crezeman.com/vb
http://www.crezeman.com/vb/forumdisplay.php?f=83
http://www.crezeman.com/vb/forumdisplay.php?f=5
http://www.crezeman.com/vb/forumdisplay.php?f=6
http://www.crezeman.com/vb/forumdisplay.php?f=67
http://www.crezeman.com/vb/forumdisplay.php?f=9
http://www.crezeman.com/vb/forumdisplay.php?f=10
http://www.crezeman.com/vb/forumdisplay.php?f=11
http://www.crezeman.com/vb/forumdisplay.php?f=18
http://www.crezeman.com/vb/forumdisplay.php?f=15
http://www.crezeman.com/vb/forumdisplay.php?f=19
http://www.crezeman.com/vb/forumdisplay.php?f=52
http://www.crezeman.com/vb/forumdisplay.php?f=60
http://www.crezeman.com/vb/forumdisplay.php?f=20
http://www.crezeman.com/vb/forumdisplay.php?f=22
http://www.crezeman.com/vb/forumdisplay.php?f=24
http://www.crezeman.com/vb/forumdisplay.php?f=25
http://www.crezeman.com/vb/forumdisplay.php?f=26
http://www.crezeman.com/vb/forumdisplay.php?f=27
http://www.crezeman.com/vb/forumdisplay.php?f=29
http://www.crezeman.com/vb/forumdisplay.php?f=30
http://www.crezeman.com/vb/forumdisplay.php?f=32
http://www.crezeman.com/vb/forumdisplay.php?f=66
http://www.crezeman.com/vb/forumdisplay.php?f=34
http://www.crezeman.com/vb/forumdisplay.php?f=35
http://www.crezeman.com/vb/forumdisplay.php?f=38
http://www.crezeman.com/vb/forumdisplay.php?f=68
http://www.crezeman.com/vb/forumdisplay.php?f=39
http://www.crezeman.com/vb/forumdisplay.php?f=40
http://www.crezeman.com/vb/forumdisplay.php?f=42
http://www.crezeman.com/vb/forumdisplay.php?f=43
http://www.crezeman.com/vb/forumdisplay.php?f=44
http://www.crezeman.com/vb/forumdisplay.php?f=74
http://www.crezeman.com/vb/forumdisplay.php?f=75
http://www.crezeman.com/vb/forumdisplay.php?f=76
http://www.crezeman.com/vb/forumdisplay.php?f=79
http://www.crezeman.com/vb/forumdisplay.php?f=55
http://www.crezeman.com/vb/forumdisplay.php?f=56
http://www.crezeman.com/vb/forumdisplay.php?f=57
http://www.crezeman.com/vb/forumdisplay.php?f=58
http://www.crezeman.com/vb/forumdisplay.php?f=59
http://www.crezeman.com/vb/forumdisplay.php?f=47
http://www.crezeman.com/vb/forumdisplay.php?f=62
http://www.crezeman.com/vb/forumdisplay.php?f=64
http://www.crezeman.com/vb/forumdisplay.php?f=80
http://www.crezeman.com/vb/sitemap.php

Posted by منتديات كريزي مان on September 09, 2009 at 09:32 AM CEST #

域名
http://www.idolbags.com
http://www.idolluxury.com
http://www.idoldress.com
http://www.idolhandbags.com
http://www.chinahairpiece.com
http://www.hairpiecemarket.com
http://www.oilpaintingorder.com
http://www.luxury-scarf.com
http://www.replica-scarves.com
http://www.replica-scarf.com

http://www.shoes-focus.com
http://www.replica-focus.com
http://www.replicas-focus.com
http://www.dressfocus.com
http://www.voguereplica.com

http://www.vogue-luxury.com
http://www.voguehats.com
http://www.voguescarf.com
http://www.replicasfocus.com
http://www.deisgnersunglass.com

http://www.handagsbiz.com
http://www.watchesbiz.com
http://www.dress-focus.com
http://www.vogue-dress.com
http://www.vogue-sunglass.com

http://www.vogue-sunglasses.com
http://www.underwear-wholesale.com
http://www.vogue-design.com
http://www.cooperatebusiness.com
http://www.cooperatebiz.com

http://www.penreplicas.com
http://www.replica-pen.com
http://www.vogueunderwear.com
http://www.cnreplicasupplier.com
http://www.hotreplicashop.com

http://www.dresssole.com
http://www.babeunderwear.com
http://www.global-replica.com
http://www.chinamodelcar.com
http://www.cnmodelcars.com

http://www.chinamodelwholesale.com
http://www.mayadress.com
http://www.chinamodelcars.com
http://www.shopping-watches.com
http://www.digitaloem.com

http://www.designtalks.com
http://www.chinareplicasupplier.com
http://www.dresssight.com
http://www.needfuldress.com
http://www.needfulshoes.com

Posted by replica handbags on September 14, 2009 at 08:17 AM CEST #

wholesale silver jewelry at smallmoqjewelry inc

Posted by silver jewelry on September 17, 2009 at 06:21 AM CEST #

jewelry wholesale at china-jewelry-wholesale inc

Posted by jewelry wholesale on September 17, 2009 at 06:22 AM CEST #

thanks you perfect working.

Posted by cd on September 27, 2009 at 03:59 PM CEST #

<p>You are right, I believe that there will be many readers like you</p>
<p><A href="http://www.bestlouisvuitton.com/chanel-bags-chanel-cambon-c-234_255.html">Chanel Cambon</A>?<A href="http://www.discount-christianlouboutin.com/christian-louboutin-c-13.html">Christian Louboutin</A>?<A href="http://www.bestlouisvuitton.com/chanel-bags-c-234.html">Chanel Bags</A> <A href="http://www.bestlouisvuitton.com/chanel-bags-chanel-clutches-c-234_244.html">Chanel Clutches</A> <A href="http://www.discount-christianlouboutin.com/jimmy-choo-c-14.html">Jimmy Choo</A>
</p>
<p><A href="http://www.bestlouisvuitton.com/chanel-bags-chanel-denim-handbags-c-234_245.html">Chanel Denim Handbags</A>?<A href="http://www.discount-christianlouboutin.com/manolo-blahnik-c-15.html">Manolo Blahnik</A> <A href="http://www.bestlouisvuitton.com/chanel-bags-chanel-nappa-handbags-c-234_249.html">Chanel nappa handbags</A></p>

<p><A href="http://www.discount-christianlouboutin.com/yves-saint-lauret-c-16.html">Yves Saint Lauret</A>?<A href="http://www.buylouboutin.com/christian-louboutin-boots-c-67.html">Christian Louboutin Boots</A> <A href="http://www.yitingbuy.com/gucci-handbags-c-138_140.html">Gucci Handbags</A></p>
<p><A href="http://www.discount-christianlouboutin.com/">discount christianlouboutin</A><A href="http://www.buylouboutin.com/manolo-blahnik-c-68.html">Manolo Blahnik</A> <A href="http://www.yitingbuy.com/gucci-bags-c-138.html">Gucci Bags</A>?<A href="http://www.yitingbuy.com/gucci-handbags-c-138_140.html"></A></p>
<p><A href="http://www.buylouboutin.com/jimmy-choo-c-72.html">Jimmy Choo</A>? <A href="http://www.yitingbuy.com/gucci-wallets-c-138_139.html">Gucci Wallets</A>?<A href="http://www.bestlouisvuitton.com/louis-vuitton-bags-c-200.html">Louis Vuitton Bags</A></p>

<p><A href="http://www.buylouboutin.com/yves-saint-lauret-c-73.html">Yves Saint Lauret</A>? <A href="http://www.buylouboutin.com/yves-saint-lauret-c-73.html">YSL</A>?<A href="http://www.buylouboutin.com/">Christian Louboutin</A>?</p>
<p><A href="http://www.bestlouisvuitton.com/">http://www.bestlouisvuitton.com/</A></p>
<p><A href="http://www.buylouboutin.com/">http://www.buylouboutin.com/</A></p>
<p><A href="http://www.yitingbuy.com/">http://www.yitingbuy.com/</A></p>
<p><A href="http://www.discount-christianlouboutin.com/">http://www.discount-christianlouboutin.com/</A></p>
<p>&nbsp;</p>

Posted by 69.197.177.130 on October 05, 2009 at 08:46 AM CEST #

It was a very nice idea! Just wanna say thank you for the information you have shared. Just continue writing this kind of post. I will be your loyal reader. Thanks again.

Posted by Wow gold on October 09, 2009 at 02:40 AM CEST #

http://www.cheapglasses123.com glasses
http://www.cheapglasses123.com/eyeglasses/prescription-sunglasses prescription sunglasses
http://www.cheapglasses123.com/eyeglasses/cheap-eyeglasses cheap eyeglasses
http://www.cheapglasses123.com/eyeglasses/cheap-glasses cheap glasses
http://www.cheapglasses123.com eyeglasses
http://www.cheapglasses123.com/eyeglasses/eyeglass-frames eyeglasses frames
http://www.cheapglasses123.com/eyeglasses/plastic-glasses plastic glasses
http://www.cheapglasses123.com/eyeglasses/prescription-glasses prescription glasses
http://www.cheapglasses123.com/eyeglasses/progressive-glasses progressive eyeglasses
http://www.cheapglasses123.com/eyeglasses/reading-glasses reading glasses

http://www.cheapglasses123.com eyeglasses
http://www.cheapglasses123.com/discount-glasses discount glasses
http://www.cheapglasses123.com/eyeglasses eyeglasses
http://www.cheapglasses123.com/progressive-glasses progressive glasses
http://www.cheapglasses123.com/cheap-glasses cheap glasses
http://www.cheapglasses123.com/reading-glasses reading glasses
http://www.cheapglasses123.com/prescription-glasses prescription glasses

http://www.cheapglasses123.com cheap glasses
http://www.cheapglasses123.com/tag/cheap-glasses cheap glasses
http://www.cheapglasses123.com/tag/discount-eyeglasses discount eyeglasses
http://www.cheapglasses123.com/tag/discount-glasses discount glasses
http://www.cheapglasses123.com/tag/eyeglasses-frames eyeglasses frames
http://www.cheapglasses123.com/tag/prescription-glasses prescription glasses
http://www.cheapglasses123.com/tag/prescription-sunglasses prescription sunglasses
http://www.cheapglasses123.com/tag/progressive-eyeglasses progressive eyeglasses
http://www.cheapglasses123.com/tag/reading-glasses reading glasses
http://www.cheapglasses123.com/tag/sunglasses sunglasses

Posted by prescription glasses on October 15, 2009 at 03:04 AM CEST #

I think I will try to recommend this post to my friends and family, cuz it’s really helpful.

Posted by christian louboutin sale on November 07, 2009 at 03:52 AM CET #

Post a Comment:
  • HTML Syntax: NOT allowed

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.