SlideShare a Scribd company logo
1 of 29
Blue Ruby
A Ruby VM for the ABAP Web Application Server




Anne Hardy
Juergen Schmerder
Murray Spork
Daniel Vocke

SDN Mentors Webinar, 04-07-2009
Agenda




  1.     Blue Ruby – Who, What and Why
  2.     Use Cases for Blue Ruby
  3.     Technical Overview of Blue Ruby
  4.     Demo
  5.     Status and Next Steps
  6.     Discussion / Q&A




© SAP 2008 / Page 2
Blue Ruby – Who?



  SAP Research Americas and China

   Platform Research
                   Anne Hardy


    Blue Ruby
            Juergen Schmerder         Murray Spork
                  (project lead)

                  Daniel Vocke        Joseph Wang


                                    Florian Reinhart
                          Su Yu
                                           (student)

                                    Kevin Schlieper
                                          (student)
Blue Ruby – What?
  Combine the best of both worlds

  ABAP Application Server                              Ruby

      Known for robustness and work process              Pure object-oriented dynamic general-
      isolation                                          purpose language
      Highly scalable                                    Perfectly suited for rapid prototyping
      Sophisticated software logistics and               Rich and thriving community, especially
      software lifecycle management                      among web developers
      Unrivaled breadth and depth of existing            Supports implementation of internal DSLs
      Enterprise Applications




                       Evolutionary, non-disruptive extension of the ABAP VM
                       Runs inside the ABAP VM, does not require additional server
                       Sandbox approach allows consumer-specific adaptation inside
                       the platform, without breaking platform consistency

                                            Experimental!

                         Enterprise-ready Dynamic Language Environment
                      Making the simple things simple and the complex things possible
© SAP 2008 / Page 4
Blue Ruby – Why?


  Why a dynamic language?                               Why inside the ABAP VM?

      Agile development                                  Locality
                      Rapid prototyping                       Having code where the data is
                      Fast iterations                         Local in-process communication
                      Constant refactoring                    Unload I/O

      Ideal for glue code and DSLs                       Landscape simplification
                      Duck-typing makes it easy to            No separate server necessary
                      adapt to underlying application         Central IT administration
                      Eval(), closures, …
                                                         Leverage
      It’s a trend in the industry…                           ABAP authorizations
                      Microsoft                               ABAP transports
                      Sun                                     …



© SAP 2008 / Page 5
Agenda




  1.     Blue Ruby – Who, What and Why
  2.     Use Cases for Blue Ruby
  3.     Technical Overview of Blue Ruby
  4.     Demo
  5.     Status and Next Steps
  6.     Discussion / Q&A




© SAP 2008 / Page 6
Programming Models Evolve
Faster Than Platforms

Timeless Software (Vishal Sikka)[1]
      Best of both worlds: the flexibility of “glue code” alongside the “enterprise”
      qualities of the ABAP stack
      “The glue that binds”

There is no “one-size-fits-all” approach
      Choose the right tool (language) for the job at hand
      …scripting and dynamic languages are good for some things
      …but coding core business logic in ABAP is not going away

Multi-language stacks
      Flexibility in language choice whilst maintaining coherence
      Industry trend: .NET now followed by Java



            [1] Timeless Software: Part 2, Vishal Sikka https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/11837
A New Programming Model for Light-Weight
Application Extension Scenarios

 Light-weight extensions: e.g. situational and departmental applications

 Speed of development and flexibility are valued more than:
      performance of runtime
      lifecycle management
                                          “Whether Ruby on Rails becomes prevalent
      governance                           inside the enterprise or not - in the future
                                              building Web applications inside the
                                             enterprise will look a lot like it (RoR)”
 Is it possible to “teach” the ABAP
                                                    -- paraphrasing Tim Bray
 stack some of the tricks from
 Ruby on Rails? For e.g.:
      Convention over configuration
      Simple things are simple - complex things are possible
      Opinionated development
      Do Not Repeat Yourself (DRY)
      Test (or Behavior) Driven Development (TDD/ BDD)
      Extendible Domain Specific Languages
Lazy developers want an embedded
scripting environment

Runtime benefits:
     Locality: extension logic runs in the backend where the data and business
     logic live
     Make use of existing extension points for call-backs (i.e. ABAP calling script
     code - e.g. BADIs)

Developer experience:
     Simplify landscape: avoid maintaining separate infrastructure/ app servers
     (e.g. Rails instances)
     Don’t want to deal with low level issues such as connectivity, remoting
     protocols
     No need to worry about security, scalability, deployment etc.
     Just get a developer account: log in, write code, test/execute
Why Ruby?


Could have chosen any scripting language - but:
      Ruby is fun
      Ruby is cool
      Support for DSLs
      Implementation reasons (principle of least surprise)
      Enterprise Ruby developers are on the increase


                                                             In future could abstract
                                                             this into a “Dynamic
                                                             Language Runtime” (ala
                                                             the CLR in .NET) that
                                                             could support any
                                                             dynamic language
Potential Use Cases


Scenarios we have already experimented with:
    Composing and adapting RFCs, BAPIs, Enterprise Services
                                                              Today’s demo
    Exposing such composition via HTTP as RESTful services
    Exposing POWL (worklist data) as an RSS/ATOM feed
    Scripting Extentions to UI (e.g. floor plan manager)
    Custom BAdI extensions
    Batch-job scripting (e.g. Twitter alerts)

Other scenarios we will be exploring:
    Bi-directional synching of business data via ATOM Pub
    Test scripts for Business Objects/ Enterprise Services
    Exploratory throw away prototyping


                    Have we missed any important use cases?
Vision: A Different Type of Developer
(to what SAP usually caters for)

 Can Blue Ruby open up the ABAP stack to non-ABAP Developers?

 In this context it is important to understand how the sandboxing concept
 allows us to restrict what a Blue Ruby developer can do (but we will come
 back to that)

 A new persona
     Line-of-business developers
     Casual (non-professional) developers
     Close to “the business” - have significant domain expertise
     Programming may not be their full-time job - but they are comfortable doing
     simple scripting (macros in Excel, Visual Basic in Office apps)
Platform-as-a-Service on the inside


                   INSIDE THE ENTERPRISE                      OUTSIDE THE ENTERPRISE




                                                                                                     PROVIDERS
                                                                                                     IT SERVICE
             IT Dept.



                                                  Both IT Dept. and
                                                 Coghead are service
                                                  providers to LOB




                                                                                                             PLATFORM
                                      Internal
               Order
                         ...
               Mgmt.
                                       PaaS
           SAP Business Suite




 Internal PaaS allows LOB to create their                       External PaaS allows LOB to
    own services and data-feeds from the                      create highly collaborative web-apps
                  backend
                                                                                                     Customers/
                                                 Line-of-Business
                                                                                                       Partners
© SAP 2007, , CSG/13
Agenda




  1.     Blue Ruby – Who, What and Why
  2.     Use Cases for Blue Ruby
  3.     Technical Overview of Blue Ruby
  4.     Demo
  5.     Status and Next Steps
  6.     Discussion / Q&A




© SAP 2008 / Page 14
Blue Ruby Architecture




© SAP 2008 / Page 15
From Ruby to ABAP




© SAP 2008 / Page 16
Blue Ruby Virtual Machine




© SAP 2008 / Page 17
Blue Ruby
  Building Blocks

   Blue Ruby Compiler
  Towards a self-hosting Ruby environment

   Blue Ruby Runtime
  Extends the ABAP VM to support Ruby

   Blue Sec
  Policy-driven security ensures platform integrity

   Blue Bug
  A Ruby developer needs a Ruby debugger

    Blue Ruby IDE
   SAPGui or DHTML (or your own)
                                                                 BRIL
   Secure Bridges
                                                      Blue Ruby Intermediate
  Sandboxed access to ABAP Applications
                                                      Language – a representation of
   Blue FS                                            a dynamic program the ABAP
                                                      VM understands
  A database-backed virtual file system with
  RESTful and WebDAV access
© SAP 2008 / Page 18
Agenda




  1.     Blue Ruby – Who, What and Why
  2.     Use Cases for Blue Ruby
  3.     Technical Overview of Blue Ruby
  4.     Demo
  5.     Status and Next Steps
  6.     Discussion / Q&A




© SAP 2008 / Page 19
Agenda




  1.     Blue Ruby – Who, What and Why
  2.     Use Cases for Blue Ruby
  3.     Technical Overview of Blue Ruby
  4.     Demo
  5.     Status and Next Steps
  6.     Discussion / Q&A




© SAP 2008 / Page 20
Implementation Status – the good news


  Completeness                                         Performance
                              Language

                         82
                        11%


                                647          Success
                                89%          Fail




                               Core lib

                       1381
                       32%

                                             Success
                                      2873
                                             Fail
                                      68%




© SAP 2008 / Page 21
Implementation Status – the bad news


  Completeness                                      Performance
                                                                  Fibonacci (20)
                            Stdlib
                                                    Time (ms)
                                                                                   1870
                       0%
                                                      2000

                                                      1500

                                       Success        1000
                                       Not tested
                       100%                            500
                                                                 15      10
                                                         0
                                                                MRI    ABAP   Blue Ruby



                                                                 Count to 100000
  Rails?                             not yet
                                                                                   3000
                                                    Time (ms)

  C-libs?                            No!
                                                      3000
                                                      2500
                                                      2000

  <your favorite>                    not yet          1500

                                     (probably)
                                                      1000
                                                                 16      11
                                                       500
                                                         0
                                                                MRI    ABAP   Blue Ruby


© SAP 2008 / Page 22
Existing Blue Ruby demo applications


       Rails Application                  Atom/RSS Reader




       Coghead Application   Blackberry         Twitter




© SAP 2008 / Page 23
Next steps – SDN Collaboration


         Trial system available outside SAP firewall
              Terms: NDA / trial agreement required for non D/I/C-Users
              If interested – talk to us: anne.hardy@sap.com, juergen.schmerder@sap.com

         Series of Weblogs planned on SDN
              Code examples on how to use Blue Ruby
              From simple snippets to full-blown application

         Feedback highly appreciated
              Would a scripting environment for ABAP be useful?
              How would you use Blue Ruby?
              What is missing?

         Deeper involvement (get copy of source code) might be possible
              If interested – talk to us: anne.hardy@sap.com, juergen.schmerder@sap.com




© SAP 2008 / Page 24
Agenda




  1.     Blue Ruby – Who, What and Why
  2.     Use Cases for Blue Ruby
  3.     Technical Overview of Blue Ruby
  4.     Demo
  5.     Status and Next Steps
  6.     Discussion / Q&A




© SAP 2008 / Page 25
Thank you!




© SAP 2008 / Page 26
Grid




© SAP 2008 / Page 27
Definition and halftone values of colors


         SAP Blue         SAP Gold        SAP Light Gray           SAP Gray          SAP Dark Gray
                                                                                                      Primary color palette
      RGB 4/53/123      RGB 240/171/0    RGB 204/204/204      RGB 153/153/153       RGB 102/102/102   100%




            Dove            Petrol         Warm Green             Warm Red           Violet/Mauve
                                                                                                      Secondary color palette
     RGB 68/105/125    RGB 21/101/112     RGB 85/118/48          RGB 119/74/57       RGB 100/68/89
                                                                                                      100%

     RGB 96/127/143    RGB 98/146/147    RGB 110/138/79        RGB 140/101/87       RGB 123/96/114    85%

    RGB 125/150/164    RGB 127/166/167   RGB 136/160/111      RGB 161/129/118       RGB 147/125/139   70%

    RGB 152/173/183    RGB 154/185/185   RGB 162/180/141      RGB 181/156/147       RGB 170/152/164   55%

    RGB 180/195/203    RGB 181/204/204   RGB 187/200/172      RGB 201/183/176       RGB 193/180/189   40%




        Cool Green         Ocher            Cool Red                                  Warning Red
                                                           Tertiary color palette    RGB 158/48/57
      RGB 73/108/96    RGB 129/110/44     RGB 132/76/84
                                                           100%

    RGB 101/129/120    RGB 148/132/75    RGB 150/103/110   85%

    RGB 129/152/144    RGB 167/154/108   RGB 169/130/136   70%

    RGB 156/174/168    RGB 186/176/139   RGB 188/157/162   55%

    RGB 183/196/191    RGB 205/197/171   RGB 206/183/187   40%




© SAP 2008 / Page 28
      2007
Copyright 2008 SAP AG
  All rights reserved

  No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed
  without prior notice.
  Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.
  SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, SAP Business ByDesign, ByDesign, PartnerEdge and other SAP products and services mentioned herein as well as their respective logos are
  trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned and associated logos displayed
  are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.
  The information in this document is proprietary to SAP. This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document
  contains only intended strategies, developments, and functionalities of the SAP® product and is not intended to be binding upon SAP to any particular course of business, product strategy,
  and/or development. SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics, links, or
  other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of
  merchantability, fitness for a particular purpose, or non-infringement.
  SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This limitation
  shall not apply in cases of intent or gross negligence.
  The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of hot links contained in these
  materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages



  Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch
  SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden.
  Einige von der SAP AG und deren Vertriebspartnern vertriebene Softwareprodukte können Softwarekomponenten umfassen, die Eigentum anderer Softwarehersteller sind.
  SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, SAP Business ByDesign, ByDesign, PartnerEdge und andere in diesem Dokument erwähnte SAP-Produkte und Services sowie die
  dazugehörigen Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland und in mehreren anderen Ländern weltweit. Alle anderen in diesem Dokument erwähnten Namen
  von Produkten und Services sowie die damit verbundenen Firmenlogos sind Marken der jeweiligen Unternehmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu
  Informationszwecken. Produkte können länderspezifische Unterschiede aufweisen.
  Die in diesem Dokument enthaltenen Informationen sind Eigentum von SAP. Dieses Dokument ist eine Vorabversion und unterliegt nicht Ihrer Lizenzvereinbarung oder einer anderen
  Vereinbarung mit SAP. Dieses Dokument enthält nur vorgesehene Strategien, Entwicklungen und Funktionen des SAP®-Produkts und ist für SAP nicht bindend, einen bestimmten
  Geschäftsweg, eine Produktstrategie bzw. -entwicklung einzuschlagen. SAP übernimmt keine Verantwortung für Fehler oder Auslassungen in diesen Materialien. SAP garantiert nicht die
  Richtigkeit oder Vollständigkeit der Informationen, Texte, Grafiken, Links oder anderer in diesen Materialien enthaltenen Elemente. Diese Publikation wird ohne jegliche Gewähr, weder
  ausdrücklich noch stillschweigend, bereitgestellt. Dies gilt u. a., aber nicht ausschließlich, hinsichtlich der Gewährleistung der Marktgängigkeit und der Eignung für einen bestimmten Zweck
  sowie für die Gewährleistung der Nichtverletzung geltenden Rechts.
  SAP übernimmt keine Haftung für Schäden jeglicher Art, einschließlich und ohne Einschränkung für direkte, spezielle, indirekte oder Folgeschäden im Zusammenhang mit der Verwendung
  dieser Unterlagen. Diese Einschränkung gilt nicht bei Vorsatz oder grober Fahrlässigkeit.
  Die gesetzliche Haftung bei Personenschäden oder die Produkthaftung bleibt unberührt. Die Informationen, auf die Sie möglicherweise über die in diesem Material enthaltenen Hotlinks
  zugreifen, unterliegen nicht dem Einfluss von SAP, und SAP unterstützt nicht die Nutzung von Internetseiten Dritter durch Sie und gibt keinerlei Gewährleistungen oder Zusagen über
  Internetseiten Dritter ab.
  Alle Rechte vorbehalten.

© SAP 2008 / Page 29

More Related Content

What's hot

Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Intland Software GmbH
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107Marcel Mitran
 
Delphi Prism Datasheet 2009
Delphi Prism Datasheet 2009Delphi Prism Datasheet 2009
Delphi Prism Datasheet 2009Michael Findling
 
Sivaprasanth Rentala_Kedar profile
Sivaprasanth Rentala_Kedar profileSivaprasanth Rentala_Kedar profile
Sivaprasanth Rentala_Kedar profilesivaprasanth rentala
 
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developersnick_garrod
 
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)dpc
 
DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)dpc
 
Mainframe Optimization with Modern Systems
Mainframe Optimization with Modern SystemsMainframe Optimization with Modern Systems
Mainframe Optimization with Modern SystemsModern Systems
 
Inside IBM Java 7
Inside IBM Java 7Inside IBM Java 7
Inside IBM Java 7Tim Ellison
 
Software im SAP Umfeld_IBM DB2
Software im SAP Umfeld_IBM DB2Software im SAP Umfeld_IBM DB2
Software im SAP Umfeld_IBM DB2IBM Switzerland
 
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps IBM UrbanCode Products
 
AD for i in modern world
AD for i in modern worldAD for i in modern world
AD for i in modern worldCOMMON Europe
 
RESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMRESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMoslc
 
DB2 z/OS &amp; Java - What\'s New?
DB2 z/OS &amp; Java - What\'s New?DB2 z/OS &amp; Java - What\'s New?
DB2 z/OS &amp; Java - What\'s New?Laura Hood
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Prolifics
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryJohan den Haan
 

What's hot (18)

Barcamp 12 mei 2011 - Pearl chain
Barcamp 12 mei 2011 - Pearl chainBarcamp 12 mei 2011 - Pearl chain
Barcamp 12 mei 2011 - Pearl chain
 
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
Verteilte SoftwareEntwicklung 2011 - von klassischen Modellen bis Scrum und S...
 
Project Zero JavaOne 2008
Project Zero JavaOne 2008Project Zero JavaOne 2008
Project Zero JavaOne 2008
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107
 
Delphi Prism Datasheet 2009
Delphi Prism Datasheet 2009Delphi Prism Datasheet 2009
Delphi Prism Datasheet 2009
 
Sivaprasanth Rentala_Kedar profile
Sivaprasanth Rentala_Kedar profileSivaprasanth Rentala_Kedar profile
Sivaprasanth Rentala_Kedar profile
 
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers3978   Why is Java so different... A Session for Cobol/PLI/Assembler Developers
3978 Why is Java so different... A Session for Cobol/PLI/Assembler Developers
 
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
DPC2007 CodeGear, Delphi For PHP (Pawel Glowacki)
 
DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)DPC2007 Zend Framework (Gaylord Aulke)
DPC2007 Zend Framework (Gaylord Aulke)
 
Mainframe Optimization with Modern Systems
Mainframe Optimization with Modern SystemsMainframe Optimization with Modern Systems
Mainframe Optimization with Modern Systems
 
Inside IBM Java 7
Inside IBM Java 7Inside IBM Java 7
Inside IBM Java 7
 
Software im SAP Umfeld_IBM DB2
Software im SAP Umfeld_IBM DB2Software im SAP Umfeld_IBM DB2
Software im SAP Umfeld_IBM DB2
 
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
Mobile to mainframe - The Challenges and Best Practices of Enterprise DevOps
 
AD for i in modern world
AD for i in modern worldAD for i in modern world
AD for i in modern world
 
RESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALMRESTful Work Items: Opening up Collaborative ALM
RESTful Work Items: Opening up Collaborative ALM
 
DB2 z/OS &amp; Java - What\'s New?
DB2 z/OS &amp; Java - What\'s New?DB2 z/OS &amp; Java - What\'s New?
DB2 z/OS &amp; Java - What\'s New?
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
 

Viewers also liked

Business Presentation - Accenture
Business Presentation - AccentureBusiness Presentation - Accenture
Business Presentation - Accenturenaina Som
 
2017 Top Issues - DOL Fiduciary Rule - January 2017
2017 Top Issues - DOL Fiduciary Rule - January 20172017 Top Issues - DOL Fiduciary Rule - January 2017
2017 Top Issues - DOL Fiduciary Rule - January 2017PwC
 
World Economic Forum: The power of analytics for better and faster decisions ...
World Economic Forum: The power of analytics for better and faster decisions ...World Economic Forum: The power of analytics for better and faster decisions ...
World Economic Forum: The power of analytics for better and faster decisions ...PwC
 
2017 Consumer Survey: Healthcare Cybersecurity and Digital Trust
2017 Consumer Survey: Healthcare Cybersecurity and Digital Trust2017 Consumer Survey: Healthcare Cybersecurity and Digital Trust
2017 Consumer Survey: Healthcare Cybersecurity and Digital Trustaccenture
 
Video is Changing the World
Video is Changing the WorldVideo is Changing the World
Video is Changing the Worldaccenture
 
2017 Top Issues - Financial Reporting Modernization - January 2017
2017 Top Issues - Financial Reporting Modernization - January 20172017 Top Issues - Financial Reporting Modernization - January 2017
2017 Top Issues - Financial Reporting Modernization - January 2017PwC
 
Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...
Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...
Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...accenture
 

Viewers also liked (7)

Business Presentation - Accenture
Business Presentation - AccentureBusiness Presentation - Accenture
Business Presentation - Accenture
 
2017 Top Issues - DOL Fiduciary Rule - January 2017
2017 Top Issues - DOL Fiduciary Rule - January 20172017 Top Issues - DOL Fiduciary Rule - January 2017
2017 Top Issues - DOL Fiduciary Rule - January 2017
 
World Economic Forum: The power of analytics for better and faster decisions ...
World Economic Forum: The power of analytics for better and faster decisions ...World Economic Forum: The power of analytics for better and faster decisions ...
World Economic Forum: The power of analytics for better and faster decisions ...
 
2017 Consumer Survey: Healthcare Cybersecurity and Digital Trust
2017 Consumer Survey: Healthcare Cybersecurity and Digital Trust2017 Consumer Survey: Healthcare Cybersecurity and Digital Trust
2017 Consumer Survey: Healthcare Cybersecurity and Digital Trust
 
Video is Changing the World
Video is Changing the WorldVideo is Changing the World
Video is Changing the World
 
2017 Top Issues - Financial Reporting Modernization - January 2017
2017 Top Issues - Financial Reporting Modernization - January 20172017 Top Issues - Financial Reporting Modernization - January 2017
2017 Top Issues - Financial Reporting Modernization - January 2017
 
Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...
Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...
Design in Business: It’s Not About Creating Something Pretty. It’s About Crea...
 

Similar to BlueRubySDNWebinar

AD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP SolutionsAD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP SolutionsChristian Holsing
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on RailsViridians
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOABob Rhubart
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
Global Logic sMash Overview And Experiences
Global Logic   sMash  Overview And  ExperiencesGlobal Logic   sMash  Overview And  Experiences
Global Logic sMash Overview And ExperiencesProject Zero
 
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)Codit
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructurerhirschfeld
 
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructuredevopsdaysaustin
 
New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011Tiempo Development
 
Comparing Ruby on Rails Public vs. Private Cloud Options
Comparing Ruby on Rails Public vs. Private Cloud OptionsComparing Ruby on Rails Public vs. Private Cloud Options
Comparing Ruby on Rails Public vs. Private Cloud OptionsAltoros
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi Shlomo Vanunu
 
Cloud adoption patterns
Cloud adoption patternsCloud adoption patterns
Cloud adoption patternsKyle Brown
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Anton Arhipov
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 Worldoslc
 

Similar to BlueRubySDNWebinar (20)

Abap objects
Abap objectsAbap objects
Abap objects
 
Abap objects
Abap objectsAbap objects
Abap objects
 
AD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP SolutionsAD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP Solutions
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
R3arch
R3archR3arch
R3arch
 
Ppt00000
Ppt00000Ppt00000
Ppt00000
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
Global Logic sMash Overview And Experiences
Global Logic   sMash  Overview And  ExperiencesGlobal Logic   sMash  Overview And  Experiences
Global Logic sMash Overview And Experiences
 
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)
 
OpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid InfrastructureOpenStack Preso: DevOps on Hybrid Infrastructure
OpenStack Preso: DevOps on Hybrid Infrastructure
 
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
2016 - Open Mic - IGNITE - Open Infrastructure = ANY Infrastructure
 
New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011New Ways To Engage With Tiempo 2011
New Ways To Engage With Tiempo 2011
 
Comparing Ruby on Rails Public vs. Private Cloud Options
Comparing Ruby on Rails Public vs. Private Cloud OptionsComparing Ruby on Rails Public vs. Private Cloud Options
Comparing Ruby on Rails Public vs. Private Cloud Options
 
Zend Products and PHP for IBMi
Zend Products and PHP for IBMi  Zend Products and PHP for IBMi
Zend Products and PHP for IBMi
 
Cloud adoption patterns
Cloud adoption patternsCloud adoption patterns
Cloud adoption patterns
 
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel Improve your Developer Experiece using the WAS Liberty Profile with JRebel
Improve your Developer Experiece using the WAS Liberty Profile with JRebel
 
ALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 WorldALM Integration in a Web 2.0 World
ALM Integration in a Web 2.0 World
 

Recently uploaded

Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

BlueRubySDNWebinar

  • 1. Blue Ruby A Ruby VM for the ABAP Web Application Server Anne Hardy Juergen Schmerder Murray Spork Daniel Vocke SDN Mentors Webinar, 04-07-2009
  • 2. Agenda 1. Blue Ruby – Who, What and Why 2. Use Cases for Blue Ruby 3. Technical Overview of Blue Ruby 4. Demo 5. Status and Next Steps 6. Discussion / Q&A © SAP 2008 / Page 2
  • 3. Blue Ruby – Who? SAP Research Americas and China Platform Research Anne Hardy Blue Ruby Juergen Schmerder Murray Spork (project lead) Daniel Vocke Joseph Wang Florian Reinhart Su Yu (student) Kevin Schlieper (student)
  • 4. Blue Ruby – What? Combine the best of both worlds ABAP Application Server Ruby Known for robustness and work process Pure object-oriented dynamic general- isolation purpose language Highly scalable Perfectly suited for rapid prototyping Sophisticated software logistics and Rich and thriving community, especially software lifecycle management among web developers Unrivaled breadth and depth of existing Supports implementation of internal DSLs Enterprise Applications Evolutionary, non-disruptive extension of the ABAP VM Runs inside the ABAP VM, does not require additional server Sandbox approach allows consumer-specific adaptation inside the platform, without breaking platform consistency Experimental! Enterprise-ready Dynamic Language Environment Making the simple things simple and the complex things possible © SAP 2008 / Page 4
  • 5. Blue Ruby – Why? Why a dynamic language? Why inside the ABAP VM? Agile development Locality Rapid prototyping Having code where the data is Fast iterations Local in-process communication Constant refactoring Unload I/O Ideal for glue code and DSLs Landscape simplification Duck-typing makes it easy to No separate server necessary adapt to underlying application Central IT administration Eval(), closures, … Leverage It’s a trend in the industry… ABAP authorizations Microsoft ABAP transports Sun … © SAP 2008 / Page 5
  • 6. Agenda 1. Blue Ruby – Who, What and Why 2. Use Cases for Blue Ruby 3. Technical Overview of Blue Ruby 4. Demo 5. Status and Next Steps 6. Discussion / Q&A © SAP 2008 / Page 6
  • 7. Programming Models Evolve Faster Than Platforms Timeless Software (Vishal Sikka)[1] Best of both worlds: the flexibility of “glue code” alongside the “enterprise” qualities of the ABAP stack “The glue that binds” There is no “one-size-fits-all” approach Choose the right tool (language) for the job at hand …scripting and dynamic languages are good for some things …but coding core business logic in ABAP is not going away Multi-language stacks Flexibility in language choice whilst maintaining coherence Industry trend: .NET now followed by Java [1] Timeless Software: Part 2, Vishal Sikka https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/11837
  • 8. A New Programming Model for Light-Weight Application Extension Scenarios Light-weight extensions: e.g. situational and departmental applications Speed of development and flexibility are valued more than: performance of runtime lifecycle management “Whether Ruby on Rails becomes prevalent governance inside the enterprise or not - in the future building Web applications inside the enterprise will look a lot like it (RoR)” Is it possible to “teach” the ABAP -- paraphrasing Tim Bray stack some of the tricks from Ruby on Rails? For e.g.: Convention over configuration Simple things are simple - complex things are possible Opinionated development Do Not Repeat Yourself (DRY) Test (or Behavior) Driven Development (TDD/ BDD) Extendible Domain Specific Languages
  • 9. Lazy developers want an embedded scripting environment Runtime benefits: Locality: extension logic runs in the backend where the data and business logic live Make use of existing extension points for call-backs (i.e. ABAP calling script code - e.g. BADIs) Developer experience: Simplify landscape: avoid maintaining separate infrastructure/ app servers (e.g. Rails instances) Don’t want to deal with low level issues such as connectivity, remoting protocols No need to worry about security, scalability, deployment etc. Just get a developer account: log in, write code, test/execute
  • 10. Why Ruby? Could have chosen any scripting language - but: Ruby is fun Ruby is cool Support for DSLs Implementation reasons (principle of least surprise) Enterprise Ruby developers are on the increase In future could abstract this into a “Dynamic Language Runtime” (ala the CLR in .NET) that could support any dynamic language
  • 11. Potential Use Cases Scenarios we have already experimented with: Composing and adapting RFCs, BAPIs, Enterprise Services Today’s demo Exposing such composition via HTTP as RESTful services Exposing POWL (worklist data) as an RSS/ATOM feed Scripting Extentions to UI (e.g. floor plan manager) Custom BAdI extensions Batch-job scripting (e.g. Twitter alerts) Other scenarios we will be exploring: Bi-directional synching of business data via ATOM Pub Test scripts for Business Objects/ Enterprise Services Exploratory throw away prototyping Have we missed any important use cases?
  • 12. Vision: A Different Type of Developer (to what SAP usually caters for) Can Blue Ruby open up the ABAP stack to non-ABAP Developers? In this context it is important to understand how the sandboxing concept allows us to restrict what a Blue Ruby developer can do (but we will come back to that) A new persona Line-of-business developers Casual (non-professional) developers Close to “the business” - have significant domain expertise Programming may not be their full-time job - but they are comfortable doing simple scripting (macros in Excel, Visual Basic in Office apps)
  • 13. Platform-as-a-Service on the inside INSIDE THE ENTERPRISE OUTSIDE THE ENTERPRISE PROVIDERS IT SERVICE IT Dept. Both IT Dept. and Coghead are service providers to LOB PLATFORM Internal Order ... Mgmt. PaaS SAP Business Suite Internal PaaS allows LOB to create their External PaaS allows LOB to own services and data-feeds from the create highly collaborative web-apps backend Customers/ Line-of-Business Partners © SAP 2007, , CSG/13
  • 14. Agenda 1. Blue Ruby – Who, What and Why 2. Use Cases for Blue Ruby 3. Technical Overview of Blue Ruby 4. Demo 5. Status and Next Steps 6. Discussion / Q&A © SAP 2008 / Page 14
  • 15. Blue Ruby Architecture © SAP 2008 / Page 15
  • 16. From Ruby to ABAP © SAP 2008 / Page 16
  • 17. Blue Ruby Virtual Machine © SAP 2008 / Page 17
  • 18. Blue Ruby Building Blocks Blue Ruby Compiler Towards a self-hosting Ruby environment Blue Ruby Runtime Extends the ABAP VM to support Ruby Blue Sec Policy-driven security ensures platform integrity Blue Bug A Ruby developer needs a Ruby debugger Blue Ruby IDE SAPGui or DHTML (or your own) BRIL Secure Bridges Blue Ruby Intermediate Sandboxed access to ABAP Applications Language – a representation of Blue FS a dynamic program the ABAP VM understands A database-backed virtual file system with RESTful and WebDAV access © SAP 2008 / Page 18
  • 19. Agenda 1. Blue Ruby – Who, What and Why 2. Use Cases for Blue Ruby 3. Technical Overview of Blue Ruby 4. Demo 5. Status and Next Steps 6. Discussion / Q&A © SAP 2008 / Page 19
  • 20. Agenda 1. Blue Ruby – Who, What and Why 2. Use Cases for Blue Ruby 3. Technical Overview of Blue Ruby 4. Demo 5. Status and Next Steps 6. Discussion / Q&A © SAP 2008 / Page 20
  • 21. Implementation Status – the good news Completeness Performance Language 82 11% 647 Success 89% Fail Core lib 1381 32% Success 2873 Fail 68% © SAP 2008 / Page 21
  • 22. Implementation Status – the bad news Completeness Performance Fibonacci (20) Stdlib Time (ms) 1870 0% 2000 1500 Success 1000 Not tested 100% 500 15 10 0 MRI ABAP Blue Ruby Count to 100000 Rails? not yet 3000 Time (ms) C-libs? No! 3000 2500 2000 <your favorite> not yet 1500 (probably) 1000 16 11 500 0 MRI ABAP Blue Ruby © SAP 2008 / Page 22
  • 23. Existing Blue Ruby demo applications Rails Application Atom/RSS Reader Coghead Application Blackberry Twitter © SAP 2008 / Page 23
  • 24. Next steps – SDN Collaboration Trial system available outside SAP firewall Terms: NDA / trial agreement required for non D/I/C-Users If interested – talk to us: anne.hardy@sap.com, juergen.schmerder@sap.com Series of Weblogs planned on SDN Code examples on how to use Blue Ruby From simple snippets to full-blown application Feedback highly appreciated Would a scripting environment for ABAP be useful? How would you use Blue Ruby? What is missing? Deeper involvement (get copy of source code) might be possible If interested – talk to us: anne.hardy@sap.com, juergen.schmerder@sap.com © SAP 2008 / Page 24
  • 25. Agenda 1. Blue Ruby – Who, What and Why 2. Use Cases for Blue Ruby 3. Technical Overview of Blue Ruby 4. Demo 5. Status and Next Steps 6. Discussion / Q&A © SAP 2008 / Page 25
  • 26. Thank you! © SAP 2008 / Page 26
  • 27. Grid © SAP 2008 / Page 27
  • 28. Definition and halftone values of colors SAP Blue SAP Gold SAP Light Gray SAP Gray SAP Dark Gray Primary color palette RGB 4/53/123 RGB 240/171/0 RGB 204/204/204 RGB 153/153/153 RGB 102/102/102 100% Dove Petrol Warm Green Warm Red Violet/Mauve Secondary color palette RGB 68/105/125 RGB 21/101/112 RGB 85/118/48 RGB 119/74/57 RGB 100/68/89 100% RGB 96/127/143 RGB 98/146/147 RGB 110/138/79 RGB 140/101/87 RGB 123/96/114 85% RGB 125/150/164 RGB 127/166/167 RGB 136/160/111 RGB 161/129/118 RGB 147/125/139 70% RGB 152/173/183 RGB 154/185/185 RGB 162/180/141 RGB 181/156/147 RGB 170/152/164 55% RGB 180/195/203 RGB 181/204/204 RGB 187/200/172 RGB 201/183/176 RGB 193/180/189 40% Cool Green Ocher Cool Red Warning Red Tertiary color palette RGB 158/48/57 RGB 73/108/96 RGB 129/110/44 RGB 132/76/84 100% RGB 101/129/120 RGB 148/132/75 RGB 150/103/110 85% RGB 129/152/144 RGB 167/154/108 RGB 169/130/136 70% RGB 156/174/168 RGB 186/176/139 RGB 188/157/162 55% RGB 183/196/191 RGB 205/197/171 RGB 206/183/187 40% © SAP 2008 / Page 28 2007
  • 29. Copyright 2008 SAP AG All rights reserved No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, SAP Business ByDesign, ByDesign, PartnerEdge and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned and associated logos displayed are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. The information in this document is proprietary to SAP. This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended strategies, developments, and functionalities of the SAP® product and is not intended to be binding upon SAP to any particular course of business, product strategy, and/or development. SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics, links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of these materials. This limitation shall not apply in cases of intent or gross negligence. The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web pages Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen können ohne vorherige Ankündigung geändert werden. Einige von der SAP AG und deren Vertriebspartnern vertriebene Softwareprodukte können Softwarekomponenten umfassen, die Eigentum anderer Softwarehersteller sind. SAP, R/3, xApps, xApp, SAP NetWeaver, Duet, SAP Business ByDesign, ByDesign, PartnerEdge und andere in diesem Dokument erwähnte SAP-Produkte und Services sowie die dazugehörigen Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland und in mehreren anderen Ländern weltweit. Alle anderen in diesem Dokument erwähnten Namen von Produkten und Services sowie die damit verbundenen Firmenlogos sind Marken der jeweiligen Unternehmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu Informationszwecken. Produkte können länderspezifische Unterschiede aufweisen. Die in diesem Dokument enthaltenen Informationen sind Eigentum von SAP. Dieses Dokument ist eine Vorabversion und unterliegt nicht Ihrer Lizenzvereinbarung oder einer anderen Vereinbarung mit SAP. Dieses Dokument enthält nur vorgesehene Strategien, Entwicklungen und Funktionen des SAP®-Produkts und ist für SAP nicht bindend, einen bestimmten Geschäftsweg, eine Produktstrategie bzw. -entwicklung einzuschlagen. SAP übernimmt keine Verantwortung für Fehler oder Auslassungen in diesen Materialien. SAP garantiert nicht die Richtigkeit oder Vollständigkeit der Informationen, Texte, Grafiken, Links oder anderer in diesen Materialien enthaltenen Elemente. Diese Publikation wird ohne jegliche Gewähr, weder ausdrücklich noch stillschweigend, bereitgestellt. Dies gilt u. a., aber nicht ausschließlich, hinsichtlich der Gewährleistung der Marktgängigkeit und der Eignung für einen bestimmten Zweck sowie für die Gewährleistung der Nichtverletzung geltenden Rechts. SAP übernimmt keine Haftung für Schäden jeglicher Art, einschließlich und ohne Einschränkung für direkte, spezielle, indirekte oder Folgeschäden im Zusammenhang mit der Verwendung dieser Unterlagen. Diese Einschränkung gilt nicht bei Vorsatz oder grober Fahrlässigkeit. Die gesetzliche Haftung bei Personenschäden oder die Produkthaftung bleibt unberührt. Die Informationen, auf die Sie möglicherweise über die in diesem Material enthaltenen Hotlinks zugreifen, unterliegen nicht dem Einfluss von SAP, und SAP unterstützt nicht die Nutzung von Internetseiten Dritter durch Sie und gibt keinerlei Gewährleistungen oder Zusagen über Internetseiten Dritter ab. Alle Rechte vorbehalten. © SAP 2008 / Page 29