blue ruby @ sap inside track palo alto
DESCRIPTION
An executable presentation about Blue Ruby, given at SAP Inside Track Palo Alto, May 29, 2009TRANSCRIPT
Blue RubyA Ruby VM for the ABAP Web Application Server
Juergen Schmerder
SDN Inside Track, 05-29-2009
© SAP 2008 / Page 2
at_exit do br = MyPresentation.new br.who; br.what; br.why br.motivation # reasons to build blue ruby br.use_cases # some Use Cases for Blue Ruby br.architecture # Technical Overview of Blue Ruby br.run_demo # shows blue ruby in action br.status # shows where we are br.answer questions # iterates over Q’s and returns A’send
class MyPresentation
/sdn/inside_track/blue_ruby.rb
def initialize
@who = {:org => 'Office of the CTO',:group => 'Platforms Research':palo_alto => [
'Anne Hardy', # fairy godmother'Juergen Schmerder', # project lead, presenter'Daniel Vocke', # architect and developer'Murray Sporck', # inventor and evangelist'Rainer Brendle' # inventor and evangelist
],:shanghai => [
'Su Yu', # developer & ruby guru'Joseph Wang' # developer & ruby guru
] }
@what = 'An Enterprise-ready Ruby dynamic language environment'
@why = self.motivation()
end
def motivation
abap_pros = [
:robustness, # try to break the server:work_process_isolation, # come on, try it!:scalability, # one customer > salesforce.com:software_logistics, # transport mgmt, lcm:enterprise_applications ]# SAP Business Suite
ruby_pros = [
:developer_efficiency, # watch out for demo…:agile_development, # TDD / BDD:community, # > 1 Mio and growing:dsl_readiness, # because it’s dynamic…:beauty ] # well, *we* love it
# now combine the best of both worldsblue_ruby = abap_pros + ruby_pros
end
def use_cases( main = true )
# main rationale: speed of development and flexibility more# valued than runtime performance, lifecycle mgmt, governance
if main then
[ "Enable timeless software","Rapid Prototyping of ABAP Extensions","Web 2.0 apps (e.g. twitter, feeds, etc.)","Simple extensions","Unit tests / specifications for ABAP code" ]
else
discussion = Discussion.new :long
end
end
def architecture
building_blocks =
{
:BRIL => “Byte code language executable in ABAP",:compiler => "Turns Ruby source code into BRIL",:runtime => { :vm => “Stack machine running inside ABAP", :core_lib => "Ruby type system", :bridges => "ABAP-to-Ruby & Ruby-to-ABAP calls"},:bluesec => "Policy-based security component",:bluefs => "Virtual file system (stores ruby files)"
}
return compose( building_blocks )
end
def run_demo
[ :hello_world,
:call_bapi,
:http,
:xml_and_atom,
:rack,
:ruby_spec
].each do |demo|
run( demo )
show_source_code( demo )
end
end
def status
project_phase = "Research & Development"
availability = "Early trial (upon request)"
productization_plan = nil
completion = {:measurement => "ruby_spec",:language => " 90%",:core_lib => "~75%"}
features = { :rails => false, :rack => true, :rspec => true }
performance = "not good :-("
return { :phase => project_pase, :availability => availability,:status => completion, :performance => performance,:libs => features }
end
© SAP 2008 / Page 9
def answer questions while !(q = questions.readline).nil? answer q endend
@@more_info = "sdn.sap.com/irj/scn/wiki?path=/x/hwATBQ"@@contact = "[email protected]"
# Thank you!
end # class MyPresentation
© SAP 2008 / Page 10
Grid
© SAP 2008 / Page 11© SAP 2007 / Page 11
Secondary color palette100%
Primary color palette100%
Definition and halftone values of colors
RGB 68/105/125
RGB 96/127/143
RGB 125/150/164
RGB 152/173/183
RGB 180/195/203
RGB 4/53/123 RGB 240/171/0 RGB 102/102/102RGB 153/153/153RGB 204/204/204
RGB 21/101/112
RGB 98/146/147
RGB 127/166/167
RGB 154/185/185
RGB 181/204/204
RGB 85/118/48
RGB 110/138/79
RGB 136/160/111
RGB 162/180/141
RGB 187/200/172
RGB 119/74/57
RGB 140/101/87
RGB 161/129/118
RGB 181/156/147
RGB 201/183/176
RGB 100/68/89
RGB 123/96/114
RGB 147/125/139
RGB 170/152/164
RGB 193/180/189
RGB 73/108/96
RGB 101/129/120
RGB 129/152/144
RGB 156/174/168
RGB 183/196/191
RGB 129/110/44
RGB 148/132/75
RGB 167/154/108
RGB 186/176/139
RGB 205/197/171
RGB 132/76/84
RGB 150/103/110
RGB 169/130/136
RGB 188/157/162
RGB 206/183/187
85%
70%
55%
40%
RGB 158/48/57Tertiary color palette100%
85%
70%
55%
40%
SAP Blue SAP Gold SAP Dark GraySAP GraySAP Light Gray
Dove Petrol Violet/MauveWarm RedWarm Green
Cool Green Ocher Warning RedCool Red
© SAP 2008 / Page 12
Copyright 2008 SAP AGAll 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 changedwithout 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 aretrademarks 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 displayedare 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 documentcontains 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, orother 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 ofmerchantability, 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 limitationshall 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 thesematerials 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 durchSAP 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 diedazugehö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 Namenvon Produkten und Services sowie die damit verbundenen Firmenlogos sind Marken der jeweiligen Unternehmen. Die Angaben im Text sind unverbindlich und dienen lediglich zuInformationszwecken. 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 anderenVereinbarung mit SAP. Dieses Dokument enthält nur vorgesehene Strategien, Entwicklungen und Funktionen des SAP®-Produkts und ist für SAP nicht bindend, einen bestimmtenGeschäftsweg, eine Produktstrategie bzw. -entwicklung einzuschlagen. SAP übernimmt keine Verantwortung für Fehler oder Auslassungen in diesen Materialien. SAP garantiert nicht dieRichtigkeit oder Vollständigkeit der Informationen, Texte, Grafiken, Links oder anderer in diesen Materialien enthaltenen Elemente. Diese Publikation wird ohne jegliche Gewähr, wederausdrü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 Zwecksowie 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 Verwendungdieser 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 Hotlinkszugreifen, 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 überInternetseiten Dritter ab.
Alle Rechte vorbehalten.