Generating customer reports is the bane of most development operations. These requests flood development groups. The issue has only grown worse as organizations compile more and more data, and users more imaginatively ask 'what if?,' further taxing programmers' time. One company has taken a data services approach to solving the problem, at the same time implementing a type of Web services mashup to address user needs.
In the past year Concur, a Redmond, Wash.-based provider of an on-demand employee expense reporting system for corporate customers, has deployed an open source ESB and servers with data services functionality to cut down the work required to meet end users' needs to obtain finance, accounting, and customer information.
Concur technologists chose a WSO2 Web Services Application Server (WSAS) 2.0 with data services functionality, as well as a WSO2 ESB to route Web services traffic and schedule data synchronizations. Concur has also deployed the WSO2 Registry for governance.
Brad Svee, the SOA project lead at Concur, is building data services mashups that allow end users ranging from the executive level to operational support people to easily view information that was almost inaccessible to them under a previous batch update system.
"They're able to see data that they never were able to see before," Svee said.
Under the legacy system, end users needed the help of an SQL programmer to retrieve information from CRM and ERP databases
"Let's say an executive wanted to see the open tickets for a client and then go find the invoices," Svee said. "First they would have to call a support person and have them do an extract from the CRM system and have the information sent to them in spreadsheets. Then they'd have to call accounting and finance and have them do the same kind of extract from their ERP program and send that in a spreadsheet. Then they would put the two spreadsheets together and have what they were looking for."
This approach was so time-consuming that it discouraged the business people from even trying to get information they could use, Svee explained. It also was a burden on the IT system because the file transfers put heavy demands on server resources and the batch update approach might retrieve thousands of records where only a few were needed.
Svee describes the data services creation as easy with very little coding.
In the initial deployment, the WSO2 data services technology was able to access the database and convert data into a SOAP message in "literally two minutes," according to Svee. During a training session with WSO2, the Concur team used the "WSO2 ESB to replicate a data synchronization system in three hours that the group had previously taken three weeks to build in Java."
Within weeks earlier this year, the Concur SOA team had created its first data services mashup, which was dubbed the "client data screen." It aggregated information from CRM, ERP and other corporate databases into a Web portal application and was an immediate hit with the business people, Svee said. It also demonstrated the business value of the service-oriented approach.
"It showed them what we were able to do with SOA and services," Svee said.
Asked what feedback he has gotten from the business users among the 900 employees at Concur, he said: "I always say when they want more, you must be doing something right. They love it and they want more of it."
Data services are "a killer app for SOA," argues Paul Fremantle, CTO for WSO2, the open source SOA vendor, which this week released WSO2 Web Services Application Server (WSAS) 2.0 with data services functionality.
Using WS-* style Web services and REST-style Web resources allows database programmers to move from cumbersome batch update legacy database systems to Web 2.0 style mashups providing easy data access to end users, he said.
Data services are emerging now for two reasons in Fremantle's view: "Firstly, people are really running up against the problem of batch file transfer. Secondly, SOA has reached the level of maturity where people don't want to spend their time taking a database and mapping it to Java objects and then mapping those into Web services."