Your SlideShare is downloading. ×
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Why I Love TorqueBox (And Why You Will Too)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Why I Love TorqueBox (And Why You Will Too)

10,070

Published on

My TorqueBox presentation from JRubyConf 2011

My TorqueBox presentation from JRubyConf 2011

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
10,070
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
29
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. Why I Love T (And Why You Will Too) Ben BrowningCreative Commons BY-SA 3.0 JRubyConf 2011
    • 2. Ben Browning•TorqueBox Core Contributor•Red Hat Senior Engineer•Writes Java So You Don’t Have To•@bbrowning
    • 3. TorqueBox Team
    • 4. What Is TorqueBox?
    • 5. What Is TorqueBox? +
    • 6. TorqueBox Application ServerSinatra Rails Rack Tasks Procs Jobs Daemons Web Messaging Scheduling Services JBoss AS Clustering Load Balancing HA
    • 7. TorqueBox AS•applications & Rack Rails, Sinatra,
    • 8. TorqueBox AS•applications & Rack Rails, Sinatra,•More than just web •Messaging •Jobs •Services •Caching
    • 9. TorqueBox ASNo XML and no Java
    • 10. TorqueBox ASNo XML and no Java (unless youwant to)
    • 11. TorqueBox Versions•JBoss AS6 Releases based on 1.x Stable•on JBoss AS7 Releases based 2.x Incremental•We’ll concentrate on 2.x
    • 12. Installation & Usagegem install torquebox-server*torquebox deploy ~/my_ruby_apptorquebox run*http://bit.ly/tb_gem
    • 13. Develop As UsualEdit your application code,refresh your browser, and seeyour changes reflected.
    • 14. The UnusualWhat Makes TorqueBox Different?
    • 15. Backgroundable
    • 16. Regular Classclass Something def foo end def bar endend
    • 17. Blocking Invocationssomething = Something.newsomething.foosomething.bar
    • 18. Backgroundableclass Something include TorqueBox::Messaging::Backgroundable def foo end def bar endend
    • 19. Non-Blocking Invocationssomething = Something.newsomething.background.foosomething.background.bar
    • 20. See The Futuresomething = Something.newfuture = something.background.foo
    • 21. See The Futurefuture.started?future.complete?future.error?future.result
    • 22. See The Futureclass Something def foo ... count += 1 future.status = count ... endend
    • 23. See The Future# on the client sidefuture.status_changed?future.status # => 42
    • 24. Messaging
    • 25. Message Processorsapp/models/print_handler.rbinclude TorqueBox::Messagingclass PrintHandler < MessageProcessor  def on_message(body)    puts "Processing #{body} of #{message}"  endend
    • 26. Message Processorsconfig/torquebox.ymlmessaging: /queues/receipts: PrintHandler: concurrency: 5
    • 27. Scheduled Jobs
    • 28. Scheduled Jobsapp/jobs/newsletter_sender.rbclass NewsletterSender   def run()    subscriptions = Subscription.find(:all)    subscriptions.each do |e|      send_newsletter(e)    end  end end
    • 29. Scheduled Jobsconfig/torquebox.ymljobs: monthly_newsletter: description: first of month job: NewsletterSender cron: ‘0 0 0 1 * ?’
    • 30. Services
    • 31. Servicesapp/services/time_machine.rbclass TimeMachine def initialize(opts) @queue = Queue.new(opts[queue]) end def start Thread.new { run } end def stop @done = true endend
    • 32. Servicesapp/services/time_machine.rbclass TimeMachine def run until @done @queue.publish(Time.now) sleep(1) end endend
    • 33. Servicesconfig/torquebox.ymlservices: TimeMachine: queue: /queue/morris_day
    • 34. Caching
    • 35. Rails Caching config/application.rbmodule MyApp class Application < Rails::Application ... config.cache_store = :torque_box_store endend
    • 36. Explicit Cachinginclude ActiveSupport::CachemyCache = TorqueBoxStore.new(:name => MyCache, :mode => :replicated, :sync => true)
    • 37. Why I Love TorqueBox
    • 38. Batteries Included
    • 39. Clusteringtorquebox run --clustered
    • 40. Better Java Integration•side Java and Ruby side-by- Deploy•Java and Ruby applications Shared web sessions between•CDI, objectsJava components - Injection of bound to JNDI, etc•consume in Ruby and vice-versa Send JMS messages in Java to
    • 41. Why You’ll Love TorqueBox
    • 42. OpenThe entire TorqueBox communityis open, not just our code.Get involved and make adifference.
    • 43. Corporate BackingRed Hat pays a team of developers towork on TorqueBox full-time.Confidence that when the time comes,someone will be there to help with yourquestions.
    • 44. Resources•http://torquebox.org•https://github.com/torquebox•#torquebox on FreeNode•@torquebox on Twitter
    • 45. Questions? Don’t Be ShyImage Attributions:Mailboxes - http://www.flickr.com/photos/joanet/5094833752/Now and Laters - http://www.flickr.com/photos/jcorduroy/3725077603/Hand Calendar - http://www.flickr.com/photos/joelanman/366190064/Cruise Ship Staff - http://www.flickr.com/photos/maethlin/2547037443/Self Storage - http://www.flickr.com/photos/64588532@N02/5882291769/

    ×