Migrating of SOAP-based Services to
RESTful Services

          Bipin Upadhyaya
          Queen’s University
Limitations of SOAP-based Services

No Web in traditional web services
No use of scalability features of Web
Service provider dependent interfaces
Problematic standardization process
  Infighting
  Lack of architectural coherence




                                         2
RESTful Services
A resource is any entity that can be identified or
 named
Uniform interface for all resources
Hypermedia as the engine of application state
 (HATEOAS)
  Not only the name of resources but also the
   relationships between resources




                                                      3
Links and Forms
                                                                                                 Resources

      <xml>
      <book>
                                                               2. Response
      <name>Night Star </name>
      <author> </author>                                                                             1. Request
      </book>
      <a rel=“review” href=“http://..order/ns/reveiw” />
                                                                             GET http://../book?search=Night Star
      <a rel=“order” href=“http://..order/ns” />
      </xml>




                                                                                   GET http://..order/ns/reveiw
                                                                     3. Request

How does client know about Resources ?
Initial starting node
And then the user agent is guided through the response
                                                                                                            4
“….. 85% of service requests employed on RESTful API,
not SOAP, and that querying Amazon using REST was
roughly six times faster than with the SOAP equivalents”
                                       -Jeff Barr [Amazon]




                                                          Total Service : 2198




       Protocol usage by API [src: programmableweb.com]
                                                                                 5
Motivation
RESTful services has various advantages over
 SOAP-based services
 Scalability of component interactions
 Generality of interfaces
 Independence in components deployment
New services and service clients support
 RESTful services
                        SOA
                            P
                           RE S
                                T
                                                6
WSDL
           I/O
       Parameters




                    7
Overview of Our Approach




                           8
Clustering WSDL Operations




Criteria for Clustering




                                                        2 * ((5 + 1))
     similarity (GetAllCustomer , GetCustomerByID ) =                 = .923
                                                        5 + 5 + 2 +1           9
Identifying Resources From a Cluster

Extract Nouns
  Input and output parameters is considered as
   noun
Find word relationship/hierarchy between
 extracted words
Find resource/container relationship



                                                  10
Identifying Resources From a Cluster
Initially rank the words, according to the place of
 occurrence.
   Words in semantic region are given highest priority,
    input parameters as second and output parameters as
    third.
Check if the word already exits as a resource. If
 so give increase its priority.
Check the relationship between the words and
 prioritize them according to the relationship.
Combine the words to form the resource.
                                                           11
Example Identify Noun


            getModifiedCustomer        getCustomerByCustID   getAllCustomer



Semantic    Customer                   Customer              Customer

Output      Customer                   Customer              Customer[]
Operation
Input       -                          CustID                --
Operation
                Resource : /customer




                                                                              12
Identifying Resource Methods
Semantic analysis of each operation
  Extract and analyze verbs from the operation
    names
Based on fan-in and fan-out of the operations
In case of conflict, revisit the cluster to form the
 new URI.
Example :
    getCards()  Extract verb  get [Equivalent to HTTP operation
  Get]


                                                                    13
Example Identify Resource Methods

               getModifiedCustomer      getCustomerByCustID       getAllCustomer



   Semantic    Customer                 Customer                  Customer

   Output    Customer                   Customer                  Customer[]
   Operation
   Input     -                          CustID                    --
   Operation
   Verb        GET, Modified            GET                       GET

Resource : /customer/modified   Resource : /customer/{custid}   Resource : /customer
HTTP-Method: GET                HTTP-Method: GET                HTTP-Method: GET

                                                                                   14
Example




         Resource             HTTP-Methods               Functions
/customer                    GET             GetAllCustomers
/customer/modified           GET             GetModifiedCustomers
/customer/{custID}           GET             GetAllCustomerByCustID
/servicelocations            GET             GetAllServiceLocations
/servicelocations/modified   GET             GetModifiedServiceLocations
/servicelocations/{serloc}   GET             GetAllServiceLocationBySerLoc   15
Example


 /campaign                      GetCampaings                          GET
                                CreateOrUpdateCampaign                POST
                                DeleteCampaign                        DELETE

 /campaign/account/recepients   GetCampaignAccountRecepients          GET
                                DeleteCampaignAccountRecepient        DELETE
                                CreateOrUpdateCampaignAccountRecepient POST
 /                              ImportCampaignAccountRecepients       POST
 campaign/account/recepients?
 #methodname=
 ImportCampaignAccountRecep
 ients                                                                         16
Resource Verification




                        17
Wrapping SOAP-based Services




                               18
Case Study


• Analyzed publicly available WSDL documents.

 Category         #    Description
 Finance          12   Services related to financial management and banks.

 Government        6   Services provided by government organization.
 Travel/Tourism   17   Services that are related to travel and tourism e.g., flight
                       book, hotel booking, and taxi reservation.
 Ecommerce        13   Services provided by online business e.g., Amazon,
                       BestBuy and EBay.
 Others           13   Services from domains such as weather, music search,
                       content sharing and aggregation.

                                                                                      19
Case Study


Category        #     #Predicted    #misidentified   #Actual  Precision Recall
             Methods Resources       Resources      Resources
Finance            59          35                 8        40      0.77   0.67
Government         39          25                 2        27      0.92   0.85
Travel/           132          97                16       110      0.83   0.73
Tourism
Ecommerce        102          80               14         90      0.82    0.73
Others            78          47                6         53      0.87    0.77




                                                                            20
Performance Measurement




                          21
Conclusion and Future work

Provide a mechanism to migrate SOAP-
 based services to RESTful services
Validate the mechanism with larger set of
 WSDL files
Extend the approach to migrate other
 legacy systems to RESTful services.
Service migration

Service migration

  • 1.
    Migrating of SOAP-basedServices to RESTful Services Bipin Upadhyaya Queen’s University
  • 2.
    Limitations of SOAP-basedServices No Web in traditional web services No use of scalability features of Web Service provider dependent interfaces Problematic standardization process Infighting Lack of architectural coherence 2
  • 3.
    RESTful Services A resourceis any entity that can be identified or named Uniform interface for all resources Hypermedia as the engine of application state (HATEOAS) Not only the name of resources but also the relationships between resources 3
  • 4.
    Links and Forms Resources <xml> <book> 2. Response <name>Night Star </name> <author> </author> 1. Request </book> <a rel=“review” href=“http://..order/ns/reveiw” /> GET http://../book?search=Night Star <a rel=“order” href=“http://..order/ns” /> </xml> GET http://..order/ns/reveiw 3. Request How does client know about Resources ? Initial starting node And then the user agent is guided through the response 4
  • 5.
    “….. 85% ofservice requests employed on RESTful API, not SOAP, and that querying Amazon using REST was roughly six times faster than with the SOAP equivalents” -Jeff Barr [Amazon] Total Service : 2198 Protocol usage by API [src: programmableweb.com] 5
  • 6.
    Motivation RESTful services hasvarious advantages over SOAP-based services Scalability of component interactions Generality of interfaces Independence in components deployment New services and service clients support RESTful services SOA P RE S T 6
  • 7.
    WSDL I/O Parameters 7
  • 8.
    Overview of OurApproach 8
  • 9.
    Clustering WSDL Operations Criteriafor Clustering 2 * ((5 + 1)) similarity (GetAllCustomer , GetCustomerByID ) = = .923 5 + 5 + 2 +1 9
  • 10.
    Identifying Resources Froma Cluster Extract Nouns Input and output parameters is considered as noun Find word relationship/hierarchy between extracted words Find resource/container relationship 10
  • 11.
    Identifying Resources Froma Cluster Initially rank the words, according to the place of occurrence.  Words in semantic region are given highest priority, input parameters as second and output parameters as third. Check if the word already exits as a resource. If so give increase its priority. Check the relationship between the words and prioritize them according to the relationship. Combine the words to form the resource. 11
  • 12.
    Example Identify Noun getModifiedCustomer getCustomerByCustID getAllCustomer Semantic Customer Customer Customer Output Customer Customer Customer[] Operation Input - CustID -- Operation Resource : /customer 12
  • 13.
    Identifying Resource Methods Semanticanalysis of each operation Extract and analyze verbs from the operation names Based on fan-in and fan-out of the operations In case of conflict, revisit the cluster to form the new URI. Example : getCards()  Extract verb  get [Equivalent to HTTP operation Get] 13
  • 14.
    Example Identify ResourceMethods getModifiedCustomer getCustomerByCustID getAllCustomer Semantic Customer Customer Customer Output Customer Customer Customer[] Operation Input - CustID -- Operation Verb GET, Modified GET GET Resource : /customer/modified Resource : /customer/{custid} Resource : /customer HTTP-Method: GET HTTP-Method: GET HTTP-Method: GET 14
  • 15.
    Example Resource HTTP-Methods Functions /customer GET GetAllCustomers /customer/modified GET GetModifiedCustomers /customer/{custID} GET GetAllCustomerByCustID /servicelocations GET GetAllServiceLocations /servicelocations/modified GET GetModifiedServiceLocations /servicelocations/{serloc} GET GetAllServiceLocationBySerLoc 15
  • 16.
    Example /campaign GetCampaings GET CreateOrUpdateCampaign POST DeleteCampaign DELETE /campaign/account/recepients GetCampaignAccountRecepients GET DeleteCampaignAccountRecepient DELETE CreateOrUpdateCampaignAccountRecepient POST / ImportCampaignAccountRecepients POST campaign/account/recepients? #methodname= ImportCampaignAccountRecep ients 16
  • 17.
  • 18.
  • 19.
    Case Study • Analyzedpublicly available WSDL documents. Category # Description Finance 12 Services related to financial management and banks. Government 6 Services provided by government organization. Travel/Tourism 17 Services that are related to travel and tourism e.g., flight book, hotel booking, and taxi reservation. Ecommerce 13 Services provided by online business e.g., Amazon, BestBuy and EBay. Others 13 Services from domains such as weather, music search, content sharing and aggregation. 19
  • 20.
    Case Study Category # #Predicted #misidentified #Actual Precision Recall Methods Resources Resources Resources Finance 59 35 8 40 0.77 0.67 Government 39 25 2 27 0.92 0.85 Travel/ 132 97 16 110 0.83 0.73 Tourism Ecommerce 102 80 14 90 0.82 0.73 Others 78 47 6 53 0.87 0.77 20
  • 21.
  • 22.
    Conclusion and Futurework Provide a mechanism to migrate SOAP- based services to RESTful services Validate the mechanism with larger set of WSDL files Extend the approach to migrate other legacy systems to RESTful services.

Editor's Notes

  • #4 For example, if GET a blog post the response document will have URIs embedded in it that allow you to create a comment , edit the post and any other action that you might want to do.
  • #20 Correction were mainly due to un-clear name of the operations, tunneling through post is predicted Output parameters naming is very generic and exactly same for different kind of operations.
  • #21 Number of WSDL documents Analyzed 61 Total Number of Operations 410 Number of Resources Identified 284 Misidentified Resources 46