Application optimization in a network system

A network system includes multiple network resource information handling systems (IHSs) for managing applications and application communications. An IHS operating system initializes an application optimizer to provide application acceleration capability to application optimizers, such as application delivery controllers (ADCs) and wide area network (WAN) optimizer controllers (WOCs) within the network system. Upon receipt of a server application request message (SARM), a network system server responds with a restful application optimizer message (RAOM) that includes protocol, policy, and other application optimizer information that pertains to the requesting SARM. Application optimizers may include clients, ADCs and WOCs that reside within the message communication path between client and server. Application optimizers may store protocol, policy, and other information from RAOM to populate application table data. Application optimizers intercept messages between network resources of the network system and apply message policies to improve message performance thereby improving application performance within the network system.

BACKGROUND

The disclosures herein relate generally to network systems, and more specifically, to application optimization in a network system.

Modern information handling systems (IHSs) typically employ operating systems that execute applications or other processes that may require the resources of multiple processors or processor cores. Network systems may include multiple IHSs that execute applications and manage application information. Users may access network system resources that use multiple IHSs to request application services from servers or application servers.

Network systems may include IHSs that provide application server services and other network services during application or program execution. Users, clients, or other entities may require the services of network resources such as application servers. Network systems may employ network resources, such as application delivery controllers (ADCs) and wide area network (WAN) optimizer controllers (WOCs). ADCs and WOCs may increase, accelerate, or otherwise optimize application execution performance. Application optimizations seek to improve user experience and user services during application operations.

ADCs, WOCs, and other network system resources may benefit from the efficient management of messages and corresponding network packet transfers during user, client, and server application operations. In particular, effective packet management may improve user quality of experience (QoE) and quality of service (QoS) performance characteristics during application execution in a network system. Effective application optimizer tools may significantly improve application execution efficiency in an IHS and corresponding network system.

BRIEF SUMMARY

In one embodiment, a method is disclosed that includes receiving from a first information handling system (IHS), by a second IHS, a request for application services transmitted over a communication path in a network. The method also includes populating, by the second IHS, an application table in a third IHS in the communication path, the application table storing application optimizer information received from the second IHS. In one embodiment, the populating of the application table is responsive to the request for application services. In another embodiment, the populating of the application table is not responsive to a request for application services. The method further includes generating, by the second IHS, an application response to the request for application services, the application response being directed to the first IHS. The method still further includes testing, by the third IHS, the application response to determine if the application table includes a table reference to the application response, the third IHS retrieving application optimizer information from the application table if the application table includes a table reference to the application response, the third IHS otherwise performing a deep packet inspection on the application response. The method also includes applying, by the third IHS, the application optimizer information to the application response.

In another embodiment, a network system is disclosed that includes a communication path to which a first information handling system (IHS) and a second IHS couple to enable communication between the first and second IHS, wherein the second IHS receives a request for application services from the first IHS via the communication path. The network system also includes a third IHS situated in the communication path between the first and second IHS, the third IHS including an application table that stores application optimizer information received from the second IHS in response to the request for application services. In this embodiment, the second IHS generates an application response to the request for application services, the application response being directed to the first IHS. In this embodiment, the third IHS tests the application response to determine if the application table includes a table reference to the application response. The third IHS retrieves application optimizer information from the application table if the application table includes a table reference to the application response. The third IHS otherwise performs a deep packet inspection on the application response. In this embodiment, the third IHS applies the application optimizer information to the application response.

In yet another embodiment, a computer program product is disclosed that includes a non-transitory computer readable storage medium. The computer program product also includes first instructions that receive from a first information handling system (IHS) by a second IHS a request for application services transmitted over a communication path in a network. The computer program product further includes second instructions that populate by the second IHS an application table in a third IHS in the communication path, the application table storing application optimizer information received from the second IHS, the populating of the application table being responsive to the request for application services. The computer program product still further includes third instructions generate by the second IHS an application response to the request for application services, the application response being directed to the first IHS. The computer program product also includes fourth instructions that test by the third IHS the application response to determine if the application table includes a table reference to the application response, the third IHS retrieving application optimizer information from the application table if the application table includes a table reference to the application response, the third IHS otherwise performing a deep packet inspection on the application response. The computer program product further includes fifth instructions that apply the application optimizer information to the application response. The first, second, third, fourth and fifth program instructions are stored on the non-transitory computer readable storage medium.

DETAILED DESCRIPTION

A network system may include multiple information handling systems (IHSs). These network system IHSs may employ operating system software that executes applications or processes. These IHSs may include application optimizer software and tools that manage network system resources during application execution and application information communication within the network system. In one embodiment, a user or other entity may employ the resources of a client IHS to access application server IHS services, such as those of a JAVA application server. (Java is a trademark of the Oracle Corp.) A user may send a message from a client to a server in the form of a service request message. The user may use this service request message to communicate from client to server via one or more network packets.

Network packets may take the form of multiple protocols or configurations within the network system. For example, network packets may be in the form of Ethernet packets, hypertext transfer protocol (HTTP) packets, point to point protocol over Ethernet (PPPoE) packets, Fiber Channel packets, or many other network packet protocols.

Application optimizers are special application message managers and corresponding packet management tools. An application optimizer supports and enhances application execution operations within network system IHSs. Application optimizers include application delivery controllers (ADCs) and wide area network (WAN) optimizer controllers (WOCs). ADCs and WOCs are transparent to the user and provide application message optimizations during message communications across the network. These application message optimizations may offload the services that servers typically provide. However, this offloading of server duties comes at the expense of server processing bandwidth. ADCs and WOCs process “messages” in the form of network packets, or more simply “packets” during network system communications.

ADCs may perform common server tasks and provide load balancing between multiple servers. ADCs may provide network content manipulation, advanced packet routing and highly configurable health monitoring. ADCs may provide extensive compression, caching, multiplexing, application layer security, content switching, and other capabilities. The security features of an ADC may include a secure sockets layer (SSL) capability as well as other security protocols and mechanisms.

(WAN) optimizer controllers (WOCs) may provide functions similar to those of ADCs. However, WOCs may come in pairs that provide symmetrical services for network message communications. For example, a WOC may compress packet data on the sending end of a packet transfer, while another WOC of the WOC pair decompresses packet data on the receiving end of a packet transfer. WOCs may manage traffic shaping or traffic shaping polices for messages and their corresponding packets within the network system. For example, WOCs may slow down some message transfers or even drop messages, such as peer-to-peer communications, and their corresponding packets as policies dictate. WOCs may also provide other functions and services, such as encryption and decryption within a network system.

Like ADCs, WOCs may employ a variety of mechanisms to offload server functions and provide application acceleration benefits for servers within the network system. WOCs may reduce or eliminate redundant message transfers, eliminate stale data within local caches that support servers, compress and prioritize data, and many other server support functions as well.

In a network system, ADCs and WOCs may employ a deep packet inspection (DPI) to gather sufficient information about a particular message to determine what application optimization protocols apply to the particular message. The DPI may be compute-intensive for the ADC or WOC. Thus, a DPI may slow down a message transfer form one network system resource to another.

Network system resources may examine header information, such as 5-tuple information, included in network messages. For example messages, and more particularly their corresponding packets, may include a header area, such as 5-tuple area that includes source address, destination address, source port, destination port, and protocol information. This header information provides network resources with enough information to process the packet for routing and other common network functions. However, ADCs and WOCs may require more extensive packet analysis to determine application specific information.

ADCs and WOCs may perform DPI operations or filtering to gain access to, or inspect, information within a message or corresponding packet that does not reside within the message packet header. The message packet header typically contains routing information for the message packet and is more readily accessible than the remaining message information. ADCs and WOCs perform DPI operations as the message passes through inspection points within the ADC or WOC. The ADC or WOC may search the message for protocol information to determine that predefined protocol criteria to allow to the message management.

In one embodiment, an application optimizer tool such as application optimizer software may employ an application table that stores and maintains DPI style information for messages that transfer within the network system. The application optimizer may provide ADC IHSs and WOC IHSs with an efficient method of message interrogation and inspection during message transfer.

In one embodiment, a user or other entity employs a client IHS or “client” to send a server application request message (SARM), namely a request for application services, to an application server IHS, or “server”. In this manner, the user may invoke a server application by employing a particular message. The server honors the particular message and before sending application specific message information back to the client, the server may first respond with a restful application optimizer message (RAOM) that includes application optimizer information, as described in more detail below. The server does not intend the RAOM specifically for the client, but rather for the ADCs and WOCs in the network system communication path between the server and the client. In one embodiment, if the client includes a WOC or similar resource, then the client will also receive and interpret the RAOM. The ADCs and WOCs of the network system employ an application optimizer tool that interrogates the RAOM to retrieve application optimizer information from the RAOM. The network system may implement the application optimizer tool in software or hardware depending on the particular application.

The RAOM provides ADCs and WOCs with application specific information that is useful to reduce or eliminate the need for DPI operations. The RAOM may provide application information for multiple applications, such as those within the servers, at a time. In one embodiment, ADCs and WOCs employ application optimizer software to populate application tables with application message information and corresponding packet attributes, as described in more detail below. ADCs and WOCs may use the information within the application tables to associate messages and their corresponding packets with application protocols, server protocols, and other information. In this particular embodiment, each message corresponds to a respective packet. In another embodiment, a message may include multiple packets.

When a network resource such as a server sends a message to a client, ADCs and WOCs in the message path may perform application optimizing operations on that message. In one embodiment, the particular ADC or WOC in the message path extracts header information, such as 5-tuple header information, from the message. Header information for a particular packet or message may include information such as source and destination information for the particular packet or message. For example, the header information of a packet or message may include the source IP address, destination IP address, source port, destination port and protocol type for that packet or message. The particular ADC or WOC employs the header information to locate or index specific application optimization information for that message within the application table that the particular ADC or WOC maintains. The ADC or WOC may match one or more pieces of information from the message's header to use as index data into the application table information.

If a match is not found within a particular application table of a particular ADC or WOC, that particular ADC or WOC may then perform a more time intensive DPI operation on the non-matching message. However, if a match is found within a particular application table of a particular ADC or WOC, that particular ADC or WOO may interrogate the application table entry for the matching message. The application table entry for the matching message contains information that the particular ADC or WOC may perform to provide application optimization operations on the matching message. In other words, the ADC or WOC fetches information from the application table to determine what to do with the matching message, rather than performing a deep packet inspection (DPI).

As time proceeds and more and more servers generate more and more RAOMs, the application tables within ADCs and WOCs of the network system populate with useful and current application information. The application table information may provide the ADC or WOC with information as to how to compress, encrypt, or provide other traffic shaping or policy services to messages within the network system. In one embodiment, servers of the network system may send explicit RAOMs to update application tables within particular ADCs and WOCs to keep these application tables current and up-to-date. In this scenario, the RAOM is regarded as being an unsolicited RAOM that the server targets at a particular ADC or WOC. ADCs and WOCs may maintain caches that reflect the most current information in their respective application tables. To improve network efficiencies, servers may employ RAOMs to maintain ADC and WOC application table caches with up-to-date information.

In one embodiment, the disclosed application optimizer method improves ADC and WOC message management in a network system by application optimization in the form of application acceleration. A user requiring the application services of a server benefits from an increase in network system efficiencies. These network efficiencies impact user quality of experience (QoE) and quality of service (QoS) performance. The disclosed application optimizer method manages applications that employ dynamic port allocations. Dynamic port allocations may provide application services with address port changes during application message transfers. The disclosed method also supports the use of multiple and simultaneous port addressing within the network system.

FIG. 1shows a network information handling system (IHS)100with an application optimizer180and an application table300that employs the disclosed application optimizer methodology. Application table300may store application optimizer information in the form of application message attributes and other information. IHS100includes a processor105. In one embodiment, processor105may include multiple processors cores (not shown). IHS100processes, transfers, communicates, modifies, stores or otherwise handles information in digital form, analog form or other form. IHS100includes a bus110that couples processor105to system memory125via a memory controller115and memory bus120. In one embodiment, system memory125is external to processor105. System memory125may be a static random access memory (SRAM) array or a dynamic random access memory (DRAM) array.

Processor105may also include local memory (not shown) such as L1 and L2 caches (not shown). A video graphics controller130couples a display135to bus110. Nonvolatile storage140, such as a hard disk drive, CD drive, DVD drive, or other nonvolatile storage couples to bus110to provide IHS100with permanent storage of information. I/O devices150, such as a keyboard and a mouse pointing device, couple to bus110via I/O controller160and I/O bus155.

One or more expansion busses165, such as USB, IEEE 1394 bus, ATA, SATA, PCI, PCIE, DVI, HDMI and other busses, couple to bus110to facilitate the connection of peripherals and devices to IHS100. A network interface adapter170couples to bus110to enable IHS100to connect by wire or wirelessly to a network and other information handling systems. Network interface adapter170may also be called a network communication adapter or a network adapter. WhileFIG. 1shows one IHS that employs processor105, the IHS may take many forms. For example, IHS100may take the form of a desktop, server, portable, laptop, notebook, netbook, tablet or other form factor computer or data processing system. IHS100may take other form factors such as a gaming device, a personal digital assistant (PDA), a portable telephone device, a communication device or other devices that include a processor and memory.

IHS100employs an operating system (OS)190that may store information on nonvolatile storage140. IHS100includes a computer program product on digital media175such as a CD, DVD or other media. In one embodiment, a designer or other entity configures the computer program product with application optimizer180software to practice the disclosed application optimizer methodology. In practice, IHS100may store application optimizer180and application table300on nonvolatile storage140as application optimizer180′ and application table300, respectively. Nonvolatile storage140may also store OS190. In one embodiment, not shown, OS190may include application optimizer180.

When IHS100initializes, the IHS loads application optimizer180′, OS190, and application table300into system memory125for execution as application optimizer180″, OS190′, and application table300′, respectively. During execution of application optimizer180, IHS100may employ application table300to store message or network packet information, as described in more detail below. In accordance with the disclosed methodology, application optimizer180may employ application table300as well as other memory resources of IHS100to maintain network communication packet information during application execution and message communications. IHS100described above may be called a network system IHS in the sense that more than one of these network system IHSs may couple together to form a network, as described in more detail below.

FIG. 2is a block diagram of network system200that employs multiple network system IHSs that couple together to form a network. Network system200includes a client IHS210that may provide users, clients, or other entities terminal access or other access to network system200resources. Client IHS210is a network system IHS. In one embodiment (not shown), client210may include a WOC or WOC functional capability. In that case, client210may include an application optimizer180and an application table300. Application optimizer180may employ application table300to store application message attributes to practice the disclosed application optimizer methodology for client210. WOCs may exist as physical or virtualized resources that network system200IHSs employ.

Network system200includes a wide area network optimizer controller (WOC)220. WOG220is another type of network system IHS. In one embodiment, WOO220may include application optimizer180and application table300. Application optimizer180may employ application table300to store application message attributes to practice the disclosed application optimizer methodology in WOO220. WOO220couples to client210and wide area network (WAN)225. WAN225may include multiple network resources (not shown) and provide connections and communication links between other networks, such as local area networks (LANs) (not shown).

WAN225couples to a router230that couples to another WOC240. WOC240is another network system IHS in network200. In one embodiment, WOC240may include application optimizer180and application table300. Application optimizer180may employ application table300to store application message attributes to practice the disclosed application optimizer methodology for WOC240. WOCs provide bi-directional network packet functions that require pair action between client and server resources of network system200. For example, one WOC may compress a message and a corresponding partner WOC may decompress the same message. In this manner, WOCs may provide message or network packet functions that are transparent to clients, servers, and users of the network system200resources.

Network system200includes an application delivery controller (ADC)250that couples to WOC240and multiple servers, namely a server260, a server265, and a server267. Server260includes an application262, server265includes an application266, and server267includes an application268. Each application, namely application262,266and268, provides application services for their respective servers, namely corresponding servers260,265and267. ADC250is another network system IHS in network200. Servers260,265and267are also network system IHSs. In one embodiment, ADC250may include application optimizer180and application table300. Application optimizer180may employ application table300to store application message attributes to practice the disclosed application optimizer methodology for ADC250. ADCs and WOCs may interpret policy information that pertains or relates to a particular message and apply policy guidelines to that particular message. For example, an ADC or WOC may maintain a policy for text-based instant messaging applications that differs in priority from that of video stream application messaging. The ADC or WOC may offer messages that correspond to video streaming or video stream applications a higher priority of communication bandwidth within network system200than other messages, such as text-based instant messaging messages. The policy guidelines described above are an example of application optimizer information.

Client210, WOC220, WOC240, and ADC250form a group of network system200IHSs that employ application optimizer180software and application table300information. Each of these network system IHSs, namely client210, WOC220, WOC240and ADC250is a network resource, i.e. a network resource IHS. This group of network resources, as shown enclosed by dashed lines, constitutes an application optimizer group (AOG)255. In one embodiment, each network resource IHS within AOG255includes a respective application optimizer180and application table300, as shown inFIG. 2. Each network resource within AOG255works independently or in cooperation with one another network resource to improve message handling efficiency and thereby improve application operation within network system200. In one embodiment, each application table300within AOG255maintains identical application message attribute information. In another embodiment of the disclosed application optimizer method, each application table300may provide unique and specific information that pertains to the particular network system IHSs in which the application table resides. In that embodiment, the application tables300within the network resource IHSs of AOG255may each store different information.

A user or other entity may execute applications, such as application262,266, and268within one of multiple network system200servers, such as those of server260, server265, server267, and other servers (not shown). The user may employ the resources of client210to generate application requests to servers or other resources of network system200in the form of messages or packets. Client210employs messages or packets to communicate with resources of network system200. Servers of network system200, such as server260, server,265, and server267employ messages to communicate with client210and other resources of network system200.

For example, client210may send a server application request message (SARM)270to server260or other servers of network system200. In one embodiment, SARM270is a request for application services that client210sends to an application in a server, such as application262in server260. AOG255includes ADCs and WOCs that reside in the communication path of SARM270. The ADCs and WOCs of AOG255may perform application optimizer operations on SARM270. In response to SARM270, server260may respond with a restful application optimizer message (RAOM)280that includes application optimizer information, as described in more detail below. During normal operations, client210, server260, server265or server267may send messages, such as an application response i.e. application message290, between network resources of network system200. ADCs, WOCs, and other network resources of AOG255that reside in the communication path of application message290may perform application optimizer operations on application message290and corresponding network packets.

FIG. 3depicts a diagram of application attribute table300that stores application message attributes within network system200. In one embodiment, the group that forms AOG255, namely client210, WOG220, WOC240, and ADC250, each maintain an application table300responsive to normal user service requests of network system200resources. One common resource for a user to request is application services from one of multiple servers of network system200, namely server260, server265and server267.

For example, a user may initiate an application service request by sending SARM270from client210to server260. SARM270may include one or more packets that communicate a user's application request to server260. Network system200resources monitor SARM270and route the corresponding packet or packets from client210to server260. Typically the resources of network system200employ the header information, such as the 5-tuple information in each packet of SARM270, to determine the destination port or destination ID and properly align that destination with server260, as in this example.

In one embodiment, the information inFIG. 3shows only one table entry of application table300that corresponds to a particular message. The particular message and corresponding network packet transfer in turn corresponds to a particular application executing within one or more servers of network system200. Application table300may include multiple table entries that correspond to multiple messages, such as message header information.

In one embodiment of the disclosed application optimizer method, server260responds to SARM270with RAOM280. RAOM280may include sufficient information to populate one or more entries of application table300and avoid the need for deep packet inspection (DPI) operations. IHSs of AOG255may employ header information within messages, such as application message290, to determine indexing into application table300. In another embodiment, server260may issue an explicit RAOM280that is not in response to SARM270. In other words, server260or other server of network system200may issue a periodic and/or explicit RAOM280or other restful application optimizer messages. Stated alternatively, server260or other server of network system200may issue an RAOM280on its own initiative and send the explicit RAOM280to a particular ADC or WOC. ADCs, WOCs, and other network resource IHS of AOG255may employ these restful application optimizer messages to update application table300contents.

Although header information may vary from one network protocol to another, header information includes source and destination addressing and port information as well as application or transport protocol information. Application table300may include header information such as shown in the first 5 rows of application table300. For example, application table300includes source Internet protocol (IP) address or source IP, as shown in row310. Application table300includes source port and destination IP address information, as shown in row311and row312, respectively. Application table300includes destination port and application protocol information, as shown in rows313and314, respectively.

In one embodiment, application table300includes application information that may identify the particular corresponding application executing in servers of network system200for a particular packet, as shown in row315. Application table300includes compressibility information that provides compression protocols, as shown in row316. This compressibility information is one example of application optimizer information that application table300stores. In one embodiment, the compressibility information provides explicit compression information that pertains to a particular packet or message. In this manner application optimizer180may avoid compression parameter testing. Application table300includes data length, and queue length information that corresponds to a particular message or network packet, as shown in rows317and318respectively. The data length and queue length information are other examples of application optimizer information.

Application table300includes network system health, measured network latency, requested bandwidth, cache updates, and other information that corresponds to a particular packet or message and application within network system200, as shown within rows319,320,321,322and323, respectively. Application table300information may provide protocol, policy, or other information that IHSs of AOG255may employ to improve message management during communications within network system200.

Although many arrangements of application table300are possible, in one embodiment application table300indexes each table entry by the destination port address or destination port, as shown in row313. In this manner, each message destination port address provides a relatively easy lookup method that uses the header information of each packet or message to determine other useful information regarding the application in process. In other embodiments, application optimizer180may employ any or all data within the application message290header to index specific application table information.

IHSs within AOG255may employ the information that application table300maintains or stores to determine particular application message protocols. Application message290may provide lookup information for table300to identify the particular corresponding application that a server executes. The particular application may execute within server260, or other servers of network system200. IHSs of AOG255may make decisions on compressibility, encryption, communication priority, etc. in real time or on-the-fly during application message290transfer. This on-the-fly capability provides improvements to user quality of experience (QoE) and quality of service (QoS) performance measures.

QoE, which is sometimes referred to as quality of user experience, is a subjective measure of user experience during execution of applications by network system resources in a network system such as network system200. Increasing application execution performance typically translates to increases in user QoE performance. QoS is a more objective measure of service performances that a network system provides than QoE. For example, QoS performance may relate to the measure of network message traffic shaping efficiency and not rely on the benefits that users or other entities perceive.

FIG. 4is a flowchart that shows process flow in an embodiment of the disclosed application optimizer methodology that provides application optimization in a network system. More specifically, the flowchart ofFIG. 4shows how the application optimizer tool180that IHSs of network system200employ populates application table300. In more detail, ADCs, WOCs, and other IHSs of AOG255employ application optimizer180along with SARM270and RAOM280messages as input for populating application table300.

The disclosed application table population method starts, as per block405. Client210sends a server application request message (SARM)270, as per block410. For example, client210may send SARM270to server260. In this manner, a user or other entity employs resources, such as terminal resources of client210, to form or generate an application request. For example, the application request may require a server such as server260to perform application operations in response to SARM270information. Client210may employ one or more packets that communicate via a communication path through network system200to server260in order to perform the application service request.

Server260responds to SARM270from client210with a return message, such as a restful message. In more detail, server260sends restful application optimizer message (RAOM)280to client210on port N, as per block420. N represents a particular port number that each of the IHSs of AOG255recognize as belonging to a restful message, such as RAOM280. In this manner, resources of network system200may recognize the unique address of port N as a return restful message in response to an application service request. Any IHS of AOG255that includes application optimizer180recognizes RAOM280address N and receives RAOM280as input, as per block430. In one embodiment, AOG255includes client210that may include an application table300and receive RAOM280as well. Network resources, such as IHSs that manage application tables, namely client210, ADC250, WOC220, and WOC240of AOG255may receive and read restful messages, such as RAOM280, and extract information from that message to populate their respective application tables300with application message attribute information. In one embodiment, network resource IHSs such as servers of network system200may issue restful messages such as RAOM280without solicitation by other network resources. Network system200resources may employ these explicit restful messages to maintain or refresh application table300contents within AOG255. In this embodiment, RAOM280or other restful messages may be generated by a server without solicitation by a network resource sending an SARM270to that server. Such an RAOM280or restful message is thus generated by a server not in response to a SARM270. In other words, the server autonomously generates the RAOM280and sends the RAOM to a particular ADC or WOC in AOG255.

Each of the IHSs of AOG255that include application optimizer180populates its respective application table with message contents of RAOM280, as per block440. For example, ADC250may intercept RAOM280and populate application table300within ADC250with application message attribute information as shown in the application attribute table ofFIG. 3. Other IHSs of network system200AOG255may maintain application attribute information in their respective attributes tables300. These IHSs may also intercept, extract, and populate application table information from the data of RAOM280. In the disclosed network systems, to “terminate” means that a message transfer ends at a resource of a destination port. In one embodiment, network system200does not intend RAOM280to terminate at any particular port N or other port address. However, RAOM280terminates when each of the network resources that manage application table information, such as those of AOG255, has an opportunity to interrogate RAOM280.

The disclosed application table population method ends, as per block480. In the disclosed embodiment, application optimizer180stores dynamically changing application attribute information corresponding to user service requests. The disclosed methodology employs the information within restful message RAOM280to populate local application table300information. The method also provides IHSs within network system200with information to determine best application optimization protocol decisions during message transfers.

FIG. 5is a flowchart that shows process flow in an embodiment of the disclosed application optimizer methodology that provides application optimization in a network system. More specifically, the flowchart ofFIG. 5shows how application optimizer180, that IHSs of network system200employ, provides for packet protocol management from the information of application table300. More specifically, the disclosed method provides for detailed network protocol packet management from information within application table300on a per message or per network packet transfer basis within network system200.

The disclosed application optimizer method starts, as per block505. A server sends an application message, i.e. an application response, in response to a request for application services or an SARM received from the client, as per block510. In one case, server260may send application message290to another resource within network system200, such as client210. In one embodiment, a sending resource of network system200, such as server260sends application message290or an application response to a receiving resource of network system200, such as client210. Those network resources within network system200that include application tables300may read network packets to determine proper application optimization management. For example, a network system IHS of AOG255, such as client210, ADC250, WOC220, or WOC240may apply application optimization resources to any particular message, such as application message290. In another embodiment, client210may send a message such as application message290to an application server such as server260.

In one embodiment, a network system IHS of AOG255reads destination port information from application message290, as per block520. For example, ADC250may intercept application message290and read header information in the corresponding network packet to determine the destination port information that application message290employs. The intercepting resource, such as an ADC or WOC, may test application message290for destination port information. In one embodiment, the network IHSs of AOG255, in the communication path of application message290perform an application table300indexing or lookup test. In particular, each application optimizer180tests to determine if the destination port information from application message290points to an entry within its respective application table300, as per block540.

In one embodiment, application table300may provide port mapping for messages, such as application message290, that pass through AOG255. In other words, each application optimizer180may inspect application message290and determine from the header information what port mapping aligns with a particular application. In more detail, information within application table300may provide resources of AOG255with information that directs a particular application to a particular port. For example, application message290may include header information corresponding to port80that application optimizer180identifies as a video streaming application.

If an IHS of AOG255finds a match or corresponding entry within its respective application table300, then application optimizer180of the AOG255IHS performs an application table300lookup, as per block550. For example, ADC250may inspect application message290and determine that the destination port information of application message290corresponds to a table entry in respective application table300. In that case, application optimizer180directs ADC250resources to perform an application table300lookup operation and to read or recover the application table300application message attributes as shown inFIG. 3.

However, if an IHS of AOG255that intercepts application message290determines that there is no match or corresponding entry within its respective application table300, then the intercepting ADC, WOC or other IHS of AOG255may perform a deep packet inspection (DPI). The intercepting IHS or AOG255IHS performs deep packet inspection DPI on application message290, as per block560. For example, ADC250may perform DPI operations on application message290and its constituent network packet. DPI often requires time intensive analysis of messages, such as application message290, and may restrict or otherwise impede some application optimization efforts.

Since AOG255IHS attribute table300lookups do not require network packet examination, they are more efficient and consume less time than DPI operations. This reduction in DPI operations improves application efficiencies, particularly with respect to communication bandwidth utilization in network system200. In this manner, users and other entities may see improvements in server application execution speeds. Application execution speed improvements or accelerations translate to improvements in QoE and QoS performance measures.

AOG255IHS attribute table300lookups do not require multiple read operations. For example, ADC250may determine application message290attributes in a single lookup operation or single state. In this manner, ADC250and other IHSs of AOG255may be stateless, and thus do not require multiple states or processing cycles to determine message attributes during network system200communications.

In one embodiment, AOG255resources such as ADCs and WOCs, read destination port information from the header information of messages, such as application message290. In other embodiments, application optimizer180may direct ADC and WOC resources to organize and index application table300by information other than destination port information, such as destination IP or any other information that application message290and corresponding network packets provide.

Each IHS of AOG255that intercepts and interrogates application message290applies policies to application message290and its constituent network packet, as per block570. In other words, each AOG255IHS completes a DPI or retrieves application table300application attributes that correspond to application message290. Application optimizer180instructs the intercepting AOG255IHS to apply the policies and protocols that correspond to the information as shown in application table300. For example, depending upon compressibility protocol, ADC250may compress the information of application message290before allowing application message290to continue along the communication paths of network system200. In another example, ADC250may perform encryption or decryption upon the contents of application message290depending upon the application message attributes within application table300of ADC250. Many other policy and protocol objectives are possible within the disclosed application optimizer method.

ADCs and WOCs continue applying network packet policies on each application message that passes through AOG255, such as client210, ADC250, WOC220and WOC240. The disclosed application optimizer method ends, as per block580. In this manner, application optimizer180provides protocol and policy information on a per application message basis for application messages, such as network packet transfers within network system200. For each application message and corresponding network packet that passes through network system200resource that employs the disclosed methodology, efficient protocol packet management is possible. Ultimately, improved network packet protocol management translates to improvements in server application execution by improving performance of AOG255, and particularly ADC and WOC operations within network system200. The user benefits from improvements in application execution rates, such as those of applications262,266and268and both QoE and QoS performance measures.

In one embodiment, client210or other network resource IHSs may include ADC, WOC, or similar functional capability in either a physical or virtualized form within the network resource IHS itself. In that case, those IHSs that include ADC, WOC, or similar capability may employ the same application optimization features per the disclosed application optimizer methodology.

The flowcharts ofFIG. 4andFIG. 5illustrates the architecture, functionality, and operation of possible implementations of systems, methods and computer program products that perform network analysis in accordance with various embodiments of the present invention. In this regard, each block in the flowcharts ofFIG. 4andFIG. 5may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted inFIG. 4andFIG. 5. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block ofFIG. 4andFIG. 5and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.