Login  

Blog Stats

                

                   E-mail | Twitter

TamTamy from Reply

New: Subscribe via e-mail

Enter your email address:

Delivered by FeedBurner

Follow Dion Hinchcliffe on Twitter

follow dhinchcliffe at http://twitter.com

Web 2.0 Expo New York 2008

Sponsored Advertising


Your Ad Here

Post Categories

Archives

Blogs Read By Me

Building Blocks of Great Systems

Consulting

Contact

Tech News Read By Me


Head First Design Patterns:

Don't reinvent the wheel, use the most insanely great book on design patterns yet written.

Listed on BlogShares

Dion Hinchcliffe's Blog - Musings and Ruminations on Building Great Systems

Lightweight Processes, Service-Orientation, Enterprise Architecture, and Software Development

As my consulting partner Thad Scheer and I prepare to give a keynote at this week's SAIC SOA Industry Day, we've been working hard on a succinct definition of Service-Oriented Architecture. It has to go beyond the simple definition of a "bunch of related web services" since SOA is quite a bit more than that. However, because SOA is a complex and rich architectural concept, oversimplifying it can do real harm too.

In the end, we've decided to keep the definition simple but focus beyond the obvious. To be effective, SOAs should probably be described as being foremost about abstraction, with services exchanging messages in the language of the domain. And once you have a basic service landscape with a common (or at least similar) vocabulary, the good stuff can happen: SOAs then become environments of ubiquitous and autonomous services that dynamically interoperate to achieve common goals. This is also known as orchestration and is usually the most compelling aspect of intentional SOA architectures.

By designing services to speak a common language, and then by wiring them together in a loosely coupled fashion (i.e. BPEL, BizTalk, etc) to provide integrated functionality, SOAs can create an extremely strong yet highly pliable architectural fabric. This fabric can propel an organization forward to achieve the technical and business goals they desire like very few other architectural approaches.

Figure 1: Checking the Contract and Invoking the Service with Loose-Coupling

What does this have to do with service description and the ongoing SDL comparison? Building large, federated SOAs is still quite difficult, especially when you have to incorporate services outside your firewall. Part of this is because of the ongoing standards story, or fragmentation thereof. While SOAP and WSDL still have an airtight lock on the web services standards story, other approaches have evolved. REST services, the Semantic Web (RDF & OWL), and others have inevitably been creeping in from the sidelines and any decent SOA will have to determine how to embrace them.

An overarching SDL that could describe 90% of the types of services in common use would really help. So would one that makes it easy to consume a service, is straightforward to use, and promotes service-orientation. The details I've spoken about in my previous posts so I won't belabor those points, but I do very much like the service-orientation precepts I came across this weekend at serviceorientation.org.

A Tour of a Loosely-Coupled Web Service C# Client Using WSDL 1.1

I was hoping it was going to be fairly easy to build a client for our canonical Order SOAP service. As I blogged about previously, the client should dynamically check its service contract (here) for existence, location, binding, operations, and schema. Once the contract has been examined to ensure that it hasn't changed unacceptably, the client can use simple XMLHTTP to construct the XML SOAP envelope and place an order with the SOAP service via HTTP. In the client posted here, I even pull the current location of the service from the WSDL service description in case it changes, thus making the client even more resilient and dynamically compliant with the service contract (though certainly, it brings up security issues).

Since we never leave XML, the client is wonderfully straightforward and can handle pretty much any format that XML Schemas can hand out. Like we've discussed before, this is one of the common problems with code generated from service descriptions; it often can't be mapped to the local language though the XML/programming language mapping issue will continue to be a hot topic in the community. The second part is the kicker, since we check the contract only for the bits of the service we use, the client's relationship to the service is highly loosely coupled. The way I constructed the client, you can add operations, change the order schema, move the service, and as long as you haven't changed a part that I care about, it all works.

Loose-coupling is one of the most important concepts of SOA. Since you are wiring together many or even most of your organization's (and others) services together, making the dependencies between them brittle in any way can be disasterous. Finding a technique to make the connections between SOA services reliable yet supple can be an important success factor, and my experiences with this approach so far have been very positive.

The crux of the contract checking process is to use easy-to-understand XPath queries on the service description on a periodic basis. How often is up to the user, but since it's quite fast, I don't see why it can't happen very often as long as thousands of operations a minute aren't the norm. If they are, you can scale back the frequency of contract checking depending on the level of reliability required.

The source for the Loosely Coupled C# WSDL Order Client is here. It's still a bit crude, and we'll clean up things as we go. You'll need to use tlbimp to build an interop DLL for MSXML2 and build the client with the command-line C# compiler, like so: csc oc /r:msxml2. For the faint of heart, the C# Order Client executable is here. You can place orders and check on them in one single command-line operation. The source code has details in the comments for how the contract checking is done in XPath for WSDL 1.1. To see the orders from the server side, I have a dynamically updated web page of the currently placed orders. Note: Comments and criticisms are welcome, the more scrutiny the better.

Now that it's done, I was actually quite surprised how straightforward contract checking WSDL was. With a well-documented pattern I think the average programmer could do it without much trouble. That wasn't what I was expecting necessarily and I'll be very curious to see how the other SDLs check out in this regard. One issue of course is that the service and schema being used are fairly simple. We might have to do a sanity check against a more complex service but that will have to wait until the comparison is done.

Next: The same client in Java and Ruby and then we pick another SDL.

Technorati: , , ,

posted on Monday, June 13, 2005 4:40 AM

AddThis Social Bookmark Button

What People Are Saying About This Post...

# re: Building a Loosely-Coupled Web Service Client by Contract-Checking WSDL 6/13/2005 7:18 AM Javier Cámara
You said that "SOAs should probaby be described as being foremost about abstraction, with services exchanging messages in the language of the domain." This is about right to me, but I think that actually the Model used by the SOA services would be a *derivation* of the Domain Model the end users understand, but not the same Domain Model. I am just involved in a project in which we will distinguish between the Conceptual Domain Model, which is the one understood by the users, and the Operative Domain Model, which is a transformation of the former because of technical reasons.

Both of them have the same old difference of "analysis" and "design". E.g. in the Conceptual Model a Customer may have 100+ fields, but in the Operative one there will not be such "Customer", but pieces of it: Customer_Basic (only with customer id and name), Customer_Addr (same as Customer_Basic + address), and so on. Other difference would be the inclusion of technical elements, like e.g. parameters for paging long lists or timestamps to allow for optimist locking. Other important difference would be "joins": while in the Conceptual Model a Customer could have a property called invoices[] of type Invoice (as a UML association or composition,) in the Operative one this would most surely not exist, but instead a service operation for retrieving the invoices would.

In the end all of it means that the Operative Model, though derived from the Conceptual one, is *not* understandable by users. This means that products like MS InfoPath will not be useful for end users to directly access a SOA; unless some kind of Conceptual Modeling is possible on top of a SOA. And this is just what I am trying to do in my project.

Regards

# re: Building a Loosely-Coupled Web Service Client by Contract-Checking WSDL 6/14/2005 12:21 PM Dion Hinchcliffe
Hi Javier,

Thanks for responding. I agree that the mismatch between the conceptual and the operative model is a very common problem in software. The two models are hard to keep in sync, require much work to reconcile, and frequently make niether party (the users or the developers) very happy. I like Eric Evans' attempt to deal with this in Domain Driven Design where he says that the two models should be one and details how to do it from experience.

SOA's will have the same problem if the message structures that the services use are not understandable by the local domain experts. Swizzling and transforming data so that it reliably comes from one service and goes into another service isn't easy, despite tools like BizTalk's business process designer and associated mapping utilities.

The problem is partially that XML, with now-common namespace clutter and other obfuscations, may be beyond most users ability to deal with. Does this mean SOA orchestration or, like you suggest InfoPath access to SOA data, has low value, because it's not achievable? Probably not but the issue is unresolved and a new generation of tools like BEA's AquaLogic and IONA's Artix will certainly try to get there.

# WSDL 1.1 Service Description Comparison for SOAP Finishing UP; SSDL Up Next 6/21/2005 8:52 AM Dion Hinchcliffe's Blog - Musings and Ruminations


# WSDL 1.1 Service Description Comparison for SOAP Finishing UP; SSDL Up Next 6/21/2005 8:56 AM Dion Hinchcliffe's Blog - Musings and Ruminations


# Backlog 6/29/2005 1:29 PM Stefan Tilkov's Random Stuff
I don’t read blogs for three days, and this is what happens … 785 messages, where probably are worth bookmarking and 50 actually merit closer reading. Damn. The last time I tried to somehow work through the backlog of messages that had accumulated, I ended up just hitting “Mark all read” on a thousand or so … inducing a...

# Exploring the WOA/Client Approach: Pattern #1 - Run-Time Web Service Contract Checking 8/12/2006 10:31 AM Dion Hinchcliffe's Blog - Musings and Ruminations


# Exploring the WOA/Client Approach: Pattern #1 - Run-Time Web Service Contract Checking 8/12/2006 10:35 AM Dion Hinchcliffe's Blog - Musings and Ruminations


# trenz93 9/21/2006 11:28 AM trenz93
- http://www.azapta.org/ - http://www.azapta.org/accelerer_telechargement/ - http://www.azapta.org/achat_antivirus/ - http://www.azapta.org/achat_logiciel/ - http://www.azapta.org/achat_logiciels/ - http://www.azapta.org/achat_mp3/ - http://www.azapta.org/acheter_logiciel/ - http://www.azapta.org/acheter_logiciels/ - http://www.azapta.org/acrobat/ - http://www.azapta.org/ad_aware/ - http://www.azapta.org/adobe_acrobat/ - http://www.azapta.org/adresse_msn/ - http://www.azapta.org/album/ - http://www.azapta.org/albums/ - http://www.azapta.org/anti_spyware/ - http://www.azapta.org/anti_spyware_gratuit/ - http://www.azapta.org/anti_virus_software/ - http://www.azapta.org/antivirus/ - http://www.azapta.org/antivirus_a_telecharger/ - http://www.azapta.org/antivirus_and_gratuit/ - http://www.azapta.org/antivirus_avast/ - http://www.azapta.org/antivirus_avast_gratuit/ - http://www.azapta.org/antivirus_avg/ - http://www.azapta.org/antivirus_com/ - http://www.azapta.org/antivirus_comparatif/ - http://www.azapta.org/antivirus_download/ - http://www.azapta.org/antivirus_en_ligne/ - http://www.azapta.org/antivirus_en_ligne_gratuit/ - http://www.azapta.org/antivirus_firewall/ - http://www.azapta.org/antivirus_francais/ - http://www.azapta.org/antivirus_free/ - http://www.azapta.org/antivirus_gratis/ - http://www.azapta.org/antivirus_gratui/ - http://www.azapta.org/antivirus_gratuis/ - http://www.azapta.org/antivirus_gratuit/ - http://www.azapta.org/antivirus_gratuit_a_telecharger/ - http://www.azapta.org/antivirus_gratuit_avast/ - http://www.azapta.org/antivirus_gratuit_en_ligne/ - http://www.azapta.org/antivirus_gratuit_francais/ - http://www.azapta.org/antivirus_gratuitement/ - http://www.azapta.org/antivirus_kaspersky/ - http://www.azapta.org/antivirus_mac/ - http://www.azapta.org/antivirus_mcafee/ - http://www.azapta.org/antivirus_norton/ - http://www.azapta.org/antivirus_online/ - http://www.azapta.org/antivirus_panda/ - http://www.azapta.org/antivirus_personal/ - http://www.azapta.org/antivirus_pour_scanner/ - http://www.azapta.org/antivirus_protection/ - http://www.azapta.org/antivirus_review/ - http://www.azapta.org/antivirus_software/ - http://www.azapta.org/antivirus_wanadoo/ - http://www.azapta.org/astrologie/ - http://www.azapta.org/astrologie_chinoise/ - http://www.azapta.org/astrologie_gratuite/ - http://www.azapta.org/astuce/ - http://www.azapta.org/astuce_jeu/ - http://www.azapta.org/astuce_jeu_pc/ - http://www.azapta.org/astuce_jeu_video/ - http://www.azapta.org/astuce_jeux/ - http://www.azapta.org/astuce_msn/ - http://www.azapta.org/astuce_msn_messenger/ - http://www.azapta.org/astuce_pc/ - http://www.azapta.org/astuces_jeux_pc/ - http://www.azapta.org/astuces_pc/ - http://www.azapta.org/avast/ - http://www.azapta.org/avast_antivirus/ - http://www.azapta.org/avast_antivirus_gratuit/ - http://www.azapta.org/avatar_msn/ - http://www.azapta.org/avg/ - http://www.azapta.org/avg_antivirus/ - http://www.azapta.org/baladeur_cd_mp3/ - http://www.azapta.org/baladeur_mp3/ - http://www.azapta.org/baladeur_mp3_fm/ - http://www.azapta.org/bitdefender/ - http://www.azapta.org/cd_musique/ - http://www.azapta.org/chanson_a_telecharger/ - http://www.azapta.org/chanson_a_telecharger_gratuitement/ - http://www.azapta.org/chef_recette/ - http://www.azapta.org/clean_messenger/ - http://www.azapta.org/clip_musique/ - http://www.azapta.org/clip_video/ - http://www.azapta.org/clone_cd/ - http://www.azapta.org/clone_dvd/ - http://www.azapta.org/cocktail/ - http://www.azapta.org/code_et_astuce/ - http://www.azapta.org/code_et_astuces/ - http://www.azapta.org/code_jeu_video/ - http://www.azapta.org/code_jeux_video/ - http://www.azapta.org/codec_divx/ - http://www.azapta.org/codec_telecharger/ - http://www.azapta.org/comparatif_antivirus/ - http://www.azapta.org/computer_software/ - http://www.azapta.org/convertir_mp3/ - http://www.azapta.org/convertisseur_mp3/ - http://www.azapta.org/convertisseur_wma_mp3/ - http://www.azapta.org/crack_logiciel/ - http://www.azapta.org/crack_logiciels/ - http://www.azapta.org/dessin_tatouage/ - http://www.azapta.org/dessin_tatouages/ - http://www.azapta.org/divx/ - http://www.azapta.org/divx_a_telecharger/ - http://www.azapta.org/divx_codec/ - http://www.azapta.org/divx_dvd/ - http://www.azapta.org/divx_gratuit/ - http://www.azapta.org/divx_player/ - http://www.azapta.org/divx_pro/ - http://www.azapta.org/download_mp3/ - http://www.azapta.org/dvd/ - http://www.azapta.org/dvd_divx/ - http://www.azapta.org/dvd_film/ - http://www.azapta.org/dvd_musique/ - http://www.azapta.org/dvd_pas_cher/ - http://www.azapta.org/dvd_porno/ - http://www.azapta.org/dvd_shrink/ - http://www.azapta.org/dvd_vierge/ - http://www.azapta.org/dvd_x/ - http://www.azapta.org/e_messenger/ - http://www.azapta.org/ecouter_musique/ - http://www.azapta.org/ecran_de_veille_a_telecharger_gratuitement/ - http://www.azapta.org/edonkey/ - http://www.azapta.org/edonkey_2000/ - http://www.azapta.org/emoticone_a_telecharger/ - http://www.azapta.org/emoticone_a_telecharger_gratuit/ - http://www.azapta.org/emoticone_msn/ - http://www.azapta.org/emoticone_msn_messenger/ - http://www.azapta.org/emule/ - http://www.azapta.org/emule_0_46/ - http://www.azapta.org/emule_fr/ - http://www.azapta.org/emule_france/ - http://www.azapta.org/emule_gratuit/ - http://www.azapta.org/emule_paradise/ - http://www.azapta.org/emule_plus/ - http://www.azapta.org/emule_telechargement/ - http://www.azapta.org/emule_telechargement_gratuit/ - http://www.azapta.org/emule_telecharger/ - http://www.azapta.org/emule_telecharger_gratuit/ - http://www.azapta.org/encodeur_mp3/ - http://www.azapta.org/extrait_video_porno/ - http://www.azapta.org/film/ - http://www.azapta.org/film_a_telecharger/ - http://www.azapta.org/film_a_telecharger_gratuitement/ - http://www.azapta.org/film_amateur/ - http://www.azapta.org/film_cinema/ - http://www.azapta.org/film_de_cul/ - http://www.azapta.org/film_divx/ - http://www.azapta.org/film_divx_a_telecharger/ - http://www.azapta.org/film_dvd/ - http://www.azapta.org/film_erotique/ - http://www.azapta.org/film_gay/ - http://www.azapta.org/film_gratuit/ - http://www.azapta.org/film_gratuit_a_telecharger/ - http://www.azapta.org/film_pirate_telechargement_gratuit/ - http://www.azapta.org/film_porno/ - http://www.azapta.org/film_porno_gratuit/ - http://www.azapta.org/film_pornographique/ - http://www.azapta.org/film_sex/ - http://www.azapta.org/film_sexe/ - http://www.azapta.org/film_sexe_gratuit/ - http://www.azapta.org/film_telechargement/ - http://www.azapta.org/film_telecharger/ - http://www.azapta.org/film_telecharger_gratuitement/ - http://www.azapta.org/film_x/ - http://www.azapta.org/film_x_a_telecharger/ - http://www.azapta.org/film_x_amateur/ - http://www.azapta.org/film_x_gratuit/ - http://www.azapta.org/film_xxx/ - http://www.azapta.org/films/ - http://www.azapta.org/films_a_telecharger/ - http://www.azapta.org/films_de_culs/ - http://www.azapta.org/films_dvd/ - http://www.azapta.org/films_erotiques/ - http://www.azapta.org/films_gratuit/ - http://www.azapta.org/films_porno/ - http://www.azapta.org/films_porno_gratuit/ - http://www.azapta.org/films_pornographiques/ - http://www.azapta.org/films_telecharger/ - http://www.azapta.org/films_x/ - http://www.azapta.org/films_x_gratuit/ - http://www.azapta.org/firewall/ - http://www.azapta.org/fond_and_ecran/ - http://www.azapta.org/fond_d_ecran/ - http://www.azapta.org/fond_d_ecran_3d/ - http://www.azapta.org/fond_d_ecran_a_telecharger/ - http://www.azapta.org/fond_d_ecran_amour/ - http://www.azapta.org/fond_d_ecran_anime/ - http://www.azapta.org/fond_d_ecran_anne_geddes/ - http://www.azapta.org/fond_d_ecran_chat/ - http://www.azapta.org/fond_d_ecran_cheval/ - http://www.azapta.org/fond_d_ecran_cinema/ - http://www.azapta.org/fond_d_ecran_dauphin/ - http://www.azapta.org/fond_d_ecran_diddl/ - http://www.azapta.org/fond_d_ecran_disney/ - http://www.azapta.org/fond_d_ecran_f1/ - http://www.azapta.org/fond_d_ecran_fleurs/ - http://www.azapta.org/fond_d_ecran_gratuit/ - http://www.azapta.org/fond_d_ecran_humour/ - http://www.azapta.org/fond_d_ecran_mangas/ - http://www.azapta.org/fond_d_ecran_montagne/ - http://www.azapta.org/fond_d_ecran_moto/ - http://www.azapta.org/fond_d_ecran_nature/ - http://www.azapta.org/fond_d_ecran_ordinateur/ - http://www.azapta.org/fond_d_ecran_paysage/ - http://www.azapta.org/fond_d_ecran_pc/ - http://www.azapta.org/fond_d_ecran_pc_gratuit/ - http://www.azapta.org/fond_d_ecran_psp/ - http://www.azapta.org/fond_d_ecran_sexy/ - http://www.azapta.org/fond_d_ecran_tuning/ - http://www.azapta.org/fond_ecran_3d/ - http://www.azapta.org/fond_ecran_animal/ - http://www.azapta.org/fond_ecran_anne_geddes/ - http://www.azapta.org/fond_ecran_aquarium/ - http://www.azapta.org/fond_ecran_bebe/ - http://www.azapta.org/fond_ecran_chat/ - http://www.azapta.org/fond_ecran_cheval/ - http://www.azapta.org/fond_ecran_chien/ - http://www.azapta.org/fond_ecran_dauphin/ - http://www.azapta.org/fond_ecran_diddl/ - http://www.azapta.org/fond_ecran_disney/ - http://www.azapta.org/fond_ecran_fleurs/ - http://www.azapta.org/fond_ecran_gratuit/ - http://www.azapta.org/fond_ecran_humour/ - http://www.azapta.org/fond_ecran_mangas/ - http://www.azapta.org/fond_ecran_mobile/ - http://www.azapta.org/fond_ecran_montagne/ - http://www.azapta.org/fond_ecran_moto/ - http://www.azapta.org/fond_ecran_nature/ - http://www.azapta.org/fond_ecran_om/ - http://www.azapta.org/fond_ecran_ordinateur/ - http://www.azapta.org/fond_ecran_paysage/ - http://www.azapta.org/fond_ecran_pc/ - http://www.azapta.org/fond_ecran_pc_gratuit/ - http://www.azapta.org/fond_ecran_portable/ - http://www.azapta.org/fond_ecran_printemps/ - http://www.azapta.org/fond_ecran_psp/ - http://www.azapta.org/fond_ecran_saint_valentin/ - http://www.azapta.org/fond_ecran_sexy/ - http://www.azapta.org/fond_ecran_star_wars/ - http://www.azapta.org/fond_ecran_tuning/ - http://www.azapta.org/fond_ecran_voiture/ - http://www.azapta.org/fonds_and_d_ecran/ - http://www.azapta.org/fonds_and_ecran/ - http://www.azapta.org/fonds_d_ecran/ - http://www.azapta.org/fonds_d_ecran_3d/ - http://www.azapta.org/fonds_d_ecran_amour/ - http://www.azapta.org/fonds_d_ecran_anne_geddes/ - http://www.azapta.org/fonds_d_ecran_chat/ - http://www.azapta.org/fonds_d_ecran_cheval/ - http://www.azapta.org/fonds_d_ecran_cinema/ - http://www.azapta.org/fonds_d_ecran_dauphin/ - http://www.azapta.org/fonds_d_ecran_diddl/ - http://www.azapta.org/fonds_d_ecran_disney/ - http://www.azapta.org/fonds_d_ecran_f1/ - http://www.azapta.org/fonds_d_ecran_fleurs/ - http://www.azapta.org/fonds_d_ecran_gratuit/ - http://www.azapta.org/fonds_d_ecran_humour/ - http://www.azapta.org/fonds_d_ecran_mangas/ - http://www.azapta.org/fonds_d_ecran_montagne/ - http://www.azapta.org/fonds_d_ecran_moto/ - http://www.azapta.org/fonds_d_ecran_nature/ - http://www.azapta.org/fonds_d_ecran_ordinateur/ - http://www.azapta.org/fonds_d_ecran_paysage/ - http://www.azapta.org/fonds_d_ecran_pc/ - http://www.azapta.org/fonds_d_ecran_pc_gratuit/ - http://www.azapta.org/fonds_d_ecran_psp/ - http://www.azapta.org/fonds_d_ecran_sexy/ - http://www.azapta.org/fonds_d_ecran_tuning/ - http://www.azapta.org/fonds_ecran_3d/ - http://www.azapta.org/fonds_ecran_animal/ - http://www.azapta.org/fonds_ecran_anime/ - http://www.azapta.org/fonds_ecran_anne_geddes/ - http://www.azapta.org/fonds_ecran_aquarium/ - http://www.azapta.org/fonds_ecran_bebe/ - http://www.azapta.org/fonds_ecran_chat/ - http://www.azapta.org/fonds_ecran_cheval/ - http://www.azapta.org/fonds_ecran_chien/ - http://www.azapta.org/fonds_ecran_dauphin/ - http://www.azapta.org/fonds_ecran_diddl/ - http://www.azapta.org/fonds_ecran_disney/ - http://www.azapta.org/fonds_ecran_fleurs/ - http://www.azapta.org/fonds_ecran_humour/ - http://www.azapta.org/fonds_ecran_mangas/ - http://www.azapta.org/fonds_ecran_mobile/ - http://www.azapta.org/fonds_ecran_montagne/ - http://www.azapta.org/fonds_ecran_moto/ - http://www.azapta.org/fonds_ecran_nature/ - http://www.azapta.org/fonds_ecran_om/ - http://www.azapta.org/fonds_ecran_ordinateur/ - http://www.azapta.org/fonds_ecran_paysage/ - http://www.azapta.org/fonds_ecran_pc/ - http://www.azapta.org/fonds_ecran_pc_gratuit/ - http://www.azapta.org/fonds_ecran_portable/ - http://www.azapta.org/fonds_ecran_printemps/ - http://www.azapta.org/fonds_ecran_psp/ - http://www.azapta.org/fonds_ecran_saint_valentin/ - http://www.azapta.org/fonds_ecran_sexy/ - http://www.azapta.org/fonds_ecran_star_wars/ - http://www.azapta.org/fonds_ecran_tuning/ - http://www.azapta.org/francaise_des_jeu/ - http://www.azapta.org/francaise_des_jeux/ - http://www.azapta.org/france_musique/ - http://www.azapta.org/free_antivirus/ - http://www.azapta.org/free_mp3/ - http://www.azapta.org/free_software/ - http://www.azapta.org/free_wallpaper/ - http://www.azapta.org/graveur_dvd/ - http://www.azapta.org/henne/ - http://www.azapta.org/horoscope/ - http://www.azapta.org/horoscope_2006/ - http://www.azapta.org/horoscope_2006_gratuit/ - http://www.azapta.org/horoscope_balance/ - http://www.azapta.org/horoscope_belier/ - http://www.azapta.org/horoscope_cancer/ - http://www.azapta.org/horoscope_capricorne/ - http://www.azapta.org/horoscope_chinois/ - http://www.azapta.org/horoscope_du_jour/ - http://www.azapta.org/horoscope_gemeau/ - http://www.azapta.org/horoscope_gratuit/ - http://www.azapta.org/horoscope_lion/ - http://www.azapta.org/horoscope_mensuel/ - http://www.azapta.org/horoscope_poisson/ - http://www.azapta.org/horoscope_sagittaire/ - http://www.azapta.org/horoscope_scorpion/ - http://www.azapta.org/horoscope_taureau/ - http://www.azapta.org/horoscope_verseau/ - http://www.azapta.org/horoscope_vierge/ - http://www.azapta.org/hot_video/ - http://www.azapta.org/hotmail_messenger/ - http://www.azapta.org/i_love_messenger/ - http://www.azapta.org/icon/ - http://www.azapta.org/icone/ - http://www.azapta.org/icone_gratuit/ - http://www.azapta.org/icones/ - http://www.azapta.org/icones_gratuit/ - http://www.azapta.org/icons/ - http://www.azapta.org/image_fond_d_ecran/ - http://www.azapta.org/image_fond_ecran/ - http://www.azapta.org/imesh/ - http://www.azapta.org/installer_msn_messenger/ - http://www.azapta.org/instant_messenger/ - http://www.azapta.org/instrument_de_musique/ - http://www.azapta.org/jaquette_de_film/ - http://www.azapta.org/jaquette_dvd/ - http://www.azapta.org/jeu/ - http://www.azapta.org/jeu_a_telecharger/ - http://www.azapta.org/jeu_a_telecharger_gratuit/ - http://www.azapta.org/jeu_a_telecharger_gratuitement/ - http://www.azapta.org/jeu_a_telecharger_sur_pc/ - http://www.azapta.org/jeu_action/ - http://www.azapta.org/jeu_adulte/ - http://www.azapta.org/jeu_aventure/ - http://www.azapta.org/jeu_barbie/ - http://www.azapta.org/jeu_d_avion_a_telecharger/ - http://www.azapta.org/jeu_d_echec_a_telecharger/ - http://www.azapta.org/jeu_de_billard_a_telecharger/ - http://www.azapta.org/jeu_de_carte/ - http://www.azapta.org/jeu_de_carte_a_telecharger/ - http://www.azapta.org/jeu_de_tarot/ - http://www.azapta.org/jeu_de_voiture/ - http://www.azapta.org/jeu_de_voiture_gratuit/ - http://www.azapta.org/jeu_en_ligne/ - http://www.azapta.org/jeu_en_ligne_gratuit/ - http://www.azapta.org/jeu_enfant/ - http://www.azapta.org/jeu_erotique/ - http://www.azapta.org/jeu_flash/ - http://www.azapta.org/jeu_flash_a_telecharger/ - http://www.azapta.org/jeu_fr/ - http://www.azapta.org/jeu_gratiut_a_telecharger/ - http://www.azapta.org/jeu_gratuis_a_telecharger/ - http://www.azapta.org/jeu_gratuit/ - http://www.azapta.org/jeu_gratuit_a_telecharger/ - http://www.azapta.org/jeu_gratuit_en_ligne/ - http://www.azapta.org/jeu_online/ - http://www.azapta.org/jeu_pc/ - http://www.azapta.org/jeu_pc_a_telecharger/ - http://www.azapta.org/jeu_pc_a_telecharger_gratuit/ - http://www.azapta.org/jeu_pc_a_telecharger_gratuitement/ - http://www.azapta.org/jeu_pc_gratuit_a_telecharger/ - http://www.azapta.org/jeu_pc_telecharger_gratuitement/ - http://www.azapta.org/jeu_pokemon_a_telecharger/ - http://www.azapta.org/jeu_pour_enfant_a_telecharger/ - http://www.azapta.org/jeu_sexe/ - http://www.azapta.org/jeu_sexy/ - http://www.azapta.org/jeu_solitaire/ - http://www.azapta.org/jeu_telecharger/ - http://www.azapta.org/jeu_telecharger_gratuitement/ - http://www.azapta.org/jeu_video/ - http://www.azapta.org/jeu_video_a_telecharger/ - http://www.azapta.org/jeu_video_a_telecharger_gratuitement/ - http://www.azapta.org/jeu_video_com/ - http://www.azapta.org/jeu_video_gratuit/ - http://www.azapta.org/jeu_video_gratuit_a_telecharger/ - http://www.azapta.org/jeu_video_pc/ - http://www.azapta.org/jeu_video_telecharger/ - http://www.azapta.org/jeux/ - http://www.azapta.org/jeux_a_telecharger/ - http://www.azapta.org/jeux_a_telecharger_gratuit/ - http://www.azapta.org/jeux_a_telecharger_gratuitement/ - http://www.azapta.org/jeux_a_telecharger_sur_pc/ - http://www.azapta.org/jeux_action/ - http://www.azapta.org/jeux_adulte/ - http://www.azapta.org/jeux_aventure/ - http://www.azapta.org/jeux_barbie/ - http://www.azapta.org/jeux_d_avion_a_telecharger/ - http://www.azapta.org/jeux_d_echec_a_telecharger/ - http://www.azapta.org/jeux_de_billard_a_telecharger/ - http://www.azapta.org/jeux_de_carte/ - http://www.azapta.org/jeux_de_carte_a_telecharger/ - http://www.azapta.org/jeux_de_tarot/ - http://www.azapta.org/jeux_de_voiture/ - http://www.azapta.org/jeux_de_voiture_gratuit/ - http://www.azapta.org/jeux_en_ligne/ - http://www.azapta.org/jeux_enfant/ - http://www.azapta.org/jeux_erotique/ - http://www.azapta.org/jeux_flash/ - http://www.azapta.org/jeux_flash_a_telecharger/ - http://www.azapta.org/jeux_fr/ - http://www.azapta.org/jeux_gratiut_a_telecharger/ - http://www.azapta.org/jeux_gratuis_a_telecharger/ - http://www.azapta.org/jeux_gratuit/ - http://www.azapta.org/jeux_gratuit_a_telecharger/ - http://www.azapta.org/jeux_gratuit_en_ligne/ - http://www.azapta.org/jeux_online/ - http://www.azapta.org/jeux_pc/ - http://www.azapta.org/jeux_pc_a_telecharger/ - http://www.azapta.org/jeux_pc_a_telecharger_gratuit/ - http://www.azapta.org/jeux_pc_a_telecharger_gratuitement/ - http://www.azapta.org/jeux_pc_gratuit_a_telecharger/ - http://www.azapta.org/jeux_pc_telecharger_gratuitement/ - http://www.azapta.org/jeux_pokemon_a_telecharger/ - http://www.azapta.org/jeux_pour_enfant_a_telecharger/ - http://www.azapta.org/jeux_sexe/ - http://www.azapta.org/jeux_sexy/ - http://www.azapta.org/jeux_solitaire/ - http://www.azapta.org/jeux_telecharger/ - http://www.azapta.org/jeux_video/ - http://www.azapta.org/jeux_video_a_telecharger/ - http://www.azapta.org/jeux_video_a_telecharger_gratuitement/ - http://www.azapta.org/jeux_video_com/ - http://www.azapta.org/jeux_video_gratuit/ - http://www.azapta.org/jeux_video_gratuit_a_telecharger/ - http://www.azapta.org/jeux_video_pc/ - http://www.azapta.org/kaspersky_antivirus/ - http://www.azapta.org/kazaa/ - http://www.azapta.org/kazaa_gratuit/ - http://www.azapta.org/kazaa_lite/ - http://www.azapta.org/kazaa_lite_telecharger/ - http://www.azapta.org/kazaa_telecharger/ - http://www.azapta.org/lecteur_divx/ - http://www.azapta.org/lecteur_dvd/ - http://www.azapta.org/lecteur_dvd_portable/ - http://www.azapta.org/lecteur_mp3/ - http://www.azapta.org/live_messenger/ - http://www.azapta.org/logiciel/ - http://www.azapta.org/logiciel_a_telecharger/ - http://www.azapta.org/logiciel_a_telecharger_gratuit/ - http://www.azapta.org/logiciel_a_telecharger_gratuitement/ - http://www.azapta.org/logiciel_antivirus/ - http://www.azapta.org/logiciel_antivirus_gratuit/ - http://www.azapta.org/logiciel_de_dessin/ - http://www.azapta.org/logiciel_de_gravure/ - http://www.azapta.org/logiciel_de_gravure_gratuit/ - http://www.azapta.org/logiciel_de_mixage/ - http://www.azapta.org/logiciel_de_navigation/ - http://www.azapta.org/logiciel_de_telechargement/ - http://www.azapta.org/logiciel_de_telechargement_de_musique/ - http://www.azapta.org/logiciel_de_telechargement_gratuit/ - http://www.azapta.org/logiciel_de_traduction/ - http://www.azapta.org/logiciel_de_traduction_gratuit/ - http://www.azapta.org/logiciel_dessin_gratuit/ - http://www.azapta.org/logiciel_divx/ - http://www.azapta.org/logiciel_dvd/ - http://www.azapta.org/logiciel_educatif/ - http://www.azapta.org/logiciel_freeware/ - http://www.azapta.org/logiciel_gestion/ - http://www.azapta.org/logiciel_gratuit/ - http://www.azapta.org/logiciel_gratuit_a_telecharger/ - http://www.azapta.org/logiciel_gravure_cd/ - http://www.azapta.org/logiciel_gravure_dvd/ - http://www.azapta.org/logiciel_libre/ - http://www.azapta.org/logiciel_microsoft/ - http://www.azapta.org/logiciel_mp3/ - http://www.azapta.org/logiciel_msn/ - http://www.azapta.org/logiciel_multimedia/ - http://www.azapta.org/logiciel_musique/ - http://www.azapta.org/logiciel_photo/ - http://www.azapta.org/logiciel_photo_gratuit/ - http://www.azapta.org/logiciel_telecharger/ - http://www.azapta.org/logiciel_video/ - http://www.azapta.org/logiciel_webcam/ - http://www.azapta.org/logiciel_windows_xp/ - http://www.azapta.org/logiciels/ - http://www.azapta.org/logiciels_a_telecharger/ - http://www.azapta.org/logiciels_antivirus/ - http://www.azapta.org/logiciels_antivirus_gratuit/ - http://www.azapta.org/logiciels_creation_site_web/ - http://www.azapta.org/logiciels_de_dessin/ - http://www.azapta.org/logiciels_de_gravure/ - http://www.azapta.org/logiciels_de_gravure_gratuit/ - http://www.azapta.org/logiciels_de_telechargement/ - http://www.azapta.org/logiciels_de_telechargement_de_musique/ - http://www.azapta.org/logiciels_de_telechargement_gratuit/ - http://www.azapta.org/logiciels_de_traduction/ - http://www.azapta.org/logiciels_de_traduction_gratuit/ - http://www.azapta.org/logiciels_divx/ - http://www.azapta.org/logiciels_dvd/ - http://www.azapta.org/logiciels_excel/ - http://www.azapta.org/logiciels_freeware/ - http://www.azapta.org/logiciels_gestion/ - http://www.azapta.org/logiciels_gratuit/ - http://www.azapta.org/logiciels_gravure_cd/ - http://www.azapta.org/logiciels_gravure_dvd/ - http://www.azapta.org/logiciels_libre/ - http://www.azapta.org/logiciels_microsoft/ - http://www.azapta.org/logiciels_mp3/ - http://www.azapta.org/logiciels_msn/ - http://www.azapta.org/logiciels_multimedia/ - http://www.azapta.org/logiciels_musique/ - http://www.azapta.org/logiciels_photo/ - http://www.azapta.org/logiciels_photo_gratuit/ - http://www.azapta.org/logiciels_pocket_pc/ - http://www.azapta.org/logiciels_professionnel/ - http://www.azapta.org/logiciels_retouche_photo/ - http://www.azapta.org/logiciels_telecharger/ - http://www.azapta.org/logiciels_video/ - http://www.azapta.org/logiciels_webcam/ - http://www.azapta.org/logiciels_windows_xp/ - http://www.azapta.org/logitech_quickcam_messenger/ - http://www.azapta.org/mangas_wallpaper/ - http://www.azapta.org/mc_afee/ - http://www.azapta.org/meilleur_antivirus/ - http://www.azapta.org/messenger/ - http://www.azapta.org/messenger_7/ - http://www.azapta.org/messenger_7_0/ - http://www.azapta.org/messenger_7_5/ - http://www.azapta.org/messenger_75/ - http://www.azapta.org/messenger_8/ - http://www.azapta.org/messenger_8_0/ - http://www.azapta.org/messenger_astuce/ - http://www.azapta.org/messenger_beta/ - http://www.azapta.org/messenger_fun/ - http://www.azapta.org/messenger_live/ - http://www.azapta.org/messenger_msn/ - http://www.azapta.org/messenger_msn_mkt_fr/ - http://www.azapta.org/messenger_plus/ - http://www.azapta.org/messenger_yahoo/ - http://www.azapta.org/mirc/ - http://www.azapta.org/mns_messenger/ - http://www.azapta.org/modele_de_tatouage/ - http://www.azapta.org/modele_de_tatouages/ - http://www.azapta.org/montage_video/ - http://www.azapta.org/motif_tatouage/ - http://www.azapta.org/motif_tatouages/ - http://www.azapta.org/mp3/ - http://www.azapta.org/mp3_arabe/ - http://www.azapta.org/mp3_baladeur/ - http://www.azapta.org/mp3_creative/ - http://www.azapta.org/mp3_download/ - http://www.azapta.org/mp3_gratuit/ - http://www.azapta.org/mp3_gratuit_musique/ - http://www.azapta.org/mp3_gratuit_telecharger/ - http://www.azapta.org/mp3_music/ - http://www.azapta.org/mp3_musique/ - http://www.azapta.org/mp3_pas_cher/ - http://www.azapta.org/mp3_player/ - http://www.azapta.org/mp3_telecharger/ - http://www.azapta.org/mp3_telecharger_gratuit/ - http://www.azapta.org/msm_messenger/ - http://www.azapta.org/msn/ - http://www.azapta.org/msn_5/ - http://www.azapta.org/msn_7/ - http://www.azapta.org/msn_7_0_telecharger/ - http://www.azapta.org/msn_7_5/ - http://www.azapta.org/msn_7_5_telecharger/ - http://www.azapta.org/msn_70/ - http://www.azapta.org/msn_75_telecharger/ - http://www.azapta.org/msn_8/ - http://www.azapta.org/msn_8_0/ - http://www.azapta.org/msn_astuce/ - http://www.azapta.org/msn_fr/ - http://www.azapta.org/msn_gratuit/ - http://www.azapta.org/msn_hotmail/ - http://www.azapta.org/msn_jeu/ - http://www.azapta.org/msn_messenger/ - http://www.azapta.org/msn_messenger_6/ - http://www.azapta.org/msn_messenger_6_2/ - http://www.azapta.org/msn_messenger_7/ - http://www.azapta.org/msn_messenger_7_0/ - http://www.azapta.org/msn_messenger_7_5/ - http://www.azapta.org/msn_messenger_7_5_telecharger/ - http://www.azapta.org/msn_messenger_75/ - http://www.azapta.org/msn_messenger_75_telecharger/ - http://www.azapta.org/msn_messenger_8/ - http://www.azapta.org/msn_messenger_80/ - http://www.azapta.org/msn_messenger_beta/ - http://www.azapta.org/msn_messenger_gratuit/ - http://www.azapta.org/msn_messenger_mac/ - http://www.azapta.org/msn_messenger_plus/ - http://www.azapta.org/msn_messenger_telecharger/ - http://www.azapta.org/msn_messenger_version_75/ - http://www.azapta.org/msn_messenger_version75/ - http://www.azapta.org/msn_messenger_web/ - http://www.azapta.org/msn_messenger7_5/ - http://www.azapta.org/msn_plus/ - http://www.azapta.org/msn_plus_telecharger/ - http://www.azapta.org/msn_telecharger/ - http://www.azapta.org/msn_truc_astuce/ - http://www.azapta.org/msn_truc_et_astuce/ - http://www.azapta.org/msn_web/ - http://www.azapta.org/msn_web_messenger/ - http://www.azapta.org/music_a_telecharger/ - http://www.azapta.org/music_mp3/ - http://www.azapta.org/music_video/ - http://www.azapta.org/musique/ - http://www.azapta.org/musique_a_telecharge/ - http://www.azapta.org/musique_a_telecharger/ - http://www.azapta.org/musique_a_telecharger_gratuit/ - http://www.azapta.org/musique_a_telecharger_gratuite/ - http://www.azapta.org/musique_a_telecharger_gratuitement/ - http://www.azapta.org/musique_alsace/ - http://www.azapta.org/musique_arabe/ - http://www.azapta.org/musique_classique/ - http://www.azapta.org/musique_de_film/ - http://www.azapta.org/musique_de_pub/ - http://www.azapta.org/musique_download/ - http://www.azapta.org/musique_film/ - http://www.azapta.org/musique_francaise/ - http://www.azapta.org/musique_gratuite/ - http://www.azapta.org/musique_gratuite_a_telecharger/ - http://www.azapta.org/musique_marocaine/ - http://www.azapta.org/musique_mp3/ - http://www.azapta.org/musique_mp3_a_telecharger/ - http://www.azapta.org/musique_telecharger_gratuitement/ - http://www.azapta.org/nero/ - http://www.azapta.org/nero_6/ - http://www.azapta.org/nero_7/ - http://www.azapta.org/nero_7_premium/ - http://www.azapta.org/nero_burning/ - http://www.azapta.org/nero_burning_rom/ - http://www.azapta.org/nero_express/ - http://www.azapta.org/nero_gratuit/ - http://www.azapta.org/net_messenger/ - http://www.azapta.org/norton/ - http://www.azapta.org/norton_2005/ - http://www.azapta.org/norton_2006/ - http://www.azapta.org/norton_antivirus/ - http://www.azapta.org/norton_antivirus_2005/ - http://www.azapta.org/norton_antivirus_2006/ - http://www.azapta.org/norton_ghost/ - http://www.azapta.org/norton_internet_security/ - http://www.azapta.org/panda_antivirus/ - http://www.azapta.org/panda_software/ - http://www.azapta.org/parole/ - http://www.azapta.org/parole_chanson/ - http://www.azapta.org/parole_de_musique/ - http://www.azapta.org/parole_et_musique/ - http://www.azapta.org/paroles/ - http://www.azapta.org/paroles_chansons/ - http://www.azapta.org/paroles_de_musique/ - http://www.azapta.org/paroles_et_musique/ - http://www.azapta.org/partition/ - http://www.azapta.org/partition_de_musique/ - http://www.azapta.org/partition_gratuite/ - http://www.azapta.org/partition_guitare/ - http://www.azapta.org/partition_magic/ - http://www.azapta.org/partition_piano/ - http://www.azapta.org/partitions/ - http://www.azapta.org/partitions_de_musique/ - http://www.azapta.org/partitions_gratuite/ - http://www.azapta.org/partitions_guitare/ - http://www.azapta.org/partitions_piano/ - http://www.azapta.org/pc_astuce/ - http://www.azapta.org/personal_firewall/ - http://www.azapta.org/photo_fond_ecran/ - http://www.azapta.org/photo_tatouage/ - http://www.azapta.org/photo_tatouages/ - http://www.azapta.org/piercing/ - http://www.azapta.org/piercings/ - http://www.azapta.org/player_mp3/ - http://www.azapta.org/porno_film/ - http://www.azapta.org/porno_video/ - http://www.azapta.org/protection_antivirus/ - http://www.azapta.org/quickcam_messenger/ - http://www.azapta.org/recette/ - http://www.azapta.org/recette_asiatique/ - http://www.azapta.org/recette_barbecue/ - http://www.azapta.org/recette_cake/ - http://www.azapta.org/recette_chinoise/ - http://www.azapta.org/recette_cocktail/ - http://www.azapta.org/recette_cookie/ - http://www.azapta.org/recette_courgette/ - http://www.azapta.org/recette_crepe/ - http://www.azapta.org/recette_de_confiture/ - http://www.azapta.org/recette_de_cuisine/ - http://www.azapta.org/recette_de_julie/ - http://www.azapta.org/recette_de_salade/ - http://www.azapta.org/recette_dessert/ - http://www.azapta.org/recette_facile/ - http://www.azapta.org/recette_gateau/ - http://www.azapta.org/recette_gateau_chocolat/ - http://www.azapta.org/recette_gaufre/ - http://www.azapta.org/recette_italienne/ - http://www.azapta.org/recette_minceur/ - http://www.azapta.org/recette_paella/ - http://www.azapta.org/recette_pain/ - http://www.azapta.org/recette_pizza/ - http://www.azapta.org/recette_poisson/ - http://www.azapta.org/recette_poulet/ - http://www.azapta.org/recette_punch/ - http://www.azapta.org/recette_rapide/ - http://www.azapta.org/recette_sangria/ - http://www.azapta.org/recette_tarte/ - http://www.azapta.org/recettes/ - http://www.azapta.org/recettes_asiatique/ - http://www.azapta.org/recettes_cake/ - http://www.azapta.org/recettes_chinoises/ - http://www.azapta.org/recettes_cookies/ - http://www.azapta.org/recettes_crepe/ - http://www.azapta.org/recettes_de_cuisine/ - http://www.azapta.org/recettes_desserts/ - http://www.azapta.org/recettes_gateau/ - http://www.azapta.org/recettes_gaufre/ - http://www.azapta.org/recettes_italienne/ - http://www.azapta.org/recettes_pizza/ - http://www.azapta.org/recettes_poisson/ - http://www.azapta.org/recettes_poulet/ - http://www.azapta.org/recettes_rapide/ - http://www.azapta.org/recettes_tarte/ - http://www.azapta.org/remove_spyware/ - ht