SlideShare ist ein Scribd-Unternehmen logo
1 von 14
JRubifying LinkedIn’s
     Front-end
            http://www.linkedin.com/in/baquera
                  http://sna-projects/sna
[“iterate rapidly”,
  “re-use code”,
  “jvm”,
  “hire ruby people”,
  “have fun”].each { |important_thing|
  important_thing.capitalize!
}
require ‘background’
front-end   back-end


homepage     service


 profile      service


 inbox       service
Existing full-featured
        ?   custom Java web
            application framework
JRuby
            using Spring MVC and
            a custom JSP compiler
            deployed to Tomcat
Tomcat < Servlet API




Request
                    - production webapps
                      deployed as wars
Tomcat < Servlet API
              Custom LinkedIn Filters + Servlet < Spring MVC


Request          -   security
                 -   authentication
                 -   tracking
                 -   service layer
Tomcat < Servlet API
              Custom LinkedIn Filters + Servlet < Spring MVC
                  SiteMesh
Request            - 3rd party open source library
                   - header, footer control
Tomcat < Servlet API
              Custom LinkedIn Filters + Servlet < Spring MVC
                  SiteMesh
Request              JRuby-Rack
                      - bridge between Servlet and Rack
                      - customized LinkedIn Rack servlet
                        for special case error handling
                      - control transferred via named
                        dispatcher
Tomcat < Servlet API
              Custom LinkedIn Filters + Servlet < Spring MVC
                  SiteMesh
Request              JRuby-Rack

                         Sinatra
                         - custom service DSL for
                           making asynchronous backend
                           calls (based on protobufs)
                         - custom Sinatra extensions that
                           wrap Java framework fxnality:
                         ---> url generation
                         ---> logging
                         ---> authentication
                         ---> resource formatting
Tomcat < Servlet API
              Custom LinkedIn Filters + Servlet < Spring MVC
                  SiteMesh
Request              JRuby-Rack

                         Sinatra
                             get ‘/hello’ do
                               erb :layout
                             end


                             <html>
                               <head>
                                  <title>Hi</title>
                                </head>
                                <body>
                                   Hello from JRuby!
                                </body>
                             </html>
Tomcat < Servlet API
               Custom LinkedIn Filters + Servlet < Spring MVC
                   SiteMesh
Request               JRuby-Rack

                          Sinatra
                              get ‘/hello’ do
                                erb :layout
                              end


                              <html>
                                <head>
                                   <title>Hi</title>
                                 </head>
                                 <body>
                                    Hello from JRuby!
                                 </body>
                              </html>
Response
require ‘demo’
The Java virtual machine knows nothing of the Java
programming language, only of a particular binary format,
the class file format. A class file contains Java virtual
machine instructions (or bytecodes) and a symbol table, as
well as other ancillary information.
                                -- JVM Specification

Weitere ähnliche Inhalte

Empfohlen

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Empfohlen (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

JRuby Meetup

  • 1. JRubifying LinkedIn’s Front-end http://www.linkedin.com/in/baquera http://sna-projects/sna
  • 2. [“iterate rapidly”, “re-use code”, “jvm”, “hire ruby people”, “have fun”].each { |important_thing| important_thing.capitalize! }
  • 4. front-end back-end homepage service profile service inbox service
  • 5. Existing full-featured ? custom Java web application framework JRuby using Spring MVC and a custom JSP compiler deployed to Tomcat
  • 6. Tomcat < Servlet API Request - production webapps deployed as wars
  • 7. Tomcat < Servlet API Custom LinkedIn Filters + Servlet < Spring MVC Request - security - authentication - tracking - service layer
  • 8. Tomcat < Servlet API Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh Request - 3rd party open source library - header, footer control
  • 9. Tomcat < Servlet API Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh Request JRuby-Rack - bridge between Servlet and Rack - customized LinkedIn Rack servlet for special case error handling - control transferred via named dispatcher
  • 10. Tomcat < Servlet API Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh Request JRuby-Rack Sinatra - custom service DSL for making asynchronous backend calls (based on protobufs) - custom Sinatra extensions that wrap Java framework fxnality: ---> url generation ---> logging ---> authentication ---> resource formatting
  • 11. Tomcat < Servlet API Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh Request JRuby-Rack Sinatra get ‘/hello’ do erb :layout end <html> <head> <title>Hi</title> </head> <body> Hello from JRuby! </body> </html>
  • 12. Tomcat < Servlet API Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh Request JRuby-Rack Sinatra get ‘/hello’ do erb :layout end <html> <head> <title>Hi</title> </head> <body> Hello from JRuby! </body> </html> Response
  • 14. The Java virtual machine knows nothing of the Java programming language, only of a particular binary format, the class file format. A class file contains Java virtual machine instructions (or bytecodes) and a symbol table, as well as other ancillary information. -- JVM Specification

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n