US20070150546A1 - Web services runtime architecture - Google Patents

Web services runtime architecture Download PDF

Info

Publication number
US20070150546A1
US20070150546A1 US11/682,164 US68216407A US2007150546A1 US 20070150546 A1 US20070150546 A1 US 20070150546A1 US 68216407 A US68216407 A US 68216407A US 2007150546 A1 US2007150546 A1 US 2007150546A1
Authority
US
United States
Prior art keywords
web
service
web service
container
invocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/682,164
Inventor
Todd Karakashian
Manoj Cheenath
Adam Messinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEA Systems Inc
Original Assignee
BEA Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEA Systems Inc filed Critical BEA Systems Inc
Priority to US11/682,164 priority Critical patent/US20070150546A1/en
Publication of US20070150546A1 publication Critical patent/US20070150546A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms

Definitions

  • the present invention relates to the implementation of web services.
  • Web services are becoming an integral part of many application servers, with an importance that can rival HTTP or RMI stacks.
  • Java standards for Web services are being developed through the Java Community Process. Businesses are building important applications on top of Web services infrastructures, such as is available in WebLogic Server from BEA Systems of San Jose, Calif. Presently, however, there is no complete implementation of Web services upon which to build.
  • a system and method in accordance with the present invention overcome deficiencies in the prior art by utilizing a runtime architecture for Web services.
  • a container driver is used in the architecture for accepting an invoke request for Web services, such as from a protocol adapter.
  • the container driver can perform any data binding and unbinding required to process the invoke request, utilizing a plugin component such as a Java binding codec, SOAP codec, XML codec, or custom codecs.
  • An interceptor can receive the context information for the invoke request from the container driver and modify the message context to be used with Web services.
  • An invocation handler can receive the context information from the container driver after the message context has been modified by the interceptor. The invocation handler can pass parameters from the message context to the target of the request and process values returned from the target. The invocation handler can then pass these values to the container driver, such that the container driver can formulate a response to the invoke request. The response and message context can then be returned to the client or protocol adapter.
  • FIG. 1 is a diagram of a system in accordance with one embodiment of the present invention.
  • FIG. 2 is a diagram of a Web service container that can be used with the system of FIG. 1 .
  • FIG. 3 is a diagram of a Web service client that can be used with the system of FIG. 1 .
  • FIG. 4 is a flow chart of a method fo the present invention.
  • Systems and methods in accordance with one embodiment of the present invention can overcome deficiencies in existing Web service implementations by providing a more stable, complete implementation that is suitable as an application integration platform.
  • a Web services architecture can allow for communication over a number of transports/protocols.
  • HTTP can continue to be a primary transport mechanism for existing applications, while transport mechanisms such as SMTP, FTP, JMS, and file system mailboxes can also be supported.
  • Message formats such as SOAP 1.1 and 1.2 with attachments can be used as primary message formats. It is also possible to accept Web service requests that are XML-encoded and submitted via HTTP posts.
  • a Web services architecture can support plugging in other message formats and provide a mechanism for access to the raw message for user code.
  • a Web services architecture can utilize a stack that supports a standards-based default binding of fundamental XML data types supported in various Web service platforms.
  • An API can be used to allow other binding mechanisms to be plugged in.
  • the binding to be used can be specified on a per-operation basis.
  • a Web services architecture can support the processing of multiple message contexts, such as those related to security or conversation ID, and can offer user code access to these contexts. Many of these contexts can be encoded into a SOAP header, although it is also possible to include the contexts in the underlying protocol layer (e.g., cookies in HTTP) or in the body of the message (e.g., digital signatures).
  • a Web services container can explicitly process contexts associated with planned security features for Web services.
  • a Web services stack can support a number of dispatch and synchrony models. Dispatch to both stateless and stateful components can be supported, using both remote procedure call (RPC) and messaging invocation semantics. Synchronous and asynchronous processing of requests can also be supported. In particular, it can be possible to enqueue an incoming message, to enqueue an outbound message, and to make asynchronous outbound calls. Enqueuing involves downloading files, one at a time, from a queue.
  • RPC remote procedure call
  • a component such as a session EJB can be used to implement application-hosted Web services, such as for business logic.
  • An API can be provided for sophisticated users to integrate other types of components, even custom components, into a Web service mechanism. This may be used rarely, such as by developers who wish to build higher-level facilities and infrastructure on top of application-specific Web services.
  • a Web services architecture should not preclude the embedding of a Web service container in a lightweight server running in a more restricted Java platform, such as J2ME/CDC.
  • a very thin Web service Java client such as less than 100 kb, can also be supported.
  • Such an architecture should not preclude support for future Web service standards, such as JAX-RPC.
  • application-specific APIs can be defined for the implementation of Web services.
  • a runtime Web services architecture can support both synchronous and asynchronous (“one-way”) RPC style Web services, such as may be backended by an EJB.
  • Message-style Web services can also be supported, which allow content to be submitted to and received from a JMS destination.
  • Endpoints can be supported in a transport-specific way. These endpoints can associate a transport-specific address with a Web service. For instance, in HTTP a particular address can be associated with a Web service to be invoked. For SMTP an email address can be associated with a Web service.
  • FIG. 1 shows the relationship of a Web container 108 and SMTP listener 104 and a host server or Web service container 108 , utilizing an architecture in accordance with one embodiment of the present invention.
  • An HTTP protocol adapter 102 is shown in the Web container 100 .
  • a protocol adapter for HTTP 102 is shown in a Web container 100 , that can intercept a Web service invoke via HTTP from a Web services client.
  • a protocol adapter for SMTP 106 is also shown in an SMTP listener 104 , which can accept a Web service invoke via SMTP.
  • This architecture allows for pluggability in a number of places.
  • FIG. 2 shows a diagram of the architecture of the Web service container 108 of FIG. 1 .
  • the HTTP protocol adapter 102 of the Web container 100 is shown passing message context to, and receiving message context from, a container driver 200 .
  • the container driver 200 receives the message context from the protocol adapter 102 and sends the message context to the registered inbound interceptors 202 , 204 , 206 .
  • the container driver 200 After extracting the operation parameters and performing any necessary data binding, such as by using a Java Binding codec 222 , a SOAP codec 224 , an XML codec 226 , or a custom codec 228 , the container driver 200 submits the operation request to the appropriate invocation handler 208 , such as for EJB 210 or JMS 212 , or to a customized invocation handler 214 . After receiving data back from the invocation handler 208 , the container driver 200 can perform any data unbinding using the appropriate codecs 222 , 224 , 226 , 228 and send the response to the outbound interceptors 202 , 204 , 206 .
  • the appropriate invocation handler 208 such as for EJB 210 or JMS 212
  • the container driver 200 can perform any data unbinding using the appropriate codecs 222 , 224 , 226 , 228 and send the response to the outbound interceptors 202 , 204 ,
  • the container driver 200 can then return the response to the protocol adapter 102 .
  • the protocol adapter, interceptors, and invocation handler can each have access to an invocation context object 216 .
  • the invocation handler 208 can also provide context access to the component 218 to which it delegates, which can be contained in a component container 220 .
  • a message context is a representation of a Web service invocation flowing through a container.
  • a message context can contain a request message, which is the Web service request.
  • a message context can be rendered into the canonical form of SOAP plus attachments.
  • a response message is the Web services response, or at least a placeholder for the response if the response has not been formulated yet.
  • a response message can also be in the canonical form of SOAP plus attachments.
  • Transport information can contain relevant information that is specific to the transport over which the request came, and over which the response must be sent. For example, the transport information can contain the HTTP request and response streams for HTTP transport.
  • An invocation context can also be used, which is described below.
  • a protocol adapter can be inserted into the subsystem of a host server.
  • a protocol adapter can be responsible for processing incoming requests for a particular transport/protocol, such as HTTP or SMTP. This allows the Web service container to process Web service messages in various formats that are sent over multiple protocols. It will also allow the Web service container to reside in different kinds of servers.
  • One condition for a protocol adapter is that the host server can support the protocol and that the message format can be converted into SOAP internally. There are no known important message formats that cannot be expressed via SOAP.
  • a protocol adapter can be responsible for identifying requests as Web service messages, as well as routing the messages to a Web services container. If the protocol being used supports synchronous responses, a protocol adapter can also receive the response data and return the data to the originator of the request. The protocol adapter can convert the message to the original message format if it is not SOAP plus attachments.
  • a protocol adapter can deal with any message context that is required by the container, such as a conversation ID, and is transmitted at the protocol level, such as cookies in HTTP. The protocol adapter can propagate the message context to and from a Web services container.
  • protocol adapter functionality can depend on the architecture of the host server, as well as the way that the protocol is hosted in the server.
  • the functions of a protocol adapter can be implemented in part by the normal function of a Web container for an HTTP protocol. Due to the dependency of protocol processing on server internals, there may not be many public protocol adapter APIs.
  • An invocation context can be used, which is an inheritable thread-local object that can store arbitrary context data used in processing a Web service request.
  • the context can be available from various components of the architecture involved in the processing of the request and response. Typical data that might be stored in such a context are a conversation ID, a message sequence number, and a security token.
  • a particular invocation handler can choose to make the invocation context available to the target component. This can allow application code to read and write to the invocation context.
  • An architecture can utilize interceptors.
  • Interceptors are plugins that can provide access to inbound and outbound Web service messages.
  • An interceptor API can be public, and an implementation of an interceptor API can be part of a Web service application.
  • An interceptor can modify SOAP messages as required.
  • An interceptor can also read and write information on the invocation context. Interceptors can be associated with either operation, or with the namespace of the message body.
  • Header handlers can be used, for example, which operate only on message headers. Header handlers must declare which message headers they require so that the header information can be exposed, such as in the W3C Web service definition language (WSDL) generated for the Web service.
  • WSDL Web service definition language
  • Flow handlers can operate on full message content. Flow handlers do not require a declaration of which message parts are processed, and do not result in the existence of any additional information in the generated WSDL.
  • Application developers may use header handlers primarily, while business units that are building infrastructure on top of an application server may choose to use flow handlers. Both APIs, however, can be public.
  • XML serialization and deserialization plugins can be supported, which can handle the conversion of method parameters from XML to Java objects and return values from Java to XML.
  • Built-in mappings for the SOAP encoding data types can be included with an application server. The processing of literal XML data that is sent outside any encoding can also be supported, as well as Apache “Literal XML” encoding. Users can also implement their own custom data type mappings and plug those mappings in to handle custom data types.
  • a container driver can be used with a Web services architecture in accordance with one embodiment of the present invention.
  • a container driver can be thought of as the conceptual driver of a Web service container.
  • a container driver can implement the process flow involved in performing a Web service request.
  • the default target of a Web service invocation can be an EJB instance.
  • the default target can be a JMS destination.
  • An invocation handler can insulate the Web service container from details of the target object lifecycle, transaction management, and security policies.
  • the implementer of an invocation handler can be responsible for a number of tasks. These tasks can include: identifying a target object, performing any security checks, performing the invocation, collecting the response, and returning the response to the container driver.
  • the implementer can also be responsible for propagating any contextual state, such as a conversation ID or security role, as may be needed by a target component.
  • a protocol adapter can perform the following steps in one embodiment.
  • the protocol adapter can identify the invocation handler of the target component deployment, such as a stateless EJB adapter.
  • the protocol adapter can identify any additional configuration information needed by the invocation handler to resolve the service, such as the JNDI name of a deployed EJB home. This information can be in the deployment descriptor of the protocol adapter deployment, such as a service JNDI name, and/or the information could be in the headers or body of the request or in the protocol.
  • a protocol adapter can identify the style of a Web service request, such as one-way RPC, synchronous RPC, or messaging. If necessary, a protocol adapter can convert an incoming request message into the SOAP with attachments canonical form. A protocol adapter can create a message context containing the request, a placeholder for a response, information about the transport, and information about the target invocation handler. A protocol adapter can also dispatch message context configuration to the Web service container.
  • a container driver can manage the flow of processing in the container.
  • the container driver can receive the message context from the protocol adapter and, in one embodiment, sequentially performs the following steps.
  • the container driver can dispatch to registered inbound interceptors, extract operation parameters, and perform data binding.
  • the container driver can submit the operation request to the appropriate invocation handler, which can delegate the invoke to a target object.
  • the container driver can receive a response from the invocation handler, possibly including a return value. If there is a return value, the container driver can perform data unbinding. If the synchrony model is request-response, the container driver can formulate a SOAP response. The response can be dispatched to registered outbound interceptors and returned to the protocol adapter for return to the caller.
  • the protocol adapter can return the SOAP response to the caller, converting the response back to the original message format if it was not SOAP.
  • the protocol adapter, interceptors, and invocation handler can each have access to the invocation context object. Any necessary state needed during request processing can be propagated through this context.
  • the invocation handler can also provide access to the context, such as to the component to which the invocation handler delegates.
  • An invocation handler that has been targeted to process an invoke can receive the following data from the container: the operation name, an array of Java Object parameters, any invocation handler configuration data, and the invocation context.
  • the invocation handler can perform the invocation and return an array of Java Object return values.
  • An invocation handler can perform the following steps for one method in accordance with the present invention.
  • a target object can be identified for the invocation.
  • the invocation can be performed bypassing the parameters to the target.
  • the invocation context object can be provided to the target.
  • a transaction, security, or component-specific context can be passed to the target object. Any return value(s) from the target can be processed and returned to the container driver.
  • An API can be used for invocation handlers.
  • Invocation handlers can be configured when the protocol adapter is deployed.
  • the HTTP protocol handler can be a Web application.
  • EJB invocation handlers can require a service identity, such as the JNDI name of the EJB home, and possibly a conversation ID, which can be extracted from a cookie, in the case of stateful EJB targets.
  • the body of the request can indicate the operation name that will be mapped to the proper method call on the EJB.
  • a stateless EJB invocation handler can be used to dispatch Web service invokes to an EJB. This handler can require the JNDI name of the stateless EJB home. The handler can obtain an instance of the EJB and can dispatch the invoke and return the return value, if there is one.
  • a stateful session EJB invocation handler can be used to dispatch invokes to a stateful session bean.
  • the handler can require the JNDI name of the stateful EJB home, as well as a conversation ID, which can be extracted from the message.
  • the default approach for HTTP can be to extract the conversation ID from a cookie in the HTTP protocol handler and to put it in the invocation context under a documented name. If this default behavior is not suitable, the developer can provide a header handler that extracts the conversation ID from message headers and places the ID in the invocation context.
  • a stateful session bean (SFSB) invocation handler can maintain a table of mappings between a conversation ID and EJB handles. If no conversation ID is found, the stateful EJB invocation handler can create a new conversation ID, a new session bean instance, and can add its handle to the mapping table. The invoke can then be dispatched to the SFSB referenced by the handle.
  • SFSB stateful session bean
  • a JMS invocation handler can dispatch the body of a SOAP message to a JMS destination.
  • the handler can require the JNDI name of the destination, the JNDI name of the connection factory, and the destination type.
  • the configuration of protocol handlers can involve specifying the mapping between Web service endpoint URIs, such as URLs in the case of HTTP or email addresses in the case of SMTP, and the name of an invocation handler.
  • a particular invocation handler can require additional configuration information, such as the JNDI-name of a target EJB deployment.
  • An HTTP protocol handler can be a special Web application that is automatically deployed when a Web archive file (WAR) is deployed.
  • the URL mappings to invocation handlers can be extracted from the WSP (“Web service provider”) description of the Web service.
  • An HTTP protocol handler can map HTTP headers to the invocation context and can attempt to extract a conversation ID from an HTTP cookie, if one is present.
  • An SMTP Protocol Handler can also be utilized.
  • An HTTP-based Web Service can be packaged in and deployed from a J2EE WAR that is contained inside a J2EE Enterprise Archive File (EAR).
  • the WAR can contain a Web service WSP document, which defines a Web service.
  • the WSP can describe the shape of the Web service and how the implementation maps to backend components.
  • a WSP can be referenced in the URL of a Web service, like a JSP. It can also allow reference to user-defined tags, like a JSP which can integrate user-developed functions into the definition of the Web service. It can also support the scripting of Web service functions. Unlike a JSP, however, a WSP may not compile down to a servlet.
  • the WSP can be directly utilized by the Web service runtime.
  • the remaining contents of the EAR can include EJB-JARs or other classes that are part of the implementation of the Web service.
  • a Web container can manage the deployment of HTTP WSPs in a similar manner to JSPs. There can be a default WSP servlet registered with each Web application that intercepts requests for WSPs. The default servlet can then redirect each request to the appropriate WSP handler.
  • a user can open a Web application in a console, or in a console view, and can view the names of the WSPs that are part of that Web application. It can be necessary to modify an MBean, such as WebAppComponentMBean, on order to provide a list of WSPs.
  • an MBean such as WebAppComponentMBean
  • Java-based Web services client distributions can be used with services hosted on many different platforms.
  • a full set of features supported on a client can include:
  • JAX-RPC client API including synchronous and “one-way” RPC invokes
  • a J2SE Web Service client which can have a footprint of around 1 MB, can be full-featured. SSL and JCE security functions can be included in separate jars. This client can run in regular VM environments, such as those hosting application servers.
  • a J2ME/CDC thin client can have a limited set of features, but can be designed to run in a J2ME CDC profile on devices.
  • a JDK 1.1 thin client can have a limited set of features, but can be intended to run in JDK 1.1 virtual machines, including those hosting applets.
  • Client distributions can include classes needed to invoke Web services in “dynamic” mode. Utilities can be provided to generate static stubs and Java interfaces, if given WSDL service descriptions.
  • a JavaTM 2 Platform, Standard Edition (J2SE) Web service client can be a standard, full-featured client, which can be intended to run inside an application server.
  • the client can be included in a regular server distribution, and can also be available in a separate jar so that it may be included in other J2EE or “fat client” JVMs. There may be no size restriction on this client.
  • the client can utilize JDK 1.3.
  • FIG. 3 shows an architecture of the client-side for a J2SE Web Service client 318 in accordance with one embodiment of the present invention.
  • the client is closely related to the Web service container.
  • the client can be an embeddable Web service container that can run in lighter weight servers. This can allow asynchronous callbacks to be invoked on the client.
  • the HTTP protocol adapter 102 of the Web container 100 is shown passing message context to, and receiving message context from, a container driver 300 .
  • the container driver 300 can receive message context from the protocol adapter 102 and send the message context to the registered inbound interceptors 302 , 304 , 306 .
  • the container driver 300 can return the data to the client stub 308 .
  • the container driver 300 can perform any data binding or unbinding using the appropriate codecs 310 , 312 , 314 , 316 and send the invoke request to the outbound interceptors 302 , 304 , 306 .
  • the container driver 300 can then send message context for the invoke to the protocol adapter 102 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

A runtime architecture for Web services utilizes a container driver to accept an invoke request for Web services. The container driver performs any necessary data binding/unbinding required to process the invoke request and associated message context, utilizing an appropriate plugin component. An interceptor receives the context information and modifies the message context for Web service compatibility. An invocation handler receives the formatted context information and passes parameters from the message context to the target of the request. The invocation handler processes values returned from the target and passes them to the container driver, which can formulate and return a response, along with the message context, to the client or protocol adapter. This description is not intended to be a complete description of, or limit the scope of, the invention. Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.

Description

    CLAIM OF PRIORITY
  • This application is a Continuation of and claims priority to U.S. patent application Ser. No. 10/366,236, filed Feb. 13, 2003, entitled “WEB SERVICES RUNTIME ARCHITECTURE,” which application claims priority to U.S. Provisional Patent Application No. 60/359,098, filed Feb. 22, 2002, entitled “WEB SERVICES RUNTIME ARCHITECTURE,” as well as U.S. Provisional Patent Application No. 60/359,231, filed Feb. 22, 2002, entitled “WEB SERVICES PROGRAMMING AND DEPLOYMENT,” each of which is hereby incorporated herein by reference.
  • COPYRIGHT NOTICE
  • A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document of the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
  • FIELD OF THE INVENTION
  • The present invention relates to the implementation of web services.
  • BACKGROUND
  • Web services are becoming an integral part of many application servers, with an importance that can rival HTTP or RMI stacks. Java standards for Web services are being developed through the Java Community Process. Businesses are building important applications on top of Web services infrastructures, such as is available in WebLogic Server from BEA Systems of San Jose, Calif. Presently, however, there is no complete implementation of Web services upon which to build.
  • BRIEF SUMMARY
  • A system and method in accordance with the present invention overcome deficiencies in the prior art by utilizing a runtime architecture for Web services. A container driver is used in the architecture for accepting an invoke request for Web services, such as from a protocol adapter. The container driver can perform any data binding and unbinding required to process the invoke request, utilizing a plugin component such as a Java binding codec, SOAP codec, XML codec, or custom codecs.
  • An interceptor can receive the context information for the invoke request from the container driver and modify the message context to be used with Web services. An invocation handler can receive the context information from the container driver after the message context has been modified by the interceptor. The invocation handler can pass parameters from the message context to the target of the request and process values returned from the target. The invocation handler can then pass these values to the container driver, such that the container driver can formulate a response to the invoke request. The response and message context can then be returned to the client or protocol adapter.
  • Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagram of a system in accordance with one embodiment of the present invention.
  • FIG. 2 is a diagram of a Web service container that can be used with the system of FIG. 1.
  • FIG. 3 is a diagram of a Web service client that can be used with the system of FIG. 1.
  • FIG. 4 is a flow chart of a method fo the present invention.
  • DETAILED DESCRIPTION
  • Systems and methods in accordance with one embodiment of the present invention can overcome deficiencies in existing Web service implementations by providing a more stable, complete implementation that is suitable as an application integration platform.
  • A Web services architecture can allow for communication over a number of transports/protocols. HTTP can continue to be a primary transport mechanism for existing applications, while transport mechanisms such as SMTP, FTP, JMS, and file system mailboxes can also be supported.
  • Message formats such as SOAP 1.1 and 1.2 with attachments can be used as primary message formats. It is also possible to accept Web service requests that are XML-encoded and submitted via HTTP posts. A Web services architecture can support plugging in other message formats and provide a mechanism for access to the raw message for user code.
  • A Web services architecture can utilize a stack that supports a standards-based default binding of fundamental XML data types supported in various Web service platforms. An API can be used to allow other binding mechanisms to be plugged in. The binding to be used can be specified on a per-operation basis.
  • Various security and messaging standards require a context or state to be associated with Web service messages. A Web services architecture can support the processing of multiple message contexts, such as those related to security or conversation ID, and can offer user code access to these contexts. Many of these contexts can be encoded into a SOAP header, although it is also possible to include the contexts in the underlying protocol layer (e.g., cookies in HTTP) or in the body of the message (e.g., digital signatures). A Web services container can explicitly process contexts associated with planned security features for Web services.
  • A Web services stack can support a number of dispatch and synchrony models. Dispatch to both stateless and stateful components can be supported, using both remote procedure call (RPC) and messaging invocation semantics. Synchronous and asynchronous processing of requests can also be supported. In particular, it can be possible to enqueue an incoming message, to enqueue an outbound message, and to make asynchronous outbound calls. Enqueuing involves downloading files, one at a time, from a queue.
  • A component such as a session EJB can be used to implement application-hosted Web services, such as for business logic. An API can be provided for sophisticated users to integrate other types of components, even custom components, into a Web service mechanism. This may be used rarely, such as by developers who wish to build higher-level facilities and infrastructure on top of application-specific Web services.
  • A Web services architecture should not preclude the embedding of a Web service container in a lightweight server running in a more restricted Java platform, such as J2ME/CDC. A very thin Web service Java client, such as less than 100 kb, can also be supported. Such an architecture should not preclude support for future Web service standards, such as JAX-RPC. However, due to the present lack of maturity and quality of Java Web Service standards, application-specific APIs can be defined for the implementation of Web services.
  • A runtime Web services architecture can support both synchronous and asynchronous (“one-way”) RPC style Web services, such as may be backended by an EJB. Message-style Web services can also be supported, which allow content to be submitted to and received from a JMS destination. Endpoints can be supported in a transport-specific way. These endpoints can associate a transport-specific address with a Web service. For instance, in HTTP a particular address can be associated with a Web service to be invoked. For SMTP an email address can be associated with a Web service.
  • FIG. 1 shows the relationship of a Web container 108 and SMTP listener 104 and a host server or Web service container 108, utilizing an architecture in accordance with one embodiment of the present invention. An HTTP protocol adapter 102 is shown in the Web container 100. A protocol adapter for HTTP 102 is shown in a Web container 100, that can intercept a Web service invoke via HTTP from a Web services client. A protocol adapter for SMTP 106 is also shown in an SMTP listener 104, which can accept a Web service invoke via SMTP. This architecture allows for pluggability in a number of places.
  • FIG. 2 shows a diagram of the architecture of the Web service container 108 of FIG. 1. The HTTP protocol adapter 102 of the Web container 100 is shown passing message context to, and receiving message context from, a container driver 200. The container driver 200 receives the message context from the protocol adapter 102 and sends the message context to the registered inbound interceptors 202, 204, 206. After extracting the operation parameters and performing any necessary data binding, such as by using a Java Binding codec 222, a SOAP codec 224, an XML codec 226, or a custom codec 228, the container driver 200 submits the operation request to the appropriate invocation handler 208, such as for EJB 210 or JMS 212, or to a customized invocation handler 214. After receiving data back from the invocation handler 208, the container driver 200 can perform any data unbinding using the appropriate codecs 222, 224, 226, 228 and send the response to the outbound interceptors 202, 204, 206. The container driver 200 can then return the response to the protocol adapter 102. The protocol adapter, interceptors, and invocation handler can each have access to an invocation context object 216. The invocation handler 208 can also provide context access to the component 218 to which it delegates, which can be contained in a component container 220.
  • A message context is a representation of a Web service invocation flowing through a container. A message context can contain a request message, which is the Web service request. A message context can be rendered into the canonical form of SOAP plus attachments. A response message is the Web services response, or at least a placeholder for the response if the response has not been formulated yet. A response message can also be in the canonical form of SOAP plus attachments. Transport information can contain relevant information that is specific to the transport over which the request came, and over which the response must be sent. For example, the transport information can contain the HTTP request and response streams for HTTP transport. An invocation context can also be used, which is described below.
  • A protocol adapter can be inserted into the subsystem of a host server. A protocol adapter can be responsible for processing incoming requests for a particular transport/protocol, such as HTTP or SMTP. This allows the Web service container to process Web service messages in various formats that are sent over multiple protocols. It will also allow the Web service container to reside in different kinds of servers. One condition for a protocol adapter is that the host server can support the protocol and that the message format can be converted into SOAP internally. There are no known important message formats that cannot be expressed via SOAP.
  • A protocol adapter can be responsible for identifying requests as Web service messages, as well as routing the messages to a Web services container. If the protocol being used supports synchronous responses, a protocol adapter can also receive the response data and return the data to the originator of the request. The protocol adapter can convert the message to the original message format if it is not SOAP plus attachments. A protocol adapter can deal with any message context that is required by the container, such as a conversation ID, and is transmitted at the protocol level, such as cookies in HTTP. The protocol adapter can propagate the message context to and from a Web services container.
  • The actual implementation of protocol adapter functionality can depend on the architecture of the host server, as well as the way that the protocol is hosted in the server. For example, the functions of a protocol adapter can be implemented in part by the normal function of a Web container for an HTTP protocol. Due to the dependency of protocol processing on server internals, there may not be many public protocol adapter APIs.
  • An invocation context can be used, which is an inheritable thread-local object that can store arbitrary context data used in processing a Web service request. The context can be available from various components of the architecture involved in the processing of the request and response. Typical data that might be stored in such a context are a conversation ID, a message sequence number, and a security token. A particular invocation handler can choose to make the invocation context available to the target component. This can allow application code to read and write to the invocation context.
  • An architecture can utilize interceptors. Interceptors are plugins that can provide access to inbound and outbound Web service messages. An interceptor API can be public, and an implementation of an interceptor API can be part of a Web service application. An interceptor can modify SOAP messages as required. An interceptor can also read and write information on the invocation context. Interceptors can be associated with either operation, or with the namespace of the message body.
  • There are different types of interceptors. Header handlers can be used, for example, which operate only on message headers. Header handlers must declare which message headers they require so that the header information can be exposed, such as in the W3C Web service definition language (WSDL) generated for the Web service. Flow handlers, on the other hand, can operate on full message content. Flow handlers do not require a declaration of which message parts are processed, and do not result in the existence of any additional information in the generated WSDL. Application developers may use header handlers primarily, while business units that are building infrastructure on top of an application server may choose to use flow handlers. Both APIs, however, can be public.
  • XML serialization and deserialization plugins can be supported, which can handle the conversion of method parameters from XML to Java objects and return values from Java to XML. Built-in mappings for the SOAP encoding data types can be included with an application server. The processing of literal XML data that is sent outside any encoding can also be supported, as well as Apache “Literal XML” encoding. Users can also implement their own custom data type mappings and plug those mappings in to handle custom data types.
  • A container driver can be used with a Web services architecture in accordance with one embodiment of the present invention. A container driver can be thought of as the conceptual driver of a Web service container. A container driver can implement the process flow involved in performing a Web service request.
  • For RPC Web services hosted on an application server, the default target of a Web service invocation can be an EJB instance. For message-style Web services, the default target can be a JMS destination. In certain cases, it may be desirable to allow other components or subsystems as targets. People can build middleware infrastructure on top of application servers to require this functionality. Therefore, an invocation handler API can be supported to allow the Web service requests to be targeted at different components besides EJBs.
  • An invocation handler can insulate the Web service container from details of the target object lifecycle, transaction management, and security policies. The implementer of an invocation handler can be responsible for a number of tasks. These tasks can include: identifying a target object, performing any security checks, performing the invocation, collecting the response, and returning the response to the container driver. The implementer can also be responsible for propagating any contextual state, such as a conversation ID or security role, as may be needed by a target component.
  • A protocol adapter can perform the following steps in one embodiment. The protocol adapter can identify the invocation handler of the target component deployment, such as a stateless EJB adapter. The protocol adapter can identify any additional configuration information needed by the invocation handler to resolve the service, such as the JNDI name of a deployed EJB home. This information can be in the deployment descriptor of the protocol adapter deployment, such as a service JNDI name, and/or the information could be in the headers or body of the request or in the protocol.
  • A protocol adapter can identify the style of a Web service request, such as one-way RPC, synchronous RPC, or messaging. If necessary, a protocol adapter can convert an incoming request message into the SOAP with attachments canonical form. A protocol adapter can create a message context containing the request, a placeholder for a response, information about the transport, and information about the target invocation handler. A protocol adapter can also dispatch message context configuration to the Web service container.
  • A container driver can manage the flow of processing in the container. The container driver can receive the message context from the protocol adapter and, in one embodiment, sequentially performs the following steps. The container driver can dispatch to registered inbound interceptors, extract operation parameters, and perform data binding. The container driver can submit the operation request to the appropriate invocation handler, which can delegate the invoke to a target object. The container driver can receive a response from the invocation handler, possibly including a return value. If there is a return value, the container driver can perform data unbinding. If the synchrony model is request-response, the container driver can formulate a SOAP response. The response can be dispatched to registered outbound interceptors and returned to the protocol adapter for return to the caller.
  • The protocol adapter can return the SOAP response to the caller, converting the response back to the original message format if it was not SOAP. The protocol adapter, interceptors, and invocation handler can each have access to the invocation context object. Any necessary state needed during request processing can be propagated through this context. The invocation handler can also provide access to the context, such as to the component to which the invocation handler delegates.
  • An invocation handler that has been targeted to process an invoke can receive the following data from the container: the operation name, an array of Java Object parameters, any invocation handler configuration data, and the invocation context. The invocation handler can perform the invocation and return an array of Java Object return values.
  • An invocation handler can perform the following steps for one method in accordance with the present invention. A target object can be identified for the invocation. The invocation can be performed bypassing the parameters to the target. The invocation context object can be provided to the target. Also, a transaction, security, or component-specific context can be passed to the target object. Any return value(s) from the target can be processed and returned to the container driver.
  • An API can be used for invocation handlers. Invocation handlers can be configured when the protocol adapter is deployed. For example, the HTTP protocol handler can be a Web application.
  • Many types of built-in invocation handlers can be used. One such invocation handler is an EJB invocation handler. EJB invocation handlers can require a service identity, such as the JNDI name of the EJB home, and possibly a conversation ID, which can be extracted from a cookie, in the case of stateful EJB targets. The body of the request can indicate the operation name that will be mapped to the proper method call on the EJB.
  • A stateless EJB invocation handler can be used to dispatch Web service invokes to an EJB. This handler can require the JNDI name of the stateless EJB home. The handler can obtain an instance of the EJB and can dispatch the invoke and return the return value, if there is one.
  • A stateful session EJB invocation handler can be used to dispatch invokes to a stateful session bean. The handler can require the JNDI name of the stateful EJB home, as well as a conversation ID, which can be extracted from the message. The default approach for HTTP can be to extract the conversation ID from a cookie in the HTTP protocol handler and to put it in the invocation context under a documented name. If this default behavior is not suitable, the developer can provide a header handler that extracts the conversation ID from message headers and places the ID in the invocation context.
  • A stateful session bean (SFSB) invocation handler can maintain a table of mappings between a conversation ID and EJB handles. If no conversation ID is found, the stateful EJB invocation handler can create a new conversation ID, a new session bean instance, and can add its handle to the mapping table. The invoke can then be dispatched to the SFSB referenced by the handle.
  • A JMS invocation handler can dispatch the body of a SOAP message to a JMS destination. The handler can require the JNDI name of the destination, the JNDI name of the connection factory, and the destination type.
  • The configuration of protocol handlers can involve specifying the mapping between Web service endpoint URIs, such as URLs in the case of HTTP or email addresses in the case of SMTP, and the name of an invocation handler. A particular invocation handler can require additional configuration information, such as the JNDI-name of a target EJB deployment.
  • An HTTP protocol handler can be a special Web application that is automatically deployed when a Web archive file (WAR) is deployed. The URL mappings to invocation handlers can be extracted from the WSP (“Web service provider”) description of the Web service. An HTTP protocol handler can map HTTP headers to the invocation context and can attempt to extract a conversation ID from an HTTP cookie, if one is present. An SMTP Protocol Handler can also be utilized.
  • An HTTP-based Web Service can be packaged in and deployed from a J2EE WAR that is contained inside a J2EE Enterprise Archive File (EAR). The WAR can contain a Web service WSP document, which defines a Web service. The WSP can describe the shape of the Web service and how the implementation maps to backend components. A WSP can be referenced in the URL of a Web service, like a JSP. It can also allow reference to user-defined tags, like a JSP which can integrate user-developed functions into the definition of the Web service. It can also support the scripting of Web service functions. Unlike a JSP, however, a WSP may not compile down to a servlet. The WSP can be directly utilized by the Web service runtime.
  • The remaining contents of the EAR can include EJB-JARs or other classes that are part of the implementation of the Web service.
  • A Web container can manage the deployment of HTTP WSPs in a similar manner to JSPs. There can be a default WSP servlet registered with each Web application that intercepts requests for WSPs. The default servlet can then redirect each request to the appropriate WSP handler.
  • A user can open a Web application in a console, or in a console view, and can view the names of the WSPs that are part of that Web application. It can be necessary to modify an MBean, such as WebAppComponentMBean, on order to provide a list of WSPs.
  • Java-based Web services client distributions can be used with services hosted on many different platforms. A full set of features supported on a client can include:
  • HTTP protocol with cookie support
  • SOAP 1.2 with attachments
  • JAX-RPC client API, including synchronous and “one-way” RPC invokes
  • Header Handler and Flow Handler API
  • Message-style Web service client API
  • Support for “dynamic mode” (no Java interfaces or WSDL required)
  • Support for “static mode” (Java interfaces and service stubs required)
  • The full set of SOAP encodings+Literal XML+support for custom encodings
  • Security support:
      • 128-bit two-way SSL
      • Digital Signatures
      • XML Data Encryption
        There is an inherent tradeoff between the “thinness” of a client and the richness of features that can be supported. To accommodate customers with differing needs regarding features and footprint, several different client runtime distributions can be offered with varying levels of features.
  • A J2SE Web Service client, which can have a footprint of around 1 MB, can be full-featured. SSL and JCE security functions can be included in separate jars. This client can run in regular VM environments, such as those hosting application servers. A J2ME/CDC thin client can have a limited set of features, but can be designed to run in a J2ME CDC profile on devices. A JDK 1.1 thin client can have a limited set of features, but can be intended to run in JDK 1.1 virtual machines, including those hosting applets.
  • Client distributions can include classes needed to invoke Web services in “dynamic” mode. Utilities can be provided to generate static stubs and Java interfaces, if given WSDL service descriptions.
  • A Java™ 2 Platform, Standard Edition (J2SE) Web service client can be a standard, full-featured client, which can be intended to run inside an application server. The client can be included in a regular server distribution, and can also be available in a separate jar so that it may be included in other J2EE or “fat client” JVMs. There may be no size restriction on this client. The client can utilize JDK 1.3.
  • FIG. 3 shows an architecture of the client-side for a J2SE Web Service client 318 in accordance with one embodiment of the present invention. The client is closely related to the Web service container. The client can be an embeddable Web service container that can run in lighter weight servers. This can allow asynchronous callbacks to be invoked on the client.
  • In FIG. 3, the HTTP protocol adapter 102 of the Web container 100 is shown passing message context to, and receiving message context from, a container driver 300. The container driver 300 can receive message context from the protocol adapter 102 and send the message context to the registered inbound interceptors 302, 304, 306. After extracting performing any necessary data binding or unbinding, such as by using a Java Binding codec 310, a SOAP codec 312, an XML codec 314, or a custom codec 316, the container driver 300 can return the data to the client stub 308. If receiving invoke data from the client stub 308, the container driver 300 can perform any data binding or unbinding using the appropriate codecs 310, 312, 314, 316 and send the invoke request to the outbound interceptors 302, 304, 306. The container driver 300 can then send message context for the invoke to the protocol adapter 102.
  • The foregoing description of preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to one of ordinary skill in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence.

Claims (17)

1. A system for asynchronous invocation of a web service by a web services client using Java Messaging Service protocol comprising:
a web container that provides an end point for a Java Messaging Service protocol based web service;
a Java Messaging Service invocation handler that receives a web service request from the web container, wherein said web service request includes a SOAP message; and,
a Java Messaging Service destination that receives a body of the web service request's SOAP message dispatched by the invocation handler, wherein the Java Messaging Service destination provides a web service response for the web service client to retrieve at a later point of time.
2. The system of claim 1, wherein the Java Messaging Service invocation handler is in the web container.
3. The system of claim 1, wherein the Java Messaging Service destination is in the web container.
4. The system of claim 1, wherein the Java Messaging Service destination is a web service.
5. A system for invocation of a web service by a web services client using Java Messaging Service protocol comprising:
a web container that provides an end point for a Java Messaging Service protocol based web service;
a Java Messaging Service invocation handler that receives a web service request from the web container, wherein said web service request includes a SOAP message; and,
a Java Messaging Service destination that receives a body of the web service request's SOAP message dispatched by the invocation handler, wherein the Java Messaging Service destination provides a web service response for the web service client via the Java Messaging Service invocation handler and the web container.
6. The system of claim 5, wherein the Java Messaging Service invocation handler is in the web container.
7. The system of claim 5, wherein the Java Messaging Service destination is in the web container.
8. The system of claim 5, wherein the Java Messaging Service destination is a web service.
9. A web service system wherein messages to the web service use Java Messaging Service to asynchronously communicate with a service requester.
10. The web service system of claim 9, wherein the system includes a web container.
11. The system of claim 10, wherein the web container contains a Java Messaging Service invocation handler.
12. The system of claim 10, wherein, the web container contains a Java Messaging Service destination.
13. A web service system wherein messages to the web service from a service requester are asynchronous.
14. The web service system of claim 13, wherein the system uses Java Messaging Service to send the messages.
15. The web service system of claim 14, wherein the system includes a web container.
16. The web service system of claim 15, wherein the web container contains a Java Messaging Service invocation handler.
17. The web service system of claim 15, wherein, the web container contains a Java Messaging Service destination.
US11/682,164 2002-02-22 2007-03-05 Web services runtime architecture Abandoned US20070150546A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/682,164 US20070150546A1 (en) 2002-02-22 2007-03-05 Web services runtime architecture

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US35923102P 2002-02-22 2002-02-22
US35909802P 2002-02-22 2002-02-22
US10/366,236 US20040015578A1 (en) 2002-02-22 2003-02-13 Web services runtime architecture
US11/682,164 US20070150546A1 (en) 2002-02-22 2007-03-05 Web services runtime architecture

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/366,236 Continuation US20040015578A1 (en) 2002-02-22 2003-02-13 Web services runtime architecture

Publications (1)

Publication Number Publication Date
US20070150546A1 true US20070150546A1 (en) 2007-06-28

Family

ID=27767562

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/366,236 Abandoned US20040015578A1 (en) 2002-02-22 2003-02-13 Web services runtime architecture
US10/366,246 Active 2026-02-14 US7693955B2 (en) 2002-02-22 2003-02-13 System and method for deploying a web service
US11/682,164 Abandoned US20070150546A1 (en) 2002-02-22 2007-03-05 Web services runtime architecture

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/366,236 Abandoned US20040015578A1 (en) 2002-02-22 2003-02-13 Web services runtime architecture
US10/366,246 Active 2026-02-14 US7693955B2 (en) 2002-02-22 2003-02-13 System and method for deploying a web service

Country Status (2)

Country Link
US (3) US20040015578A1 (en)
WO (1) WO2003073308A1 (en)

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060041896A1 (en) * 2004-08-06 2006-02-23 Atsuko Yagi Service request apparatus, service request method, service request program product and computer-readable recording medium, service providing apparatus, and service providing method, service providing program product and computer-readable recording medium
US20060224424A1 (en) * 2005-04-05 2006-10-05 International Business Machines Corporation Business context services for adaptable service oriented architecture components
US20060242187A1 (en) * 2005-04-26 2006-10-26 Michael Scharf Type safe data proxy
US20060288018A1 (en) * 2005-06-20 2006-12-21 Afshan Ally Loose coupling of Web services
US20070067384A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for web services configuration creation and validation
US20070067388A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for configuration to web services descriptor
US20070079007A1 (en) * 2005-09-20 2007-04-05 Microsoft Corporation Modifying service provider context information to facilitate locating interceptor context information
US20070124276A1 (en) * 2003-09-23 2007-05-31 Salesforce.Com, Inc. Method of improving a query to a database system
US20070156756A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Web services deployment
US20070156859A1 (en) * 2005-12-30 2007-07-05 Savchenko Vladimir S Web services archive
US20070156872A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US20070174288A1 (en) * 2005-12-30 2007-07-26 Stoyanova Dimitrina G Apparatus and method for web service client deployment
US7487510B1 (en) * 2003-04-30 2009-02-03 Sun Microsystems, Inc. Method and apparatus to isolate changes in remoting system clients
US20090106350A1 (en) * 2007-10-23 2009-04-23 Ying Chen Method and apparatus for dynamic web service client application update
US7533156B1 (en) 2005-04-28 2009-05-12 Sun Microsystems, Inc. Method and apparatus for RMI-IIOP implementation with java serialization
US20090132642A1 (en) * 2007-11-15 2009-05-21 Microsoft Corporation Delegating application invocation back to client
US20090150910A1 (en) * 2007-12-10 2009-06-11 Microsoft Corporation Service platform for in-context results
US7574710B1 (en) 2005-04-28 2009-08-11 Sun Microsystems, Inc. Method and apparatus for determining data encoding format in RMI-IIOP messages
US20090228804A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Service Preview And Access From an Application Page
US20100082753A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Role-independent context exchange
US7774456B1 (en) * 2004-02-27 2010-08-10 Packeteer, Inc. Methods, apparatuses and systems facilitating classification of web services network traffic
US20100211619A1 (en) * 2003-09-23 2010-08-19 Salesforce.Com, Inc. Distributive storage techniques for multi-tenant databases
US20100223284A1 (en) * 2005-09-09 2010-09-02 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US7831633B1 (en) * 2004-12-22 2010-11-09 Actuate Corporation Methods and apparatus for implementing a custom driver for accessing a data source
US20110234482A1 (en) * 2010-03-26 2011-09-29 Salesforce.Com, Inc. Techniques for interpreting signals from computer input devices
US8078671B2 (en) 2005-09-21 2011-12-13 Sap Ag System and method for dynamic web services descriptor generation using templates
US8296321B2 (en) 2009-02-11 2012-10-23 Salesforce.Com, Inc. Techniques for changing perceivable stimuli associated with a user interface for an on-demand database service
US8443366B1 (en) 2009-12-11 2013-05-14 Salesforce.Com, Inc. Techniques for establishing a parallel processing framework for a multi-tenant on-demand database system
US8473469B1 (en) 2008-08-25 2013-06-25 Salesforce.Com, Inc. Techniques for implementing batch processing in a multi-tenant on-demand database system
US8473518B1 (en) 2008-07-03 2013-06-25 Salesforce.Com, Inc. Techniques for processing group membership data in a multi-tenant database system
US20130275489A1 (en) * 2012-04-12 2013-10-17 Oracle International Corporation Integration of web services with a clustered actor based model
US8595181B2 (en) 2010-05-03 2013-11-26 Salesforce.Com, Inc. Report preview caching techniques in a multi-tenant database
US8776067B1 (en) 2009-12-11 2014-07-08 Salesforce.Com, Inc. Techniques for utilizing computational resources in a multi-tenant on-demand database system
US8819632B2 (en) 2010-07-09 2014-08-26 Salesforce.Com, Inc. Techniques for distributing information in a computer network related to a software anomaly
US8972431B2 (en) 2010-05-06 2015-03-03 Salesforce.Com, Inc. Synonym supported searches
US8977739B2 (en) 2010-05-03 2015-03-10 Salesforce.Com, Inc. Configurable frame work for testing and analysis of client-side web browser page performance
US8977675B2 (en) 2010-03-26 2015-03-10 Salesforce.Com, Inc. Methods and systems for providing time and date specific software user interfaces
US9069901B2 (en) 2010-08-19 2015-06-30 Salesforce.Com, Inc. Software and framework for reusable automated testing of computer software systems
US20150381742A1 (en) * 2014-06-30 2015-12-31 Verizon Patent And Licensing Inc. Automated web services validation
US9361366B1 (en) 2008-06-03 2016-06-07 Salesforce.Com, Inc. Method and system for controlling access to a multi-tenant database system using a virtual portal
US10262006B2 (en) 2016-04-29 2019-04-16 Microsoft Technology Licensing, Llc Contextually triggered entry point
US10482425B2 (en) 2009-09-29 2019-11-19 Salesforce.Com, Inc. Techniques for managing functionality changes of an on-demand database system
US10713230B2 (en) 2004-04-02 2020-07-14 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590987B2 (en) * 2002-06-05 2009-09-15 Sap Ag Apparatus and method for integrating variable subsidiary information with main office information in an enterprise system
US20040177335A1 (en) * 2003-03-04 2004-09-09 International Business Machines Corporation Enterprise services application program development model
US20040205216A1 (en) * 2003-03-19 2004-10-14 Ballinger Keith W. Efficient message packaging for transport
US7209929B2 (en) * 2003-04-17 2007-04-24 Salesforce.Com, Inc. Java object cache server for databases
US20040262502A1 (en) * 2003-06-26 2004-12-30 Xerox Corporation Position encoder
US20050015340A1 (en) * 2003-06-27 2005-01-20 Oracle International Corporation Method and apparatus for supporting service enablers via service request handholding
US20050027853A1 (en) * 2003-07-28 2005-02-03 Martin Terry M. System and method for collecting data regarding network service operation
US20050038708A1 (en) * 2003-08-10 2005-02-17 Gmorpher Incorporated Consuming Web Services on Demand
US7584454B1 (en) * 2003-09-10 2009-09-01 Nextaxiom Technology, Inc. Semantic-based transactional support and recovery for nested composite software services
US20050060431A1 (en) * 2003-09-12 2005-03-17 Lewontin Stephen Paul System, apparatus, and method for using reduced web service messages
US7788681B1 (en) * 2003-09-16 2010-08-31 Vignette Software, LLC System and method for incorporating web services in a web site
US7506072B2 (en) 2003-10-14 2009-03-17 Sun Microsystems, Inc. Web browser as web service server in interaction with business process engine
EP1673701A4 (en) * 2003-10-14 2008-04-09 Seebeyond Technology Corp Web browser as web service server
US7289989B2 (en) * 2003-11-12 2007-10-30 International Business Machines Corporation Pattern based web services
US8225282B1 (en) 2003-11-25 2012-07-17 Nextaxiom Technology, Inc. Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions
US7822826B1 (en) * 2003-12-30 2010-10-26 Sap Ag Deployment of a web service
US20050160153A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corp. Publishing multipart WSDL files to URL
US7509387B2 (en) * 2004-04-07 2009-03-24 Nokia Corporation System, apparatus, and method for using reduced Web service messages
ATE331379T1 (en) * 2004-04-28 2006-07-15 Sap Ag COMPUTER SYSTEM AND METHOD FOR PROVIDING AN ERROR-RESISTANT DATA PROCESSING SERVICE
US7788716B2 (en) * 2004-05-21 2010-08-31 Bea Systems, Inc. Token handler API
US8073810B2 (en) * 2007-10-29 2011-12-06 Oracle International Corporation Shared view of customers across business support systems (BSS) and a service delivery platform (SDP)
US9245236B2 (en) * 2006-02-16 2016-01-26 Oracle International Corporation Factorization of concerns to build a SDP (service delivery platform)
US8321498B2 (en) * 2005-03-01 2012-11-27 Oracle International Corporation Policy interface description framework
US9038082B2 (en) 2004-05-28 2015-05-19 Oracle International Corporation Resource abstraction via enabler and metadata
US9565297B2 (en) 2004-05-28 2017-02-07 Oracle International Corporation True convergence with end to end identity management
US8966498B2 (en) * 2008-01-24 2015-02-24 Oracle International Corporation Integrating operational and business support systems with a service delivery platform
US8458703B2 (en) 2008-06-26 2013-06-04 Oracle International Corporation Application requesting management function based on metadata for managing enabler or dependency
US8626730B2 (en) 2004-06-28 2014-01-07 Sap Ag Data processing methods, systems and computer programs for providing a payment using a web service
EP1613014B1 (en) 2004-06-29 2008-08-13 Sap Ag A computer system and data processing method for using a web service
US7634721B1 (en) * 2004-08-23 2009-12-15 Sun Microsystems Inc. Composite component architecture using javaserver pages (JSP) tags
US7519684B2 (en) 2004-09-28 2009-04-14 International Business Machines Corporation Extensible URI-pattern-based servlet request processing framework
JP4487725B2 (en) * 2004-10-25 2010-06-23 株式会社島津製作所 Analytical data processing system and analyzer
US7483994B1 (en) 2004-11-01 2009-01-27 Ameriprise Financial, Inc. System and method for creating a standard envelope structure
US20060116912A1 (en) * 2004-12-01 2006-06-01 Oracle International Corporation Managing account-holder information using policies
US8296354B2 (en) * 2004-12-03 2012-10-23 Microsoft Corporation Flexibly transferring typed application data
US8032920B2 (en) * 2004-12-27 2011-10-04 Oracle International Corporation Policies as workflows
US20060230048A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for object discovery agent based mapping of application specific markup language schemas to application specific business objects in an integrated application environment
US20060230057A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for mapping web services definition language files to application specific business objects in an integrated application environment
US8145653B2 (en) 2005-04-08 2012-03-27 International Business Machines Corporation Using schemas to generate application specific business objects for use in an integration broker
US8458201B2 (en) * 2005-04-08 2013-06-04 International Business Machines Corporation Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment
EP1872522B1 (en) * 2005-04-18 2012-12-05 Research In Motion Limited System and method for enabling asynchronous push-based applications on a wireless device
US20060271939A1 (en) * 2005-05-11 2006-11-30 Eric Joris Enterprise-to-enterprise integration
ATE548842T1 (en) * 2005-07-27 2012-03-15 Sap Ag SERVER COMPUTER, CLIENT SETUP AND WEB SERVICE IMPLEMENTED DATA PROCESSING METHOD
EP1748366A1 (en) * 2005-07-28 2007-01-31 Sap Ag A data processing system and method
US7532906B2 (en) * 2005-07-29 2009-05-12 Sap Ag Mobile electronic device and methods for providing information to a mobile electronic device using a web service
US7908190B2 (en) * 2005-08-30 2011-03-15 Sap Ag Systems and methods for applying tax legislation
US20070088798A1 (en) * 2005-09-09 2007-04-19 Microsoft Corporation Encapsulation of complex business logic
US7761533B2 (en) * 2005-09-21 2010-07-20 Sap Ag Standard implementation container interface for runtime processing of web services messages
US7711836B2 (en) * 2005-09-21 2010-05-04 Sap Ag Runtime execution of a reliable messaging protocol
US7788338B2 (en) 2005-09-21 2010-08-31 Sap Ag Web services message processing runtime framework
US8745252B2 (en) * 2005-09-21 2014-06-03 Sap Ag Headers protocol for use within a web services message processing runtime framework
US7721293B2 (en) * 2005-09-21 2010-05-18 Sap Ag Web services hibernation
US7716360B2 (en) * 2005-09-21 2010-05-11 Sap Ag Transport binding for a web services message processing runtime framework
US20070073771A1 (en) * 2005-09-28 2007-03-29 Baikov Chavdar S Method and system for directly mapping web services interfaces and java interfaces
US7698684B2 (en) * 2005-09-28 2010-04-13 Sap Ag Method and system for generating schema to Java mapping descriptors and direct mapping of XML schema and Java interfaces
US8250522B2 (en) 2005-09-28 2012-08-21 Sap Ag Method and system for generating a web services meta model on the java stack
US9454616B2 (en) * 2005-09-28 2016-09-27 Sap Se Method and system for unifying configuration descriptors
US8700681B2 (en) 2005-09-28 2014-04-15 Sap Ag Method and system for generating schema to java mapping descriptors
US7707155B2 (en) * 2005-12-27 2010-04-27 Sap Ag System and method for efficiently filtering and restoring tables within a multi-tiered enterprise network
US20070177583A1 (en) 2006-01-31 2007-08-02 Microsoft Corporation Partial message streaming
US8099709B2 (en) * 2006-04-28 2012-01-17 Sap Ag Method and system for generating and employing a dynamic web services interface model
US7587425B2 (en) 2006-04-28 2009-09-08 Sap Ag Method and system for generating and employing a dynamic web services invocation model
US20070255843A1 (en) * 2006-04-28 2007-11-01 Zubev Alexander I Configuration of clients for multiple computer services
US20070255720A1 (en) * 2006-04-28 2007-11-01 Sap Ag Method and system for generating and employing a web services client extensions model
US7818331B2 (en) * 2006-04-28 2010-10-19 Sap Ag Retrieval of computer service type metadata
US20070255719A1 (en) * 2006-04-28 2007-11-01 Sap Ag Method and system for generating and employing a generic object access model
US8914493B2 (en) 2008-03-10 2014-12-16 Oracle International Corporation Presence-based event driven architecture
GB0616137D0 (en) * 2006-08-14 2006-09-20 British Telecomm Message processing
US20080127234A1 (en) * 2006-09-19 2008-05-29 International Business Machines Corporation Methods, systems, and computer program products for a remote request dispatcher extension framework for container based programming models
US20080071922A1 (en) * 2006-09-19 2008-03-20 International Business Machines Corporation Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment
US8214503B2 (en) * 2007-03-23 2012-07-03 Oracle International Corporation Factoring out dialog control and call control
US20080307056A1 (en) * 2007-06-07 2008-12-11 Vladimir Videlov Web Services Reliable Messaging
US8032587B2 (en) * 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
US20090094268A1 (en) * 2007-10-04 2009-04-09 Yahoo! Inc. Animated data feeds
US8539097B2 (en) * 2007-11-14 2013-09-17 Oracle International Corporation Intelligent message processing
US8161171B2 (en) 2007-11-20 2012-04-17 Oracle International Corporation Session initiation protocol-based internet protocol television
US9654515B2 (en) 2008-01-23 2017-05-16 Oracle International Corporation Service oriented architecture-based SCIM platform
US9178785B1 (en) 2008-01-24 2015-11-03 NextAxiom Technology, Inc Accounting for usage and usage-based pricing of runtime engine
US8589338B2 (en) * 2008-01-24 2013-11-19 Oracle International Corporation Service-oriented architecture (SOA) management of data repository
US8401022B2 (en) * 2008-02-08 2013-03-19 Oracle International Corporation Pragmatic approaches to IMS
US10819530B2 (en) * 2008-08-21 2020-10-27 Oracle International Corporation Charging enabler
US9524167B1 (en) * 2008-12-10 2016-12-20 Amazon Technologies, Inc. Providing location-specific network access to remote services
US8918516B2 (en) * 2009-05-01 2014-12-23 Galixsys Networks Llc Symbiotic client and server for embedded network system
EP2252032B1 (en) * 2009-05-11 2015-06-24 Accenture Global Services Limited Message adaptation system for system integration
US8879547B2 (en) * 2009-06-02 2014-11-04 Oracle International Corporation Telephony application services
US9253020B2 (en) * 2009-06-11 2016-02-02 International Business Machines Corporation Web service interaction in a dynamically extensible business application
US8332467B2 (en) * 2009-07-29 2012-12-11 International Business Machines Corporation Lightweight RRD extension framework
US8583830B2 (en) * 2009-11-19 2013-11-12 Oracle International Corporation Inter-working with a walled garden floor-controlled system
US9269060B2 (en) * 2009-11-20 2016-02-23 Oracle International Corporation Methods and systems for generating metadata describing dependencies for composable elements
US20110125909A1 (en) * 2009-11-20 2011-05-26 Oracle International Corporation In-Session Continuation of a Streaming Media Session
US20110125913A1 (en) * 2009-11-20 2011-05-26 Oracle International Corporation Interface for Communication Session Continuation
US8533773B2 (en) * 2009-11-20 2013-09-10 Oracle International Corporation Methods and systems for implementing service level consolidated user information management
US9842006B2 (en) * 2009-12-01 2017-12-12 International Business Machines Corporation Application processing allocation in a computing system
US9509790B2 (en) * 2009-12-16 2016-11-29 Oracle International Corporation Global presence
US9503407B2 (en) 2009-12-16 2016-11-22 Oracle International Corporation Message forwarding
CN102339219B (en) * 2010-07-20 2016-08-24 甲骨文国际公司 For supporting the system and method for object-oriented wscript.exe
US20140380300A1 (en) * 2013-06-25 2014-12-25 Bank Of America Corporation Dynamic configuration framework
US10353783B1 (en) 2013-06-26 2019-07-16 EMC IP Holding Company LLC Pluggable recovery in a data protection system
US10235392B1 (en) 2013-06-26 2019-03-19 EMC IP Holding Company LLC User selectable data source for data recovery
US9904606B1 (en) 2013-06-26 2018-02-27 EMC IP Holding Company LLC Scheduled recovery in a data protection system
US9641486B1 (en) 2013-06-28 2017-05-02 EMC IP Holding Company LLC Data transfer in a data protection system
US9703618B1 (en) * 2013-06-28 2017-07-11 EMC IP Holding Company LLC Communication between a software program that uses RPC with another software program using a different communications protocol enabled via proxy
EP3097481B1 (en) 2014-01-21 2022-11-30 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9973384B2 (en) * 2014-01-21 2018-05-15 Oracle International Corporation System and method for enterprise java bean support in a multitenant application server environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
CN105787128B (en) * 2016-03-29 2019-04-23 四川秘无痕信息安全技术有限责任公司 A method of restoring Java and serializes file data
CN106250063B (en) * 2016-08-16 2019-11-29 广州视睿电子科技有限公司 Page turning method and device and writing terminal
US10333985B2 (en) * 2017-01-09 2019-06-25 Microsoft Technology Licensing, Llc Distribution and management of services in virtual environments
US10979539B1 (en) 2017-07-21 2021-04-13 State Farm Mutual Automobile Insurance Company Method and system of generating generic protocol handlers
CN110471650B (en) * 2019-07-11 2022-08-09 新华三大数据技术有限公司 Web Service publishing method, device and server
US11902301B2 (en) * 2021-07-20 2024-02-13 Jpmorgan Chase Bank, N.A. System and method for implementing an auto detect, fix and deploy module
US11403298B1 (en) * 2021-10-29 2022-08-02 Snowflake Inc. Extending database external functions with user-defined functions

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104868A (en) * 1996-04-30 2000-08-15 Peters; Daniel G. Extendible and portable network protocol based system management architecture
US20020046294A1 (en) * 2000-08-08 2002-04-18 International Business Machines Corporation Common application metamodel including C/C++ metamodel
US6457066B1 (en) * 1997-11-10 2002-09-24 Microsoft Corporation Simple object access protocol
US20030093500A1 (en) * 2001-10-09 2003-05-15 Edwin Khodabakchian System and method for managing service interactions
US20030110270A1 (en) * 2001-12-12 2003-06-12 Copp Larry A. Method and system for controlling the operation of a peripheral device in a network
US20030110373A1 (en) * 2001-12-11 2003-06-12 Stele Inc. Traffic manager for distributed computing environments
US20040267933A1 (en) * 2001-09-10 2004-12-30 Piotr Przybylski Configurable connector adapted to convey data between a first application and a second application
US7000238B2 (en) * 2001-10-10 2006-02-14 Borland Software Corporation Development system providing extensible remoting architecture
US7055143B2 (en) * 2001-07-10 2006-05-30 Microsoft Corporation System and methods for providing a declarative syntax for specifying SOAP-based web services
US7127713B2 (en) * 2002-01-11 2006-10-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (CDN)
US7152090B2 (en) * 2001-06-01 2006-12-19 Sun Microsystems, Inc. Metadata-aware enterprise application integration framework for application server environment
US7325047B2 (en) * 2001-05-23 2008-01-29 International Business Machines Corporation Dynamic undeployment of services in a computing network
US7437710B2 (en) * 2001-07-02 2008-10-14 Bea Systems, Inc. Annotation based development platform for stateful web services

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020071423A1 (en) * 1997-03-14 2002-06-13 Mojtaba Mirashrafi Method and apparatus for value added content delivery
US6792605B1 (en) * 1999-06-10 2004-09-14 Bow Street Software, Inc. Method and apparatus for providing web based services using an XML Runtime model to store state session data
US7289964B1 (en) * 1999-08-31 2007-10-30 Accenture Llp System and method for transaction services patterns in a netcentric environment
US6970869B1 (en) * 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US7013340B1 (en) * 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US20020099738A1 (en) * 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US7398216B2 (en) * 2000-12-12 2008-07-08 Lockheed Martin Corporation Network dynamic service availability
US7240125B2 (en) * 2001-03-06 2007-07-03 International Business Machines Corporation Apparatus and method for using a directory service for a user registry
US20020152210A1 (en) * 2001-04-03 2002-10-17 Venetica Corporation System for providing access to multiple disparate content repositories with a single consistent interface
US6990532B2 (en) * 2001-04-07 2006-01-24 Cpa2Biz, Inc. Context-sensitive help for thin client-based business operations platform
US20030004746A1 (en) * 2001-04-24 2003-01-02 Ali Kheirolomoom Scenario based creation and device agnostic deployment of discrete and networked business services using process-centric assembly and visual configuration of web service components
US20020188666A1 (en) * 2001-05-23 2002-12-12 Lemon Michael J. Lightweight dynamic service conversation controller
WO2002101510A2 (en) * 2001-06-13 2002-12-19 Caminus Corporation System architecture and method for energy industry trading and transaction management
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
US20030033369A1 (en) * 2001-08-09 2003-02-13 Bernhard Benjamin Karb Donovan Web services container
US6985939B2 (en) * 2001-09-19 2006-01-10 International Business Machines Corporation Building distributed software services as aggregations of other services
US7831655B2 (en) * 2001-10-18 2010-11-09 Bea Systems, Inc. System and method for implementing a service adapter
US7822860B2 (en) * 2001-12-11 2010-10-26 International Business Machines Corporation Method and apparatus for dynamic reconfiguration of web services infrastructure
US7254601B2 (en) * 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US7251674B2 (en) * 2002-01-08 2007-07-31 International Business Machines Corporation Internationalization of the web services infrastructure

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104868A (en) * 1996-04-30 2000-08-15 Peters; Daniel G. Extendible and portable network protocol based system management architecture
US6457066B1 (en) * 1997-11-10 2002-09-24 Microsoft Corporation Simple object access protocol
US20020046294A1 (en) * 2000-08-08 2002-04-18 International Business Machines Corporation Common application metamodel including C/C++ metamodel
US7325047B2 (en) * 2001-05-23 2008-01-29 International Business Machines Corporation Dynamic undeployment of services in a computing network
US7152090B2 (en) * 2001-06-01 2006-12-19 Sun Microsystems, Inc. Metadata-aware enterprise application integration framework for application server environment
US7437710B2 (en) * 2001-07-02 2008-10-14 Bea Systems, Inc. Annotation based development platform for stateful web services
US7055143B2 (en) * 2001-07-10 2006-05-30 Microsoft Corporation System and methods for providing a declarative syntax for specifying SOAP-based web services
US20040267933A1 (en) * 2001-09-10 2004-12-30 Piotr Przybylski Configurable connector adapted to convey data between a first application and a second application
US20030093500A1 (en) * 2001-10-09 2003-05-15 Edwin Khodabakchian System and method for managing service interactions
US7000238B2 (en) * 2001-10-10 2006-02-14 Borland Software Corporation Development system providing extensible remoting architecture
US20030110373A1 (en) * 2001-12-11 2003-06-12 Stele Inc. Traffic manager for distributed computing environments
US20030110270A1 (en) * 2001-12-12 2003-06-12 Copp Larry A. Method and system for controlling the operation of a peripheral device in a network
US7127713B2 (en) * 2002-01-11 2006-10-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (CDN)

Cited By (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487510B1 (en) * 2003-04-30 2009-02-03 Sun Microsystems, Inc. Method and apparatus to isolate changes in remoting system clients
US8423535B2 (en) 2003-09-23 2013-04-16 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US9275105B2 (en) 2003-09-23 2016-03-01 Salesforce.Com, Inc. System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
US10152508B2 (en) 2003-09-23 2018-12-11 Salesforce.Com, Inc. Improving a multi-tenant database query using contextual knowledge about tenant data
US8620954B2 (en) 2003-09-23 2013-12-31 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US8543566B2 (en) 2003-09-23 2013-09-24 Salesforce.Com, Inc. System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data
US8732157B2 (en) 2003-09-23 2014-05-20 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US20070124276A1 (en) * 2003-09-23 2007-05-31 Salesforce.Com, Inc. Method of improving a query to a database system
US20100211619A1 (en) * 2003-09-23 2010-08-19 Salesforce.Com, Inc. Distributive storage techniques for multi-tenant databases
US8229922B2 (en) 2003-09-23 2012-07-24 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US8131713B2 (en) 2003-09-23 2012-03-06 Salesforce.Com, Inc. Distributive storage techniques for multi-tenant databases
US7774456B1 (en) * 2004-02-27 2010-08-10 Packeteer, Inc. Methods, apparatuses and systems facilitating classification of web services network traffic
US10713230B2 (en) 2004-04-02 2020-07-14 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US20060041896A1 (en) * 2004-08-06 2006-02-23 Atsuko Yagi Service request apparatus, service request method, service request program product and computer-readable recording medium, service providing apparatus, and service providing method, service providing program product and computer-readable recording medium
US7624404B2 (en) * 2004-08-06 2009-11-24 Ricoh Company, Ltd. Communication method selection for exchanging information between service requester and service provider
US7831633B1 (en) * 2004-12-22 2010-11-09 Actuate Corporation Methods and apparatus for implementing a custom driver for accessing a data source
US20060224424A1 (en) * 2005-04-05 2006-10-05 International Business Machines Corporation Business context services for adaptable service oriented architecture components
US20060242187A1 (en) * 2005-04-26 2006-10-26 Michael Scharf Type safe data proxy
US7574710B1 (en) 2005-04-28 2009-08-11 Sun Microsystems, Inc. Method and apparatus for determining data encoding format in RMI-IIOP messages
US7533156B1 (en) 2005-04-28 2009-05-12 Sun Microsystems, Inc. Method and apparatus for RMI-IIOP implementation with java serialization
US7571447B2 (en) * 2005-06-20 2009-08-04 International Business Machines Corporation Loose coupling of web services
US20060288018A1 (en) * 2005-06-20 2006-12-21 Afshan Ally Loose coupling of Web services
US9378227B2 (en) 2005-09-09 2016-06-28 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US8799233B2 (en) 2005-09-09 2014-08-05 Salesforce.Com, Inc. System, method and computer program product for validating one or more metadata objects
US20100223284A1 (en) * 2005-09-09 2010-09-02 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US11704102B2 (en) 2005-09-09 2023-07-18 Salesforce, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US9298750B2 (en) 2005-09-09 2016-03-29 Salesforce.Com, Inc. System, method and computer program product for validating one or more metadata objects
US10235148B2 (en) 2005-09-09 2019-03-19 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US9195687B2 (en) 2005-09-09 2015-11-24 Salesforce.Com, Inc. System, method and computer program product for validating one or more metadata objects
US10521211B2 (en) 2005-09-09 2019-12-31 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US11314494B2 (en) 2005-09-09 2022-04-26 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US8244759B2 (en) 2005-09-09 2012-08-14 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US20070079007A1 (en) * 2005-09-20 2007-04-05 Microsoft Corporation Modifying service provider context information to facilitate locating interceptor context information
US8135741B2 (en) * 2005-09-20 2012-03-13 Microsoft Corporation Modifying service provider context information to facilitate locating interceptor context information
US20070067384A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for web services configuration creation and validation
US20070067388A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for configuration to web services descriptor
US8078671B2 (en) 2005-09-21 2011-12-13 Sap Ag System and method for dynamic web services descriptor generation using templates
US8010695B2 (en) 2005-12-30 2011-08-30 Sap Ag Web services archive
US20070156859A1 (en) * 2005-12-30 2007-07-05 Savchenko Vladimir S Web services archive
US20070156872A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US8024425B2 (en) 2005-12-30 2011-09-20 Sap Ag Web services deployment
US20070156756A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Web services deployment
US7814060B2 (en) 2005-12-30 2010-10-12 Sap Ag Apparatus and method for web service client deployment
US20070174288A1 (en) * 2005-12-30 2007-07-26 Stoyanova Dimitrina G Apparatus and method for web service client deployment
US7822840B2 (en) * 2007-10-23 2010-10-26 International Business Machines Corporation Method and apparatus for dynamic web service client application update
US20090106350A1 (en) * 2007-10-23 2009-04-23 Ying Chen Method and apparatus for dynamic web service client application update
US20090132642A1 (en) * 2007-11-15 2009-05-21 Microsoft Corporation Delegating application invocation back to client
US8849897B2 (en) * 2007-11-15 2014-09-30 Microsoft Corporation Delegating application invocation back to client
US20090150910A1 (en) * 2007-12-10 2009-06-11 Microsoft Corporation Service platform for in-context results
US9703596B2 (en) 2007-12-10 2017-07-11 Microsoft Technology Licensing, Llc Service platform for in-context results
US8146110B2 (en) 2007-12-10 2012-03-27 Microsoft Corporation Service platform for in-context results
US20090228804A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Service Preview And Access From an Application Page
US11151264B2 (en) 2008-06-03 2021-10-19 Salesforce.Com, Inc. Method and system for controlling access to a multi-tenant database system using a virtual portal
US9361366B1 (en) 2008-06-03 2016-06-07 Salesforce.Com, Inc. Method and system for controlling access to a multi-tenant database system using a virtual portal
US8473518B1 (en) 2008-07-03 2013-06-25 Salesforce.Com, Inc. Techniques for processing group membership data in a multi-tenant database system
US9411852B2 (en) 2008-07-03 2016-08-09 Salesforce.Com, Inc. Techniques for processing group membership data in a multi-tenant database system
US8473469B1 (en) 2008-08-25 2013-06-25 Salesforce.Com, Inc. Techniques for implementing batch processing in a multi-tenant on-demand database system
US9275098B2 (en) 2008-08-25 2016-03-01 Salesforce.Com, Inc. Techniques for implementing batch processing in a database system
US10007576B2 (en) 2008-08-25 2018-06-26 Salesforce.Com, Inc. Techniques for implementing batch processing in a database system
US20100082753A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Role-independent context exchange
US8370440B2 (en) 2008-09-30 2013-02-05 Microsoft Corporation Role-independent context exchange
US8843578B2 (en) 2008-09-30 2014-09-23 Microsoft Corporation Role-independent context exchange
US8296321B2 (en) 2009-02-11 2012-10-23 Salesforce.Com, Inc. Techniques for changing perceivable stimuli associated with a user interface for an on-demand database service
US8990251B2 (en) 2009-02-11 2015-03-24 Salesforce.Com, Inc. Techniques for changing perceivable stimuli associated with a user interfave for an on-demand database service
US11615376B2 (en) 2009-09-29 2023-03-28 Salesforce.Com, Inc. Techniques for managing functionality changes of an on-demand database system
US10482425B2 (en) 2009-09-29 2019-11-19 Salesforce.Com, Inc. Techniques for managing functionality changes of an on-demand database system
US8776067B1 (en) 2009-12-11 2014-07-08 Salesforce.Com, Inc. Techniques for utilizing computational resources in a multi-tenant on-demand database system
US8443366B1 (en) 2009-12-11 2013-05-14 Salesforce.Com, Inc. Techniques for establishing a parallel processing framework for a multi-tenant on-demand database system
US8977675B2 (en) 2010-03-26 2015-03-10 Salesforce.Com, Inc. Methods and systems for providing time and date specific software user interfaces
US9948721B2 (en) 2010-03-26 2018-04-17 Salesforce.Com, Inc. Methods and systems for providing time and date specific software user interfaces
US9189090B2 (en) 2010-03-26 2015-11-17 Salesforce.Com, Inc. Techniques for interpreting signals from computer input devices
US20110234482A1 (en) * 2010-03-26 2011-09-29 Salesforce.Com, Inc. Techniques for interpreting signals from computer input devices
US10819800B2 (en) 2010-03-26 2020-10-27 Salesforce.Com, Inc. Methods and systems for providing time and date specific software user interfaces
US8595181B2 (en) 2010-05-03 2013-11-26 Salesforce.Com, Inc. Report preview caching techniques in a multi-tenant database
US8977739B2 (en) 2010-05-03 2015-03-10 Salesforce.Com, Inc. Configurable frame work for testing and analysis of client-side web browser page performance
US8972431B2 (en) 2010-05-06 2015-03-03 Salesforce.Com, Inc. Synonym supported searches
US8819632B2 (en) 2010-07-09 2014-08-26 Salesforce.Com, Inc. Techniques for distributing information in a computer network related to a software anomaly
US9069901B2 (en) 2010-08-19 2015-06-30 Salesforce.Com, Inc. Software and framework for reusable automated testing of computer software systems
US20130275489A1 (en) * 2012-04-12 2013-10-17 Oracle International Corporation Integration of web services with a clustered actor based model
US8990286B2 (en) * 2012-04-12 2015-03-24 Oracle International Corporation Integration of web services with a clustered actor based model
US20150381742A1 (en) * 2014-06-30 2015-12-31 Verizon Patent And Licensing Inc. Automated web services validation
US10171593B2 (en) * 2014-06-30 2019-01-01 Verizon Patent And Licensing Inc. Validating web services for compatibility with a client device by emulating the client device by populating a template associated with the web services
US10262006B2 (en) 2016-04-29 2019-04-16 Microsoft Technology Licensing, Llc Contextually triggered entry point

Also Published As

Publication number Publication date
US20040045005A1 (en) 2004-03-04
US7693955B2 (en) 2010-04-06
WO2003073308A1 (en) 2003-09-04
US20040015578A1 (en) 2004-01-22

Similar Documents

Publication Publication Date Title
US20070150546A1 (en) Web services runtime architecture
US7769825B2 (en) System and method for web services Java API-based invocation
US9479400B2 (en) Servlet API and method for XMPP protocol
US7751535B2 (en) Voice browser implemented as a distributable component
CA2210817C (en) Client object api and gateway to enable oltp via the internet
AU2002362656B9 (en) System for integrating java servlets with asynchronous messages
US20040045004A1 (en) System for runtime web service to java translation
US8789073B2 (en) Proxy object creation and use
US7996562B2 (en) Messaging system interface to web services
NZ531380A (en) Transmitting and receiving messages through a customizable communication channel and programming model
US20040088352A1 (en) Business to business integration via the web
US7739389B2 (en) Providing web services from a service environment with a gateway
US8103759B2 (en) Message redirection within a messaging infrastructure
US7823169B1 (en) Performing operations by a first functionality within a second functionality in a same or in a different programming language
US20030023577A1 (en) Method and apparatus for handling the registration of multiple and diverse communication protocols for use in an object request broker (ORB)
WO2003073309A1 (en) Web services programming and deployment
KR100683812B1 (en) Inbound connector
US6631424B1 (en) Distributing information using a computer
WO2004003770A1 (en) System and method for web services java api-based invocation
US7353521B1 (en) Object oriented distributed software system with methodology for piggybacked reflective callbacks
WO2003063001A1 (en) System and method for http request preprocessing for servlets and application servers
Devin Web‐Oriented Architecture–How to design a RESTFull API
Ratoi et al. Multimedia streaming platform based on components
Eaves ODP channel objects that provide services transparently for distributing processing systems
Taylor et al. Web Services Protocols

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION