Skip to Content

ES Consumption with Ruby on Rails made easy

The Co-Innovation Engineering team, which is part of the Global Ecosystem and Partner Group at SAP, drives the adoption of the latest SAP technology in the market. One important topic that we currently looking at are challenges related to heterogeneous service-oriented architecture (SOA). With best-of-breed and multi-vendor strategies applied to the landscape customers and partners will face a new set of integration problems. The challenges include coexistence of registries, repositories and enterprise service busses in heterogeneous landscapes as well as the consumption of heterogeneous Enterprise Services (ES). In the project about heterogeneous Enterprise Service (ES) consumption, we are looking at ways to consume Enterprise Services from non-SAP platforms. This project tackles issues that arise in larger SOA landscapes, where best-of-breed composition tools need to consume Enterprise Services. One work stream within this project explored the possibilities to consume Enterprise Services located in the ES Workplace with Ruby on Rails. By consuming Enterprise Services from the ES Workplace a Ruby on Rails developer can immediately start using Enterprise Services without installing an Enterprise Service Repository (ESR) and an SAP ERP backend. Tobias Braner, a Ruby and Ruby on Rails expert, looked at Enterprise Services through the Ruby on Rails glasses.

Tobias explored possibilities to consume Enterprise Services within Ruby on Rails. The outcome is a set of two tutorials that describe in details how to build a sample Ruby on Rails project which consumes Enterprise Services including security considerations. The first tutorial covers everything from the installation of Ruby and Rails over the setup of a Rails project up to the final Enterprise Service call. This tutorial also explains in detail how to use HTTP basic authentication (transport layer security) to secure the Enterprise Services call. Since the main purpose of the ES Workplace is education and testing, HTTP basic authentication is default security level when consuming Enterprise Services from the ES Workplace. This level of security is sufficient to develop and test applications, whereas productive environments often require full end-to-end security of the Enterprise Service calls according to the WS-Security standards. Therefore, in his second tutorial, Tobias extends his Rails project to use WS-Security (username token) to provide full end-to-end security, which is independent of the underlying transport protocol. All the necessary configuration steps in the ERP backend to support WS-Security (username token) are described in detail.

If this work sounds interesting to you and you want to try out the examples of the tutorials, please find the project source code here.

UPDATE: The source code for an example application using WS-Security username token can be found here.

Ruby on Rails is a popular language / platform combination for Web development. Often cited features for the popularity of Ruby on Rails are the clear Model View Controller (MVC) concept, the “Don’t Repeat Yourself” (DRY) principle and the Ajax awareness.

Of course, there are already plenty articles and blogs available on the SDN about Ruby on Rails. A good introduction and collection of links about Ruby on Rails can be found SDN Welcomes Ruby, Ruby on Rails and RadRails! (blog) and here (wiki). Other interesting SDN publications comprise the Ruby on Rails with AJAX, the Ruby, Ruby on Rails, and SAP Web Services Integration or SAP on Rails, and not on the skids, for example. Just to name a few. There are many more publications available on the SDN, just search for “Ruby on Rails”.

You must be Logged on to comment or reply to a post.
  • Hi Guys
    Have any of you looked at consumption of SAP Business One (B1) web services using Ruby and Rails?
    The services provided by B1 are document style.

    We want to build web apps using either the DI Server web services or via the java wrapper for the underlying COM API.

    Marcus Raath

    • Hi Marcus,

      we haven’t acutally looked at the consumption of SAP Business One (B1) web services, since we are focusing on technologies to consume the web services.

      Since we do not rely on any ESR-specific features in our examples (just using the WSDL file from the ESR), we assume that the tutorials could also be used to consume B1 web services.

      Best regards, Peter.

    • Hi Roman,

      good question!

      The consumption of Enterprise Services (ES) with Ruby on Rails was only one work stream in our project about the consumption of heterogeneous ES. We are currently looking at other non-SAP technologies for ES consumption as well. However, there were three reasons, why I wrote this blog about the Ruby on Rails example:
      • I think that the consumption of ES with Ruby on Rails is a very good proof point for the openness of SAP’s Enterprise Service Repository, which is fully based on Web service standards. So to run the Ruby on Rails example, no SAP-specific enhancements are necessary.
      • Furthermore, you do not need an SAP NetWeaver or an SAP ERP installation (or any other SAP installation) to run the example. You can start immediately and consume the ES from the ES Workplace.
      • If you are new to SAP, SAP NetWeaver and the Enterprise Service Repository, this nice little example might help you to get familiar with ES consumption, since it looks at Enterprise Services through the glasses of a non-SAP minded developer.

      Kind regards and a Happy New Year,