Patents by Inventor Anil Shetty

Anil Shetty has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8631120
    Abstract: An apparatus, method and computer program product for efficiently pooling network client-server connections. The apparatus is implemented within an interface unit connecting a plurality of servers to the Internet, which is in turn connected to a plurality of clients. The method includes the steps of opening a connection between a first client and the interface unit; determining whether a connection between the interface unit and a server is finished being utilized by the first client; opening a connection between a second client and the interface unit; if no free connection is open between the interface unit and the server, then allowing the second client to access information on the server via the same connection utilized by the first client without waiting for the first client to initiate closing the connection; and delinking the connections between the first and second clients and the interface unit while keeping open the connection between the interface unit and the server.
    Type: Grant
    Filed: August 12, 2010
    Date of Patent: January 14, 2014
    Assignee: Citrix Systems, Inc.
    Inventors: Michel K. Susai, Rajiv Sinha, Anil Shetty
  • Patent number: 8626946
    Abstract: Systems and methods are disclosed for providing a hierarchy of appliances to access resources across branch offices. A method comprises: establishing, by a first aggregator appliance, connections with a first plurality of branch office appliances; establishing, by a second aggregator appliance, connections with a second plurality of branch office appliances, the first plurality not having information identifying the second plurality; receiving, by the first aggregator appliance, from a first branch office appliance a request from a client for access to a resource; identifying, by the first aggregator appliance via the second aggregator appliance, a second branch office appliance from the second plurality to service the request; transmitting, by the first aggregator appliance, to the first branch office appliance information identifying the second branch office appliance; and establishing, by the first branch office appliance, a connection with the second branch office appliance.
    Type: Grant
    Filed: August 3, 2006
    Date of Patent: January 7, 2014
    Assignee: Citrix Systems, Inc.
    Inventors: Sandeep Kamath, Josephine Suganthi, Anil Shetty
  • Patent number: 8621105
    Abstract: Methods for using a client agent to route client requests among a plurality of appliances using transport layer information include the steps of: establishing, by a client agent executing on a client, a first transport layer connection with a first appliance of a plurality of appliances, the first appliance providing access to one or more servers; establishing, by a client agent executing on the client, a second transport layer connection with a second appliance of a plurality of appliances, the second appliance providing access to one or more servers; intercepting, by the client agent, a packet transmitted by the client; selecting, by the client agent, one of the connections to transmit the intercepted packet based on a characteristic of at least one of: the transport layer connections, the plurality of appliances, or the servers; and transmitting the intercepted packet via the selected connection.
    Type: Grant
    Filed: April 25, 2011
    Date of Patent: December 31, 2013
    Assignee: Citrix Systems, Inc.
    Inventors: Josephine Suganthi, Junxiao He, Sergey Verzunov, Anil Shetty, Charu Venkatraman
  • Publication number: 20130318232
    Abstract: A method for an appliance to switch handling of transport layer connection requests from a first virtual server of the appliance managing a first plurality of services to a second virtual server of the appliance managing a second plurality of services upon exceeding, by the first virtual server, a maximum connection threshold determined dynamically from a status of the first plurality of services The appliance establishes a predetermined threshold identifying a maximum active transport layer connection capacity for the first virtual server that comprising a sum of a predetermined connection capacity for each of the plurality of services. The appliance determines via monitoring that the status of a service of the plurality of services indicates the service is not available and adjusts the predetermined threshold to comprise the sum of the predetermined connection capacity for each of the plurality of services having a status of available.
    Type: Application
    Filed: June 27, 2013
    Publication date: November 28, 2013
    Applicant: Citrix Systems, Inc.
    Inventors: Sandeep Kamath, Josephine Suganthi, Anil Shetty, Sergey Verzunov
  • Publication number: 20130286839
    Abstract: The present solution is related to a method for distributing flows of network traffic across a plurality of packet processing engines executing on a corresponding core of a multi-core device. The method includes receiving, by a multi-core device intermediary to clients and servers, a packet of a first flow of network traffic between a client and server. The method also includes assigning, by a flow distributor of the multi-core device, the first flow of network traffic to a first core executing a packet processing engine and distributing the packet to this core. The flow distributor may distribute packets of another or second flow of traffic between another client and server to a second core executing a second packet processing engine. When a packet for the flow of traffic assigned to the first core is received, such as a third packet, the flow distributor distributes this packet to the first core.
    Type: Application
    Filed: June 28, 2013
    Publication date: October 31, 2013
    Inventors: Rajiv Mirani, Rajiv Sinha, Abhishek Chauhan, Anil Shetty
  • Patent number: 8549149
    Abstract: The present invention is directed towards systems and methods for dynamically deploying and executing acceleration functionality on a client to improve the performance and delivery of remotely accessed applications. In one embodiment, the client-side acceleration functionality is provided by an acceleration program that performs a transport layer connection multiplexing technique for improving performance of communications and delivery of a remotely-accessed application. The acceleration program establishes a transport layer connection from the client to the server that can be used by multiple applications on the client, or that is otherwise shared among applications of the client. The acceleration program multiplexes requests from one or more applications via the same transport layer connection maintained by the acceleration program.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: October 1, 2013
    Assignee: Citrix Systems, Inc.
    Inventors: Prabakar Sundarrajan, Junxiao He, Shashi Nanjundaswamy, Sergey Verzunov, Charu Venkatraman, Anil Shetty
  • Patent number: 8503459
    Abstract: The present solution is related to a method for distributing flows of network traffic across a plurality of packet processing engines executing on a corresponding core of a multi-core device. The method includes receiving, by a multi-core device intermediary to clients and servers, a packet of a first flow of network traffic between a client and server. The method also includes assigning, by a flow distributor of the multi-core device, the first flow of network traffic to a first core executing a packet processing engine and distributing the packet to this core. The flow distributor may distribute packets of another or second flow of traffic between another client and server to a second core executing a second packet processing engine. When a packet for the flow of traffic assigned to the first core is received, such as a third packet, the flow distributor distributes this packet to the first core.
    Type: Grant
    Filed: April 23, 2010
    Date of Patent: August 6, 2013
    Assignee: Citrix Systems, Inc
    Inventors: Rajiv Mirani, Rajiv Sinha, Abhishek Chauhan, Anil Shetty
  • Patent number: 8493858
    Abstract: A method for an appliance to switch handling of transport layer connection requests from a first virtual server of the appliance managing a first plurality of services to a second virtual server of the appliance managing a second plurality of services upon exceeding, by the first virtual server, a maximum connection threshold determined dynamically from a status of the first plurality of services.
    Type: Grant
    Filed: August 22, 2006
    Date of Patent: July 23, 2013
    Assignee: Citrix Systems, Inc
    Inventors: Sandeep Kamath, Josephine Suganthi, Sergey Verzunov, Anil Shetty
  • Patent number: 8458331
    Abstract: Described are methods and systems for managing the connections between a client, an intermediary appliance and a server, so that asynchronous messages can be transmitted over HTTP from the server to a client. When a connection is established between a client and an intermediary, and the intermediary and a server to establish a logical client-server connection, that logical client-server connection is labeled and not maintained, while the connection between the client and the intermediary is maintained. Messages generated by the server and destined for the client are transmitted to the intermediary along with the connection label. The intermediary can then use the connection label to determine which client should receive the message.
    Type: Grant
    Filed: October 8, 2009
    Date of Patent: June 4, 2013
    Assignee: Citrix Systems, Inc.
    Inventors: Abhishek Chauhan, Ravi Kondamuru, Josephine Suganthi, Murali Raja, Anil Shetty
  • Publication number: 20130022051
    Abstract: The present application is directed towards systems and methods for handling a multi-connection protocol communication between a client and a server traversing a multi-core system. The multi-connection protocol comprises a first connection and a second connection, which may be used respectively for control communications and data communications. Because different cores in the multi-core system may handle the first connection and second connection, the present invention provides systems and methods for efficiently coordinating protocol management between a plurality of cores.
    Type: Application
    Filed: September 28, 2012
    Publication date: January 24, 2013
    Inventors: Josephine Suganthi, Anil Shetty
  • Publication number: 20130007239
    Abstract: The present solution is directed to providing, transparently and seamlessly to any client or server, layer 2 redirection of client requests to any services of a device deployed in parallel to an intermediary device An intermediary device deployed between the client and the server may intercept a client request and check if the request is to be processed by a service provided by one of the devices deployed in parallel with the intermediary device. The service may be any type and form of service or feature for processing, checking or modifying the request, including a firewall, a cache server, a encryption/decryption engine, a security device, an authentication device, an authorization device or any other type and form of service or device described herein. The intermediary device may select the machine to process the request and use layer 2 redirection to the machine.
    Type: Application
    Filed: June 30, 2011
    Publication date: January 3, 2013
    Inventors: Mugdha Agarwal, Josephine Suganthi, Saravana Annamalaisami, Jyotheesh Rao Kurma, Deepak Goel, Anil Shetty
  • Patent number: 8289975
    Abstract: The present application is directed towards systems and methods for handling a multi-connection protocol communication between a client and a server traversing a multi-core system. The multi-connection protocol comprises a first connection and a second connection, which may be used respectively for control communications and data communications. Because different cores in the multi-core system may handle the first connection and second connection, the present invention provides systems and methods for efficiently coordinating protocol management between a plurality of cores.
    Type: Grant
    Filed: June 22, 2009
    Date of Patent: October 16, 2012
    Assignee: Citrix Systems, Inc.
    Inventors: Josephine Suganthi, Anil Shetty
  • Publication number: 20120226804
    Abstract: The present invention is directed towards systems and methods for aggregating and providing statistics from cores of a multi-core system intermediary between one or more clients and servers. The system may maintain in shared memory a global device number for each core of the multi-core system. The system may provide a thread for each core of the multi-core system to gather data from the corresponding core. A first thread may generate aggregated statistics from a corresponding core by parsing the gathered data from the corresponding core. The first thread may transfer the generated statistics to a statistics log according to a schedule. The system may adaptively reschedule the transfer by monitoring the operation of each computing thread. Responsive to a request from a client, an agent of the client may obtain statistics from the statistics log.
    Type: Application
    Filed: December 27, 2011
    Publication date: September 6, 2012
    Inventors: Murali Raja, Sridhar Srinivasan, Saravana Annamalaisami, Devesh Prakash, Josephine Suganthi, Anil Shetty
  • Patent number: 8244883
    Abstract: Systems and methods are disclosed for communicating compressed and uncompressed content over a transport layer connection established by an appliance between a client and a server. One method comprises the steps of: establishing, by an appliance, a transport layer connection between a client and a server, and receiving, by the appliance, a first response from the server to a first client request, and a second response from the server to a second client request The first response and the second response has uncompressed data. The method includes transmitting, by the appliance, the first response to the client. The appliance identifies first type of compression from a plurality of compression types for compressing the second response to the client, compresses the second response based on the identified compression type, and transmits the compressed second response to the client.
    Type: Grant
    Filed: August 3, 2006
    Date of Patent: August 14, 2012
    Assignee: Citrix Systems, Inc.
    Inventors: Sergey Verzunov, Junxiao He, Shashi Nanjundaswamy, Charu Venkatraman, Bharath Bhushan, Saravana Annamalaisami, Anil Shetty
  • Publication number: 20120203825
    Abstract: The present disclosure describes systems and methods for load balancing multiple application delivery controllers (ADCs) in multiple tiers. An upper layer of the tier comprises ADCs that load balance the plurality of ADCs of a lower layer of the tier. In order to appropriately share and maintain client IPs for transparent cache redirection scenarios, the transport layer (Transport Control Protocol (TCP)) port range is split among the ADCs of the lower tier. The lower tier ADCs would then create a connection only using a source port assigned to them. The response from the origin will then be sent to the upper level ADC which looks at the destination port and forward the packet to the correct lower tier ADC. Hence, the ADCs at two levels will work in conjunction to provide transparent cache direction.
    Type: Application
    Filed: February 8, 2012
    Publication date: August 9, 2012
    Inventors: Akshat Choudhary, Anil Kumar Gavini, Anil Shetty
  • Patent number: 8230055
    Abstract: In a method and appliance for determining responsiveness of a service via a particular protocol, a device intermediary to a plurality of clients and a plurality of services determines response times from each of a plurality of services to respond to requests via a first type of protocol of a plurality of protocols. The device calculates an average response time for the first type of protocol from each of the response times of the plurality of services. The device establishes a predetermined threshold for which a response time of a service for the first type of protocol may deviate from the average response time. The device identifies a service as available responsive to determining that a deviation of the response time of the service from the average response falls within the predetermined threshold.
    Type: Grant
    Filed: April 2, 2010
    Date of Patent: July 24, 2012
    Assignee: Citrix Systems, Inc.
    Inventors: Ravi Kondamuru, Josephine Suganthi, Murali Raja, Sandeep Kamath, Sergey Verzunov, Anil Shetty
  • Publication number: 20120072588
    Abstract: The present invention provides methods and systems for performing load balancing via a plurality of virtual servers upon a failover using metrics from a backup virtual server. The methods and systems described herein provide systems and methods for an appliance detecting that a first virtual server of a plurality of virtual servers having one or more backup virtual servers load balanced by an appliance is not available, identifying at least a first backup virtual server of a one or more backup virtual servers of the first virtual server is available, maintaining a status of the first virtual server as available in response to the identification, obtaining one or more metrics from the first backup virtual server of a one or more backup virtual servers, and determining the load across the plurality of virtual servers using the metrics obtained from the first backup virtual server associated with the first virtual server.
    Type: Application
    Filed: November 22, 2011
    Publication date: March 22, 2012
    Inventors: Sandeep Kamath, Josephine Suganthi, Sergey Verzunov, Murali Raja, Anil Shetty
  • Patent number: 8141164
    Abstract: A method for enabling decentralized dynamic load balancing among a plurality of appliances providing access to a plurality of sites, each site comprising a local area network and at least one server includes: determining, by a first appliance, a first number of services currently available for access via a local area network connected to the first appliance; receiving, by the first appliance from a second appliance, a communication indicating a second number of services currently available for access via a local area network connected to the second appliance; receiving, by the first appliance, a plurality of requests to connect to a service; determining, by the first appliance, a weight to be assigned to the second appliance, wherein the determination is responsive to the second number; and forwarding, by the first appliance to the second appliance, a subset of the plurality of requests, wherein the number of requests comprising the subset is determined in response to the determined weight.
    Type: Grant
    Filed: August 21, 2006
    Date of Patent: March 20, 2012
    Assignee: Citrix Systems, Inc.
    Inventors: Sandeep Kamath, Murali Raja, Josephine Suganthi, Anil Shetty, Sergey Verzunov
  • Patent number: 8116207
    Abstract: A method for determining service availability using a plurality of weighted monitoring agents includes: establishing, by an appliance, a plurality of agents, the plurality of agents monitoring a service executing on a server, and each agent having an assigned weight; computing, by the appliance, a sum of the assigned weights of the agents reporting the service as currently operational; determining, by the appliance, the sum falls below a given threshold; and transmitting, by the appliance, an indication that the service is unusable. Corresponding systems are also described.
    Type: Grant
    Filed: August 21, 2006
    Date of Patent: February 14, 2012
    Assignee: Citrix Systems, Inc.
    Inventors: Arcady Schekochikhin, Sandeep Kamath, Anil Shetty, Sergey Verzunov
  • Patent number: 8077622
    Abstract: Systems and methods for load balancing services based on fewest connections by decreasing granularity of service selection as a number of fewest connections serviced by the services increases may include establishing, by an appliance, a set of identifiers corresponding to a number of connections serviced by a service, the set comprising a first plurality of identifiers each identifying a predetermined number of connections and a second plurality of identifiers each identifying a predetermined range of numbers of connections. The appliance assigns, to each service servicing connections, an identifier corresponding to the number of connections serviced by the service, at least one of the identifiers selected from the second plurality of identifiers. The appliance receives a request for a service, and forwards the request to a service assigned to the identifier corresponding to a fewest number of connections with at least one service assigned to the identifier.
    Type: Grant
    Filed: August 3, 2007
    Date of Patent: December 13, 2011
    Assignee: Citrix Systems, Inc.
    Inventors: Ravi Kondamuru, Henk Bots, Josephine Suganthi, Anil Shetty