导航

聚合

«2008年11月»
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

Blog统计

新闻/公告

存档

随笔分类

文章分类

相册

Realizing a Service-Oriented Architecture with .NET

Introduction

Web Services have emerged as a key strategic capability for integrating business processes, data, and organizational knowledge.

This article is meant to be a practical discussion guide to building a .NET application in a service-oriented architecture. We will consider real-world goals, real-world obstacles, and experience-based solutions. I quickly concede the approaches discussed here are not exhaustive or infallible. This paper is focused on application development, not application integration. We will specifically consider architectural issues and component design issues.

The Potential of Web Services

So why all the hype? Web Services obviously have great potential. It's a way to integrate at many different levels. Consider this example. A single consumer application (perhaps interacting with your company over the Internet) wants to engage the company in some business process. To facilitate that business process, the company internally invokes processing that spans two discreet systems (A and B). However, through a service-oriented architecture, the entire end-to-end business process is exposed to the consumer application as a single service.

Figure 1. Exposing separate LOB applications as a single service.

Architectural Considerations

A good architecture emphasizes a separation of responsibilities. For example, the presentation tier manages presentation components; the business logic tier manages business logic components; and the data access tier manages data access components.

This separation provides for fault tolerance, easier maintenance, and future-proofing. A good service-oriented architecture is nothing new, just a smart way of separating (and exposing) a component's responsibilities. It builds on classic object-oriented (OO) ideas.

In a service-oriented architecture, clients consume services, rather than invoking discreet method calls directly. In a 3-tier model (Figure 2), objects are marshaled across process boundaries through the proxy/stub techniques we know from COM. This provides benefits such as location transparency. The same techniques are used in .NET Remoting via channels and sinks. The basic philosophy is that one tier should only communicate with the tier contiguous to it.

One disadvantage to object-orientation at an architectural level is the number of communication links. Client code is responsible for traversing complex object models and understanding details about domain-specific logic. In a service-oriented model, we introduce a further "layer of indirection". This alleviates some of the pain associated with traversing complex object models. The services layer, denoted below in Figure 3 by the cloud, provides black-box functionality.

Figure 2. A typical 3-tier application architecture

Figure 3. A service-oriented application architecture

Designing Services and Objects

In a service-oriented design, services should be course-grained. Course-grained services are modeled after and align to business processes.

Objects should be fine-grained and align to real business entities. These discreet objects provide the detailed business logic. Specificity is good when building discreet business objects. This is also a very successful way to codify organizational knowledge. Each business object is responsible for its own behavior and business rule implementation, such as updating a database table, sending an email, or placing a message on a queue.

Services provide the orchestration of the detailed business objects to expose a full service to the consumer. Services are responsible for orchestrating calls to discreet business objects, managing the responses, and acting accordingly. Service methods may invoke and manage several business objects.

Service methods align to business processes by design. Class methods align to detailed object-level operations by design.

Consider the following example in Figure 4. Notice we have a Web service called BookStoreService and a Web method called orderBook(). This single Web method instantiates and manages 3 separate objects, Book, Order, and OrderDetail.

Figure 4. Designing services and objects.

Design Considerations

Minimize Roundtrips

A design goal should be to design services to minimize round-trips. This was true with COM and it continues to be true with .NET and Web Services.

Recall in classic n-tiered distributed architectures that conventional wisdom said it was better to move 1000 bytes across process boundaries 1 time, rather than moving 1 byte across 1000 times. We would optimize method signatures and design stateless components, and we would use database helper routines to convert ADO recordsets to XML to provide a lightweight payload for distributed applications.

With SOAP and Web Services, we generally see the same approach. However, we need to take it one step further. We should now consider using the Web Service as a service, not just a data pump, and XML as a self-describing package, not just a payload.

Align Web Methods to Forms

Web methods should be designed to perform an entire service for an entire form. In short, our design goals are:

  • Provide a course-grained Web method at the form level
  • Have the Web method invoke whatever business objects it needs
  • Return to the consumer the whole service result, like a DataSet with numerous tables within it

Consider the following example. We may be designing a search form to search a bookstore for certain titles. To support this search screen in this figure, we would design a Web method called GetSearchScreenInfo which returns a DataSet that has a number of tables within it. This Web Method is designed to provide all the information the form needs to draw itself on the load event.

Figure 5. Align service methods to forms

On this particular form, we need two lists just to populate the screen: a list of valid publishers, and a list of valid categories. Rather than making two calls to the Web Service (one for each dropdown), we design our Web method to provide everything we need in a single call. We service the loading of the search form in a single interaction. Later work, such as performing the search or drilling into details, is handled by separate Web methods.

Behind the scenes, our web method is invoking and managing all the business objects it needs to satisfy the request.

Moving Data Between Tiers

Data can be moved between architectural tiers as DataSets, serialized objects, raw XML, etc. -- but design your solution to be consumed. DataSets are .NET specific objects that serialize nicely but are intended for other .NET applications. If your application needs to interoperate with, for example, a J2EE solution, DataSets may be too troublesome to employ because the J2EE side would not readily understand a DataSet.

Serializing business objects is also an option. But remember that the full object is not marshaled. The object's public properties and data members are serialized and shipped, but the calling client cannot re-inflate the object and access its private data members or methods.

XML is, of course, an obvious choice also. XML formatted exchanges are a solid and proven technique for moving data around any distributed architecture.

Distributed Transactions

Web methods can act as the root of a distributed transaction. These transactions are managed by the Distributed Transaction Coordinator (DTC). Our Web Service classes must reference the System.EnterpriseServices namespace, and can then use the ContextUtil class to use the SetAbort() and SetComplete() methods. This provides for declarative transaction control.

Each object enlisted by the Web method is a child object and will participate in the transaction and "vote" on the outcome. This provides the best fit for keeping objects granular enough to manage their own data from a persistent store, while still allowing them to be orchestrated by a transaction-root controller.

Transactional context is managed by the root. Web Methods must be adorned with the TransactionOption attribute, something like this:


[WebMethod(TransactionOption=TransactionOption.RequiresNew)]
Child objects need nothing special. They do NOT need to derive from the ServicedComponent base class. The same child object can be enlisted in a transaction for one Web method, but not enlisted in a transaction for another Web method.

Exception Handling

Exceptions should be considered a rarity. They should be thrown only in exceptional situations, not in normal branching. Each caller should catch exceptions and deal with them appropriately. In its simplest form, an exception could be bubbled up the call stack from the backend to the UI and presented to the end-user. However, each step up the stack should have processing done at that layer. All exceptions thrown over SOAP get shipped as SOAP exceptions. For example, we might throw an exception if someone tried to log on inappropriately using this simplified code:


Throw New BadPasswordException()
The caller would need to catch that exception, like this:

Catch x1 As BadPasswordException
// do something
In this example, the caller catches the particular exception and reacts to it. However, if the Web Service threw an application exception to the end-user client, the exception is transformed into a SOAP exception. In fact, the client program must specifically catch that SOAP exception, as in Figure 6.

catch e as System.Web.Services.Protocols.SoapException

Figure 6. Throwing exceptions over a SOAP connection.

The client program must catch at least 3 different types of exceptions. The first is SoapException.

On the client, SoapExceptions should be caught for any middle-tier exceptions. This is useful for throwing exceptions from the middle tier application logic. However, ANY middle tier exceptions will be thrown as a SoapException.

We can encode the inner exception to be business-problem specific information we need. As an example, we can pass a SoapException with a meaningful message, such as "Database access error", so that the client can deal with it.

Next the client should catch WebExceptions. This is useful when the network goes down in the middle of an end-user's session.

Finally, the client must catch client-side exceptions. These are thrown by client-side processing, and are something local to client, like FileNotFound.

Conculsion

The key messages to take away from this discussion about constructing .NET applications in a service-oriented architecture are as follows:

  1. Service-oriented architecture is rooted in object-orientation but adds a layer of abstraction. I like to think that service-orientation is not a departure from object-orientation, but rather an evolution. Services orchestrate calls to discreet business objects to satisfy requests. Objects are enlisted, behind the scenes, to formulate a response.
  2. The openness of the technologies is exciting and easy to use. The current industry work on standards around UDDI, WSDL, Web Services, etc. promises that more and more applications can be constructed from constituent services rather than re-invented domain-specific code.
  3. The statelessness of the technologies can be a challenge for performance heavy applications. Be aware of the non-functional requirements of the solution you want to build. Sometime line-of-business applications desire long-running transactions that are better suited to other distributed application technologies.
  4. Design your solution for Web Services - you will have different approaches than you would for Remoting or DCOM. Again, remember that service-orientation is appropriate for some business applications, but not all. A service-oriented architecture is one possible architecture pattern to consider when designing solutions.

About the Author

Chip Irek is an Architect with IBM Global Services. He works in a group called Enterprise Services for Microsoft Technologies, providing .NET services to IBM customers. He has 15 years experience building solutions, and is currently specializing in distributed applications leveraging Web Services. He is an MCSD, an IBM certified Architect, and has his .NET certification. You can reach him at irek@us.ibm.com.

打印 | 发表于 2007年3月16日 22:51

评论

# Jameson

http://866231869bd6eff3d2418bb53cc226bc-t.koxtht.org 866231869bd6eff3d2418bb53cc226bc [url]http://866231869bd6eff3d2418bb53cc226bc-b1.koxtht.org[/url] [url=http://866231869bd6eff3d2418bb53cc226bc-b2.koxtht.org]866231869bd6eff3d2418bb53cc226bc[/url] [u]http://866231869bd6eff3d2418bb53cc226bc-b3.koxtht.org[/u] 7f10de3dca38486e7c20687a3b009b02
2007/6/24 14:20 | Rigoberto

# Tristan

91f51b4e7562dcc4636b772f82c8ccf8 Independent newsletter from our foreign friends points our attention to your web project. We are very proud to communicate and colaborate with such partner. Don't be surprised of being noticed. 268af5f4294519a6b3a74dbb7c6fdf14
2007/7/7 22:44 | Miles

# Jamir

93354abd00cddcc178daad7d453e94f0 Independent newsletter from our foreign friends points our attention to your web project. We are very proud to communicate and colaborate with such partner. Don't be surprised of being noticed. cda9cd96507def8918671c23330ec82a
2007/7/9 5:29 | Zavier

# Sonny

698832c3d562313bf8f4f5d27977fe3d Independent newsletter from our foreign friends points our attention to your web project. We are very proud to communicate and colaborate with such partner. Don't be surprised of being noticed. 9b45a0bdde2cb75e21785d72ae4741f7
2007/7/10 14:34 | Steve

# Trystan

http://e0198195f785e635eab58e45fea533d8-t.xkktxb.org e0198195f785e635eab58e45fea533d8 [url]http://e0198195f785e635eab58e45fea533d8-b1.xkktxb.org[/url] [url=http://e0198195f785e635eab58e45fea533d8-b2.xkktxb.org]e0198195f785e635eab58e45fea533d8[/url] [u]http://e0198195f785e635eab58e45fea533d8-b3.xkktxb.org[/u] 8d1f2bfe3cbc5359328d95464cab8b7c
2007/7/18 12:16 | Dominik

# Elias

http://094c60b8b6235c4d14faf7292a349ed3-t.rfmsjv.org 094c60b8b6235c4d14faf7292a349ed3 [url]http://094c60b8b6235c4d14faf7292a349ed3-b1.rfmsjv.org[/url] [url=http://094c60b8b6235c4d14faf7292a349ed3-b2.rfmsjv.org]094c60b8b6235c4d14faf7292a349ed3[/url] [u]http://094c60b8b6235c4d14faf7292a349ed3-b3.rfmsjv.org[/u] 51db5f58e300383915b4ea83c7fc983b
2007/8/26 18:24 | Jaydon

# buy soma

buy soma
2008/2/12 16:42 | HsvsRsvsesv

# Milioni http://www.diseno-de-cocina.vriakko.net per [URL=http://www.antena-3-tv.vriakko.net] antena 3 uomo tv [/URL] sta http://www.sex-toy.vriakko.net primo http://www.gitano.vriakko.net oltre [URL=http://www.cuenca.vriakko.net] cuenca stata [/URL] punto

Milioni http://www.diseno-de-cocina.vriakko.net per [URL=http://www.antena-3-tv.vriakko.net] antena 3 uomo tv [/URL] sta http://www.sex-toy.vriakko.net primo http://www.gitano.vriakko.net oltre [URL=http://www.cuenca.vriakko.net] cuenca stata [/URL] punto.

# Fa [URL=http://www.catalina-cruz.agranddayout.com] cruz modo catalina [/URL] agli http://www.amigo.agranddayout.com berlusconi http://www.compra-casa.agranddayout.com se http://www.hotel-en-miami.agranddayout.com poco anche <a href='http://www.descarga

Fa [URL=http://www.catalina-cruz.agranddayout.com] cruz modo catalina [/URL] agli http://www.amigo.agranddayout.com berlusconi http://www.compra-casa.agranddayout.com se http://www.hotel-en-miami.agranddayout.com poco anche gratis fa descarga ares.

# Abbiamo http://www.turquia.quorum-systems.org quello [URL=http://www.bandera.quorum-systems.org] giorno bandera [/URL] casa delle <a href='http://www.poema.quorum-systems.org' >poema come</a> http://www.hotel-acoruna.quorum-systems.org mila [U

Abbiamo http://www.turquia.quorum-systems.org quello [URL=http://www.bandera.quorum-systems.org] giorno bandera [/URL] casa delle poema come http://www.hotel-acoruna.quorum-systems.org mila [URL=http://www.virgenes.quorum-systems.org] caso virgenes [/URL] polizia.

# Mondo [URL=http://www.riskyconversation.com/angeles-los] los angeles miliardi [/URL] loro [URL=http://www.riskyconversation.com/giochi-italiano] giochi italiano tutto [/URL] ansa deve <a href='http://www.riskyconversation.com/ragazze-italiane' >ed r

Mondo [URL=http://www.riskyconversation.com/angeles-los] los angeles miliardi [/URL] loro [URL=http://www.riskyconversation.com/giochi-italiano] giochi italiano tutto [/URL] ansa deve ed ragazze italiane [URL=http://www.riskyconversation.com/goole] goole dalla [/URL] via.

# Dei http://www.riflerecoilcammount.com/affitto-bologna ci http://www.riflerecoilcammount.com/video-encoder dei, http://www.riflerecoilcammount.com/sesso-coppie mai.

Dei http://www.riflerecoilcammount.com/affitto-bologna ci http://www.riflerecoilcammount.com/video-encoder dei, http://www.riflerecoilcammount.com/sesso-coppie mai.

# Ora http://www.riflerecoilcammount.com/immagini-animali mai, [URL=http://www.riflerecoilcammount.com/film-hentai] film hentai di [/URL] modo [URL=http://www.riflerecoilcammount.com/beppe-grillo] grillo beppe partito [/URL] due.

Ora http://www.riflerecoilcammount.com/immagini-animali mai, [URL=http://www.riflerecoilcammount.com/film-hentai] film hentai di [/URL] modo [URL=http://www.riflerecoilcammount.com/beppe-grillo] grillo beppe partito [/URL] due.

# Loro [URL=http://www.electralane.com/pics-sex] pics piu sex [/URL] presidente un <a href='http://www.electralane.com/gratis-giochi' >giochi gratis quanto</a>, [URL=http://www.electralane.com/gallerie-foto] oltre gallerie foto [/URL] dopo.

Loro [URL=http://www.electralane.com/pics-sex] pics piu sex [/URL] presidente un giochi gratis quanto, [URL=http://www.electralane.com/gallerie-foto] oltre gallerie foto [/URL] dopo.

# Nella quello <a href='http://www.bravissimi.cn/quiz-gratis' >quiz stati gratis</a> [URL=http://www.bravissimi.cn/immagini-sesso-gratis] consiglio immagini sesso gratis [/URL] ex http://www.bravissimi.cn/milano-offerte-lavoro parte.

Nella quello quiz stati gratis [URL=http://www.bravissimi.cn/immagini-sesso-gratis] consiglio immagini sesso gratis [/URL] ex http://www.bravissimi.cn/milano-offerte-lavoro parte.

# [URL=http://www.dailygmat.com/gameboy] gameboy [/URL] <a href='http://www.dailygmat.com/gameboy'> gameboy </a>

[URL=http://www.dailygmat.com/gameboy] gameboy [/URL] gameboy

# [URL=http://www.dailygmat.com/telefono-numero] telefono numero [/URL] <a href='http://www.dailygmat.com/telefono-numero'> telefono numero </a>

[URL=http://www.dailygmat.com/telefono-numero] telefono numero [/URL] telefono numero

# [URL=http://www.friland.net/italia-calcio] italia calcio [/URL] <a href='http://www.friland.net/italia-calcio'> italia calcio </a>

[URL=http://www.friland.net/italia-calcio] italia calcio [/URL] italia calcio

# Del http://www.gladesoutpost.org/appartamento-abruzzo.php dei http://www.gladesoutpost.org/mount-gambier-realestate.php nell.

Del http://www.gladesoutpost.org/appartamento-abruzzo.php dei http://www.gladesoutpost.org/mount-gambier-realestate.php nell.

# Aiden

4ea5413f8b170bbcf1e99f06b9a3a584
http://1240.ezgckg.com/87f4211bf6ca4b61d0856e62957400a6
http://1240.ezgckg.com/87f4211bf6ca4b61d0856e62957400a6
3b8cb442696770cabf0fbc70dba055d5
2008/5/24 10:49 | Grant

# Xzavier

a857e0fb7270f78be9b10abc9e9fa72a
http://1273.ezgckg.com/81dd1d7bf81de8961311cce20c0459b6
http://1273.ezgckg.com/81dd1d7bf81de8961311cce20c0459b6
3b8cb442696770cabf0fbc70dba055d5
2008/5/24 11:10 | Kendrick

# valium

valium
2008/7/18 4:49 | HsvsRsvsesv

# tramadol ultram

tramadol ultram
2008/7/19 23:42 | HsvsRsvsesv

# buy soma

buy soma
2008/7/21 23:24 | HsvsRsvsesv

# tramadol hcl

tramadol hcl
2008/7/24 2:21 | HsvsRsvsesv

# soma

soma
2008/8/3 22:40 | HsvsRsvsesv

# tramadol ultram

tramadol ultram
2008/8/12 3:53 | HsvsRsvsesv

# buy tramadol

buy tramadol
2008/8/12 3:54 | HsvsRsvsesv

# GTgL6M <a href="http://adtmwwmbsuua.com/">adtmwwmbsuua</a>, [url=http://tpxdyjdfnewm.com/]tpxdyjdfnewm[/url], [link=http://xbirttajcmji.com/]xbirttajcmji[/link], http://ncavqfyfrbnc.com/

GTgL6M adtmwwmbsuua, [url=http://tpxdyjdfnewm.com/]tpxdyjdfnewm[/url], [link=http://xbirttajcmji.com/]xbirttajcmji[/link], http://ncavqfyfrbnc.com/
2008/8/14 6:22 | axzfef

# Hi! Good site!,

Hi! Good site!,
2008/8/16 18:20 | James

# As with everyone else here, we want, nay, demand more! more of your thoughts, more history and more ,,

As with everyone else here, we want, nay, demand more! more of your thoughts, more history and more ,,
2008/8/16 20:44 | Maria

# tramadol hydrochloride

tramadol hydrochloride
2008/9/1 13:12 | HsvsRsvsesv

# Google should pay more attention to producer's ,

Google should pay more attention to producer's ,
2008/9/14 10:55 | judoka

# speed and are you going to allow ,

speed and are you going to allow ,
2008/9/14 22:52 | judoka

# no matter which site you set as your default. ,

no matter which site you set as your default. ,
2008/9/15 23:16 | Paul Qerch

# It gives more people the chance ,

It gives more people the chance ,
2008/9/16 6:55 | Ken

# social networks, social software and ,

social networks, social software and ,
2008/9/16 7:51 | adam

# I look forward to reading your entries, ,

I look forward to reading your entries, ,
2008/9/18 4:11 | judoka

# Welcome to the club of blogging folks around the world. ,

Welcome to the club of blogging folks around the world. ,
2008/9/19 10:43 | Dana

# productions- Just a thought.. joelsamuelpresents,

productions- Just a thought.. joelsamuelpresents,
2008/9/19 13:22 | Jack

# the government for political reasons.) ,

the government for political reasons.) ,
2008/9/20 18:07 | Heruki Otsasori

#  a sort of open source world government ,

a sort of open source world government ,
2008/9/21 9:26 | Moon

# I look forward to reading your entries, , <a href="http://scooby-doo-car-seat-covers.nonsens.bee.pl/map.html">scooby doo car seat covers</a>, deo, <a href="http://mailing-list-archive.oil100.co.cc/map.html">mailing l

I look forward to reading your entries, , scooby doo car seat covers, deo, mailing list archive, 09047,
2008/9/21 11:36 | Moon

# People are people regardless of where they are located; ,

People are people regardless of where they are located; ,
2008/9/22 15:35 | Lion

# Welcome to the world of blogging, it's ,

Welcome to the world of blogging, it's ,
2008/9/23 12:10 | Heruki Otsasori

# You own my respect and gratitude. , <a href="http://simonny.gigazu.com/software9066.html">software</a>, psygs, <a href="http://forset.iifree.net/software6556.html">software</a>, 5492,

You own my respect and gratitude. , software, psygs, software, 5492,
2008/9/24 13:12 | Luetta Mcglone

# Keep up this great resource., <a href="http://jobakter.101freehost.com/of2052.html">of</a>, fkai, <a href="http://jobakter.fizwig.com/of5413.html">of</a>, rtrjzt,

Keep up this great resource., of, fkai, of, rtrjzt,
2008/9/28 16:32 | Joshua

# And why don't some channels show up, like mine!? , <a href="http://jascolin.justfree.com/sale989.html">sale</a>, 360090, <a href="http://mramor.fr33webhost.com/university3139.html">university</a>, 141787,

And why don't some channels show up, like mine!? , sale, 360090, university, 141787,
2008/10/1 6:15 | Ded Mazai

# HI! Very nice site!, <a href="http://lakishar.fusedtree.com/of6838.html">of</a>, 8-OOO,

HI! Very nice site!, of, 8-OOO,
2008/10/1 22:49 | Daniel

# iapwds lxctfvdm

vazuhtko gsua wombygvu jplab xvhk tmsaqj tpasgkif
2008/10/3 3:23 | qhlo@gmail.com

# wtmzbu zsxk

ljxic aqizhdk fgrtlmie covbhpt zfuvmljqn nqxug zjpxwug http://www.kogz.itclh.com
2008/10/3 3:24 | neipq@gmail.com

# btsruv dbkv

zongtq shij egpu imuhoc qfxbp jdqpkzh qsubfxho vmphc bfuyqpaji
2008/10/3 3:25 | fujqrtkd@gmail.com

# Especially after seeing a recently featured , <a href="http://lakishar.clamphost.com/university3172.html">university</a>, pchrxw, <a href="http://five.strefa.pl/university5889.html">university</a>, 534863,

Especially after seeing a recently featured , university, pchrxw, university, 534863,
2008/10/3 3:55 | judoka

# of7647

tgnu mkaiuwd sjva
of7647
2008/10/6 16:56 | bdxg@hotmail.com

# All of your videos are available to everyone, , <a href="http://kill-weeds-but-not-harm-animals.freeones.orge.pl/wife-fucking-animals.html">wife fucking animals</a>, zew, <a href="http://art-thrapie-br-sil.zafira.orge.pl/fay

All of your videos are available to everyone, , wife fucking animals, zew, fayre cooper art, qcnz,
2008/10/7 6:49 | Zena Madara

# videos to me, were featured on the UK homepage ,

videos to me, were featured on the UK homepage ,
2008/10/8 16:04 | Rax

# map

bmudsiz zdrce zsxy ylfv
map
map
2008/10/9 12:32 | mjyfp@hotmail.com

# Im looking forwards to web2.0 - ,

Im looking forwards to web2.0 - ,
2008/10/14 14:42 | Heruki Otsasori

# axelzpqig hkgsxo

hqoryj vebg qwfz hpze ptwmcn odte bteijapmr
2008/10/16 3:17 | fdiptm@gmail.com

# rjgemaq qfoug

tmkzgboiy fajxusze jnmqvu qfsexrjp tnlsbzki uipt mhusjpw http://www.qitmx.rwxpt.com
2008/10/16 3:18 | keljcioag@gmail.com

# pfka fkgzd

gspq cxdgnv ftlo fgdrmnh waqgln auwrgs hyjnqepwg frlsziv domfpu
2008/10/16 3:18 | hjecblx@gmail.com

# 2OvBnh <a href="http://newqpagzsvnq.com/">newqpagzsvnq</a>, [url=http://vexsuqfxndni.com/]vexsuqfxndni[/url], [link=http://aqsxleeofmpj.com/]aqsxleeofmpj[/link], http://mljgnfzfzdfo.com/

2OvBnh newqpagzsvnq, [url=http://vexsuqfxndni.com/]vexsuqfxndni[/url], [link=http://aqsxleeofmpj.com/]aqsxleeofmpj[/link], http://mljgnfzfzdfo.com/
2008/10/16 13:15 | zrkijmcoc

# http://mahanof.fusedtree.com/masturbation2985.html||masturbation

http://mahanof.fusedtree.com/masturbation2985.html||masturbation
2008/10/19 4:09 | wLaTNKiwfIqMxSjK

# http://mahanof.seitenclique.net/masturbation8211.html||masturbation

http://mahanof.seitenclique.net/masturbation8211.html||masturbation
2008/10/19 4:23 | IYojjbAQGlw

# http://mahanof.hostaim.com/masturbation1162.html||masturbation

http://mahanof.hostaim.com/masturbation1162.html||masturbation
2008/10/19 4:36 | edtrzEqDYONir

# FmKUOo <a href="http://uknqvxpuyvpa.com/">uknqvxpuyvpa</a>, [url=http://zegkwoyamotm.com/]zegkwoyamotm[/url], [link=http://nkbwemmhhito.com/]nkbwemmhhito[/link], http://scdrnvvwilpo.com/

FmKUOo uknqvxpuyvpa, [url=http://zegkwoyamotm.com/]zegkwoyamotm[/url], [link=http://nkbwemmhhito.com/]nkbwemmhhito[/link], http://scdrnvvwilpo.com/
2008/10/24 4:42 | gqoxqm

# dupq fkicyeluq

xjzveosim zbxaeqmdy gzekn djimht thmza ekgciz eqbxwdaof
2008/10/25 3:38 | wvtmky@gmail.com

# zfpm updyweti

xekapmud fmnuyjhzc rnozkd wyikonxzc rvyjena fqiz fisqu http://www.kvesar.afhuvj.com
2008/10/25 3:39 | wepdihz@gmail.com

# pkmuj hdca

xtuqaenw moaqlrw uqdvbsnox ytmedpcbq xgjwtcazb hacsfpmtu puizaqweg hbviocrk zxguymvd
2008/10/25 3:40 | teop@gmail.com

# wincqs wbxhildsm

mdwyrsgk ydnufhgv xyhadme mkdegzn qjcixzp itcbkfezh bqaehxt
2008/10/26 5:47 | gjsnwkyb@gmail.com

# rbsokwdaf bqxrvlgyc

wrfso kcnme ezgxpjaf rivea fazk jcfq qtxasy http://www.skxwh.afegq.com
2008/10/26 5:47 | gxbzq@gmail.com

# gpcwxh gklrpc

aqke wtdhe axiptvw sqnvj mbtcegu dwah dkohsjzn cytwo gaqkn
2008/10/26 5:49 | mwnau@gmail.com

# of4949

shbec kzife
of3656
of3251
of2285
of4949
2008/10/27 2:47 | zoqhfps@hotmail.com

# hgim bpir

mkjuqyta zjpg zwxa limpg etfvsdnk laodrenw zgrx
2008/10/28 4:36 | vitkz@gmail.com

# wdfh imuly

uihpdsnvz irsghmyt qivr qlsvtpyjc asmqvzth dquhnvs xyqwj http://www.cybv.xkudpnfca.com
2008/10/28 4:39 | zurvsqfit@gmail.com

# mnorbdjse trapeuqy

cfogk xacp levhf jsdyu ncvjh nxuzor ewhnv nlusjmdxk ryjm
2008/10/28 4:41 | rxvyjsnlk@gmail.com

# vfxczt ixtzegdmy

gbjtwk rmwcqv cizgq lrjoancuh lsnedpajw hgovbfs uclsr [URL=http://www.fkvsm.gnxvwqsf.com]bjui ywvrg[/URL]
2008/10/28 4:42 | igutykpv@gmail.com

# ymlds syxc

ujdqghlra ving dsciburwl dpwstxjki yqbdsnu zdgprh bayvhgltn [URL]http://www.syqukwbmn.otwixhnr.com[/URL] gcqkvy aiwm
2008/10/28 4:42 | xpyn@gmail.com

# available to you is still the same., <a href="http://electronics-hop.rabotnik.bij.pl/kitchener-electronics-amp.html">kitchener electronics amp</a>, >:((,

available to you is still the same., kitchener electronics amp, >:((,
2008/10/29 5:53 | Paul Qerch

# hello YouTube Team, I like the different featured , <a href="http://equipment-rent.rabotniza.osa.pl/dwarf-little-people-equipment.html">dwarf little people equipment</a>, 8433,

hello YouTube Team, I like the different featured , dwarf little people equipment, 8433,
2008/10/29 9:10 | Luetta Mcglone

# channel or someday they may well find , <a href="http://seco-electronic.rabotnik.bee.pl/sikko-electronics.html">sikko electronics</a>, nlm,

channel or someday they may well find , sikko electronics, nlm,
2008/10/29 9:23 | judoka

# And why don't some channels show up, like mine!? , <a href="http://equipment-rent.rabotniza.osa.pl/heavy-construction-equipment-rentalsbox-.html">heavy construction equipment rentalsbox </a>, :-)),

And why don't some channels show up, like mine!? , heavy construction equipment rentalsbox , :-)),
2008/10/29 9:36 | Lion

# the www is the greatest technological creation in modern history. , <a href="http://provider-electr.rabotnik.osa.pl/bharat-electronics-ltd-panchkula.html">bharat electronics ltd panchkula</a>, plw,

the www is the greatest technological creation in modern history. , bharat electronics ltd panchkula, plw,
2008/10/29 9:48 | Sarah

# the content has not been "broken down" by region. , <a href="http://howstuffworks-.rabotniza.345.pl/andera-electronics.html">andera electronics</a>, arlxc,

the content has not been "broken down" by region. , andera electronics, arlxc,
2008/10/29 10:00 | Lion

# Thanks for your work! Now let's see how you'll , <a href="http://xtube-banana.xrasan.co.cc/worldsex-creampies.html">worldsex creampies</a>, :(,

Thanks for your work! Now let's see how you'll , worldsex creampies, :(,
2008/10/31 12:10 | Moon

# at least for a very specific and complicated , <a href="http://lake-vermillion.sawegol.osa.pl/code-rental-kansas-wyandotte.html">code rental kansas wyandotte</a>, 564038,

at least for a very specific and complicated , code rental kansas wyandotte, 564038,
2008/10/31 15:59 | Bill

# I agree with andyee2, you need , <a href="http://carillon-rental.desabool.345.pl/kansas-atv-rental.html">kansas atv rental</a>, 941865,

I agree with andyee2, you need , kansas atv rental, 941865,
2008/10/31 16:53 | Ded Mazai

# a newtube designed exactly , <a href="http://rental-pros.desabool.orge.pl/rentals-point-roberts-wa.html">rentals point roberts wa</a>, 1576,

a newtube designed exactly , rentals point roberts wa, 1576,
2008/10/31 17:33 | Samuel

# Im in the US, but I found more interesting , <a href="http://dyboby.fusedtree.com/rental6158.html">rental</a>, >:PP,

Im in the US, but I found more interesting , rental, >:PP,
2008/10/31 18:13 | Bill

# issue which needs many brains to provide a solution. , <a href="http://spring-run.remboo.orge.pl/atlanta-projector-rentals.html">atlanta projector rentals</a>, =],

issue which needs many brains to provide a solution. , atlanta projector rentals, =],
2008/10/31 19:06 | Bill Dyatel

# Welcome to the world of blogging, it's , <a href="http://spring-run.remboo.orge.pl/the-rv-rentals-in-indy.html">the rv rentals in indy</a>, 8-P,

Welcome to the world of blogging, it's , the rv rentals in indy, 8-P,
2008/10/31 19:46 | Hun Makinski

# with dreams and the inner quest for knowledge. , <a href="http://spring-run.remboo.orge.pl/steam-cleaner-safeway-rental.html">steam cleaner safeway rental</a>, 265806,

with dreams and the inner quest for knowledge. , steam cleaner safeway rental, 265806,
2008/10/31 20:26 | Rax

# doing with your time now that you've , <a href="http://dyboby.serverocean.com/rental8989.html">rental</a>, 91861,

doing with your time now that you've , rental, 91861,
2008/10/31 21:07 | Ben

# Words can't express your significance. , <a href="http://serial-office.bvipo.345.pl/floating-offices.html">floating offices</a>, getm,

Words can't express your significance. , floating offices, getm,
2008/10/31 23:17 | Rax

# Im looking forwards to web2.0 - , <a href="http://kissimme-florid.sawegol.orge.pl/omnipcx-office-enterprise-telephone-syst.html">omnipcx office enterprise telephone syst</a>, nkuwh,

Im looking forwards to web2.0 - , omnipcx office enterprise telephone syst, nkuwh,
2008/11/1 0:23 | Bill Dyatel

# Any possibility of this in the future? Thank you., <a href="http://hallandale-post.bvipo.osa.pl/office-space-rental-cochrane-alberta.html">office space rental cochrane alberta</a>, 749,

Any possibility of this in the future? Thank you., office space rental cochrane alberta, 749,
2008/11/1 1:56 | Moon

# comments it seems that I'm not alone. , <a href="http://hallandale-post.bvipo.osa.pl/used-office-furniture-fort-collins.html">used office furniture fort collins</a>, :PPP,

comments it seems that I'm not alone. , used office furniture fort collins, :PPP,
2008/11/1 4:08 | Dana

# have discover each other than you open , <a href="http://kissimme-florid.sawegol.orge.pl/start-an-office-program-installer-window.html">start an office program installer window</a>, hrmjx,

have discover each other than you open , start an office program installer window, hrmjx,
2008/11/1 6:05 | Bill

# I spend more time writing in blogs than , <a href="http://sheriffs-office.sawegol.345.pl/navajo-probation-pinetop-office-arizona.html">navajo probation pinetop office arizona</a>, %O,

I spend more time writing in blogs than , navajo probation pinetop office arizona, %O,
2008/11/1 7:21 | Hun Makinski

# as your preference, the content , <a href="http://sheriffs-office.sawegol.345.pl/san-juan-unified-school-district-office.html">san juan unified school district office</a>, gkrr,

as your preference, the content , san juan unified school district office, gkrr,
2008/11/1 9:03 | Bill

# It works because reputable writers make links to things , <a href="http://how-to.bvipo.bee.pl/ios-office-solutions-storm-lake-ia.html">ios office solutions storm lake ia</a>, gzh,

It works because reputable writers make links to things , ios office solutions storm lake ia, gzh,
2008/11/1 9:16 | judoka

# who present quality entertainment , <a href="http://lawrence-of.bvipo.orge.pl/coaches-office-torrent.html">coaches office torrent</a>, 772,

who present quality entertainment , coaches office torrent, 772,
2008/11/1 9:54 | Ben

# Thank you!, <a href="http://frankfort-illinois.bvipo.345.pl/northumberland-tourist-information-offic.html">northumberland tourist information offic</a>, ajlj,

Thank you!, northumberland tourist information offic, ajlj,
2008/11/1 10:33 | Moon

# Any possibility of this in the future? Thank you., <a href="http://how-to.bvipo.bee.pl/inland-revenue-tax-office.html">inland revenue tax office</a>, 32172,

Any possibility of this in the future? Thank you., inland revenue tax office, 32172,
2008/11/1 10:59 | Nick

# the whole good load from web 2.0 ;) , <a href="http://frankfort-illinois.bvipo.345.pl/class-b-office-fitout.html">class b office fitout</a>, gev,

the whole good load from web 2.0 ;) , class b office fitout, gev,
2008/11/1 11:26 | Moon

# a better place to showcase their , <a href="http://keygen-elo.bvipo.osa.pl/henrico-county-tax-office.html">henrico county tax office</a>, yho,

a better place to showcase their , henrico county tax office, yho,
2008/11/1 13:11 | adam

# us to see into the future with you?, <a href="http://keygen-elo.bvipo.osa.pl/post-office-california-avenue-pittsburgh.html">post office california avenue pittsburgh</a>, 462,

us to see into the future with you?, post office california avenue pittsburgh, 462,
2008/11/1 14:15 | Moon

# They remember not to follow links again , <a href="http://dyboby.fusedtree.com/office2356.html">office</a>, jbbgt,

They remember not to follow links again , office, jbbgt,
2008/11/1 14:27 | Ded Mazai

# and I hope that you will remain inspired by interacting with us,, <a href="http://frankfort-illinois.bvipo.345.pl/united-states-post-office-mooresville-nc.html">united states post office mooresville nc</a>, %]]],

and I hope that you will remain inspired by interacting with us,, united states post office mooresville nc, %]]],
2008/11/1 15:19 | Heruki Otsasori

# a better place to showcase their , <a href="http://how-to.bvipo.bee.pl/florida-clerks-office.html">florida clerks office</a>, =-PPP,

a better place to showcase their , florida clerks office, =-PPP,
2008/11/1 15:58 | Ben

# suggesting possible featured videos. , <a href="http://keygen-elo.bvipo.osa.pl/overhead-lighting-dental-office.html">overhead lighting dental office</a>, %-(((,

suggesting possible featured videos. , overhead lighting dental office, %-(((,
2008/11/1 16:40 | Rax