A traffic director system and method having a software-based load balancer which can be used to deliver a fast, reliable, scalable, and secure platform for load-balancing traffic to back-end origin servers, such as web servers, application servers, or other resource servers. traffic director instances of the traffic director are configured to receive and communicate requests, from clients to origin servers or pools of origin servers. The traffic director has an administration console which provides a graphic user interface (GUI) for use by an administrator in reviewing and configuring different configurable objects of the traffic director. The GUI includes a “never-get-lost” navigation model including navigation option sections and a navigation tree section. Each of the navigation options of the GUI of the traffic director system is associated with content for display within the navigation tree section of the GUI.
|
17. A traffic director system which receives and communicates requests from clients to a plurality of pools of origin servers each comprising a plurality of origin servers, the traffic director comprising:
a microprocessor and a computer memory;
a traffic director having a plurality of traffic director instances;
an http connection handler which receives http requests from said clients;
an http engine operating on said microprocessor and computer memory, wherein said http engine receives said http requests from said http connection handler;
a reverse proxy module in said http engine, wherein the reverse proxy module selects a pool of said plurality of pools of origin servers to which said requests should be directed and forwards said requests to one or more of the plurality of origin servers in said pool;
an administration console graphic user interface (GUI) for use by a user/administrator in managing said plurality of traffic director instances by reviewing and configuring different configurable objects of the traffic director; and
a property sheet which automatically detects modified GUI fields, such that the GUI can track which fields have changed, and by checking the modified value with an original value for that field, marks or otherwise indicates changed fields.
1. A traffic director system which receives and communicates requests from clients to a plurality of pools of origin servers each comprising a plurality of origin servers, the traffic director comprising:
a microprocessor and a computer memory;
a traffic director having a plurality of traffic director instances, the traffic director including
an http connection handler which receives http requests from said clients,
an http engine operating on said microprocessor and computer memory, wherein
said http engine receives said http requests from said http connection handler, and
a reverse proxy module in said http engine, wherein the reverse proxy module selects a pool of said plurality of pools of origin servers to which said requests should be directed and forwards said requests to one or more of the plurality of origin servers in said pool; and
an administration console user graphic interface (GUI) for use by a user/administrator in managing said plurality of traffic director instances by reviewing and configuring different configurable objects of the traffic director;
wherein the GUI includes a plurality of sections including a navigation section divided into one or more navigation options and a navigation tree section; and
wherein each of the navigation options is associated with content for display within the navigation tree section, and wherein selecting a particular navigation option in the GUI causes its associated content to be displayed.
19. A method for receiving and communicating requests from clients to a plurality of pools of origin servers each comprising a plurality of origin servers, the method comprising:
providing a traffic director which is configured to receive and communicate requests, from the clients, to the plurality of pools of origin servers each comprising a plurality of origin servers, wherein the traffic director comprises
a plurality of traffic director instances,
an http connection handler which receives http requests from said clients,
an http engine operating on one or more microprocessor and computer memory, wherein said http engine receives said http requests from said http connection handler, and
a reverse proxy module in said http engine, wherein the reverse proxy module selects a pool of said plurality of pools of origin servers to which said requests should be directed and forwards said requests to one or more of the plurality of origin servers in said pool;
providing an administration console graphic user interface (GUI) for use by a user/administrator in managing said plurality of traffic director instances by reviewing and configuring different configurable objects of the traffic director; and
providing a property sheet which automatically detects modified GUI fields, such that the GUI can track which fields have changed, and by checking the modified value with an original value for that field, and provided modification indicators on the property sheet for changed fields.
9. A method for receiving and communicating requests from clients to a plurality of pools of origin servers each comprising a plurality of origin servers, the method comprising:
providing a traffic director which is configured to receive and communicate requests, from the clients, to the plurality of pools of origin servers each comprising a plurality of origin servers, wherein the traffic director comprises
a plurality of traffic director instances,
an http connection handler which receives http requests from said clients,
an http engine operating on one or more microprocessor and computer memory, wherein said http engine receives said http requests from said http connection handler, and
a reverse proxy module in said http engine, wherein the reverse proxy module selects a pool of said plurality of pools of origin servers to which said requests should be directed and forwards said requests to one or more of the plurality of origin servers in said pool;
providing an administration console graphic user interface (GUI) for use by a user/administrator in managing said plurality of traffic director instances by reviewing and configuring different configurable objects of the traffic director; and
wherein the GUI includes a plurality of sections including a navigation section divided into one or more navigation options and a navigation tree section, wherein each of the navigation options is associated with content for display within the navigation tree section, and wherein selecting a particular navigation option causes its associated content to be displayed.
15. A non-transitory computer readable medium, including instructions stored thereon for supporting receiving and communicating requests from clients to a plurality of pools of origin servers each comprising a plurality of origin servers, which instructions, when read and executed by one or more computers cause the one or more computers to perform steps comprising:
providing a traffic director which is configured to receive and communicate requests, from the clients, to the plurality of pools of origin servers each comprising a plurality of origin servers, wherein the traffic director comprises
a plurality of traffic director instances,
an http connection handler which receives http requests from said clients,
an http engine operating on one or more microprocessor and computer memory, wherein said http engine receives said http requests from said http connection handler, and
a reverse proxy module in said http engine, wherein the reverse proxy module selects a pool of said plurality of pools of origin servers to which said requests should be directed and forwards said requests to one or more of the plurality of origin servers in said pool;
providing an administration console graphic user interface (GUI) for use by a user/administrator in managing said plurality of traffic director instances by reviewing and configuring different configurable objects of the traffic director;
wherein the GUI includes a plurality of sections including a navigation section divided into one or more navigation options and a navigation tree section, wherein each of the navigation options is associated with content for display within the navigation tree section, and wherein selecting a particular navigation option causes its associated content to be displayed.
2. The system of
3. The system of
4. The system of
5. The system of
the GUI further comprises a property sheet which automatically detects modified GUI fields, such that the GUI can track which fields have changed, and by checking the modified value with an original value for that field, marks or otherwise indicates changed fields.
6. The system of
7. The system of
8. The system of
10. The method of
11. The method of
12. The method of
13. The method of
providing a property sheet which automatically detects modified GUI fields, such that the GUI is configured to notify the administrator which fields have changed by marking changed fields in the property sheet.
14. The method of
16. The non-transitory computer readable medium of
providing a property sheet in the GUI wherein the property sheet automatically detects modified GUI fields, such that the GUI can track changed fields by comparing a value of the modified GUI field with an original value for that GUI field, and provided modification indicators on the property sheet for changed fields.
18. The system of
20. The method of
|
This application claims the benefit of priority to U.S. Provisional Patent Application No. 61/539,886, titled “SYSTEMS AND METHODS FOR USE WITH AN APPLICATION SERVER TRAFFIC DIRECTOR (CORE FEATURES)”, filed Sep. 27, 2011; and U.S. Provisional Patent Application No. 61/539,900, titled “SYSTEMS AND METHODS FOR USE WITH AN APPLICATION SERVER TRAFFIC DIRECTOR (ADMIN FEATURES)”, filed Sep. 27, 2011; each of which applications are herein incorporated by reference.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyrights rights whatsoever.
The invention is generally related to a load balancer or traffic director, for use in an application server, middleware machine or other computing environment, and is particularly related to a system and method for intelligent GUI navigation and property sheets in a traffic director environment.
A typical enterprise-level computing environment can include many different types of computing resources (e.g., web servers, application servers, database servers, or other types of resource servers) which are intended to be accessed over a network (e.g., a company's internal Ethernet network, or the Internet) by other computers, or by users operating various different types of computing devices. A familiar example is the use of a client computer, such as a laptop equipped with a web browser application, by which a user can access a web server via the Internet.
Today's organizations rely increasingly on their computing resources being readily available from almost any location, at all times, with a high level of performance. The task of ensuring that such resources are allocated efficiently often requires the use of a load balancing device to distribute requests from clients to target resources, in a fair manner according to its distribution policies. These are the types of environments that embodiments of the invention can be used with.
Described herein are systems and methods for use with a load balancer or traffic director, and administration thereof. In accordance with an embodiment, the traffic director, referred to herein in some embodiments as “Oracle Traffic Director” (OTD), is provided as a software-based load balancer that can be used to deliver a fast, reliable, scalable, and secure platform for load-balancing Internet and other traffic to back-end origin servers, such as web servers, application servers, or other resource servers.
Embodiments of the traffic director are particularly useful in application server, middleware machine, and similar high-performance enterprise-level computing environments, such as Oracle WebLogic and Exalogic environments.
In accordance with an embodiment, the system comprises a traffic director having one or more traffic director instances, which is configured to receive and communicate requests, from clients, to origin servers having one or more pools of servers, and an administration console user interface or GUI for use by a user/administrator in reviewing and configuring different configurable objects of the traffic director, wherein the GUI includes one or more of a “never-get-lost” navigation model, or property sheets.
As described above, today's organizations rely increasingly on their computing resources being readily available from almost any location, at all times, with a high level of performance. The task of ensuring that such resources are allocated efficiently often requires the use of a load balancing device to distribute requests from clients to target resources, in a fair manner according to its distribution policies.
Described herein are systems and methods for use with a load balancer or traffic director, and administration thereof. In accordance with an embodiment, the traffic director, referred to herein in some embodiments as “Oracle Traffic Director” (OTD), is provided as a software-based load balancer that can be used to deliver a fast, reliable, scalable, and secure platform for load-balancing Internet and other traffic to back-end origin servers, such as web servers, application servers, or other resource servers.
Embodiments of the traffic director are particularly useful in application server, middleware machine, and similar high-performance enterprise-level computing environments, such as Oracle WebLogic and Exalogic environments.
In accordance with an embodiment, the traffic director serves as an entry point for traffic such as hypertext transfer protocol (HTTP) and hypertext transfer protocol secure (HTTPS) requests, which are received from clients or client devices, for communication to a back-end of resources or resource servers acting as origin servers. Each traffic director includes one or more traffic director instances defined by a configuration, wherein the configuration provides information about various elements of that instance, such as listeners, origin servers, failover groups, and logs.
Examples of the types of clients that can be used with the system include computer servers, laptop computers, portable devices such as smartphones, and other types of computing devices, some of which may include, e.g., a web browser application for accessing a web server.
Examples of the types of resources that can be used as origin servers include lightweight directory access protocol (LDAP) servers, web servers, multimedia servers, application servers, database servers, and other types of resources.
In accordance with an embodiment, the traffic director can perform tasks such as distributing requests to origin servers based on one or more load-balancing methods; routing requests based on specified rules; caching frequently accessed data; prioritize traffic; and controlling the quality of service.
From a performance perspective, in accordance with an embodiment, the traffic director can include an architecture that enables it to handle large volumes of traffic with low latency. For example, embodiments can be optimized for use within a high-performance computing environment such as, e.g., Oracle Exalogic Elastic Cloud, or to communicate with origin servers at the back-end using a high performance communication fabric such as, e.g., InfiniBand. In accordance with an embodiment, to support high availability, the traffic director can recognize failover groups of traffic director instances that provide active-passive or active-active failover. As the volume of traffic to a network increases, the traffic director environment can be scaled by reconfiguring the traffic director with additional back-end servers to which it can route requests, or by modifying the rate at which traffic is communicated.
From an administration perspective, in accordance with an embodiment, the traffic director is designed to be easy to install, configure, and use; and can include a simple, wizard-driven graphical interface, as well as a robust command-line interface, for use by an administrator in managing traffic director instances. For any particular organization, depending on their business requirements, such as the number of back-end applications for which they want to use the traffic director to balance requests, their internal requirements such as security, and the traffic director features they wish to use, the traffic director topology can be varied to address their needs. For example, a simple traffic director topology might initially utilize a single traffic director instance running on a dedicated compute node and distributing client requests to a pool of servers at the back-end. To avoid a single point of failure, an administrator can configure two homogenous traffic director instances running on different nodes and forming an active-passive failover pair. To improve resource utilization, an administrator can configure the two traffic director instances in active-active mode with two virtual IP addresses.
In accordance with an embodiment, the following terms are used herein. It will be evident that, in accordance with other embodiments, additional and/or different terms can be used.
For any particular organization, depending on their business requirements, such as the number of back-end applications for which they want to use the traffic director to balance requests, their internal requirements such as security, and the traffic director features they wish to use, the traffic director topology can be varied to address their needs. The back-end can include one or more origin servers 110, examples of which can include LDAP servers 114, web servers 118, multimedia servers 122, application servers 126, and database servers 128. In accordance with an embodiment, the application server can be a WebLogic server (WLS). Other types of origin servers, and application servers, can be used, depending on the particular needs of the organization. Each of the origin servers can communicate with one another, and with the traffic director, via an internal network 130 such as an Ethernet network.
In accordance with an embodiment, the traffic director can receive requests from clients 134, via an external network 136, the Internet 138, and in the case of many organizations a firewall 139. Examples of the types of clients that can be used with the system include computer servers, laptop computers, portable devices such as smartphones, and other types of computing devices, some of which may include, e.g., a web browser application for accessing a web server.
In the example illustrated in
Although the example shown in
As shown in
It will be evident that, in accordance with other embodiments, additional and/or different components can be used.
In accordance with an embodiment, an administration environment 284 includes an administration interface 285, which in turn includes one or more of an administration console (GUI) 286 and/or a command line interface 288, that enables an administrator 290 to configure or otherwise administer 292 the traffic director, or its instances 294, 296.
As shown in
It will be evident that the example shown in
User Interface “Never-Get-Lost” Navigation
In accordance with an embodiment, the administration console user interface or GUI can include a “never-get-lost” form of navigation, which assists a user/administrator in maintaining context while reviewing and configuring different configurable objects, e.g., of a traffic director or other environment.
A typical arrangement of sections can include a masthead section 702, which acts as an information section, including a product name and other information; a navigation section 704, which contains the primary navigation mechanism of the GUI, typically by displaying a tree-like menu of clickable actions; a main content section 706, which acts as the target for the clickable actions in the navigation tree and, when the user clicks a particular action, displays a page associated with that action; a tasks section 708, which displays commonly-used tasks; an external navigation links section 710; and a console messages section 712.
In accordance with an embodiment, the navigation section can be divided into one or more navigation option sections 713, and one or more navigation tree sections 714. Each of the navigation options is associated with content for display within the navigation section, typically a navigation tree of clickable actions. Selecting a particular navigation option causes its associated navigation tree to be displayed.
In accordance with other embodiments and examples, different arrangements and/or other sections can be provided in addition to, or as an alternative to, those sections described above.
As shown on the left-side, selecting a first navigation option (e.g., 715, shaded for illustration) causes the navigation tree associated with that navigation option 715 to be displayed 718.
Subsequently, as shown on the right-side, selecting an alternative navigation option (e.g., 717, again shaded for illustration) causes the navigation tree associated with that alternative navigation option 717 to be displayed 719.
Accordingly, the navigation section is revised to reflect the content (typically the navigation tree) that is associated with the currently selected navigation option.
In accordance with an embodiment, at the same time, other sections of the GUI can be also changed to reflect the currently selected navigation option. For example, if the main content section is intended to act as the target for clickable actions in the navigation tree, then the main content section can also be revised 720 whenever a new navigation option is selected.
As shown in
Subsequently, the administrator can select a second or other navigation option 726, which causes the navigation tree, content, and other GUI elements associated with that second option to be displayed. For example, selecting “Nodes” 727 causes the navigation section to display the “Nodes” navigation tree 725, together with a listing of relevant configurable objects for editing in the main content section.
The administrator can continue to select other navigation options as desired 728. Since the navigation options remain displayed and available at all times, while only the navigation tree (and in some instances other sections of the GUI, such as the main section) changes, the administrator is able to maintain context while using the GUI to review and configure different configurable objects.
Although the embodiments described above illustrate the use of the “never-get-lost” form of navigation with a traffic director environment, in accordance with other embodiments similar functionality can be used with user interfaces for other environments, to assist users in reviewing and configuring configurable objects for those environments.
User Interface Property Sheets
In accordance with an embodiment, the administration console user interface or GUI can include property sheets for use in configuration tasks. The property sheet automatically detects modified GUI fields (as opposed to fields merely touched by a user/administrator). By tracking modified fields with a markup, the GUI can track which fields have changed, and by checking the modified value with an original value for that field, can mark or otherwise indicate changed fields.
As the administrator interacts with the property sheet, the system automatically determines 744 fields associated with modified configuration tasks, and indicates those changed fields with a marking or other indication in the property sheet, for example by the use of a bullet-point modification indicators 746. Fields that are merely touched by the user/administrator, but not modified, are not marked. The administrator can continue to browse navigation options as desired 748.
In accordance with an embodiment, a property sheet can include sections, wherein each section is intended to be saved separately using, e.g., an AJAX call. In accordance with such embodiments, the modification indicators for a particular section can remain unchanged if the save process for that particular section causes an error on saving.
Again, although the embodiments described above illustrate the use of property sheets with a traffic director environment, in accordance with other embodiments similar functionality can be used with user interfaces for other environments, to assist users in reviewing and configuring configurable objects for those environments.
The present invention may be conveniently implemented using one or more conventional general purpose or specialized digital computer, computing device, machine, or microprocessor, including one or more processors, memory and/or computer readable storage media programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
In some embodiments, the present invention includes a computer program product which is a non-transitory storage medium or computer readable medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the present invention. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
The foregoing description of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Although some of the described embodiments describe features in the context of an Oracle Traffic Director environment, the described features can also be used in the context of other computing environments. Many modifications and variations will be apparent to the practitioner skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalence.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6560717, | Dec 10 1999 | Oracle OTC Subsidiary LLC | Method and system for load balancing and management |
6691244, | Mar 14 2000 | Oracle America, Inc | System and method for comprehensive availability management in a high-availability computer system |
6880156, | Jul 27 2000 | VL IP HOLDINGS LLC; VL COLLECTIVE IP LLC | Demand responsive method and apparatus to automatically activate spare servers |
7158926, | May 05 2000 | Oracle America, Inc | Cluster availability model |
7289445, | Nov 25 2002 | TAHOE RESEARCH, LTD | Managing a protocol control block cache in a network device |
7321926, | Feb 11 2002 | RPX Corporation | Method of and system for allocating resources to resource requests |
7370083, | Nov 21 2001 | GOOGLE LLC | System and method for providing virtual network attached storage using excess distributed storage capacity |
7395355, | Jul 11 2002 | Akamai Technologies, Inc.; AKAMAI TECHNOLOGIES, INC | Method for caching and delivery of compressed content in a content delivery network |
7616625, | Oct 22 2003 | Sprint Communications Company L.P. | System and method for selective enhanced data connections in an asymmetrically routed network |
7619545, | Mar 12 2007 | Citrix Systems, Inc | Systems and methods of using application and protocol specific parsing for compression |
7664948, | May 21 2004 | Oracle International Corporation | Certificate lookup and validation |
7849368, | Feb 22 2002 | Oracle International Corporation | Method for monitoring server sub-system health |
8056653, | Dec 10 2003 | Deere & Company | Hybrid electric tool carrier |
8260757, | Apr 22 2010 | Walmart Apollo, LLC | Data access layer |
8693981, | Jun 17 2011 | CELLCO PARTNERSHIP D B A VERIZON WIRELESS | Monitoring persistent client connection status in a distributed server environment |
20010049732, | |||
20020087694, | |||
20020122388, | |||
20020143953, | |||
20020143965, | |||
20020152307, | |||
20030023743, | |||
20030051055, | |||
20030195940, | |||
20040024853, | |||
20040024861, | |||
20040031030, | |||
20040049598, | |||
20040107273, | |||
20040172470, | |||
20050086337, | |||
20050102400, | |||
20050188295, | |||
20050198247, | |||
20050262183, | |||
20060062177, | |||
20060085680, | |||
20060190579, | |||
20060294207, | |||
20070005801, | |||
20070130341, | |||
20070169049, | |||
20070174660, | |||
20070226359, | |||
20070260702, | |||
20080046596, | |||
20080133536, | |||
20080228939, | |||
20090006541, | |||
20090204885, | |||
20090245122, | |||
20090259736, | |||
20090328054, | |||
20100030851, | |||
20100036956, | |||
20100070561, | |||
20100220740, | |||
20100235484, | |||
20110106949, | |||
20110107136, | |||
20110122893, | |||
20110145786, | |||
20110161523, | |||
20110208808, | |||
20110276695, | |||
20120096166, | |||
20120271964, | |||
20130054806, | |||
20140089285, | |||
GB2360369, | |||
WO207037, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 29 2012 | AHMED, IRFAN | Oracle International Corporation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028888 | /0915 | |
Aug 31 2012 | Oracle International Corporation | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Dec 13 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Dec 14 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 30 2018 | 4 years fee payment window open |
Dec 30 2018 | 6 months grace period start (w surcharge) |
Jun 30 2019 | patent expiry (for year 4) |
Jun 30 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 30 2022 | 8 years fee payment window open |
Dec 30 2022 | 6 months grace period start (w surcharge) |
Jun 30 2023 | patent expiry (for year 8) |
Jun 30 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 30 2026 | 12 years fee payment window open |
Dec 30 2026 | 6 months grace period start (w surcharge) |
Jun 30 2027 | patent expiry (for year 12) |
Jun 30 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |