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.

Sap inside track frankfurt 2015 martin steinberg and damir majer


Published on

Speech from SAP Inside Track Frankfurt 2015.
API´s (not only) in SAP environments

Published in: Software
  • Be the first to comment

Sap inside track frankfurt 2015 martin steinberg and damir majer

  1. 1. APIs (not only) in SAP environments Damir Majer @majcon SAP Inside Track Frankfurt 2015 Martin Steinberg @SbgMartin
  2. 2. API? more  and  more  companies  expose  their   application‘s  functionality  to  the  outside  world Copyright:­‐content/uploads/2014/03/API-­‐Development.png
  3. 3. Why is it important for me? ‣ API  can  be  stated  to  be  a  foundation  for  building   applications   ‣ Innovative  applications  based  on  existing   implementations/functionality   ‣ Applications  need  functionality  from  different   (cloud)  services/systems   ‣ API  „customers“  are  developers   ‣ can  be  composed  creatively
  4. 4. An example ‣ more  and  more  applications  use  this  exposed   functionality mobile  application  Any  SaaS  API Amazon  SaaS  API SAP  Backend  API <<uses>> Apache  API
  5. 5. Why is it important for me? ‣ API‘s  are  usually  available  over  internet  (public)   ‣ customers/users  have  to  signup  for  usage   („apikey“)   ‣ „private  API‘s“  for  internal  use  (e.g.  SAP  backend   system  or  SAP  HANA  system)  within  company‘s   environment
  6. 6. Versioning Security Scalable Documentation Simple Monetizable Analyzable 7
  7. 7. API foundation API  foundation  layer Business  Logic Standardization  of   ‣ user  Management   ‣ authorization  checks   ‣ logging   ‣ use  of  harmonized  patterns   ‣ discovery   ‣ documentation Shared  Memory
  8. 8. „Private API“ SAP  Business  Suite  System Business  Logic API  components API  components API  components„private  API“ Service  Integration  Layer dependency Custom  Applications <<uses>> HTML5 Apps SAPUI5 <<embedded>>
  9. 9. Solutions in ABAP
  10. 10. ‣ Systems  should  expose  behavior  with  interfaces   ‣ Interfaces  are  meant  and  not  Classes…   ‣ Interfaces  only  show  the  Specification  and  allow   clear  isolation  from  the  implementation  part Program against an Interface and not against an Implementation
  11. 11. class lcl_very_important definition. public section. interfaces: lif_smart_interface. “… endclass.
 class lcl_very_important implementation. “… method lif_smart_interface~applause. “ really cool and fancy implementations
 “ it´s your action ;-) endmethod. endclass. interface lif_smart_interface. public section. methods: applause importing iv_loudness type i. endinterface. client lif_smart_interface lcl_very_important
  12. 12. Design Pattern
  13. 13. ‣ complex Solutions are defined by a Name ‣ Developer has an unique vocabulary creational structural behavioral Pattern categories
  14. 14. Facade Pattern FA CA DE
  15. 15. API as a facade Business  LogicAPI  components Business  LogicAPI  components Business  LogicAPI  components Idealistic  approach:   harmonized  object  model   homogenous  interface  design delivered  or  custom Business  Logic Business  Logic clear  and  simple  to  use
  16. 16. API components – from a quality perspective Let‘s  differentiate  between  3  different  quality  levels:   • Tools   • for  time-­‐limited  usage,  like  data  migration  report   • Potential  library  components   • any  implementation  which  is  not  library,  yet   • Library  components   • automated  testing  necessary  from  the  beginning   • stable  interface   • Versioning   • Documentation   • API  components  are  „library  components“   • ABAP  Unit   • Documentation  (ABAP  Doc  +  DMS)  
  17. 17. Testable Code
  18. 18. 25% - 50% of Development costs are used for Testing Software should be simple tested
  19. 19. isolated testedtoo much dependencies
  20. 20. Dependency Injection ‣concept idea by Martin Fowler ‣based on Single Responsibility Principle (SRP) ‣a class uses available functionality of another class only by implementing against the interface ‣allows different implementation approaches­‐oriented_design%29
  21. 21. Dependency(Injec+on(
  22. 22. Isola&on(by( mocking( 0  Mocking(is(a(principle(coming(from( test(driven(development( 0  use(dependency(injec&on(for( mocking(purposes( 0  use(it(for(contract0first(approach(
  23. 23. Public API SAP  Business  Suite  System Business  Logic API  components API  components API  components„private  API“ Service  Integration  Layere.g.  AS  ABAP     frontend  server(s)   EAI API  components„public  API“ API  components API  components API  Mgmt.   HTML5 Apps Customers …
  24. 24. Service  Integration  Layer API  components API   Mgmt.Service  Integration  Layer API  components API   Mgmt. Service  Integration  Layer API  components API   Mgmt.Service  Integration  Layer API  components API   Mgmt. Gateway  as  a  Service API  components API   Mgmt. Extension  Apps Public  API  provider HybrisGoogle,  … Did  you  recognize   the   announcement?
  25. 25. is to be flexible
  26. 26. Martin Steinberg twitter: @SbgMartin Damir Majer twitter: @majcon
  27. 27. Thank you for your attention!