Sign In to Follow Application
View All Documents & Correspondence

Method And System For Managing Connections At Hypertext Transfer Protocol (Http) Client

Abstract: The present disclosure relates to a method and a system for managing connections at hypertext transfer protocol (HTTP) client to increase overall throughput of overall communication network. The disclosure encompasses: establishing, by a connection establishing unit [302], one or more connections with one or more servers; creating, by a creating unit [304], a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers; receiving, by a receiving unit [306], the one or more queries from an application program interface (API) for the one or more servers; adding, by a queueing unit [308], the one or more queries in the respective queue for the one or more servers; and identifying, by a identifying unit [310], an available connection with the one or more servers. [FIG. 3]

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
04 July 2023
Publication Number
2/2025
Publication Type
INA
Invention Field
COMMUNICATION
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2025-07-31
Renewal Date

Applicants

Jio Platforms Limited
Office - 101, Saffron, Nr. Centre Point, Panchwati 5 Rasta, Ambawadi, Ahmedabad - 380006, Gujarat, India

Inventors

1. Amit Singh
Office - 101, Saffron, Nr. Centre Point, Panchwati 5 Rasta, Ambawadi, Ahmedabad - 380006, Gujarat, India
2. Kumar Gaurav
Office - 101, Saffron, Nr. Centre Point, Panchwati 5 Rasta, Ambawadi, Ahmedabad - 380006, Gujarat, India

Specification

FORM 2
THE PATENTS ACT, 1970 (39 OF 1970) & THE PATENT RULES, 2003
COMPLETE SPECIFICATION
(See section 10 and rule 13)
“METHOD AND SYSTEM FOR MANAGING CONNECTIONS AT HYPERTEXT TRANSFER PROTOCOL (HTTP) CLIENT”
We, Jio Platforms Limited, an Indian National, of Office - 101, Saffron, Nr. Centre Point, Panchwati 5 Rasta, Ambawadi, Ahmedabad - 380006, Gujarat, India.
The following specification particularly describes the invention and the manner in which it is to be performed.

METHOD AND SYSTEM FOR MANAGING CONNECTIONS AT HYPERTEXT TRANSFER PROTOCOL (HTTP) CLIENT
FIELD OF THE DISCLOSURE
[0001] The present disclosure relates generally to the field of wireless communication
systems. More particularly, the present disclosure relates to methods and systems for managing connections at Hypertext Transfer Protocol (HTTP) Client to increase overall throughput of overall communication network.
BACKGROUND
[0002] The following description of related art is intended to provide background
information pertaining to the field of the disclosure. This section may include certain aspects of the art that may be related to various features of the present disclosure. However, it should be appreciated that this section be used only to enhance the understanding of the reader with respect to the present disclosure, and not as admissions of prior art.
[0003] Wireless communication technology has rapidly evolved over the past few decades,
with each generation bringing significant improvements and advancements. The first generation of wireless communication technology was based on analog technology and offered only voice services. However, with the advent of the second-generation (2G) technology, digital communication and data services became possible, and text messaging was introduced. 3G technology marked the introduction of high-speed internet access, mobile video calling, and location-based services. The fourth-generation (4G) technology revolutionized wireless communication with faster data speeds, better network coverage, and improved security. Currently, the fifth-generation (5G) technology is being deployed, promising even faster data speeds, low latency, and the ability to connect multiple devices simultaneously. With each generation, wireless communication technology has become more advanced, sophisticated, and capable of delivering more services to its users.
[0004] In a communication network, Hypertext Transfer Protocol (HTTP) Client uses
multiple connections, rather than a single connection, in order to complete communication

efficiently. Using a single connection for communication allows only one outstanding request for a peer which creates significant overhead, and slowing down the application which in turn, causes ripple effect on other dependent applications. Using multiple but limited number of connections solves this problem. However, use of multiple connections has its own disadvantages.
[0005] One such issue is idle connections. When no communication is taking place
between a client and a server but a connection persists between them, an idle connection occurs. While multiple connections may be added to cater to requests when the load is high, these connections remain in the idle state when the load reduces.
[0006] Further, in the existing solutions where an idle connection take place, a wait-timer
for a pre-defined period of time is used at the server end to monitor if communication is taking place or not. However, when the idle connection occurs and no communication takes place within such pre-defined period of time, activation of firewalls take place to break the connection from the server end. After the idle wait time, the firewalls (if any exists between HTTP client and server) tear-down the underlying transport layer connection without letting the client know. This leads to the formation of a stale state (or idle state), i.e. the connection can no longer be used to send requests to the server and the connection’s state at the client’s end shall always be stale. This also leads to inefficient usage of the resources.
[0007] Further, over the period of time various solutions have been developed to improve
the performance of communication devices and to enhance HTTP client to efficiently use multiple connections to increase overall throughput of overall communication network. However, there are certain challenges with existing solutions such increased overall time for communication due to formation of a new connection for every request for communication, and occurrence of stale connection when an idle state for a connection occurs for more than the pre-defined period.
[0008] Thus, there exists an imperative need in the art to managing connections at
Hypertext Transfer Protocol (HTTP) Client for enhancing HTTP client to efficiently use multiple connections to increase overall throughput of overall communication network, which the present disclosure aims to address.

OBJECTS OF THE INVENTION
[0009] Some of the objects of the present disclosure, which at least one embodiment
disclosed herein satisfies are listed herein below.
[0010] It is an object of the present disclosure to provide a system and a method for
managing connections at Hypertext Transfer Protocol (HTTP) Client.
[0011] It is another object of the present disclosure to provide a system and a method for
enhancing HTTP client to efficiently use multiple connections to increase overall throughput of overall communication network.
[0012] It is yet another object of the present disclosure to provide a solution that provides
a persistent connection for enhancing HTTP communication.
[0013] It is yet another object of the present disclosure to provide a time-efficient solution
to use multiple connections in HTTP communication.
[0014] It is yet another object of the present disclosure to provide a solution in which a
custom HTTP client can adjust the number of connections as per requirement of the application.
[0015] It is yet another object of the present disclosure to provide a solution in which a
custom HTTP client can detect stale (idle) connections which have been closed by the server but their closure event was undetected at the client. Upon detection, it can retry the failed requests over new connections.
[0016] It is yet another object of the present disclosure to provide a solution in which a
custom HTTP client also supports secure communication.
SUMMARY OF THE DISCLOSURE
[0017] This section is provided to introduce certain aspects of the present disclosure in a
simplified form that are further described below in the detailed description. This summary is not intended to identify the key features or the scope of the claimed subject matter.

[0018] According to an aspect of the present disclosure, a method for managing
connections at Hypertext Transfer Protocol (HTTP) Client is disclosed. The method comprises establishing, by one or more HTTP clients, one or more connections with one or more servers. Further, the method comprises creating, by the one or more HTTP clients, a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers. Further, the method comprises receiving, by the one or more HTTP clients, the one or more queries from an application program interface (API) for the one or more servers. Further, the method comprises adding, by the one or more HTTP clients, the one or more queries in the respective queue for the one or more servers. Further, the method comprises identifying, by the one or more HTTP clients, an available connection with the one or more servers.
[0019] In an exemplary aspect of the present disclosure, the method further comprises
detecting, by the one or more HTTP clients, a failure in transmitting the added one or more queries over the identified available connection; identifying, by the one or more HTTP clients, the identified available connection as a stale connection; closing, by the one or more HTTP clients, the stale connection; and establishing, by the one or more HTTP clients, a new connections with the one or more servers, wherein the added one or more queries are transmitted over the new connection.
[0020] In an exemplary aspect of the present disclosure, the one or more HTTP clients
establishes a preconfigured number of connections with the one or more servers.
[0021] In an exemplary aspect of the present disclosure, the method comprises: notifying,
by the one or more HTTP clients, a peer management task (PMT) unit of the added one or more queries; and transmitting, by the peer management task (PMT) unit, the added one or more queries to the one or more servers over the identified available connection.
[0022] In an exemplary aspect of the present disclosure, in an event the PMT unit identifies
that no connection is available, the method further comprises determining, by the PMT unit, whether a number of connections exceeds a preconfigured number of connections.

[0023] In an exemplary aspect of the present disclosure, in an event the PMT unit identifies
that the number of connections is less than the preconfigured number of connections, the method further comprises: creating, by the PMT unit, a new connection with the one or more servers; and transmitting, by the PMT unit, the added one or more queries to the one or more servers over the new connection.
[0024] In an exemplary aspect of the present disclosure, in an event the PMT unit identifies
that the number of connections exceeds the preconfigured number of connections, the method further comprises: waiting, by the PMT unit, for the one or more connections with the one or more servers to become available; and transmitting, by the PMT unit, the added one or more queries to the one or more servers once the one or more connections are available.
[0025] In an exemplary aspect of the present disclosure, the one or more queries comprises
HTTP requests corresponding to at least one of GET, POST, PUT, DELETE, or other standard HTTP methods intended for communication with the one or more servers.
[0026] According to another aspect of the present disclosure, a system for managing
connections at Hypertext Transfer Protocol (HTTP) Client is disclosed. The system comprises a connection establishing unit configured to establish one or more connections with one or more servers. Further, the system comprises a creating unit configured to create a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers. Further, the system comprises a receiving unit configured to receive the one or more queries from an application program interface (API) for the one or more servers. Further, the system comprises a queueing unit configured to add the one or more queries in the respective queue for the one or more servers. Further, the system comprises an identifying unit configured to identify an available connection with the one or more servers.
[0027] According to another aspect of the present disclosure, a user equipment (UE)
comprises a system for managing connections at Hypertext Transfer Protocol (HTTP) Client is disclosed. The system further comprises a connection establishing unit configured to establish one or more connections with one or more servers. Further, the system comprises a creating unit configured to create a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the

one or more servers. Further, the system comprises a receiving unit configured to receive the
one or more queries from an application program interface (API) for the one or more servers.
Further, the system comprises a queueing unit configured to add the one or more queries in the
respective queue for the one or more servers. Further, the system comprises an identifying unit
5 configured to identify an available connection with the one or more servers.
[0028] According to another aspect of the present disclosure, a non-transitory computer
readable medium to store executable instructions is provided, the executable instructions when executed by one or more units of a system, cause: a connection establishing unit to establish
10 one or more connections with one or more servers; a creating unit to create a queue for each of
the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers; a receiving unit to receive the one or more queries from an application program interface (API) for the one or more servers; a queueing unit to add the one or more queries in the respective queue for the
15 one or more servers; an identifying unit to identify an available connection with the one or
more servers.
BRIEF DESCRIPTION OF DRAWINGS
20 [0029] The accompanying drawings, which are incorporated herein, and constitute a part
of this disclosure, illustrate exemplary embodiments of the disclosed methods and systems in which like reference numerals refer to the same parts throughout the different drawings. Components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Some drawings may indicate the
25 components using block diagrams and may not represent the internal circuitry of each
component. It will be appreciated by those skilled in the art that disclosure of such drawings includes disclosure of electrical components, electronic components or circuitry commonly used to implement such components.
30 [0030] FIG. 1 illustrates an exemplary block diagram representation of a Hypertext
Transfer Protocol (HTTP) client server interface architecture.
7

[0031] FIG. 2 illustrates an exemplary block diagram of a computing device upon which
the features of the present disclosure may be implemented in accordance with exemplary implementation of the present disclosure.
5 [0032] Fig. 3 illustrates an exemplary block diagram of a system for managing connections
at Hypertext Transfer Protocol (HTTP) Client to increase overall throughput of overall communication network, in accordance with exemplary implementations of the present disclosure.
10 [0033] Fig. 4 illustrates a method flow diagram for managing connections at Hypertext
Transfer Protocol (HTTP) Client to increase overall throughput of overall communication network, in accordance with exemplary implementations of the present disclosure.
[0034] FIG.5 illustrates method flow diagram of an exemplary process indicating an
15 exemplary scenario of the process for managing connections at Hypertext Transfer Protocol
(HTTP) Client to increase overall throughput of overall communication network, in accordance with exemplary embodiments of the present disclosure.
[0035] The foregoing shall be more apparent from the following more detailed description
20 of the disclosure.
DETAILED DESCRIPTION
[0036] In the following description, for the purposes of explanation, various specific
25 details are set forth in order to provide a thorough understanding of embodiments of the present
disclosure. It will be apparent, however, that embodiments of the present disclosure may be
practiced without these specific details. Several features described hereafter can each be used
independently of one another or with any combination of other features. An individual feature
may not address any of the problems discussed above or might address only some of the
30 problems discussed above. Some of the problems discussed above might not be fully addressed
by any of the features described herein. Example embodiments of the present disclosure are described below, as illustrated in various drawings in which like reference numerals refer to the same parts throughout the different drawings.
8

[0037] The ensuing description provides exemplary embodiments only, and is not intended
to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing
description of the exemplary embodiments will provide those skilled in the art with an enabling
description for implementing an exemplary embodiment. It should be understood that various
5 changes may be made in the function and arrangement of elements without departing from the
spirit and scope of the disclosure as set forth.
[0038] It should be noted that the terms "mobile device", "user equipment", "user device",
“communication device”, “device” and similar terms are used interchangeably for the purpose
10 of describing the invention. These terms are not intended to limit the scope of the invention or
imply any specific functionality or limitations on the described embodiments. The use of these terms is solely for convenience and clarity of description. The invention is not limited to any particular type of device or equipment, and it should be understood that other equivalent terms or variations thereof may be used interchangeably without departing from the scope of the
15 invention as defined herein.
[0039] Specific details are given in the following description to provide a thorough
understanding of the embodiments. However, it will be understood by one of ordinary skill in
the art that the embodiments may be practiced without these specific details. For example,
20 circuits, systems, networks, processes, and other components may be shown as components in
block diagram form in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
25 [0040] Also, it is noted that individual embodiments may be described as a process which
is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed but
30 could have additional steps not included in a figure.
[0041] The word “exemplary” and/or “demonstrative” is used herein to mean serving as
an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as
9

“exemplary” and/or “demonstrative” is not necessarily to be construed as preferred or
advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary
structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent
that the terms “includes,” “has,” “contains,” and other similar words are used in either the
5 detailed description or the claims, such terms are intended to be inclusive—in a manner similar
to the term “comprising” as an open transition word—without precluding any additional or other elements.
[0042] As used herein, an “electronic device”, or “portable electronic device”, or “user
10 device” or “communication device” or “user equipment” or “device” refers to any electrical,
electronic, electromechanical and computing device. The user device is capable of receiving
and/or transmitting one or parameters, performing function/s, communicating with other user
devices and transmitting data to the other user devices. The user equipment may have a
processor, a display, a memory, a battery and an input-means such as a hard keypad and/or a
15 soft keypad. The user equipment may be capable of operating on any radio access technology
including but not limited to IP-enabled communication, Zig Bee, Bluetooth, Bluetooth Low
Energy, Near Field Communication, Z-Wave, Wi-Fi, Wi-Fi direct, etc. For instance, the user
equipment may include, but not limited to, a mobile phone, smartphone, virtual reality (VR)
devices, augmented reality (AR) devices, laptop, a general-purpose computer, desktop,
20 personal digital assistant, tablet computer, mainframe computer, or any other device as may be
obvious to a person skilled in the art for implementation of the features of the present
disclosure.
[0043] Further, the user device may also comprise a “processor” or “processing unit”
25 includes processing unit, wherein processor refers to any logic circuitry for processing
instructions. The processor may be a general-purpose processor, a special purpose processor, a
conventional processor, a digital signal processor, a plurality of microprocessors, one or more
microprocessors in association with a DSP core, a controller, a microcontroller, Application
Specific Integrated Circuits, Field Programmable Gate Array circuits, any other type of
30 integrated circuits, etc. The processor may perform signal coding data processing, input/output
processing, and/or any other functionality that enables the working of the system according to the present disclosure. More specifically, the processor is a hardware processor.
10

[0044] Further, in accordance with the present disclosure, it is to be acknowledged that the
functionality described for the various components/units can be implemented interchangeably.
While specific embodiments may disclose a particular functionality of these units for clarity, it
is recognized that various configurations and combinations thereof are within the scope of the
5 disclosure. The functionality of specific units as disclosed in the disclosure should not be
construed as limiting the scope of the present disclosure. Consequently, alternative arrangements and substitutions of units, provided they achieve the intended functionality described herein, are considered to be encompassed within the scope of the present disclosure.
10 [0045] As discussed in the background section, the current known solutions for enhancing
HTTP client to efficiently use multiple connections to increase overall throughput of overall communication network have several shortcomings such as increased overall time for communication due to formation of a new connection for every request for communication, and occurrence of state when an idle connection occurs for more than the pre-defined period.
15
[0046] The present disclosure aims to overcome the above-mentioned and other existing
problems in this field of technology by allowing the network to make persistent connections to ensure that the teardown of the connection does not take place once the request for the connection has been met with response. Further, HTTP client can adjust and maintain the
20 number of connections based on the requirement of the application. Furthermore, the HTTP
client can detect stale state for the idle connections that have been closed by the server but their closure event was left undetected at the client. Upon detection of the stale state for the idle connection (that is, upon detection of stale (or idle) connection for a threshold period of time), HTTP client retries to send requests to form new connections in order to allow the
25 communication to happen smoothly whenever the communication is performed within such
connection. Moreover, the HTTP Client also supports secure communication.
[0047] In the present disclosure, the number of connections to be created with the server
by the HTTP client are pre-configured and these connections are maintained (created or
30 destroyed) as per the demand of the application by calculating the current load being generated
by the application. Also, the HTTP Client detects the stale connection when it receives Reset (RST) at Transport Protocol (TCP) level from the peer while sending request, wherein the server or the peer is pre-configured with Fully Qualified Domain Name (FQDN) and Internet Protocol (IP) addresses of active and standby IP addresses. This happens when there is firewall
11

between Client and Server. Server closes the connections with the firewall but connections between client and firewall remained intact. Upon stale connection detection, new connection(s) is(are) established with the peer for request forwarding.
5 [0048] Hereinafter, exemplary embodiments of the present disclosure will be described
with reference to the accompanying drawings.
[0049] Fig. 1 illustrates an exemplary block diagram representation of a Hypertext
Transfer Protocol (HTTP) client-server interface architecture [102]. A client [102a]
10 communicates with server [102b] using the HTTP interface [102c]. The client–server model is
a distributed application structure that distributes tasks between the providers of a resource, called servers, and service requesters, called clients. The clients [102a] and servers [102b] communicate over a computer network on separate hardware, but both client [102a] and server [102b] may reside in the same system. A server host runs one or more server programs, which
15 share their resources with clients. The clients [102a] and servers [102b] exchange messages in
a request–response messaging pattern. In operation for communication between clients [102a] and servers [102b], server(s) [102b] waits for client(s) [102a] request messages. After the server [102b] receives a request message from a client [102a], the server [102b] processes the message, and replies to the client [102a] with a response message. All the communication takes
20 place using the Hypertext Transfer Protocol. The response may contain an HTTP Response
status code indicating whether or not the request succeeded.
[0050] Fig. 2 illustrates an exemplary block diagram of a computing device [1000] (or as
used herein, computer system [1000]) upon which the features of the present disclosure may
25 be implemented in accordance with exemplary implementation of the present disclosure. In an
implementation, the computing device [1000] may also implement a method for managing connections at Hypertext Transfer Protocol (HTTP) Client to increase overall throughput of overall communication network utilising the system. In another implementation, the computing device [1000] itself implements the method for managing connections at Hypertext Transfer
30 Protocol (HTTP) Client to increase overall throughput of overall communication network using
one or more units configured within the computing device [1000], wherein said one or more units are capable of implementing the features as disclosed in the present disclosure.
12

[0051] The computing device [1000] may include a bus [1002] or other communication
mechanism for communicating information, and a hardware processor [1004] coupled with bus
[1002] for processing information. The hardware processor [1004] may be, for example, a
general purpose microprocessor. The computer system [1000] may also include a main memory
5 [1006], such as a random access memory (RAM), or other dynamic storage device, coupled to
the bus [1002] for storing information and instructions to be executed by the processor [1004].
The main memory [1006] also may be used for storing temporary variables or other
intermediate information during execution of the instructions to be executed by the processor
[1004]. Such instructions, when stored in non-transitory storage media accessible to the
10 processor [1004], render the computer system [1000] into a special-purpose machine that is
customized to perform the operations specified in the instructions. The computer system [1000] further includes a read only memory (ROM) [1008] or other static storage device coupled to the bus [1002] for storing static information and instructions for the processor [1004].
15 [0052] A storage device [1010], such as a magnetic disk, optical disk, or solid-state drive
is provided and coupled to the bus [1002] for storing information and instructions. The computer system [1000] may be coupled via the bus [1002] to a display [1012], such as a cathode ray tube (CRT), Liquid crystal Display (LCD), Light Emitting Diode (LED) display, Organic LED (OLED) display, etc. for displaying information to a computer user. An input
20 device [1014], including alphanumeric and other keys, touch screen input means, etc. may be
coupled to the bus [1002] for communicating information and command selections to the processor [1004]. Another type of user input device may be a cursor controller [1016], such as a mouse, a trackball, or cursor direction keys, for communicating direction information and command selections to the processor [1004], and for controlling cursor movement on the
25 display [1012]. This input device typically has two degrees of freedom in two axes, a first axis
(e.g., x) and a second axis (e.g., y), that allow the device to specify positions in a plane.
[0053] The computer system [1000] / computing device [1000] may implement the
techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs,
30 firmware and/or program logic which in combination with the computer system [1000] causes
or programs the computer system [1000] to be a special-purpose machine. According to one implementation, the techniques herein are performed by the computer system [1000] in response to the processor [1004] executing one or more sequences of one or more instructions contained in the main memory [1006]. Such instructions may be read into the main memory
13

[1006] from another storage medium, such as the storage device [1010]. Execution of the
sequences of instructions contained in the main memory [1006] causes the processor [1004] to
perform the process steps described herein. In alternative implementations of the present
disclosure, hard-wired circuitry may be used in place of or in combination with software
5 instructions.
[0054] The computer system [1000] also may include a communication interface [1018]
coupled to the bus [1002]. The communication interface [1018] provides a two-way data communication coupling to a network link [1020] that is connected to a local network [1022].
10 For example, the communication interface [1018] may be an integrated services digital network
(ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, the communication interface [1018] may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such
15 implementation, the communication interface [1018] sends and receives electrical,
electromagnetic or optical signals that carry digital data streams representing various types of information.
[0055] The computer system [1000] can send messages and receive data, including
20 program code, through the network(s), the network link [1020] and the communication
interface [1018]. In the Internet example, a server [1030] might transmit a requested code for
an application program through the Internet [1028], the ISP [1026], the local network [1022],
host [1024] and the communication interface [1018]. The received code may be executed by
the processor [1004] as it is received, and/or stored in the storage device [1010], or other non-
25 volatile storage for later execution.
[0056] Referring to Figure 3, an exemplary block diagram of a system [300] for managing
connections at Hypertext Transfer Protocol (HTTP) Client to increase overall throughput of
overall communication network is shown, in accordance with the exemplary implementations
30 of the present disclosure. The system [300] comprises at least one connection establishing unit
[302], at least one creating unit [304], at least one receiving unit [306], at least one queueing unit [308], at least one identifying unit [310], and at least one detecting unit [312], at least one peer management task (PMT) unit [314] (or PMT module [314], and at least one transmitting unit [316]. Also, all of the components/ units of the system [300] are assumed to be connected
14

to each other unless otherwise indicated below. As shown in the figures all units shown within
the system should also be assumed to be connected to each other. Also, in Fig. 3 only a few
units are shown, however, the system [300] may comprise multiple such units or the system
[300] may comprise any such numbers of said units, as required to implement the features of
5 the present disclosure. Further, in an implementation, the system [300] may be present in a user
device to implement the features of the present disclosure. The system [300] may be a part of
the user device / or may be independent of but in communication with the user device (may
also referred herein as a UE). In another implementation, the system [300] may reside in a
server or a network entity. In yet another implementation, the system [300] may reside partly
10 in the server/ network entity and partly in the user device.
[0057] The system [300] is configured for managing connections at Hypertext Transfer
Protocol (HTTP) Client, with the help of the interconnection between the components/units of
the system [300].
15
[0058] The configuration of a HTTP Server(s) is done prior to establishment of the
connections between the HTTP client and the HTTP servers. In this, multiple servers and/or
peers may be configured. Both active and standby peers are configured and mapped to a fully
qualified domain name (FQDN). Further, a data storing the FQDN as a key and using active
20 and standby peers as value is used. This data may be pre-stored in a storage unit [318]. Once
the configuration is done, and is successful, the client may initiate the configured number of connections towards the server. For this purpose, the client may use the connection establishing unit [302]. The connection establishing unit [302] is configured to establish one or more connections with one or more servers.
25
[0059] Further, the creating unit [304] is configured to create a queue for each of the one
or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers. For each server/peer configured, the creating unit [304] may create a new queue. Also, in an implementation, a new
30 request may be added to the queue every time when the new request to be sent to the server/peer
is submitted. In other words, when an application submits a request through client, requests are buffered in a queue. Also, a Peer Management Task (PMT) module (or as used herein, PMT unit [314]) is made to run in the background. This PMT module constantly monitors for receival of any new request that is submitted to a queue. In an implementation, the PMT module is
15

notified to process further the newly received request. The PMT module may find an available resource to be used for further processing of the request(s).
[0060] Thus, after creation of the queue, the receiving unit [306] is configured to receive
5 the one or more queries from an application program interface (API) for the one or more
servers. For this purpose, an application module may call an Application Programming Interface (API) of the client to send a request. This API has a Universal Resource Identifier (URI) as one of the parameters. The application module can provide the FQDN or internet protocol (IP) address as values of the URI to send such requests.
10
[0061] Further, queueing unit [308] is configured to add the one or more queries in the
respective queue for the one or more servers. Pertinently, if the FQDN is used by the application module in the above request, an available connection of active instance may be preferred over that of standby instance. However, if the IP address is used in URI, the request may be routed
15 to the specific instance, be it an active instance or a standby instance. Also, after submitting the
request, application module is free from further processing, which will facilitate in increasing overall throughput of overall communication network.
[0062] Further, the identifying unit [310] is configured to identify an available connection
20 with the one or more servers. For this purpose, the identifying unit [310] may determine
whether connection is available or not. If it is determined that a connection is available, then
the request may be written on the available connection. However, in an implementation, if it is
determined that no connection is available, then the identifying unit [310] may further
determine if the number of connections exceed a pre-configured threshold number of
25 connections. Further, if it is determined that the number of connections do not exceed the pre-
configured threshold number of connections, then a new connection may be created for writing
the request on the newly created connection. However, if it is determined that the number of
connections exceed the pre-configured threshold number of connections, then the system waits
for a connection be to free and when the connection becomes available, then the request may
30 be written on the available connection. In an implementation, once the PMT module is notified,
the request from the queue is popped out, and identification of an available connection from the pool is done or a new connection is created. Further, the request is forwarded to such identified or created connection. Also, in an implementation, if the writing of the request is successful, then a connection is formed and the flow is terminated. However, if the writing of
16

the request in unsuccessful, then this connection is closed, and a new connection is created.
Further, the request is written over the new connection created. Once, the writing of this new
request is successful, then it is checked by the detecting unit [312] if there is any problem
occurring while forwarding the request to the server. If a problem is detected, by the detecting
5 unit [312], while forwarding the request to the server, a failure reason is checked. A person
skilled in the art would appreciate that in a network, there are regular connection fluctuations (connections being created and destroyed), so there are occasions where the connection seems available but when an application try to write a request on that connection, the connection may become unavailable. Further, in scenarios where a firewall is present in the path of a data
10 packet, idle connections may frequently be closed by the firewall. A stateful firewall (that keeps
a track of the state or context of connections by maintaining a state table, as opposed to stateless firewalls that do not track the state of connections) may remove connections from its state table after a given idle session timeout. Due to this, a client may be unaware of the connection closure at firewall end. Due to this, the connection appears active at the client end. The client end gets
15 to know about this connection closure when an application tries to write a request over the
channel and it receives CONNECTION_RESET indication from the firewall. Thus, if the failure is due to CONNECTION_RESET, then the identifying unit [310] marks/identifies the available connection as a stale connection. Further, in this implementation, the queueing unit [308] closes this identified stale connection.
20
[0063] In another exemplary implementation, after closing the identified stale connection,
a new connection may also be created to maintain the connection pool. Further, in this implementation, the connection establishing unit [302] may establish a new connection with the one or more servers, wherein the added one or more queries may be transmitted over this
25 new connection.
[0064] In other words, in an event the PMT unit [314] identifies that no connection is
available, the PMT unit [314] is further configured to determine whether a number of
connections exceeds a preconfigured number of connections, that is a threshold number of
30 connections. This threshold number of connections is decided as per the throughput
requirement of the application. Higher connections will lead to higher throughput. However, greater number of connections than required may lead to resource wastage. Hence, the threshold number of connections are configured by the application basis at least the throughput requirement of the application. Also, in an exemplary implementation, the one or more HTTP
17

clients establish a preconfigured number of connections with the one or more servers. Further,
in an exemplary implementation, in an event the PMT unit [314] identifies that the number of
connections is less than the preconfigured number of connections, the creating unit [304] may
create a new connection with the one or more servers. In this implementation, the transmitting
5 unit [316] may be further configured to transmit the added one or more queries to the one or
more servers over the new connection.
[0065] Also, in this implementation, in an event the PMT unit [314] identifies that the
number of connections exceeds the preconfigured number of connections, the queueing unit
10 [308] is further configured to wait for the one or more connections with the one or more servers
to become available. In this implementation, the transmitting unit [316] is further configured to transmit the added one or more queries to the one or more servers once the one or more connections are available.
15 [0066] In an exemplary implementation, the one or more queries comprises HTTP requests
corresponding to at least one of GET, POST, PUT, DELETE, or other standard HTTP methods intended for communication with the one or more servers.
[0067] The system [300] allows multiple connection requests to be sent asynchronously to
20 increase the overall throughput of the application. Further, the system allows the use of multiple
connections to be optimized in a way such that these connections are created and teared down
depending on the traffic currently being generated for proper resource utilization. Furthermore,
more connections are created (subjected to a threshold) if the application requires and
connections are teared down when application requires only a few. Thereby, traffic handling
25 during both the peak hours and lean hours is taken care of effectively. Further, the problem of
stale connections due to the idle state is also solved. When the client tries to send a request over
the stale connection due to idle state, it receives RST (reset) frame indicating
CONNECTION_RESET over TCP (Transmission Control Protocol) from peer. Upon receiving
the RST packet, the client releases the connection state from its memory and frees the unusable
30 resource and works upon creation of a new connection (if required) with the peer.
[0068] Referring to Figure 4, an exemplary method flow diagram [400], for enhancing
HTTP client to efficiently use multiple connections to increase overall throughput of overall communication network, in accordance with exemplary embodiments of the present invention
18

is shown. In an implementation the method [400] is performed by the system [300]. As shown
in Figure 4, the method [400] starts at step [302]. For the purpose of clarity, various components
as shown in Figure 3 may be used to explain the steps of Figure 4. Also, for the purpose of
clarity, components of Figure 5 which illustrates a method flow diagram of an exemplary
5 process indicating an exemplary scenario of the process for managing connections at Hypertext
Transfer Protocol (HTTP) Client to increase overall throughput of overall communication network, in accordance with exemplary embodiments of the present disclosure, may also be used in conjunction with the explanation of Figure 4 in this disclosure.
10 [0069] At step [402], the method [400] as disclosed by the present disclosure comprises
establishing, by the connection establishing unit [302], one or more connections with one or more servers. The connection establishing unit [302] establishes one or more connections with the one or more servers as per pre-configurations or based on the demand of the application by calculating the current load being generated by the application. Also, a configuration of a HTTP
15 Server(s) is done prior to establishment of the connections between the HTTP client and the
HTTP servers (See block 501 of Fig. 5). In this, multiple servers and/or peers may be configured. Both active and standby peers are configured and mapped to a fully qualified domain name (FQDN). Further, a data storing the FQDN as a key and using active and standby peers as value is used. This data may be pre-stored in a storage unit [318]. Once the
20 configuration is done, and is successful, the client may initiate the configured number of
connections towards the server. For this purpose, the client may use the connection establishing unit [302].
[0070] Next, at step [404], the method [400] as disclosed by the present disclosure
25 comprises creating, by the creating unit [304], a queue for each of the one or more connections
with the one or more servers. For each server/peer configured, the creating unit [304] may
create a new queue (See block 502 of Fig. 5). Also, in an implementation, a new request may
be added to the queue every time when the new request to be sent to the server/peer is
submitted. In other words, when an application submits a request through client, requests are
30 buffered in a queue. Also, a Peer Management Task (PMT) module (or as used herein, PMT
unit [314]) is made to run in the background. This PMT unit [314] constantly monitors for receival of any new request that is submitted to a queue. In an implementation, the PMT unit [314]is notified to process further the newly received request. The PMT unit [314] may find an available resource to be used for further processing of the request(s).
19

[0071] Next, after creation of the queue, at step [406], the method [400] as disclosed by
the present disclosure comprises receiving, by the receiving unit [306], one or more queries
from an application program interface (API) for the one or more servers. For this purpose, an
5 application module may call an Application Programming Interface (API) of the client to send
a request (See block 503 of Fig. 5). This API has a Universal Resource Identifier (URI) as one of the parameters. The application module can provide the FQDN or internet protocol (IP) address as values of the URI to send such requests.
10 [0072] Next, at step [408], the method [400] as disclosed by the present disclosure
comprises adding, by the queueing unit [308], the one or more queries in the respective queue for the one or more servers (See block 504 of Fig. 5). Pertinently, if the FQDN is used by the application module in the above request, an available connection of active instance may be preferred over that of standby instance. However, if the IP address is used in URI, the request
15 may be routed to the specific instance, be it an active instance or a standby instance. Also, after
submitting the request, application module is free from further processing, which will facilitate in increasing overall throughput of overall communication network.
[0073] Next, at step [410], the method [400] as disclosed by the present disclosure
20 comprises identifying, by the identifying unit [310], an available connection with the one or
more servers. For this purpose, the identifying unit [310] may determine whether connection
is available or not (See block 505 of Fig. 5). If it is determined that a connection is available,
then the system proceeds to the next step of writing the request on the available connection
(See block 508 of Fig. 5). However, in an implementation, if it is determined that no connection
25 is available, then the identifying unit [310] may further determine if the number of connections
exceed a pre-configured threshold number of connections (See block 506 of Fig. 5). Further, if
it is determined that the number of connections do not exceed the pre-configured threshold
number of connections, then the method proceeds to creating a new connection (See block 509
of Fig. 5) and then the method moves to the next step of writing the request on the available
30 connection (See block 508 of Fig. 5). However, if it is determined that the number of
connections exceed the pre-configured threshold number of connections, then the system waits for a connection be to free (See block 507 of Fig. 5) and when the connection becomes available, the method moves to the next step of writing the request on the available connection (See block 508 of Fig. 5). In an implementation, once the PMT module is notified, the request
20

from the queue is popped out, and identification of an available connection from the pool is
done or a new connection is created. Further, the request is forwarded to such identified or
created connection. Also, in an implementation, it is checked whether the writing of the request
is successful or not (See block 510 of Fig. 5). If the writing of the request is successful, then a
5 connection is formed and the flow is terminated (See block 514 of Fig. 5). However, if the
writing of the request in unsuccessful, then this connection is closed (See block 511 of Fig. 5), and a new connection is created (See block 512 of Fig. 5). Further, the request is written over the new connection created (See block 513 of Fig. 5).
10 [0074] In an implementation, once the writing of this new request is successful, then the
method comprises checking, by the detecting unit [312], if there is any problem occurring while forwarding the request to the server. If a problem is detected, by the detecting unit [312], while forwarding the request to the server, a failure reason is checked. A person skilled in the art would appreciate that in a network, there are regular connection fluctuations (connections being
15 created and destroyed), so there are occasions where the connection seems available but when
an application try to write a request on that connection, the connection may become unavailable. Further, in scenarios where a firewall is present in the path of a data packet, idle connections may frequently be closed by the firewall. A stateful firewall (that keeps a track of the state or context of connections by maintaining a state table, as opposed to stateless firewalls
20 that do not track the state of connections) may remove connections from its state table after a
given idle session timeout. Due to this, a client may be unaware of the connection closure at firewall end. Due to this, the connection appears active at the client end. The client end gets to know about this connection closure when an application tries to write a request over the channel and it receives CONNECTION_RESET indication from the firewall. Thus, if the failure is due
25 to CONNECTION_RESET, then the method comprises identifying/marking, by the identifying
unit [310], the available connection as a stale connection. Further, in this implementation, the method may further comprise closing, by the queueing unit [308], this identified stale connection. In another exemplary implementation, after closing the identified stale connection, a new connection may also be created to maintain the connection pool. Further, in this
30 implementation, the method may further comprise, establishing, by the connection establishing
unit [302], a new connection with the one or more servers, wherein the added one or more queries may be transmitted over this new connection.
21

[0075] In other words, in an event the PMT unit [314] identifies that no connection is
available, the PMT unit [314] determines whether a number of connections exceeds a
preconfigured number of connections, that is a threshold number of connections. This threshold
number of connections is decided as per the throughput requirement of the application. Higher
5 connections will lead to higher throughput. However, greater number of connections than
required may lead to resource wastage. Hence, the threshold number of connections are configured by the application basis at least the throughput requirement of the application. Also, in an exemplary implementation, the one or more HTTP clients establish a preconfigured number of connections with the one or more servers. Further, in an exemplary implementation,
10 in an event the PMT unit [314] identifies that the number of connections is less than the
preconfigured number of connections, the creating unit [304] may create a new connection with the one or more servers. In this implementation, the transmitting unit [316] may be further configured to transmit the added one or more queries to the one or more servers over the new connection. Also, in this implementation, in an event the PMT unit [314] identifies that the
15 number of connections exceeds the preconfigured number of connections, the queueing unit
[308] is further configured to wait for the one or more connections with the one or more servers to become available. In this implementation, the transmitting unit [316] is further configured to transmit the added one or more queries to the one or more servers once the one or more connections are available.
20
[0076] In an exemplary implementation, the one or more queries comprises HTTP requests
corresponding to at least one of GET, POST, PUT, DELETE, or other standard HTTP methods intended for communication with the one or more servers.
25 [0077] The method [400] allows multiple connection requests to be sent asynchronously
to increase the overall throughput of the application. Further, the method [400] allows the use of multiple connections to be optimized in a way such that these connections are created and teared down depending on the traffic currently being generated for proper resource utilization. Furthermore, more connections are created (subjected to a threshold) if the application requires
30 and connections are teared down when application requires only a few. Thereby, traffic
handling during both the peak hours and lean hours is taken care of effectively. Further, the problem of stale connections due to the idle state is also solved. When the client tries to send a request over the stale connections due to idle state, it receives RST (reset) frame indicating CONNECTION_RESET over TCP (Transmission Control Protocol) from peer. Upon receiving
22

the RST packet, the client releases the connection state from its memory and frees the unusable resource and works upon creation of a new connection (if required) with the peer.
[0078] The present disclosure also encompasses a user equipment (UE) for managing
5 connections at Hypertext Transfer Protocol (HTTP) Client comprising a system. The system
further comprises a connection establishing unit configured to establish one or more connections with one or more servers. Further, the system comprises a creating unit configured to create a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more
10 servers. Further, the system comprises a receiving unit configured to receive the one or more
queries from an application program interface (API) for the one or more servers. Further, the system comprises a queueing unit configured to add the one or more queries in the respective queue for the one or more servers. Further, the system comprises an identifying unit configured to identify an available connection with the one or more servers.
15
[0079] The present disclosure also encompasses a non-transitory computer readable
medium to store executable instructions for managing connections at Hypertext Transfer Protocol (HTTP) Client, the executable instructions when executed by one or more units of a system, cause: a connection establishing unit to establish one or more connections with one or
20 more servers; a creating unit to create a queue for each of the one or more connections with the
one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers; a receiving unit to receive the one or more queries from an application program interface (API) for the one or more servers; a queueing unit to add the one or more queries in the respective queue for the one or more servers; an identifying
25 unit to identify an available connection with the one or more servers.
[0080] As is evident from the above, the present disclosure provides a technically
advanced solution for enhancing Hypertext Transfer Protocol (HTTP) client to efficiently use
multiple connections to increase overall throughput of overall communication network. Various
30 advantages of the present disclosure includes:
• Asynchronous creation of multiple connection requests to increase the overall throughput of the system;
• Optimization of the system to allow the use of multiple connections
23

• Efficient and proper usage of the resources.
• Efficient and reliable handling of the traffic handling during both the peak hours and lean hours.
• Time-saving and efficient solution to solve the problem of stale state due to the idle
5 connections.
• The system allows the client to failover or failback between active and standby
instances of the server and allows preventing any data loss without service disruption,
in case any one of the instances is unreachable. It constantly checks for the reachability
status of the server instance and restores the connections once it becomes reachable
10 again.
• The system supports secure message exchange with the server using Secure Socket
Layer (SSL) or Transport Layer Security (TLS). This helps in maintaining integrity of
data.
• The custom HTTP Client can: adjust the number of connections as per requirement of
15 the application; detect stale (idle) connections which have been closed by the server but
their closure event was undetected at the client, and upon detection, it can retry the failed requests over new connections; and support secure communication.
[0081] While considerable emphasis has been placed herein on the disclosed
20 embodiments, it will be appreciated that many embodiments can be made and that many
changes can be made to the embodiments without departing from the principles of the present disclosure. These and other changes in the embodiments of the present disclosure will be apparent to those skilled in the art, whereby it is to be understood that the foregoing descriptive matter to be implemented is illustrative and non-limiting.
24

We Claim:
1. A method for managing connections at Hypertext Transfer Protocol (HTTP) Client, the
method comprising:
- establishing, by a connection establishing unit [302], one or more connections with one or more servers;
- creating, by a creating unit [304], a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers;
- receiving, by a receiving unit [306], the one or more queries from an application program interface (API) for the one or more servers;
- adding, by a queueing unit [308], the one or more queries in the respective queue for the one or more servers; and
- identifying, by an identifying unit [310], an available connection with the one or more servers.
2. The method as claimed in claim 1, the method further comprising:
- detecting, by a detecting unit [312], a failure in transmitting the added one or more queries over the identified available connection;
- identifying, by the identifying unit [310], the identified available connection as a stale connection;
- closing, by the queueing unit [308], the stale connection; and
- establishing, by the connection establishing unit [302], a new connections with the one or more servers, wherein the added one or more queries are transmitted over the new connection.

3. The method as claimed in claim 1, wherein the one or more HTTP clients establishes a preconfigured number of connections with the one or more servers.
4. The method as claimed in claim 1, wherein the method comprises:
- notifying, by a notifying unit, a peer management task (PMT) unit [314] about the
added one or more queries; and

- transmitting, by a transmitting unit [316], the added one or more queries to the one or
more servers over the identified available connection.
5. The method as claimed in claim 4, wherein in an event the PMT unit [314] identifies that no connection is available, the method further comprises determining, by the PMT unit [314], whether a number of connections exceeds a preconfigured number of connections.
6. The method as claimed in claim 5, wherein in an event the PMT unit [314] identifies that the number of connections is less than the preconfigured number of connections, the method further comprising:

- creating, by the creating unit [304], a new connection with the one or more servers; and
- transmitting, by the transmitting unit [316], the added one or more queries to the one or more servers over the new connection.
7. The method as claimed in claim 5, wherein in an event the PMT unit [314] identifies that
the number of connections exceeds the preconfigured number of connections, the method
further comprising:
- waiting, by the queueing unit [308], for the one or more connections with the one or more servers to become available; and
- transmitting, by the transmitting unit [316], the added one or more queries to the one or more servers once the one or more connections are available.

8. The method as claimed in claim 1, wherein the one or more queries comprises HTTP requests corresponding to at least one of GET, POST, PUT, DELETE, or other standard HTTP methods intended for communication with the one or more servers.
9. A system for managing connections at Hypertext Transfer Protocol (HTTP) Client, the system comprising:

- a connection establishing unit [302] configured to establish one or more connections with one or more servers;
- a creating unit [304] configured to create a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers;

- a receiving unit [306] configured to receive the one or more queries from an application program interface (API) for the one or more servers;
- a queueing unit [308] configured to add the one or more queries in the respective queue for the one or more servers; and
- an identifying unit [310] configured to identify an available connection with the one or more servers.
10. The system as claimed in claim 9, the system further comprises:
- a detecting unit [312] configured to detect a failure in transmitting the added one or more queries over the identified available connection;
- the identifying unit [310] configured to identify the identified available connection as a stale connection;
- the queueing unit [308] configured to close the stale connection; and
- the connection establishing unit [302] configured to establish a new connection with the one or more servers, wherein the added one or more queries are transmitted over the new connection.

11. The system as claimed in claim 9, wherein the one or more HTTP clients establishes a preconfigured number of connections with the one or more servers.
12. The system as claimed in claim 9, wherein the system comprises:

- a notifying unit configured to notify a peer management task (PMT) unit [314] of the added one or more queries; and
- a transmitting unit [316] configured to transmit the added one or more queries to the one or more servers over the identified available connection.

13. The system as claimed in claim 12, wherein in an event the PMT unit [314] identifies that no connection is available, comprises a determining unit configured to determine whether a number of connections exceeds a preconfigured number of connections.
14. The system as claimed in claim 13, wherein in an event the PMT unit [314] identifies that the number of connections is less than the preconfigured number of connections, the system comprises:

- the creating unit [304] configured to create a new connection with the one or more servers; and
- the transmitting unit [316] configured to transmit the added one or more queries to the one or more servers over the new connection.
15. The system as claimed in claim 13, wherein in an event the PMT unit [314] identifies that
the number of connections exceeds the preconfigured number of connections, the system
comprises:
- the queueing unit [308] configured to wait for the one or more connections with the one or more servers to become available; and
- the transmitting unit [316] configured to transmit the added one or more queries to the one or more servers once the one or more connections are available.

16. The system as claimed in claim 9, wherein the one or more queries comprises HTTP requests corresponding to at least one of GET, POST, PUT, DELETE, or other standard HTTP methods intended for communication with the one or more servers.
17. A user equipment (UE) for managing connections at Hypertext Transfer Protocol (HTTP) Client, the UE comprising a system, the system further comprising:

- a connection establishing unit [302] configured to establish one or more connections with one or more servers;
- a creating unit [304] configured to create a queue for each of the one or more connections with the one or more servers, wherein the queue acts as a buffer for one or more queries awaiting transmission to the one or more servers;
- a receiving unit [306] configured to receive the one or more queries from an application program interface (API) for the one or more servers;
- a queueing unit [308] configured to add the one or more queries in the respective queue for the one or more servers; and
- an identifying unit [310] configured to identify an available connection with the one or more servers.

Documents

Application Documents

# Name Date
1 202321044882-STATEMENT OF UNDERTAKING (FORM 3) [04-07-2023(online)].pdf 2023-07-04
2 202321044882-PROVISIONAL SPECIFICATION [04-07-2023(online)].pdf 2023-07-04
3 202321044882-FORM 1 [04-07-2023(online)].pdf 2023-07-04
4 202321044882-FIGURE OF ABSTRACT [04-07-2023(online)].pdf 2023-07-04
5 202321044882-DRAWINGS [04-07-2023(online)].pdf 2023-07-04
6 202321044882-FORM-26 [08-09-2023(online)].pdf 2023-09-08
7 202321044882-Proof of Right [05-10-2023(online)].pdf 2023-10-05
8 202321044882-ORIGINAL UR 6(1A) FORM 1 & 26)-181023.pdf 2023-11-06
9 202321044882-ENDORSEMENT BY INVENTORS [06-06-2024(online)].pdf 2024-06-06
10 202321044882-DRAWING [06-06-2024(online)].pdf 2024-06-06
11 202321044882-CORRESPONDENCE-OTHERS [06-06-2024(online)].pdf 2024-06-06
12 202321044882-COMPLETE SPECIFICATION [06-06-2024(online)].pdf 2024-06-06
13 Abstract1.jpg 2024-06-29
14 202321044882-FORM 3 [31-07-2024(online)].pdf 2024-07-31
15 202321044882-Request Letter-Correspondence [09-08-2024(online)].pdf 2024-08-09
16 202321044882-Power of Attorney [09-08-2024(online)].pdf 2024-08-09
17 202321044882-Form 1 (Submitted on date of filing) [09-08-2024(online)].pdf 2024-08-09
18 202321044882-Covering Letter [09-08-2024(online)].pdf 2024-08-09
19 202321044882-CERTIFIED COPIES TRANSMISSION TO IB [09-08-2024(online)].pdf 2024-08-09
20 202321044882-FORM 18A [14-02-2025(online)].pdf 2025-02-14
21 202321044882-FER.pdf 2025-03-25
22 202321044882-FER_SER_REPLY [14-05-2025(online)].pdf 2025-05-14
23 202321044882-US(14)-HearingNotice-(HearingDate-26-06-2025).pdf 2025-05-29
24 202321044882-FORM-26 [19-06-2025(online)].pdf 2025-06-19
25 202321044882-Correspondence to notify the Controller [19-06-2025(online)].pdf 2025-06-19
26 202321044882-Written submissions and relevant documents [07-07-2025(online)].pdf 2025-07-07
27 202321044882-PatentCertificate31-07-2025.pdf 2025-07-31
28 202321044882-IntimationOfGrant31-07-2025.pdf 2025-07-31

Search Strategy

1 202321044882_SearchStrategyNew_E_202321044882_SearchHistory1E_19-03-2025.pdf

ERegister / Renewals

3rd: 28 Oct 2025

From 04/07/2025 - To 04/07/2026