text: Patent US20050198154 - Runtime validation of messages for enhanced web service processing - Google Patents
  Inbound processing of web service request messages at runtime is enhanced by providing validation of the message structure against corresponding schema, at an intermediary web service server rather than at the web service application (e.g., web service application). Hence, there is minimal delay in responding...http://www.google.com.au/patents/US20050198154?utm_source=gb-gplus-sharePatent US20050198154 - Runtime validation of messages for enhanced web service processing
  Publication number US20050198154 A1
  Application number US 10/778,515
  Also published as US8516123, WO2005081495A1
  Publication number 10778515, 778515, US 2005/0198154 A1, US 2005/198154 A1, US 20050198154 A1, US 20050198154A1, US 2005198154 A1, US 2005198154A1, US-A1-20050198154, US-A1-2005198154, US2005/0198154A1, US2005/198154A1, US20050198154 A1, US20050198154A1, US2005198154 A1, US2005198154A1
  Patent Citations (7), Referenced by (79), Classifications (16), Legal Events (2)
  US 20050198154 A1
  1. A method for processing web service messages, the method comprising the computer-implemented steps of:
  receiving a message from a client, at an intermediary server that handles communications between said client and a web service application;
  determining, by the intermediary server, whether the structure of at least a portion of the message complies with one or more corresponding schema definitions to which the portion of the message is supposed to comply; and
  if the structure is determined to comply with the one or more corresponding schema definitions, then passing the message to the web service application.
  accessing said one or more corresponding schema definitions based on a reference in a description of said web service application, wherein said description is represented in Web Services Description Language (WSDL).
  identifying said web service application based on said message from said client; and
  identifying said description based on a mapping of web service applications to corresponding descriptions.
  identifying an XML element name and an associated namespace from said message from said client; and
  accessing said one or more corresponding schema definitions based on said XML element name and said namespace.
  if the structure is determined not to comply with the one or more corresponding schema definitions, then rejecting the message without communicating with said web service application.
  transmitting a second message to the client which indicates that a portion of the message does not comply with the one or more corresponding schema definitions to which the portion of the message is supposed to comply.
  wherein the step of determining includes determining whether a first portion of said message complies with a first corresponding schema definition; and
  wherein the step of passing includes passing said message to said web service application for determining whether a second portion of said message complies with a second corresponding schema definition to which said second portion is supposed to comply.
  25. A system for processing web service messages, comprising:
  an application server that hosts one or more web service applications that provide one or more web services; and
  an intermediary server that is communicatively coupled to said application server and to one or more client applications via one or more networks, and that validates a structure of a portion of a SOAP request message received from a client application based on a corresponding schema type definition that is referenced in a WSDL service definition associated with a web service application to which said request message is intended, prior to passing any part of said request message to said web service application.
  26. A system for processing web service messages, the system comprising:
  means for receiving a message from a client, at an intermediary server that handles communications between said client and a web service application;
  means for determining, by the intermediary server, whether the structure of at least a portion of the message complies with one or more corresponding schema definitions to which the portion of the message is supposed to comply; and
  means for passing the message to the web service application if the structure is determined to comply with the one or more corresponding schema definitions.
  FIG. 1 is a block diagram that illustrates an operating environment in which embodiments of the invention may be implemented. The illustrated operating environment includes clients 102 a-102 n, which communicate with a web service intermediary server 104 (sometimes referred to as a "web service server"; hereinafter "intermediary server") via a network. Intermediary server 104 is communicatively coupled to an application server 106 that hosts one or more web service applications 108 a-108 n. Intermediary server 104 may communicate with application server 106 (A) via a network, if remotely located from each other, using messages of suitable formats; (B) via a bus, if both are configured on the same computer; or (C) via the same or different executing processes or threads, if the intermediary server 104 and the application server 106 are different software modules executing in the same or different memory spaces, respectively, such as by using an API call.
  Clients 102 a-102 n are software applications that each comprises sequences of instructions that are executable by one or more processors. For example, clients 102 a-102 n are programs that are executable on a computer system such as the system illustrated in FIG. 3. Examples of clients include a conventional web browser and a business application, such as an enterprise Purchasing application. There is no necessary relationship or similarity between clients 102 a-102 n, unless otherwise described herein.
  Each of the clients 102 a-102 n is capable of outputting requests for information or services, with associated data. Such requests can be transmitted to a web service application 108-108 n to perform work or transactions, i.e., to execute a web service. Clients 102 a-102 n may invoke web service applications 108 a-108 n using either an RPC (Remote Procedure Call) style or a document style (i.e., with XML document payload), as depicted in FIG. 1 by arbitrarily showing client 102 a using document style and client 102 n using RPC style. One prevalent standard protocol governing the passing of information between clients 102 a-102 n, the intermediary server 104 and, possibly, the web service applications 108 a-108 n, is SOAP.
  Application server 106 is software that comprises sequences of instructions that are executable by one or more processors, for deploying and enabling execution of web service applications 108 a-108 n. Application server 106 is an environment over which web service applications 108 a-108 n execute. Application server 106 may be referred to as middle-tier software because it operates between a database client and a database 116, which stores information used to perform the work of web service applications 108 a-108 n. One suitable example of application server 106 is Oracle Application Server.
  Web service applications 108 a-108 n typically include some combination of programming and data that are made available from application server 106 for end users and other network-connected application programs, such as clients 102 a-102 n. There is no necessary relationship or similarity between web service applications 108 a-108 n, unless otherwise described herein. For example, web service application 108 a may provide a Purchasing service and web service application 108 n may provide a Human Resources service, each called by respective clients.
  An XML schema is an abstract representation of an XML object's structure and relationship to other XML objects. Schema type definition 110 is a representation of the structure of incoming SOAP messages to a respective web service application. Thus, each of web service applications 108 a-108 n is described in a corresponding WSDL service description 114, which references one or more corresponding schema type definitions 110 that specify the structure of incoming SOAP messages to the respective web service application. Each web service application may be bound to, or associated with, a single schema type definition that specifies the structure of the message header and the message body, or with multiple schema type definitions, for each of the message header and message body.
  A web service application, such as any of web service applications 108 a-108 n, is optionally coupled to, or has access to, a database 116. Database 116 is any conventional data repository for storing, managing and retrieving data. A database server may be an integral or highly dependent component of a given application server, or may reside on a separate machine and simply expose APIs for interactions between a web service application and the database server. Database 116 may serve as the data storage and retrieval mechanism for a web service application, or a place where related business logic is implemented or data models defined. The type of data storage may vary from implementation to implementation and, therefore, is not limited to a database.
  At block 202, an intermediary server receives a message from a client. For example, web service intermediary server 104 receives a SOAP message from client 102 a, directed to web service application 108 a for invoking business logic that the associated web service implements to perform some work, i.e., to provide an associated web service. As mentioned, intermediary server 104 is a web service infrastructure component, which functions as an intermediary for handling communications between clients 102 a-102 n and web service applications 108 a-108 n. Hence, the message from the client is intercepted by the intermediary server 104 before it reaches the target web service application.
  In order to validate the incoming message, intermediary server 104 requires access to the structure definition that corresponds to the message, based on the web service application 108 a-108 n to which the client directed the message. Hence, intermediary server 104 identifies and locates the one or more schema type definitions that are needed to validate the incoming message. In a scenario in which runtime SOAP messages are embedded with certain XML element names, which may contain associated XML namespaces, intermediary server 104 can readily identify the corresponding schema type definitions in these namespaces, which are in turn used for the validation process. In one embodiment, with a given schema type name and namespace, an XML parser is used to obtain the actual schema type definition from its native storage. For example, the incoming SOAP message may contain XML element names and URIs identifying the namespaces, which intermediary server 104 can use to identify and retrieve the schema type definition for validation purposes.
  In one embodiment, a message is transmitted from intermediary server 104 to the requesting client 102 a, indicating that the message does not comply with the structure to which it is supposed to comply, block 208. In a related embodiment, this message is transmitted to the client in a synchronous manner with respect to reception of the incoming message. Hence, the client does not wait an inordinate amount of time to receive notification that it sent a corrupt message, as is often the case when validation is performed asynchronously on the back-end by the web service application.
  US20050091386 * 28 Oct 2003 28 Apr 2005 Kuno Harumi A. Method and apparatus for interfacing with a distributed computing service
  US7533111 * 30 Dec 2005 12 May 2009 Microsoft Corporation Using soap messages for inverse query expressions
  US7904880 * 17 Mar 2006 8 Mar 2011 Microsoft Corporation Generating and binding web services to application components
  US8145726 * 19 Sep 2005 27 Mar 2012 Amazon Technologies, Inc. Method and apparatus for web resource validation
  US8990271 12 Mar 2012 24 Mar 2015 International Business Machines Corporation Specifying data in a standards style pattern of service-oriented architecture (SOA) environments
  US9374437 * 30 Dec 2010 21 Jun 2016 Sap Se Schema validation proxy
  US20060047832 * 19 May 2005 2 Mar 2006 Christopher Betts Method and apparatus for processing web service messages
  US20070220115 * 17 Mar 2006 20 Sep 2007 Microsoft Corporation Generating and binding web services to application components
  US20100005478 * 2 Jul 2008 7 Jan 2010 Sap Portals Israel Ltd Method and apparatus for distributed application context aware transaction processing
  US20120173658 * 30 Dec 2010 5 Jul 2012 Sebastian Tussing Schema Validation Proxy
  EP1850552A1 24 Apr 2006 31 Oct 2007 Alcatel Lucent Method of handling XML messages in intermediate networks or intermediate network segments
  WO2016018402A1 * 31 Jul 2014 4 Feb 2016 Hewlett-Packard Development Company, L.P. Service request modification
  Cooperative Classification H04L69/329, H04L67/40, H04L67/28, H04L67/2819, H04L29/06, H04L29/12113, H04L61/1541
  European Classification H04L61/15C, H04L29/12A2C, H04L29/08N27, H04L29/06, H04L29/08N27E
  Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:XIE, NAN;SINGH, VEBHHAV;REEL/FRAME:014992/0509