Virtualization: Creating a new software development infrastructure

Michel Genard
Software development is a fascinating industry that has changed over the years as developers have continually adopted newer programming languages, from Fortran to Pascal to C++ and beyond. But although developers readily look to software itself to drive innovation, few have considered their development infrastructure a possible vehicle for change. With the advent of virtualization in the development process, that’s about to change.

When the first embedded devices appeared, software as we know it today simply did not exist; all functionality was built into hardware. With the introduction of the microprocessor, software content emerged but still comprised only a small part of the overall system. Over the past twenty years, the embedded industry has witnessed a complete shift as software has exploded in size and complexity. Today, software is the primary driver of increased functionality and innovation in embedded systems.

Although hardware design has enjoyed significant investments in tools and process development, software development processes have remained essentially static since the 1980s. The hardware industry is aided by well-defined standards and processes, but software development methods have not kept pace, leaving programmers to approach software development entirely ad hoc.

The consequences of this lack of an underlying software development infrastructure are all too familiar: cost overruns, missed schedules and poor-quality software. The current approach to software development sees two-thirds of projects late to market, one third over budget, and nearly half of embedded designs canceled. Even the allocation of additional resources to a job or the rescoping of a product’s features doesn’t keep software developers from consistently hitting walls.

Why does this staggering disconnect exist in the world of embedded programs? Why is software development stagnant even as designs grow more and more complex? This is an issue neither of people nor of components. Rather, it is caused by the absence of a strategic development infrastructure thoughtfully designed to aid software development.

An embedded device today is typically built from the ground up, starting in hardware and ending in software. The process is very sequential, beginning with hardware designed around certain expectations regarding memory, MIPS, interface, connectivity, and so on. Multiple components are pulled together to build up a hardware system, and it is on top of this that software is developed. This hardware-centric, bottom-up approach involves multiple steps and introduces multiple dependencies, and only after the system integration phase, when the software is actually running on the platform, can the system be understood from a performance point of view. (Contrast this with an SOA approach, which maps out necessary services before designing an infrastructure to support them.)

The chief weakness of a bottom-up development approach is that it treats software as an afterthought in the design process, even though an increasing amount of system functionality depends on software, not hardware. Integration occurs very late in the game, making it difficult to discover (much less fix) bugs introduced by the hardware, design or architecture. In many cases, developers are forced to rethink their designs to the detraction of both schedules and budgets.

As software complexity reaches new heights and solid programs prove the biggest hurdle to shipping, the inefficiency and impracticality of the hardware-centric approach is becoming increasingly evident. How can developers strategically rethink their development approach so that they are no longer at the mercy of hardware? How can software development at the system level begin earlier in the design process? This is where virtualization comes in.

Precursors of virtualization
Virtualization has been used in the development of embedded devices for several years both as a replacement for actual hardware and as a designing and debugging platform for complex systems. In the hardware design industry, simulation has been employed at both the socket and PCB level. Whether designing processors, PCBs or SOCs, hardware developers can use simulation tools from the likes of Mentor, Cadence and Synposys to model and predict the behavior of their systems without having to wait for the development of the actual physical systems.

Outside of the world of embedded devices, we’ve seen a number of industries successfully employ virtualization after hitting walls when using traditional approaches. Over the past two years, server virtualization has made great inroads by improving data center efficiency and lowering overall ownership costs. Virtualization has solved such persistent challenges as server proliferation, CPU underutilization and application isolation.

Simulation has also been employed by a number of industries, such as aerospace and defense, in their own software development. Often, these industries require such complex designs that waiting a year or more for hardware isn’t feasible. Simulations have been developed internally as point solutions, design complexity essentially mandating that these companies invest resources in internally developing virtualized software development solutions.

The embedded software development industry is now at a point where neither traditional, hardware-centric development approaches nor internal, one-off virtualized software development solutions can deliver the time-to-market, cost-saving and quality-assurance benefits that are a must in such a competitive market. The role of software content in embedded devices shows no signs of diminishing, and the proliferation of multicore devices adds an unprecedented complexity into the mix both in hardware and software. The inevitable move toward multicore designs has only highlighted the need for software development solutions that can harness the performance potential of multicore devices.

The current state of embedded software development has made it necessary for companies to strategically revisit and rethink their processes not only at the component level but at the process design level. We can learn from what the hardware industry, among others, did with simulation, but we need to take virtualization even a step further, implementing it across our own industry as a foundational, underlying infrastructure.

Virtualized software development (VSD) is a product-development strategy that frees software development from its dependence on the physical hardware on which applications will be deployed. Instead, VSD enables software developers to develop directly on the desktop, producing a true codevelopment strategy in which hardware and software development begin simultaneously. Software/hardware integration becomes a front-end priority, and not a back-end rush job

Virtualized software development lets developers create high-performance, functionally accurate models of hardware that enables them to begin debugging, testing and optimizing systems much earlier in the development process. Virtualization can be used in varying degrees of detail, from processors to boards to devices, at such a level of accuracy that binary code can run unchanged and unaccompanied by any divergence in behavior.

High-performance virtual platforms deliver degrees of control impossible when testing on physical hardware. Determinism, the inherent nature of software to always execute the same way when the same conditions apply, becomes a reality in virtual testing. As processor and hardware designs increase in complexity, determinism means nothing more than that changes in operation are caused not by traceable flaws in software but by arbitrary, often untraceable changes in hardware that create events known as “Heisenbugs,” states dependent on subtle timing interactions sometimes impossible to replicate even when the entire system is repeatedly rerun. The simulation infrastructure underlying a virtualization platform allows developers to single-step or stop systems to examine their internal states. Developers can reproduce an error repeatedly even when simulating multiple processor cores and multiple processes on each core, making multiprocessor debugging as easy as debugging a single program on a single processor.

VSD also sidesteps codeís inherent limitations, delivering a TiVo-like functionality by executing code in reverse when needed, without any code instrumentation or additional hardware. Virtualization lets developers wait for an error and then “rewind” the code’s execution to search for the culprit behind it. Rewinding code execution requires both the capacity to checkpoint an entire system inexpensively and the ability to simulate at very high speeds. Stepping back an instruction is actually accomplished by reverting to a checkpoint and stepping forward to a point one instruction prior to the point of rewinding, a process that appears almost instantaneous to users if the simulation speed is high enough. This reversible debugging environment works with multiprocessors and multicore processors, allowing developers to track down bugs such as race conditions, divide by zero errors, lock conflicts, deadlock and priority starvation, all of which will crop up even more often in multicore architectures.

The creation of virtual models also allows for rampant standardization by identifying a meaningful platform that both software and hardware teams can use, enhance and share. VSD can access an unlimited number of virtual targets, and the virtual platform (being a software representation of hardware) can be e-mailed around the world in seconds. Because the data produced by virtual models is not physically restricted, companies can share their VSD IP with partners and customers easily and effectively.

VSD was recently illustrated in the introduction of a similar platform, Google Android, although in the context of an SDK. Nevertheless, the concept is the same and consists of a simulated virtual platform enabling a top-down approach that makes hardware essentially irrelevant at the application level. The virtual platform provides all services necessary for design, allowing hardware to be thought of as a front-end, not a back-end, concern. Once software is developed, hardware is optimized for the software, not vice versa.

VSD in practice
Virtualized software development is spreading its benefits on a mainstream, commercial scale. A number of companies have already implemented this approach in their design processes, creating new and innovative infrastructures based on VSD.

IBM employed VSD in the development and testing of the complex software found in its powerful POWER6 platform. By using VSD, IBM’s development teams were able to rise to the challenge of developing complex firmware and hypervisors to boot and run multiple OSes on a virtual system model without the need for physical hardware. This, in turn, helped reduce the overall hardware expense. IBM quickly realized that it could use virtualized software development to optimize its entire product development life cycle as well as minimizing barriers between hardware and software design teams.

GE Aviation Systems (formerly Smiths Aerospace) employed virtualization to develop simulated models for its processing modules. GE modeled the final target system to provide significant benefits, when compared with a traditional development environment, that included reduced development and test costs, integration costs, acquisition and maintenance costs and cost of change. The deterministic capability of VSD also allowed GE’s developers to recreate performance issues at their leisure for in-depth inspection and diagnosis.

Wind River, the leader in DSO, has used VSD for some time to improve their OS development process (as in VxWorks SMP), consistently and publicly identifying VSD as a primary element in their development strategy.

Recently, Monta Vista Software, a provider of Linux for intelligent devices, took VSD a step further and made virtualization a key part of its software sales and evaluation process. Monta Vista allows its potential customers to evaluate Linux product offerings over the Web by using an evaluation service called TestDrive to connect users to a virtual board farm built and run on a virtualized software development platform. This is an excellent example of the way that VSD encourages new ways of thinking and doing business.

By: Michel Genard (mgenard@virtutech.com) is vice president of marketing at Virtutech Inc. (San Jose, Calif.). He is an industry veteran with more than 20 years of experience in the software and hardware embedded market.

Read Full Article

For More info please visit us at: Website design company & BPO India

Share on Facebook

         

View blog reactions
Latest Posts
  • MSI Application Packaging
  • Block websites on your computer
  • Quality landing pages to get more sales
  • Part 2 Basics of PPC Advertising.
  • Better Software Foundations
  • Office Communication Server 2007- a valuable help in a technical world
  • 10 Ways to Monetize Your Blog
  • Generate RSS Feed: How to Generate an RSS Feed for Your Web Business
  • Scope of SEO in India
  • Cartoon Logo Design- An Affordable Medium to Express
  • Leave a Reply

    You must be logged in to post a comment.

    Virtualization: Creating a new software development infrastructure

    Michel Genard
    Software development is a fascinating industry that has changed over the years as developers have continually adopted newer programming languages, from Fortran to Pascal to C++ and beyond. But although developers readily look to software itself to drive innovation, few have considered their development infrastructure a possible vehicle for change. With the advent of virtualization in the development process, that’s about to change.

    When the first embedded devices appeared, software as we know it today simply did not exist; all functionality was built into hardware. With the introduction of the microprocessor, software content emerged but still comprised only a small part of the overall system. Over the past twenty years, the embedded industry has witnessed a complete shift as software has exploded in size and complexity. Today, software is the primary driver of increased functionality and innovation in embedded systems.

    Although hardware design has enjoyed significant investments in tools and process development, software development processes have remained essentially static since the 1980s. The hardware industry is aided by well-defined standards and processes, but software development methods have not kept pace, leaving programmers to approach software development entirely ad hoc.

    The consequences of this lack of an underlying software development infrastructure are all too familiar: cost overruns, missed schedules and poor-quality software. The current approach to software development sees two-thirds of projects late to market, one third over budget, and nearly half of embedded designs canceled. Even the allocation of additional resources to a job or the rescoping of a product’s features doesn’t keep software developers from consistently hitting walls.

    Why does this staggering disconnect exist in the world of embedded programs? Why is software development stagnant even as designs grow more and more complex? This is an issue neither of people nor of components. Rather, it is caused by the absence of a strategic development infrastructure thoughtfully designed to aid software development.

    An embedded device today is typically built from the ground up, starting in hardware and ending in software. The process is very sequential, beginning with hardware designed around certain expectations regarding memory, MIPS, interface, connectivity, and so on. Multiple components are pulled together to build up a hardware system, and it is on top of this that software is developed. This hardware-centric, bottom-up approach involves multiple steps and introduces multiple dependencies, and only after the system integration phase, when the software is actually running on the platform, can the system be understood from a performance point of view. (Contrast this with an SOA approach, which maps out necessary services before designing an infrastructure to support them.)

    The chief weakness of a bottom-up development approach is that it treats software as an afterthought in the design process, even though an increasing amount of system functionality depends on software, not hardware. Integration occurs very late in the game, making it difficult to discover (much less fix) bugs introduced by the hardware, design or architecture. In many cases, developers are forced to rethink their designs to the detraction of both schedules and budgets.

    As software complexity reaches new heights and solid programs prove the biggest hurdle to shipping, the inefficiency and impracticality of the hardware-centric approach is becoming increasingly evident. How can developers strategically rethink their development approach so that they are no longer at the mercy of hardware? How can software development at the system level begin earlier in the design process? This is where virtualization comes in.

    Precursors of virtualization
    Virtualization has been used in the development of embedded devices for several years both as a replacement for actual hardware and as a designing and debugging platform for complex systems. In the hardware design industry, simulation has been employed at both the socket and PCB level. Whether designing processors, PCBs or SOCs, hardware developers can use simulation tools from the likes of Mentor, Cadence and Synposys to model and predict the behavior of their systems without having to wait for the development of the actual physical systems.

    Outside of the world of embedded devices, we’ve seen a number of industries successfully employ virtualization after hitting walls when using traditional approaches. Over the past two years, server virtualization has made great inroads by improving data center efficiency and lowering overall ownership costs. Virtualization has solved such persistent challenges as server proliferation, CPU underutilization and application isolation.

    Simulation has also been employed by a number of industries, such as aerospace and defense, in their own software development. Often, these industries require such complex designs that waiting a year or more for hardware isn’t feasible. Simulations have been developed internally as point solutions, design complexity essentially mandating that these companies invest resources in internally developing virtualized software development solutions.

    The embedded software development industry is now at a point where neither traditional, hardware-centric development approaches nor internal, one-off virtualized software development solutions can deliver the time-to-market, cost-saving and quality-assurance benefits that are a must in such a competitive market. The role of software content in embedded devices shows no signs of diminishing, and the proliferation of multicore devices adds an unprecedented complexity into the mix both in hardware and software. The inevitable move toward multicore designs has only highlighted the need for software development solutions that can harness the performance potential of multicore devices.

    The current state of embedded software development has made it necessary for companies to strategically revisit and rethink their processes not only at the component level but at the process design level. We can learn from what the hardware industry, among others, did with simulation, but we need to take virtualization even a step further, implementing it across our own industry as a foundational, underlying infrastructure.

    Virtualized software development (VSD) is a product-development strategy that frees software development from its dependence on the physical hardware on which applications will be deployed. Instead, VSD enables software developers to develop directly on the desktop, producing a true codevelopment strategy in which hardware and software development begin simultaneously. Software/hardware integration becomes a front-end priority, and not a back-end rush job

    Virtualized software development lets developers create high-performance, functionally accurate models of hardware that enables them to begin debugging, testing and optimizing systems much earlier in the development process. Virtualization can be used in varying degrees of detail, from processors to boards to devices, at such a level of accuracy that binary code can run unchanged and unaccompanied by any divergence in behavior.

    High-performance virtual platforms deliver degrees of control impossible when testing on physical hardware. Determinism, the inherent nature of software to always execute the same way when the same conditions apply, becomes a reality in virtual testing. As processor and hardware designs increase in complexity, determinism means nothing more than that changes in operation are caused not by traceable flaws in software but by arbitrary, often untraceable changes in hardware that create events known as “Heisenbugs,” states dependent on subtle timing interactions sometimes impossible to replicate even when the entire system is repeatedly rerun. The simulation infrastructure underlying a virtualization platform allows developers to single-step or stop systems to examine their internal states. Developers can reproduce an error repeatedly even when simulating multiple processor cores and multiple processes on each core, making multiprocessor debugging as easy as debugging a single program on a single processor.

    VSD also sidesteps codeís inherent limitations, delivering a TiVo-like functionality by executing code in reverse when needed, without any code instrumentation or additional hardware. Virtualization lets developers wait for an error and then “rewind” the code’s execution to search for the culprit behind it. Rewinding code execution requires both the capacity to checkpoint an entire system inexpensively and the ability to simulate at very high speeds. Stepping back an instruction is actually accomplished by reverting to a checkpoint and stepping forward to a point one instruction prior to the point of rewinding, a process that appears almost instantaneous to users if the simulation speed is high enough. This reversible debugging environment works with multiprocessors and multicore processors, allowing developers to track down bugs such as race conditions, divide by zero errors, lock conflicts, deadlock and priority starvation, all of which will crop up even more often in multicore architectures.

    The creation of virtual models also allows for rampant standardization by identifying a meaningful platform that both software and hardware teams can use, enhance and share. VSD can access an unlimited number of virtual targets, and the virtual platform (being a software representation of hardware) can be e-mailed around the world in seconds. Because the data produced by virtual models is not physically restricted, companies can share their VSD IP with partners and customers easily and effectively.

    VSD was recently illustrated in the introduction of a similar platform, Google Android, although in the context of an SDK. Nevertheless, the concept is the same and consists of a simulated virtual platform enabling a top-down approach that makes hardware essentially irrelevant at the application level. The virtual platform provides all services necessary for design, allowing hardware to be thought of as a front-end, not a back-end, concern. Once software is developed, hardware is optimized for the software, not vice versa.

    VSD in practice
    Virtualized software development is spreading its benefits on a mainstream, commercial scale. A number of companies have already implemented this approach in their design processes, creating new and innovative infrastructures based on VSD.

    IBM employed VSD in the development and testing of the complex software found in its powerful POWER6 platform. By using VSD, IBM’s development teams were able to rise to the challenge of developing complex firmware and hypervisors to boot and run multiple OSes on a virtual system model without the need for physical hardware. This, in turn, helped reduce the overall hardware expense. IBM quickly realized that it could use virtualized software development to optimize its entire product development life cycle as well as minimizing barriers between hardware and software design teams.

    GE Aviation Systems (formerly Smiths Aerospace) employed virtualization to develop simulated models for its processing modules. GE modeled the final target system to provide significant benefits, when compared with a traditional development environment, that included reduced development and test costs, integration costs, acquisition and maintenance costs and cost of change. The deterministic capability of VSD also allowed GE’s developers to recreate performance issues at their leisure for in-depth inspection and diagnosis.

    Wind River, the leader in DSO, has used VSD for some time to improve their OS development process (as in VxWorks SMP), consistently and publicly identifying VSD as a primary element in their development strategy.

    Recently, Monta Vista Software, a provider of Linux for intelligent devices, took VSD a step further and made virtualization a key part of its software sales and evaluation process. Monta Vista allows its potential customers to evaluate Linux product offerings over the Web by using an evaluation service called TestDrive to connect users to a virtual board farm built and run on a virtualized software development platform. This is an excellent example of the way that VSD encourages new ways of thinking and doing business.

    By: Michel Genard (mgenard@virtutech.com) is vice president of marketing at Virtutech Inc. (San Jose, Calif.). He is an industry veteran with more than 20 years of experience in the software and hardware embedded market.

    Read Full Article

    For More info please visit us at: Website design company & BPO India

    Share on Facebook

             

    View blog reactions
    Latest Posts
  • MSI Application Packaging
  • Block websites on your computer
  • Quality landing pages to get more sales
  • Part 2 Basics of PPC Advertising.
  • Better Software Foundations
  • Office Communication Server 2007- a valuable help in a technical world
  • 10 Ways to Monetize Your Blog
  • Generate RSS Feed: How to Generate an RSS Feed for Your Web Business
  • Scope of SEO in India
  • Cartoon Logo Design- An Affordable Medium to Express
  • Leave a Reply

    You must be logged in to post a comment.



    View My Stats
    xanax
    buy xanax without prescription in usa
    buy xanax valium online florida
    cheap generic xanax
    xanax online without prescription
    buy xanax online
    generic xanax
    xanax online overnight shipping
    where can i buy xanax online without prescription
    buy xanax
    cheap xanax
    cheap xanax online
    cheap xanax site%3
    xanax bars
    xanax side effects
    buy xanax cheap medication inurl:chape
    side effects of xanax
    2mg yellow xanax
    cheap xanax overnight delivery
    xanax dosage
    buy xanax cheap
    xanax overdose
    free xanax
    buy xanax cheap medic
    order xanax online
    online xanax sales
    xanax without prescription
    xanax withdrawal how long
    cod pharmacies xanax
    xanax side effects withdrawal
    xanax without a prescription
    what is xanax used for
    xanax effect
    xanax overnighted
    xanax without prescription in the us
    xanax addiction
    xanax online
    buy xanax without a prescription or membership
    2mg xanax order
    xanax no prescription
    buy xanax cheap medication inurl
    order xanax
    order xanax online from mexico
    side effects of drug xanax
    order xanax br
    buy xanax online without a prescription
    xanax withdrawal
    xanax withdrawal symptoms
    what does xanax treat
    xanax mexico
    xanax 5mg
    xanax cod
    xanax abuse
    xanax with next day delivery
    no rx xanax
    xanax price
    buy xanax c
    xanax without prescription cheap
    order xanax no prescription
    what color is generic xanax
    xanax without prescription from mexico
    what does xanax look like
    duration of xanax withdrawal
    free xanax meds online
    buy xanax cheap medication inur
    how can i obtain xanax without a prescription
    xanax no prescription needed
    xanax dosage forms
    xanax valium
    xanax long term withdrawal
    facts about xanax
    generic xanax without a prescription
    xanax xr
    what do xanax look like
    xanax detox
    xanax without rx
    buy cheap levitra xanax xenical
    how does xanax work
    opiate withdraw xanax
    free xanax online
    how long does xanax stay in your system
    where to order xanax
    xanax bars come in yellow
    xanax consultation us doctor
    my beloved xanax
    no prescription xanax
    xanax available without a prescription
    yellow xanax bars
    cheap xanax without a prescription
    how long does xanax withdrawal last
    how to get off xanax
    xanax and alcohol
    xanax us pharmacy consultation
    buy xanax no prescription
    lexapro and xanax
    purchase xanax without prescription
    what is xanax
    when to take xanax
    xanax bar
    xanax medication
    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
    ultram tramadol hcl
    conversion of tramadol to ultram er
    does ultram cause weight loss
    ultram 50mg
    discount ultram
    baclofen ultram
    medication ultram faq
    cheap ultram online today discount
    ultram and prozac interaction
    prozac and ultram interaction
    fast reliable ultram online medication pharmacies
    low price ultram
    order qoclick ultram
    ultram online order
    ultram medication
    drug online store ultram
    top notch rx online perscription ultram
    ultram chat
    ultram and mobic
    paxil with ultram
    fibromyalgia ultram ultracet
    order ultram
    what is ultram product
    medicine2c ultram
    ultram is prescribed for
    ultram ultram a span td tr
    ultram non narcotic
    ultram and schedule
    ultram supplier
    ultram 2btramadol
    from ultram withdrawal
    ultram litigation
    medication order ultram
    order ultram pill
    ultram seratonin
    ultram er 100mg
    canine ultram
    ultram migraine
    ultram mortgage
    ultram viagra vioxx xenical
    percocet ultram
    buy ultram online
    tramadol and ultram
    generic tramadol or ultram
    what is ultram medication
    ultram for headache
    ultram a
    order ultram online
    clonazepam taking ultram
    ultram and drug tests
    prescription tylenol ultram without
    ultram in drug test
    ultram 200 mg
    ultram detox
    drug store ultram
    buy cheap ultram
    zanaflex stronger than ultram
    ultram urine drug screen
    ultram cheapest
    prescription ultram
    ultram ultracet saturday overnight shipping
    ultram drug
    medication information ultram
    how to abuse ultram
    buy ultram now
    mobic and ultram
    drugsmtpru ultram
    heroin ultram withdrawal
    prescription drug ultram effects of
    ultram buy online
    discount ultram order online
    ultram recreational use
    dependance on ultram
    ultram street value of pills
    ultram 100
    detox from ultram
    abuse ultram
    equigesic and ultram
    generic name of ultram
    ultram in dogs
    ultram re
    cheap ultram onlinehtml
    ultram in urine test
    ultram test
    high on ultram
    addiction story ultram
    is ultram any good
    can ultram do heart damage
    ultram adverse effects
    ultram and tramadol
    ultram on line
    ultram active ingredient
    will ultram show as a false postive for darvocet
    order cheap ultram
    ultram weight loss
    ultram for arthritis
    cheapest ultram overnight
    withdrawal from ultram
    snort ultram
    ultram withdrawal addiction
    ultram order cheap
    ultram addiction stories
    high from ultram er
    drug test ultram
    constipation ultram
    flexeril ultram
    ultram 50mg information
    ultram 50mg images
    ultram overnight
    addiction to ultram
    getting high on ultram
    board direc dynu net href ultram
    ultram in your urine
    ultram definition
    ultram b ultram
    cheap ultram online
    ultram er doseuge
    ultram valve causes reflux
    buying ultram
    ultram dependency
    ultram pain reliever
    ultram sold on internet
    ultram side effects profile
    is ultram an opiate
    ultram zoloft
    alcohol ultram
    purchase ultram online
    ultram order
    gernetic for ultram
    package insert ultram
    ultram onsubmit
    white pill ultram image
    ultram saturday delivery
    best online pharmacy ultram
    information on the drug ultram
    canadian pharmacy ultram
    pain medication ultram
    fibro relief with ultram
    ultram and percoset
    dog ultram
    ultram mechanism of action
    commview ultram
    addiction ultram
    ultram contradictions
    take ultram
    ultram 3eultram
    ultram withdrawl symptom
    keywords survey 042 ultram
    ultram used for
    pharmaceutical ultram
    ultram mexico
    survey 0 42 ultram
    ultram withdrawals
    ultram stomach ache
    ultram overdose
    claritin ultram
    ultram vs hydrocodone
    is ultram addictive
    experience ultram
    ultram and prozac
    equagesic and ultram
    canada online order pharmacy ultram
    snorting ultram
    ultram high2bandnot2bbuy
    ultram 100mg
    ultram sniffing tramadol
    serotonin syndrome ultram
    ultram lalegra laminate flooring 61855pde
    ultram alelgra flooring laminate 61855pde
    ultram 100 mg
    ultram ultram a span td tr tr valign
    can ultram mke you high
    can get high ultram
    ultram drug abuse
    ultram canada
    survey2c 24042 ultram
    codeine in ultram
    ultram testing
    action class ultram
    ultram narcotic
    purchase ultram
    buy ultram pay by cod
    ultram pain medication
    can i buy ultram online
    buy soma order tramadol order soma ultram
    prescription medications ultram check
    where to buy ultram
    buy ultram 120 tablets
    buy ultram on line
    ultram er 200mg
    ultram mg
    coumadin ultram interactions
    coumadin and ultram
    buy ultram online now
    online ultram
    what is the pain pill ultram
    ultram online doctor prescription
    drug schedule and ultram
    buy ultram online without prescription
    discount tramadol generic ultram
    ultram tramadol effects on your body
    ultram er 300mg
    will ultram make you high
    which is better vicodin ultram
    buy ultram without prescription
    best pharmacy ultram
    ultram order prescription
    drug schedule ultram
    drug testing ultram
    ultram safety in pregnancy
    tramadol ultram 50mg
    drug strong ultram
    ultram home treatment
    ultram pregnacy
    prescription services for ultram
    prescription ultram without
    buy ultram prescription
    ultram without a prescription
    cheap ultram prescriptions
    cheap ultram prescription
    ultram no prescription arkansas delivery
    ultram and drug testing
    ultram without prescription
    is ultram addicting
    without prescription ultram
    claritin d ultram
    ultram buy
    ultram tramadol
    killer pain ultram
    ultram drugs
    norvasc ultram
    medecation ultram
    ultram for teenren
    cheap ultram
    does ultram show on drug screens
    can ultram show up on drug screens
    ultram home gym phentermine
    generic ultram
    what is the drug ultram
    ultram the drug
    ultram addiction
    ultram and asririn
    ultram er tramadol hydrochloride
    ultram no prescription next day delivery
    online drugstore ultram
    ultram 50 mg
    ultram pharmacy line
    buy cheap prescription ultram
    ordering ultram
    ultram home gym phentermine online
    dangers of parkinsons patients taking ultram
    ultram tab
    ultram and tramadol hcl
    cheap ultram online buy
    drug reference ultram
    can long term use of ultram do heart damage
    ultram online sales
    does ultram make you feel high
    ultram tramadol hci
    ultram arthritis medication
    ultram tramadol hydrochloride
    ultram side affect
    ultram next day delivery
    getting high off of ultram
    ultram and euphoria
    manafucture ultram
    prescription drug ultram
    buy ultram generic
    cheap pharmacy refill tramadol ultram
    hydrocodone vs ultram
    can i take percocet with ultram
    paxil ultram
    ultram
    discount ultram generic
    ultram headaches
    ultram generic
    ultram paypal
    income opportunity ultram
    ultram 200mg
    ultram and addiction
    test ultram urine
    ultram metabolites
    developing rash after long term ultram use
    ultram antidepressant
    ultram 100mg online
    link ultram rx4
    ultram danger
    ultram dosing
    ingredients for ultram
    tramadol ultram usarx
    mexico online buy ultram
    ultram urine test
    ultram warnings precautions pregnancy nursing abuse tramadol
    link ultram rx4 org
    ultracet and ultram
    ultram 400
    ultram 50 mg tablets
    ultram pain relieve
    express ultram
    manufacturer ultram
    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