Abstract:
Markup-language documents are converted into compacted markup-language form by using a number of parameterized macros. A parameterized macro takes at least one parameter. When compacting markup-language documents, a sequence of elements is replaced by references to a macro and to parameter(s), where the macro, when used with the parameters, yields the sequence of elements. The macros used may either be predetermined, from a static dictionary, may be generated on the fly, or mix of both. The definitions of macros may be included in the compacted markup-language information in order to allow a recipient of the compacted markup-language information to expand the macro reference and parameter(s) into the sequence of elements which had been replaced.
Abstract:
A method for efficiently sending notifications over a network. A client system requests to be notified when an event occurs. A server system receives the requests and monitors for the occurrence of the event. When the event occurs a single packet using a connectionless protocol (such as User Datagram Protocol) is sent to the client to notify the client of the occurrence of the event. Using a connectionless protocol to send notification reduces the overall amount of data on the network and thus reduces network congestion and the processing capacity of the server and client. When the client system receives notification an attempt to establish a connection using as connection-oriented protocol is executed. Additional data associated with the occurrence of the event is transferred over the connection. The server may repeatedly send notification using a connectionless protocol until a connection using a connection-oriented protocol is established. The server may send notification that notifies the client of the occurrence of multiple events simultaneously within a single packet. The server may also notify multiple applications of the occurrence of an event using a single notification.
Abstract:
Systems and methods for directing client requests and for selecting a back end server to service client requests. A front end server receives client requests and based on the URI of the requests, directs the request to a back end server. The client request can be for a private or a public folder and each back end server typically stores both private and public folders. If the request is for a private folder, then the front end server determines which server stores that user's private folder and directs the client request to that folder. If the request is for a home public folder, the front end server directs the client request to the server that is associated with the private folders of the users. If the request is for an application public folder, then the front end server selects one of the back end servers to service the client request. Advantageously, the front end server always directs the client request to the same server. If the selected server is unavailable, then the front end server is capable of redirecting the client request to an available server.
Abstract:
Methods and computer program products for using a front-end server to access content stored on one or more back-end servers. The front-end server receives requests for content from client systems. Back-end servers store the content, but to the client system, it appears as if the front-end server is the content's source. Upon receiving the request, the front-end server checks the validity of the request and examines a global catalog that dynamically maps client system requests to the back-end server or servers that store the requested content. In some circumstances, the content will be stored at a single back-end server and the front-end server directs the request to that server. Alternatively, a list of back-end servers storing the requested content may be generated. If so, the front-end then uses an authentication token as a key to a hash operation that is performed on the list and a single server that is capable of satisfying the request for content is identified. A given request and authentication token always identify the same server if the list of servers available for providing the requested content remains the same. The front-end server provides a single source for content requests so that client systems are not required to alter requests or invalidate local caches when content is moved from one back-end server to another. The front-end server also provides an additional level of security for back-end servers.
Abstract:
Methods and computer program products for using a front-end server to access content stored on one or more back-end servers. The front-end server receives requests for content from client systems. Back-end servers store the content, but to the client system, it appears as if the front-end server is the content's source. Upon receiving the request, the front-end server checks the validity of the request and examines a global catalog that dynamically maps client system requests to the back-end server or servers that store the requested content. In some circumstances, the content will be stored at a single back-end server and the front-end server directs the request to that server. Alternatively, a list of back-end servers storing the requested content may be generated. If so, the front-end then uses an authentication token as a key to a hash operation that is performed on the list and a single server that is capable of satisfying the request for content is identified. A given request and authentication token always identify the same server if the list of servers available for providing the requested content remains the same. The front-end server provides a single source for content requests so that client systems are not required to alter requests or invalidate local caches when content is moved from one back-end server to another. The front-end server also provides an additional level of security for back-end servers.
Abstract:
Removal of white space from XML data retrieved from a database may amount to data corruption. Yet such removal is required in XML data normalization by XML parsers, and is also frequently carried out via one or more optional parser features. Safeguards provided herein protect XML data from such normalization and white space removal when formulating a response in a database. When delivering an XML fragment in response to a client request, an XML document's white space handling rules may be ascertained. Any ignorable white space in the XML document may be discarded, and any remaining white space may be preserved.
Abstract:
Methods and systems for generating and sending an XML document are described. In a specific implementation, methods and systems for responding to an XML client request utilize an XML response generator that includes one or more request method objects. There is one object for each particular type of client request that might be received. Each request method object knows and gathers the data that is needed to respond to its particular associated client request. An emitter object receives calls from the request method object and translates the data that it receives into response portions that are in proper XML syntactic form.
Abstract:
Methods and structures for parsing an Extensible Markup Language (XML) data stream are described. In the described embodiment, one or more schema modules are defined and are associated with HTTP requests that are received from a client. The schema module(s) has a function that determines whether an XML data stream conforms to a given schema that is associated with the HTTP request. If a portion of the XML data stream does not conform to the given schema, then the schema module disregards that XML data stream portion. In the described embodiment, each schema module has a plurality of states associated therewith. Each state is associated with one or more schema requirements that relate to a particular element that is evaluated by the schema module. Each state is different from the other states and the number of states is a function of the number of layers or elements that are contained within a particular XML data stream.
Abstract:
Methods and structures for parsing an Extensible Markup Language (XML) data stream are described. In the described embodiment, one or more schema modules are defined and are associated with HTTP requests that are received from a client. The schema module(s) has a function that determines whether an XML data stream conforms to a given schema that is associated with the HTTP request. If a portion of the XML data stream does not conform to the given schema, then the schema module disregards that XML data stream portion. In the described embodiment, each schema module has a plurality of states associated therewith. Each state is associated with one or more schema requirements that relate to a particular element that is evaluated by the schema module. Each state is different from the other states and the number of states is a function of the number of layers or elements that are contained within a particular XML data stream.
Abstract:
XML Schema Designs for environment-specific types based on XML base types are disclosed. The invention provides a series of “base types” in the XML Schema. Each base type is in an environment-specific XML Schema namespace that disambiguates the environment's types from all other types defined by any other environment. The XML Schema Design then defines the final type as an anonymous type, derived from the environment-specific base type. The base type is defined with any XML Schema type facets that apply to all derivatives of the base type, and the anonymous final type is defined with additional XML Schema type facets to fully describe the type.