When Ruby Meets Java - The Power of Torquebox
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

When Ruby Meets Java - The Power of Torquebox

  • 7,959 views
Uploaded on

Slides from @arunagw and rockyj.in 's talk from Ruby Conf India 2012.

Slides from @arunagw and rockyj.in 's talk from Ruby Conf India 2012.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
7,959
On Slideshare
5,278
From Embeds
2,681
Number of Embeds
23

Actions

Shares
Downloads
13
Comments
0
Likes
3

Embeds 2,681

http://torquebox.org 1,351
http://rockyj.in 669
http://localhost 494
http://www.jboss.org 65
http://lanyrd.com 31
http://192.168.6.184 14
http://planet.jboss.org 14
http://www.onlydoo.com 7
http://staging.torquebox.org 7
http://www.ofelio.com 6
http://www.dazzlebrijj.com 5
http://us-w1.rockmelt.com 4
http://www.brijj.com 3
http://emiliamb.pbworks.com 2
http://oyeqin.blogspot.com 1
http://digg.com 1
http://rockyjin.ipage.com 1
http://lfvsfcp10100.dn.net 1
http://www.hanrss.com 1
http://planet-stg.jboss.org 1
http://webcache-exp-test.googleusercontent.com 1
http://blog.rockyj.in 1
http://rockyj.in. 1

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

Transcript

  • 1. When Ruby Meets Java T h e Powe r o f To r q u e b o xMonday 26 March 12
  • 2. About Us A r u n A g r aw a l - 2 8 0 + c o m m i t s i n R a i l s c o re - M o n g o i d c o re t e a m m e m b e r - C re a t o r o f o m n i a u t h - t w i t t e r - C o d i n g o n R a i l s s i n c e 2 0 0 7 - a g r aw a l a r u n . c o m / @ a r u n a g w R o c k y J a i s w a l - C o d i n g s i n c e 1 9 9 5 - K n o w b i t s o f J av a & R u b y - E n j oy u s i n g J R u b y - ro c k y j . i n / @ w h a t s u p ro c k yMonday 26 March 12
  • 3. ToDo - T h e E n t e r p r i s e - W h a t i s To r q u e b o x - D e m o - S c h e d u l i n g - S e r v i c e s - M e s s a g i n g - B a c k g ro u n d a b l e - C l u s t e r i n g & C a c h i n g - Pe r f o r m a n c e & S u m m a r y - S u r p r i s e ! !Monday 26 March 12
  • 4. Pop Quiz Coolest Thing About JRuby(1.6) ?Monday 26 March 12
  • 5. The EnterpriseMonday 26 March 12
  • 6. What If... Wouldn’t it be great if - I could use the power of Java libraries with the ease of Ruby - I could use the power of a proven Java Server without writing any XML - I could deploy my JRuby app and test it without rebuilding it and restarting the serverMonday 26 March 12
  • 7. TORQUEBOX Built upon JBoss 7 Built using JRuby (1.6.7) Supports Rack, Rails, Sinatra Everything in one boxMonday 26 March 12
  • 8. TORQUEBOXMonday 26 March 12
  • 9. Installation - Download the distribution from torquebox.org OR - rvm jruby (1.6.7) jruby -J-Xmx1024m -S gem install torquebox-server --preMonday 26 March 12
  • 10. Our Sh***y AppMonday 26 March 12
  • 11. Scheduling Uses the battle-tested Quartz Java library Zero XML Minimal configuration No manual thread / process management No messing with cronMonday 26 March 12
  • 12. Scheduling config/torquebox.yml jobs: mail_notifier: job: MailNotifier cron: */5 * * * * ? description: Deliver reminder email class MailNotifier def run send_reminder_notification end def send_reminder_notification puts "Sending mail ..." #UserMailer.reminder_email(User.find(1)).deliver end endMonday 26 March 12
  • 13. Services Long running services with 3 line configuration Full access to the Rails environment JVM threads!Monday 26 March 12
  • 14. Services config/torquebox.yml services: MessageNotifier: config: name: hello class MessageNotifier def initialize(opts={}) @name = opts[name] end def start Thread.new { run } end def stop @done = true end def run until @done do_something #todo sleep(5) end end endMonday 26 March 12
  • 15. Messaging JMS supported out-of-the-box (HornetQ) Advanced Messaging Queuing Protocol (AMQP) - RabbitMQ Supports STOMP out of the boxMonday 26 March 12
  • 16. AMQPMonday 26 March 12
  • 17. Messaging In a long running service - ... def do_something puts "Checking the queue for messages ..." bunny = Bunny.new(:logging => false) # start a communication session with the amqp server bunny.start # declare a queue q = bunny.queue(@name) # get message from the queue msg = q.pop[:payload] puts "This is the message: " + msg.to_s # close the connection bunny.stop endMonday 26 March 12
  • 18. Backgroundable As easy as A, B, C ... class User < ActiveRecord::Base include TorqueBox::Messaging::Backgroundable always_background :send_signup_notification validates_confirmation_of : ... def send_signup_notification(user) UserMailer.welcome_email(user).deliver end endMonday 26 March 12
  • 19. Clustering torquebox run --clustered Does everything Servers in a LAN are automatically clustered Top it up with mod_cluster from JBossMonday 26 March 12
  • 20. Caching TorqueBox provides an implementation of the Rails 3.x ActiveSupport::Cache::Store that exposes your application to the Infinispan data grid. Uses Infinispan by default Can utilize the cluster with minimal config Share the cache across the cluster - FTW!Monday 26 March 12
  • 21. PerformanceMonday 26 March 12
  • 22. PerformanceMonday 26 March 12
  • 23. Risks - Version 2 is quite stable but still at RC1 - Upgrading JRuby will not help sometimes - You will be on a cutting edge open-source technology but documentation is great, help is available online and on IRCMonday 26 March 12
  • 24. Surprise!!!Monday 26 March 12
  • 25. Questions?Monday 26 March 12
  • 26. Thank YouMonday 26 March 12