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”.