Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Blue Ruby SDN Webinar


Published on

Slides about Blue Ruby, a Ruby VM in ABAP, shown to the SDN (http// mentors on April 07, 2009

Published in: Technology

Blue Ruby SDN Webinar

  1. 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. 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. 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. 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. 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. 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. 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
  8. 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. 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. 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. 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. 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. 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. 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. 15. Blue Ruby Architecture © SAP 2008 / Page 15
  16. 16. From Ruby to ABAP © SAP 2008 / Page 16
  17. 17. Blue Ruby Virtual Machine © SAP 2008 / Page 17
  18. 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. 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. 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. 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. 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. 23. Existing Blue Ruby demo applications Rails Application Atom/RSS Reader Coghead Application Blackberry Twitter © SAP 2008 / Page 23
  24. 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:, 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:, © SAP 2008 / Page 24
  25. 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. 26. Thank you! © SAP 2008 / Page 26
  27. 27. Grid © SAP 2008 / Page 27
  28. 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. 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