h1

Ajax forest, Remote Scripting trees

March 24th, 2005

Buzz buzz buzz.

It reminds me of the Big Honey Hunt where following a single buzzing bee turned into a roundabout adventure that never quite seemed to get to the source but ended up stirring up the entire bee community.

My sentiments match those of Dougal who is simply glad enough that developers have discovered these concepts, however late in the game and by whatever name (mind you, I’m fully behind Dougal’s ARSE …umm, strike that).

So it’s time to cut through the crap and get some work done with this stuff.

AJAX is an acronym for Asynchronous JAvascript + XML. Ok, now that I’ve told you that, forget you ever heard it. Ajax (proper case) has already come to represent a wider concept. The concept is this: Load up and render a webpage, then remain at that page while scripted routines make background trips to the server for data that is used to update the page in place by re-rendering and or hiding/unhiding portions of the page.

Now that we’ve got that settled, let’s break the concept down into some functional parts to see where the convoluted discussion’s apples and oranges lie:

  • Presentation
  • Invocation
  • Message Encoding
  • Transport

The Presentation layer manipulates the display of data using whatever technology is available. DOM manipulation is the current way to do it, but older methods used the various flavours of DHTML available from the browsers at the time. Keeping up with the current set of browsers and their rendering quirks is pretty hairy.

Invocation can be object oriented or procedural depending on the API wrapped around the transport. Asynchronous or synchronous invocation depends more on the transport implementation. My JSRS library for instance only offers asynchronous communication - a limitation imposed on it by the transport layer I needed to use to work across the different browsers available at the time. Microsoft’s Java Applet based Remote Scripting could do both sync and async, and provided both an object and a procedural interface. The XMLHTTP transport offers both async and sync and you can wrap it up how you like.

I prefer to remain lightweight in my message encoding, sending strings back and forth, perhaps encoding structures into Javascript code, a trick I first saw in Microsoft’s RS (the “uneval” function that serializes a javascript obect into the code to reconstitute it). You can get some quite efficiently sized packets with low overhead. Many people prefer to use XML either because their particular development space is all about XML or in order to raise the level of abstraction at the cost of API internal complexity. XMLHTTP etc is then used for the encoding/decoding.

There are various transport methods that allow a browser to send and receive data without page refresh. The lightest one I use is to create an image object and set its source url to a server-side script that takes the querystring parameters, performs work, and returns a string via a cookie, then sends an empty document as the image. Before XMLHTTP was widely available, various hidden iframe and layer methods were used in order to actually hack functionality out of browsers that had not been designed with arbitrary data transport in mind. Other methods involve returning Javascript to the browser for execution. I use XMLHTTP now because I can use it synchronously, which was not possible in Javascript alone because of the lack of a non-blocking sleep function (you go into a tight loop to wait for a result and CPU runs to 100%). Previously would need Java or Flash or an ActiveX control to get that level of control. Now the prominent browsers have their own versions of XMLHTTP with which you can get arbitrary data in either sync or async fashion.

It should be apparent by now that we’re talking about a concept that has remained constant since as early as 1998 and a set of techniques with which to accomplish the task which have evolved over time around the capabilities of the tools at hand. The method used for any project has been selected as a result of the project’s choice of platform and design parameters.

When I get a chance, I’ll try to compile a list of links. In the meantime, use your favourite search engine to look for “Remote Scripting” for some of the historical solutions, and “Ajax” for some of the new stuff.

11 comments to “Ajax forest, Remote Scripting trees”

  1. Other technique to use is WebService behavior ( and yes, I know that is an IE only solution) but in many intranet settings this is a very viable solution. Xml is great way to package up the data and return the result set. I am not sure why you are against asynchrous methods. I tend to think the working asynchrously is a real plus. Xmlhttp is fine, but if you work with web services, you need to twist up some soap header stuff, a minor inconvience.

    To the guys who talk about doing this stuff for 5 years, I contend I was doing far longer than that. With classical asp and com, we used Remote Data Spaces to instantiate COM objects on the server, this was when roundtriping with the browswer was bad. Horrible from the stand point of security, tons of client side code required as well. When asp.net started, we just accepted the browser round trip, but hey, the pages were faster and it was a lot easier to code.

    For me, it was when I got my first look at gMail and I wanted to know how the google engineers got the incredible speed. Google suggests again, very cool, brilliant UI and the one that capped it off for me was Google Maps.

    When you start to play around with these techniques, somehow the browser space seems richer than winforms. What we have today is incredible speed and responsiveness in the browser. The other partthat is cool is the way the processing is distributed, servers go back to being servers finely and why not tax the clients machine, it’s most likely at idel anyway. In some ways, I can see ajax implementations that work with SOA. The xml packages can be seen as contracts, the webservices can comsume this packages and deliver resultsets back the ajax engine.

    Here is another part that gets interesting. With SQL 2005 you can now create web services directly within the SQL server process, this means I could do directly from database to client without having to reprocess and repackage the information. I can only imagine what the performance will be like.

    I am taking a very different look at web developement these days. Ajax is a cool name. This stuff is going to be huge.


  2. I’m not particularly against asynchronous methods - they have served me well. Coming from a procedural background, I find that synchronous operation is more natural for me and fits my train of thought better.

    I suppose really that since I was constrained against using it, I found myself limited. Now that I can work either way, I’ll use each technique to its advantage.


  3. I would argue that all the hype around Google GMail and GMaps is well deserved, but that doesn’t make the average app developer any wiser. This stuff is reams and reams of code put together by the best in the business. For average developers to build UIs that are as slick and efficient as that is not a reality. Will NEVER happen. Not without browser consolidation and at least some hopes that browser will work consistently across vendor implementations.

    Higher level services like Ajax are a step in the right direction, but why stop there? Why for example isn’t there a standard SOAP implementation for Browsers? With all this focus on SOA and Web Services and for ease of creating the backend WS is still one of the best options. There are two sides to this equation and hte server side needs to be addressed as well. The last thing we want is people coming up with their own proprietary transfer protocols to ship data around the wire, reinventing the wheel over and over again.

    Instead people fart around with yet another new standard to pile on the other 4-5 letter acronyms.


  4. Hi, Brent.
    The real problem I have with all this acronym horse manure is people are using it to sell more magazines, conferences, and books (and even “products”) rather than providing real new technology based on innovation. We all know that XMLHTTP has been around since IE 3.0 and the first big “AJAX” Implementation was Outlook Web Access. That was a very long time ago, by Internet standards…

    Recently I found out that you can’t even use AJAX (the foaming cleanser?) to request a lousy RSS feed in Firefox, unless it comes from the same site as the page. Shot themselves in the foot a bit, dontcha think?


  5. It is interesting to compare your list: Presentation, Invocation, Encoding, Transport with the PEPT architecture http://haroldcarr.net/pept/ : Presentation, Encoding, Protocol, Transport. PEPT is an architecture understand and/or build remoting systems. It shows that the programming model at the Presentation level can be procedural, object-based or a messaging API. Regardless, the rest of the infrastructure is essentially the same: Encoding: the data send/received must be endoded; Protocol: the encoded data must have added “bits” that frame the data and give the intent of the data (and add metadata); Transport: the encoded/framed data must be sent from one location to another.


  6. I responded to Harold on Phil Windley’s blog before noticing his comment here. Here’s a quote:

    I struggled a bit before I decided on “Invocation” rather than “Protocol” because I wanted to express the concept of programmatic interface with both data passing and sync/async and at the same time avoid any confusion with wire protocols that describe what happens at lower layers.

    Also, I put Encoding below Invocation in the layered model in the expectation that implementations would usually pass objects or values in their language-native form and the API routines would then encode/transport/decode to the other side and present results in the language-native form of the remote environment.
    That is, the encoding is transparent to the caller and the called routine.

    This is how SOAP works when abstracted well. I write a server-side routine in PHP that returns an object, describe it properly with WSDL, and a C# or VB.NET client’s API builds a native proxy object at the other end.

    Harold, I note from your curriculum vitae that you created and patented PEPT sometime between 2001 and the present. Do you have a patent number I can refer to?


  7. For me, the “programatic” concerns are contained in the Presentation block (BTW: PEPT is NOT a stack architecture - the four main pieces can all interact with each other if need be - e.g., fragmentation). That is where PEPT provides either a typical RMI interface or a typical messaging (e.g., JMS) interface. RMI is generally synchronous but certainly allows for ONEWAY calls. JMS is generally asynchronous.

    Protocol, in PEPT is kind-of dual natured: PEPT considers an internal protocol to be any steps done in the sending or receiving side to route the message. That includes handling the wire-level protocol details and waiting for a reply or fire and forget.

    I completely agree the “encoding is transparent to the caller and called routine”. One of PEPTs motivations was to show how to present higher level APIs to remote system users while enabling the lower-level infrastructure dynamically (per-invocation) or evolutionarily (e.g., new standards) switch EPTs (Encodings, Protocols and Transports). Another way of looking at this is we really don’t need a JAX-RPC and an RMI (or RMI-IIOP) programming mode. We just need two: one for generic RMI (or RPC) and one for generic messaging.

    There are three PEPT patents pending:

    10/677,434 Oct 2, 2003
    10/863,094 Jun 8, 2004
    10/954,861 Sep 30, 2004

    Regards,
    Harold


  8. Thanks for the clarification, Harold. The per-invocation switching of EPTs sounds interesting.


  9. Syncronous use of the xmlhttprequest inside IE is a very bad idea, it locks the UI whilst waiting for the request - which is pretty much the opposite of giving a responsive UI that people are now wanting to do.

    There are also a few lock-up bugs in the implementation when running under IE and it’s making simultaneous requests (for images etc.) - the 2 http requests allowed block each other.


  10. The astute among you may notice that I’ve removed a particular comment and my reply from the beginning of the thread. Short story: anonymous commenter was rude, I was snippy in response, no value added.


  11. […] Perspective (forest vs. trees) (more) […]


Leave a Comment




viagra
buy viagra onli
generic viagra
gay viagra
buy viagra online
cheap viagra
free viagra
herbal viagra
viagra side effects
buy viagra
female viagra cream
viagra alterna...
generic viagra lowest prices
viagra cream
natural viagra
buy viagra in england
viagra for women
viagra online
free viagra in the uk
uk viagra sales
viagra uk
female viagra
mail order viagra in uk
buy cheap viagra online uk
alternative to viagra
cheapest viagra substitute sildenafil
what is better viagra or levitra
purchase viagra online
compare cialis levitra viagra
buying viagra online
viagra cialis levitra
best price for generic viagra
buy viagra online inu
cheapest viagra in uk
free viagra sample
viagra alternative new drugs
levitra versus viagra
how does viagra work
viagra 6 free samples
over the counter viagra
viagra for sale without a prescription
buying viagra
mail order viagra
buy viagra online inurl
cialis compare levitra viagra
levitra viagra
viagra pills
buy viagra online in uk
viagra levitra cialis
best prices on viagra
cialis levitra sales viagra
discount viagra
cialis imperial levitra libidus viagra yohimbe
cialis levitra link pharmacies com viagra
viagra vs levitra
cheaper viagra levitra apcalis
compare levitra cialis versus viagra
compared levitra viagra
viagra order canada
viagra uk cheap purchase buy
cialis levitra viagra vs vs
cialis viagra levitra effects
comparison levitra viagra
levitra cialis viagra comparison
which is better viagra cialis or levitra
levitra and cialis and viagra
cialis viagra levitra
mexico pharmacy generic viagra
viagra levitra cialis pharmacist prescription drug
viagra medication prescription levitra cialis propecia
2003 cyalis levitra market sales viagra
buy levitra online viagra
generic viagra india
viagra for sale
comparison of cialis levitra and viagra
levitra vs viagra
lowest price generic viagra
order viagra
viagra cyalis levitra compared
2003 cialis levitra market sales viagra
buy levitra viagra online
cialis and levitra viagra
cialis levitra sale viagra
viagra lawyers
ciacil is this better then viagra and levitra
cialis generic levitra viagra
cialis levitra pharmacy viagra
levitra cialis viagra
levitra viagra comparison
order viagra online
viagra attorneys
viagra without prescription
cialis levitra viagra
comparison study of viagra cialis levitra
comparison viagra levitra cialis
levitra viagra vs
viagra discount
viagra vs cialis
viagra vs levitra vs cialis
cialis dysfunction erectile levitra viagra
viagra soft tabs
buy generic soft tab viagra
viagra soft tab
cailis soft vesus viagra
generic viagra soft tabs next day
soft viagra
buy viagra soft
buy soft viagra
viagra
comprar viagra
comprare viagra
viagra casera
viagra en espana
vendo viagra
cialis viagra levitra
viagra barato
viagra generica
efectos de la viagra
sildenafil citrate
citrato de sildenafil
comprar sildenafil
sildenafil citrato
sildenafil generico
sildenafil 100mg
sildenafil espana
sildenafil efectos
sildenafil sin receta
el sildenafil
sildenafil generico
eyaculacion precoz
comprar viagra
comprar viagra en linea
acheter viagra
acheter viagra en ligne
viagra acheter en ligne
acquistare viagra
acquistare viagra online
tramadol
cheap tramadol
very cheap tramadol
cheap tramadol fedex overnight
tramadol hcl
buy cheap tramadol online inurl
tramadol cod online
buy cheap tramadol o
tramadol 180
cheapest tramadol available online
cheap tramadol without prescription
tramadol c o d
tramadol online si
buy tramadol without a prescription
what is the medicine tramadol
tramadol contain morphine
tramadol dosage
tramadol considered a narcotic
tramadol withdraw
order tramadol cod
tramadol cheap
tramadol cod
tramadol hydrochloride
order tramadol online
what is tramadol hcl used for
tramadol drug
buy tramadol at a cheap price online
what is tramadol hcl
tramadol withdrawal
tramadol cod saturday delivery
tramadol online
buy cheap tramadol on
buy tramadol
tramadol addiction
drug use tramadol
next day tramadol
similar drugs to tramadol
what is tramadol
ingredients in tramadol
side effects tramadol
tramadol no prescription
tramadol for dogs
is tramadol a narcotic
buy tramadol $75 for 120 tabs
tramadol more addicting than vicodin
tramadol saturday delivery
tramadol side effects
snorting tramadol
cheap discount tramadol
what is tramadol used for
order tramadol
buy tramadol chebr
tramadol abuse
cod tramadol
tramadol antidepressant
cheap tramadol cod
tramadol 50mg
buy tramadol online
online pharmacy tramadol
tramadol hcl 50mg
tramadol water soluble
what does tramadol hcl look like
tramadol c.o.d. saturday delivery
tramadol hcl for anti depression
tramadol ultracet
is tramadol narcotic
tramadol medication
no prescription tramadol
tramadol habit forming
overnight tramadol
tramadol apap
tramadol without prescription
buy tramadol cheap medication inurl
buy tramadol cod
online tramadol pharmacy
purchase tramadol
tramadol depression
tramadol for pets
tramadol hydrochloride tablets
tramadol overnight free
addiction to tramadol
online tramadol
side effects of tramadol hydrochloride
tramadol 120 tabs $75 free shipping
tramadol 50 mg
tramadol hcl 50 mg
tramadol on line no prescription
tramadol dog
tramadol doses
tramadol hci
tramadol hydrochloride capsules 50mg
tramadol information
tramadol withdrawal symptoms
tramadol drug properties
tramadol free shipping
tramadol good for depression
tramadol overnight
tramadol overnight cod
tramadol saturday
what is tramadol like
phentermine
cheap phentermine
phentermine 37 5mg
phentermine side effects
phentermine without prescription
generic phentermine
phentermine cheap
phentermine 37.5 mg
phentermine no prescription
discount phentermine
phentermine and methamphetamine
how does phentermine work
buy phentermine
extra cheap phentermine
phentermine without a prescription
site3aromkafegreatnowfecom phentermine
buy phentermine online
phentermine very cheap
difference between adipex and phentermine
cheap 37 5 phentermine
phentermine online
strongest phentermine
purchase phentermine online
phentermine side effects dangers
herbal phentermine
buy phentermine online with paypal
side effects of taking phentermine
phentermine 6 pm order
phentermine diet pills
phentermine no rx
is phentermine safe
no prescription phentermine
low cost phentermine
phentermine overnight
cheap phentermine free shipping
phentermine forum
buy cheap phentermine
phentermine tablets
cheap phentermine without a prescription
phentermine uk
phentermine online consultation
phentermine without rx
phentermine hcl
where can i buy phentermine without a prescription
buy phentermine cod
cheapest phentermine
phentermine pill online discount
phentermine without perscription
wholesale phentermine
phentermine cash on delivery
is phentermine dangerous
long term phentermine use
phentermine 30mg
phentermine cod
buy phentermine without prescription
overnight phentermine
cheap phentermine online
cheap phentermine without prescription
discount phentermine cod
negative side effects of phentermine
order phentermine online
phentermine 30 mg
phentermine 37.5 no prescription
phentermine free consultation
phentermine no script
phentermine overdose
what pills look like phentermine
levitra lipitor online pharmacy pharmacy zoloft phentermine
order phentermine
phentermine at discount prices
phentermine atlanta
phentermine online no rx
phentermine overnight saturday delivery
phentermine prescription online
phentermine tenuate
do meridia phentermine work the same
levitra low price pharmacy zoloft phentermine viagra
phentermine studies
phentermine warnings
adipex ionamin meridia phentermine weightloss
buy phentermine no prescription
buy phentermine without a prescription
online phentermine
phentermine or prozac for bulimia
purchase phentermine with no prescription
what is phentermine
better phentermine or adipex
does phentermine work
duromine phentermine diet pills
phentermine diet pill
phentermine price comparison
purchase phentermine 37.5 mg without prescription
rx assist phentermine
adipex versus phentermine
can i take phentermine with zoloft
cheap phentermine no prescription
generic versions of phentermine
negative side effects from phentermine
no rx phentermine
pharmacies to purchase phentermine 37.5 mg with perscription
levitra
cheap levitra
buy levitra online
buy levitra
generic levitra
levitra dangers
compare cialis levitra viagra
viagra cialis levitra
levitra versus viagra
cheapest generic levitra
levitra cialis
levitra guaranteed cheapest online
order levitra
discount levitra
levitra online
cialis compare levitra viagra
levitra news
levitra viagra
levitra vs cialis review
looking for levitra
cialis and levitra
cialis comparison levitra
what is levitra product
viagra levitra cialis
actress commercial levitra
cialis levitra
cialis levitra sales viagra
levitra samples
where to buy levitra
cialis imperial levitra libidus viagra yohimbe
compare levitra price
levitra prescription
levitra tv commercial actress27 name
blindness cialis levitra
cialis levitra link pharmacies com viagra
cialis vs levitra
drug testing levitra
levitra clinical data
levitra germany
levitra now online
viagra vs levitra
buy levitra where
cheap levitra tablet
cheaper viagra levitra apcalis
compare levitra cialis versus viagra
compared levitra viagra
comparing viagra2ccialis2c levitra
efficacy levitra
information on the price of levitra in the us and
levitra generic
online levitra
purchase levitra
cialis levitra prescriptionscom
cialis levitra viagra vs vs
cialis viagra levitra effects
comparison levitra viagra
cost levitra
exchange levitra link
levitra canada
levitra cialis viagra comparison
levitra dosage
levitra for women
levitra increase effect stronger harder
levitra low price
levitra result
what is levitra
which is better viagra cialis or levitra
cheap levitra order prescription
full information levitra
information levitra prescribing
kit levitra slide
levitra and cialis and viagra
levitra buy
levitra cost
levitra ppt
side effects of levitra
alcohol levitra
buy en language levitra
cialis viagra levitra
compare levitra
drug for impotence levitra
flonase levitra metrogel metrogel myonlinemeds biz
levitra 20mg
levitra ad
levitra cme
levitra en mexico
order levitra on line
prescribing levitra
viagra levitra cialis pharmacist prescription drug
viagra medication prescription levitra cialis propecia
watch the levitra commercial
brochure levitra
buy levitra online viagra
cheap generic levitra
cialis levitra online
cialis levitra pharmacycom
levitra
cialis viagra levitra
se puede tomar alcohol con levitra 10mg
comprar levitra 5 mg generico
levitra espana
venta de levitra
levitra forma comercial
levitra pvp
viagra versus levitra
vardenafil
comprar vardenafil
comprar levitra
comprar levitra en linea
acheter levitra
acheter levitra en ligne
levitra acheter en ligne
acquistare levitra
acquistare levitra online
cialis
cheapest cialis
generic cialis
buy cialis online
cialis generic
cialis for order
cialis to buy new zealand
cheap cialis
buy cialis online now
cialis uk suppliers
cialis online
cialis cost
compare cialis levitra viagra
viagra cialis levitra
lowest prices for cialis
levitra cialis
cialis injury attorney columbus
cialis compare levitra viagra
levitra vs cialis review
cialis and levitra
cialis comparison levitra
cialis injury attorney ohio
cialis uk
buy cialis
viagra levitra cialis
cialis levitra
cialis levitra sales viagra
cialis attorney columbus
cialis imperial levitra libidus viagra yohimbe
blindness cialis levitra
cialis levitra link pharmacies com viagra
cialis professional
cialis vs levitra
compare levitra cialis versus viagra
cialis levitra prescriptionscom
cialis levitra viagra vs vs
cialis viagra levitra effects
levitra cialis viagra comparison
which is better viagra cialis or levitra
buying generic cialis
levitra and cialis and viagra
cialis viagra levitra
viagra levitra cialis pharmacist prescription drug
viagra medication prescription levitra cialis propecia
cialis lawyer columbus
cialis lawyer ohio
cialis levitra online
cialis levitra pharmacycom
discount cialis
cialis injury lawyer ohio
cialis levitra vs
comparison of cialis levitra and viagra
2003 cialis levitra market sales viagra
cialis and levitra viagra
cialis dosage
cialis drug drug levitra pharmacist prescription
cialis levitra sale viagra
levitra vs cialis
cialis attorneys
cialis generic levitra viagra
cialis levitra pharmacy viagra
levitra cialis viagra
cialis injury lawyer columbus
cialis levitra viagra
comparison study of viagra cialis levitra
comparison viagra levitra cialis
viagra vs cialis
viagra vs levitra vs cialis
cialis dysfunction erectile levitra viagra
cialis without prescription
compare viagra cialis levitra
levitra versus cialis
viagra levitra cialis comparison
what is the generic name for cialis
cialis attorney ohio
cialis comparison levitra viagra
cialis in uk online
cialis side effects
levitra cialis for women
which is better3a viagra2c cialis or levitra
cheap generic cialis
compare cialis levitra
viagra levitra cialis apcalis regalis zenegra
cialis levitra link viagrablogspotcom
comparison viagra cialis levitra
levitra cialis compare
low cost cialis
cheaper viagra levitra cialis
cialis compare levitra
cialis levitra link pharmacies.com viagra
cialis levitra link pharmaciescom viagra
cialis message board
cialis pricing
compare levitra and cialis
comparison of viagra2c levitra and cialis
discount cialis levitra viagra
ditka sound clip levitra cialis
which is better viagra levitra cialis
buy viagra cialis levitra
buy cialis soft
buy soft cialis
soft cialis
cialis soft tabs cheap
cialis soft tab
cialis soft tabs
cialis soft
cialis soft gel
cialis soft tab rss feed
what is cialis soft
cialis
comprar cialis
cialis generico
cialis y alcohol
cialis viagra levitra
cialis y el alcohol
cialis viagralevitra
comprar cialis zaragoza
cialis viagra
tadalafil
tadalafil generico
comprar tadalafil
tadalafil tablets
tadalafil 20mg
tadalafil 20
tadalafil generico
comprar cialis
comprar cialis en linea
acheter cialis
cialis acheter en ligne
acheter cialis en ligne
acquistare cialis
acquistare cialis online
about tramadol hci
actos phentermine online pharmacy
adipex phentermine
aetna health care phentermine diet pill
baclofen ultram
best soma online
bipolar xanax long term common
brand soma watson
buspar xanax
buy wholesale xanax bars
buy carisoprodol diazepam online soma
buy carisoprodol soma
buy cheap fioricet
buy cheap generic zyban
buy cheap soma
buy cheap tramadol
buy cheap tramadol hydrochloride ultram
buy clomid
buy clomid cheap
buy clomid online
buy eon phentermine overnight
buy fioricet codeine
buy fioricet online
buy fischer soma f9000 boots
buy link onlinewbst soma
buy liquid ephedra
buy meridia online
buy paxil cr online
buy phentermine
buy phentermine direct
buy phentermine no doctor consultation
buy phentermine online phentremine
buy phentermine online american express payment
buy phentermine online ritalin order
buy phentermine ship to mo
buy phentermine using mastercard
buy phentermine viagra
buy phentermine with a master card
buy phentermine with discover
buy phentermine with fast shipping
buy products containing ephedra
buy rx phentermine online
buy softtabs now online
buy soma
buy soma 1
buy soma cheap inurl
buy soma cheap overseas
buy soma mattress
buy tramadol
buy tramadol online
buy ultram without a prescription
buy vicodin on line
buy xanax
buy xanax 2 mg without prescription
buy xanax online without prescription
buy xanax overnight alprazolzm ups fedex
buy xanax us pharmacie doctors
buy xanax usa pharmacy overnight
buy xanax usa pharmacy overnight delivery
buy xanax with no prescription
buy xanax without a prescription or membership
buy xenical orlistat zenical zenacal propecia finasteride
by soma watson
can ultram raise blood pressure
canada ephedra die pills
canadian soma
carisoprodol and soma at huge savings
carisoprodol carisoprodol site soma pochta ru soma
carisoprodol linkdomain soma pochta ru
carisoprodol online soma
carisoprodol soma 0
carisoprodol soma 120ct 9900 free shipping find more
carisoprodol soma pochta ru
carisoprodol soma watson
cat health phentermine diet pill
cheap discount tramadol 120ct
cheap online pharmacy tramadol
cheap pharmacy refill tramadol ultram
cheap soma online
cheap ultram online today discount
cheap xanax
cheapest online soma
cheapest soma online
cheapest ultram