GMVIS Skysoft Case Study

GMV Innovating Solutions Skysoft (www.gmv.com) is part of a privately owned technology business group with an international presence. GMV offers solutions, services and products in very diverse sectors, such as Aeronautics, Banking and Finances, Space, Defense, Health, Security, Transportation, Telecommunications, and Information Technology for Public Administration and large corporations. GMV's goal is to support its client's processes by dint of technologically advanced solutions, providing integrated systems, specialized products and services covering the whole life cycle. These range from consultancy and engineering services up to the development of software and hardware, the integration of turnkey systems and operational backup.

Business Situation

The broad markets GMV serve have clients that have complex application needs. Clients typically attempt to meet these needs using technology products, solutions and services that are constantly evolving and not necessarily built with a client's specific needs in mind, but instead cater to the common needs of a global market. Having the ability to customize solutions that exactly meet client needs is where GMV excels.

Application Description

GMV built a graphical information system (GIS) for Portugal's Lisbon Region Managing Authority, an entity providing a link between central government, local municipalities and regional/European relations. There are 10 municipalities in the region that involved over 50 local and regional partners. Information regarding city interventions (e.g. street works, etc.) is centralized and used by the management personal from different services to support intervention planning (resource usage, optimizations, etc.) The application was built in Flex, connecting to a .NET back-end.  

This application provides an easy way for users to capture information about a particular area in the region.  They can further drill down to specific locations to view actual pictures.

Users can also view various assets that are located within the region, such as equipment, businesses by type, parking lots, cultural facilities, etc.

Problem Definition

GMV needed to have an efficient way of creating and deploying business application services and then call them from the presentation layer. They had a very aggressive timeframe (3 months) and the developers on the team had little to no Flex development experience. GMV's need for a tool that would improve the productivity of its team was paramount for success. They first considered FlexBuilder's built-in support for WebServices, but quickly opted to go with an AMF solution given benchmark tests. Fluorine was also considered, but GMV needed a commercially supported product that could support multiple platform environments. 

Solution

GMV chose WebORB for .NET as its integration solution and developer productivity tool. The features the team used most include remoting code generation (including support for PureMVC and ActionScript), invocation test drive, runtime engine, server monitoring and access control. The user friendly management console was also very helpful to team members. According to developer Joao Dias, "Tasks that used to take around a day to complete, now take only a few minutes.  We are about 90% more productive using WebORB." Ricardo Magalhaes states, "It is so easy to create a virtual application just by dragging and dropping and I can even monitor and control access to my application using WebORB."

To confirm performance benefits, GMV conducted a benchmark study that compared WebORB's remoting performance with Web Services. The following describes the methodology and results of their study.

Methodology

1. Implement a simple service (ping), expose it via WebORB and WebServices

2. Call it via WebORB in cycle (i.e. 100 requests), measure times before and after

3. Same for WebServices

4. Compare times

5. Implement the same test but now returning a much bigger response (an array is used as return type, and we test the service by increasing the array size to measure how the infrastructure behaves with bigger responses).

Tests were performed with focus on the specific needs of GMV's application. Since they have some services returning huge responses, they tested WebORB response times under this scenario and compared it with the same services exposed using Web Services. According to Sergio Jose Rodrgues Saraiva, "The conclusion was that WebORB handles big responses much better. Latency with Flex is an issue though. Apparently Flex is not very efficient loading and parsing XML (SOAP), since our tests indicate that outside Flex, SOAP requests perform much faster. WebORB uses a Flex native message format and seems to deeply simplify the process - only needs to do some type of direct memory copy of the data, while SOAP requests must be loaded, parsed, validated, de-serialized, etc.... This is very obvious on big requests where performance differences are visible with the naked eye.    

Please notice that the scale of the graphic is logarithmic. Time comparisons on client side were around the same for small requests, but WebORB remoting performs much faster on big requests. Our baseline performance in terms of transactions/second is very low, and tests indicate average of 20, 25 transactions/second with a load test with 10 threads performing requests which are much beyond the baseline. As you can see from the graphic, WebORB response times consistently stay low, regardless of the size or numbers of transactions. Note the whopping 263 percent performance gain WebORB has over Web Services for an array consisting of 10,000 elements. The reduction in lines of code needed to handle the request, was about 15 lines per call and we had around 100 calls." 

Benefits

  • Reduced Development Time - GMV used many of WebORB's productivity features and found they were about "90% more productive", according to Joao Dias, one of the lead developers on the team.
  • Better Performance - Team reduced about 15 lines of code per call and achieved a 293% performance gain over Web Services using WebORB for calling large data sets.
  • Easy Deployment - WebORB generates all the interfaces and allows single click deployment.
  • Responsive Support - According to Saraiva, "Support and answers are given very fast (sometimes answers only take a couple of minutes), and very personalized (clearly not automatic or semi-automatic reply messages...). Usually with other providers we need to wait at least one or two days for an answer."