# Patent

## Title
Method and apparatus for measuring the end-to-end performance and capacity of complex network service

## Abstract

The present invention includes a method of measuring performance and capacity of a network includes monitoring network activity using an application programming interfaces monitoring system with a web services definition language file and at least one probe. The web services definition language file provides instructions to a probe control system in the application programming interfaces monitoring system and the probe control system providing regular expressions to the at least one probe. Then, performance data is collected using the at least one probe. The performance data includes a date stamp and a collection of performance information. Next, using the at least one probe, performance data measurements are transmitted between the network and the application programming interfaces monitoring system. The application programming interfaces monitoring system stores the performance data measurements in a database of performance data monitored and analyzes the performance data measurements to determine performance and capacity of the network. After that, the application programming interfaces monitoring system reports information on performance and capacity of the network to a network operations center dashboard.

## Background
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to optimizing the capacity of a service path network. More particularly, it relates to a method and apparatus for dynamically configuring the monitoring of a Service Oriented Architecture (SOA), responsive to dynamically configured data monitoring, such that a new optimized service path network is calculated and the capacity of the system is maximized by real-time changes to the configuration of the network and execution of the service.
2. Brief Description of the Related Art
The present invention relates to the configuration of network service monitoring capabilities and the use of data from configured monitors to optimize the performance of service path networks. Network service monitoring capabilities are the capabilities of a system that directly measures and reports the volume and responsiveness of systems that provide one or more Application Programming Interfaces (APIs) to other systems. An API is a set of functions, procedures or classes that an operating system, library or service provides to support requests made by computer programs. A service path is generally defined as the connected sequence of network elements that together provide a particular service delivered to customers following the completion of provisioning activities. Service path APIs are APIs whose performance contributes directly to the performance, availability, and security of the service path. For example, a control message to implement a sports channel blackout on certain Internet Protocol Television (IPTV) set top boxes is one service path API that controls a network element in a television service.
The prior art teaches how one may directly monitor the performance of selected APIs and network elements that are combined into services. However, manual configuration of the monitoring system is required, and in large networks, this is tedious and time-consuming. More specifically, the prior art requires the manual preparation of “regular expressions” that programmatically describe filtering functions within a particular monitoring system as required to select particular APIs whose volume and performance directly bear on the performance of the service path. This monitoring configuration activity requires specialized skills and knowledge of methods to decode the APIs involved.
Consequently, in networks having a large number of component servers, the performance of the service path improves slowly over time, owing to the time-consuming, manual, work required to repeatedly adjust the monitoring capabilities targeting the many different network elements. As a consequence of the long time required to manually configure the many points that are monitored in a large service path network, the complete monitoring system cannot generally be configured quickly and the benefits of more rapid network optimization are lost.
Therefore, it would be advantageous to provide an API monitoring system whose configuration is automatically and mechanically controlled. It would be further advantageous to have such mechanical configuration responsive to both manual network change activity as well as dynamically-induced changes that are, in turn, responsive to network optimizations calculated from currently monitored performance data.
SUMMARY OF THE INVENTION
The present invention includes a method, apparatus, and computer readable medium for measuring performance and capacity of a network.
The method of measuring performance and capacity of a network includes monitoring network activity using an application programming interfaces monitoring system with a web services definition language file and at least one probe. The web services definition language file provides instructions to a probe control system in the application programming interfaces monitoring system and the probe control system providing regular expressions to the at least one probe. Then, performance data is collected using the at least one probe. The performance data includes a date stamp and a collection of performance information. Next, using the at least one probe, performance data measurements are transmitted between the network and the application programming interfaces monitoring system. The application programming interfaces monitoring system stores the performance data measurements in a database of performance data monitored and analyzes the performance data measurements to determine performance and capacity of the network. After that, the application programming interfaces monitoring system reports information on performance and capacity of the network to a network operations center dashboard.
The apparatus for measuring performance and capacity of a network includes a web services definition language file and at least one probe to collect performance data from the network and transmit performance data measurements to an application programming interfaces monitoring system. The application programming interfaces monitoring system being operatively connected to the web services definition language file and the at least one probe. The application programming interfaces monitoring system including a probe control system, a database of performance data monitored to store performance data measurements, and an alarm and report generator to analyze performance data measurements. The apparatus further includes a network operations center dashboard for reporting performance and capacity of the network from the alarm and report generator. The at least one probe receives probe control messages from the probe control system, and the at least one probe receives performance data, including a time stamp and performance information, from a network switch and a load balancer. Then, the at least one probe transmits performance data measurements to the database of performance data monitored. After that, the database of performance data monitored transmits performance data measurements to the alarm and report generator within the application programming interfaces monitoring system, and the alarm and report generator analyzes performance measurements to determine performance and capacity of the network and generates alarms and reports.
The computer readable medium for measuring performance and capacity of a network including instructions executable by a computing device that, when applied to the computing device, causes the device to monitor activity of a network. The device uses an application programming interfaces monitoring system probe control system that receives a web services definition language file and transmits performance control messages to at least one probe. The application programming interfaces monitoring system further collects performance data from a network using the at least one probe. The performance data collected includes a time stamp with a request time, a response time, and performance information from a network switch and a load balancing device. Then, the performance data measurements are transmitted from the at least one probe to the application interfaces monitoring system for performance data identified by probe control messages. The performance data measurements are stored in a database of performance data monitored and analyzed to determine performance and capacity of the network in an alarm and report generator. After that, the analyzed performance data measurements are used to report performance and capacity of the network to a network operations center dashboard.
Other objects and features of the present invention will become apparent from the following detailed description considered in conjunction with the accompanying drawings. It is to be understood, however, that the drawings are designed as an illustration only and not as a definition of the limits of the invention.



BRIEF DESCRIPTION OF THE DRAWING
FIG. 1 refers to a first embodiment of the present invention using HTTP probes with an Internet Protocol Television (IPTV).
FIG. 2 refers to a second embodiment of the present invention using HTTP probes with a Content Management System (CMS).



DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a method for optimizing the performance and capacity of a SOA by monitoring network activity using real-time monitoring and near real-time automated analysis of the delivered response time performance of selected API-based controls over the service paths.
The objective is to provide reports on the near real-time performance of selected service path Control APIs, such that adverse conditions that are causing impairments to, or likely to impair, the service path are recognized in near real-time. The present invention focuses on response times required to support end-to-end integrated management of a large network of autonomous devices. Furthermore, because response times are inherently defined from the perspective of users of the API that are external to the API service provider, it should be assumed that no system can meet the requirements associated with providing its own response time measures.
By watching the machine to machine response times, the invention performs automated passive monitoring and observation to determine maximum performance and capacity of the system. To monitor the machine-to-machine response times, the present invention uses a web services definition language (WSDL) file and a probe. WSDL is an XML-formatted language used to describe web services capabilities as collections of communication endpoints capable of exchanging messages. The WSDL file may include, but is not limited to the following elements: (1) data definitions; (2) messages, such as request message details and response message details; (3) ports with request and response pairings; (4) bindings including message transport methods; and (5) services with the address of service availability. The WDSL file enables automated monitoring and uses the WSDL file elements to automate the configuration of regular expressions for the probe to use with the collection of performance data. For example, the regular expressions may include request messages and response messages.
In the present instance, the WSDL file data structure used unambiguously describes APIs provided by each element of a SOA to mechanically compute regular expressions required by a system that monitors APIs as part of a service path monitoring system, also referred to as an API monitoring system. The regular expressions provide a concise and flexible means for identifying strings of text of interest, such as particular characters, words, or patterns of characters. The regular expressions are written in a formal language that can be interpreted by a regular expression processor, a program that either serves as a parser generator or examines text and identifies parts that match the provided specification. In addition, by monitoring performance data on the current API volume and performance in real-time, one or more remedies for the condition may be readily apparent. Therefore, the current invention is expected to reduce the frequency and impact of large scale service impairments and when impairments are unavoidably experienced, the current invention will hasten the return to full service.
As shown in FIGS. 1 and 2, the present invention uses at least one probe 12, a load balancer 14, a network switch 16, an API monitoring system 18, and a WSDL file 20 to monitor end-to-end performance using an Element Management System (EMS). An EMS is a system that provides control of network elements in a Service Path network. The at least one probe 12 observes and creates a database of performance data monitored 24 based on observations of network performance data 13. In the present invention, it is advantageous to use the Simple Object Access Protocol (SOAP) owing to a common convention wherein such protocols are precisely defined by a WSDL file. The at least one probe 12 is configured through the API monitoring system that receives the WSDL files 20 containing instructions for obtaining relevant volume and response times from performance data 13, which includes metadata to enable the automated monitoring of end-to-end performance on a network.
The at least one probe 12 collects performance information from the load balancer 14 and the network switch 16, and the at least one probe 12 transmits all relevant performance data measurements 50, 80 to the API monitoring system 18 for compilation of the performance data 13 in the database of performance data monitored 24. The load balancer 14 is a dedicated program or a piece of hardware, such as a multilayer switch that spreads work between two or more network links or resources to optimize resource utilization, throughput, or response time. When used with computer clusters 38, 68 the load balancer 14 mediates communication within the clusters 38, 68. The network switch 16 is a computer networking device that is used to connect network segments.
The at least one probe 12 may be configured to operate in one of several modes: (1) a proxy mode; (2) a passive observation mode; and (3) a function-cooperative mode. In the proxy mode, the load balancer 14 is a commercial load balancer that provides performance information 44, 74 that includes mirrored copies of performance information to the at least one probe 12. When the at least one probe 12 is configured to operate in a passive observation mode, pass-through appliance record transmissions are matched to configured patterns of network performance data 13. In a function-cooperative mode, a SOAP server with internal software is used to provide performance data 13 from performance information 44, 74 to the at least one probe 12.
The API monitoring system 18 may contain a probe control system 22, the database of performance data monitored 24, and an alarm and report generator 26. The alarm and report generator 26 is responsible for providing the network operations center dashboard 28 with performance and capacity reports and resulting alarms. The reports that the alarm and report generator 26 may provide include, but are not limited to, reports on end-to-end service response time; service usage; component service errors; end-to-end requestor load; and end-to-end business function performance data by combining performance data measurements 50, 80 from one or more service provider sessions
Referring to FIG. 1, a first embodiment of the present invention is provided with a network 30 including set top boxes 32 running on service path control servers and clients. More particularly, the network 30 of the first embodiment includes an IPTV HTTP (Hypertext Transfer Protocol) Server 34 and an IPTV HTTP Client 36 and a One VHO (Video Headend Office) IPTV Cluster 38 with at least one IPTV HTTP Client 40 and at least one IPTV HTTP Server 42. At least one of the set top boxes 32 includes the IPTV HTTP Server 34 and the IPTV HTTP Client 36, while the One VHO IPTV Cluster 38 includes IPTV HTTP Clients 40 and IPTV HTTP Servers 42. The IPTV HTTP Server 34 and IPTV HTTP Client 36 of the set top box 32 connect to the at least one IPTV HTTP Client 40 and at least one IPTV HTTP Server 42 of the One VHO IPTV Cluster 38 through the network 30 and the network switch 16. The network switch 16 then provides performance information 44, including a copy of each performance message sent between the set top boxes 32 and the One VHO IPTV Cluster 38, to the at least one probe 12
The at least one probe 12 is operatively connected 46 to the probe control system 22. The probe control system 22 analyzes the WSDL files 20 provided 48 and computes one or more probe control messages 46 that are transmitted and loaded into the probe 12. The probe 12 uses the control messages 46 that include the regular expressions to select performance data 13 of the APIs that are relevant to the service path. The probe 12 reports, using the probe control messages 46, the status on its implementation of such regular expressions to the probe control system 22, enabling the probe control system 22 to always be in control of the current state of the at least one probe 12. The probe control messages 46 also flow 47 between the probe control system 22 and the database of performance data monitored 24.
All performance data 13 provided to the at least one probe 12 by the network switch 16 and the load balancer 14 are monitored using the regular expressions provided by the probe control system 22. Then, the at least one probe 12 generates performance data measurements 50 including the volume and performance of each of the configured APIs to a database of performance data monitored 24. The database of performance data monitored 24 retains the performance data measurements 50 and based on thresholds also stored in the database of performance data monitored 24, provides alarms and reports 52 to an alarm and report generator 26. The alarm and report generator 26 also controls the thresholds stored in the database of performance data monitored 24 that cause selected alarms to be reported, and the alarm and report generator 26 portion of the API monitoring system 18 will transmit any alarms and/or reports 54 to the network operations center dashboard 28.
It is important to note that the particular performance data 13 that the probe 12 analyzes includes performance data from a multiplicity of sources, involving a multiplicity of network elements. FIG. 1 shows an Operational Support System (Northbound OSS), and a Business Support System (BSS) 56, which includes an IPTV HTTP Client 57, as well as in-home set-top boxes 32, each having performance data 13 copied to the probe 12 at either the Network Switch 16 and/or the load balancer 14. Each of these has a corresponding set of WSDL files 20 that are each loaded into the probe control system 22, enabling the probe 12 to selectively collect performance data 13 on the service path from each of these sources.
FIG. 2 shows a second embodiment of the present invention with a network 60 including a Remote Gateway (RG) 62 running on service path control servers and clients. More particularly, the network 60 of the second embodiment includes a RG HTTP Server 64 and a Database of performance data monitored HTTP Client 66 and a 2-Wire CMS Cluster 68 with at least one CMS HTTP Client 70 and at least one CMS HTTP Server 72. The CMS HTTP Server 64 and the CMS HTTP Client 66 of the Remote Gateway 62 connect to the at least one CMS HTTP Client 70 and the at least one CMS HTTP Server 72 of the 2-Wire CMS Cluster 68 through the network 60 and the network switch 16. The network switch 16 then provides performance information 74, including a copy of each performance message sent between the Remote Gateways 62 and the 2-Wire CMS Cluster 68, to the at least one probe 12.
The at least one probe 12 is operatively connected 76 to the probe control system 22. The probe control system 22 analyzes the WSDL files 20 provided 78 and computes one or more probe control messages 76 that are transmitted and loaded into the probe 12. The probe 12 uses the control messages 76 that include the regular expressions to select performance data 13 of the APIs that are relevant to the service path. The probe 12 reports, using the probe control messages 76, the status on its implementation of such regular expressions to the probe control system 22, enabling the probe control system 22 to always be in control of the current state of the probes 12. The probe control messages 76 also flow 77 between the probe control system and the database of performance data monitored 24.
All performance data 13 provided to the at least one probe 12 by the network switch 16 and the load balancer 14 are monitored using the regular expressions provided by the probe control system 22. Then, the at least one probe 12 generates performance data measurements 80 including the volume and performance of each of the configured APIs to a database of performance data monitored 24. The database of performance data monitored 24 retains the performance data measurements 80 and based on thresholds also stored in the database of performance data monitored 24, provides alarms and reports 82 to an alarm and report generator 26. The alarm and report generator 26 also controls the thresholds stored in the database of performance data monitored 24 that cause selected alarms to be reported, and the Alarm and Report Generator 26 portion of the API monitoring system 18 will transmit any alarms and/or reports 84 to the network operations center dashboard 28.
A benefit of having automated and integrated monitoring of end-to-end volume and response times delivered by the present invention are that end-to-end systems and network capacity can be better optimized, reducing the overall capital and labor required to deliver services. In addition, this invention is the first to use WSDL files 20 and the at least one probe 12 to collect performance data 13 and use the performance data measurements 50, 80 to monitor and detect end-to-end performance and capacity, with automated technology, instead of using manual decoding.
It will be appreciated that the present invention has been described herein with reference to certain preferred or exemplary embodiments. The preferred or exemplary embodiments described herein may be modified, changed, added to or deviated from without departing from the intent, spirit and scope of the present invention, and it is intended that all such additions, modifications, amendment and/or deviations be included within the scope of the following claims.

## Claims

1. A method of measuring performance and capacity of a network, the method comprising:
monitoring network activity using an application programming interfaces monitoring system that includes a processor and a probe, the processor configured to receive a web services definition language file, the web services definition language file including instructions associated with monitoring network elements of the network;
generating, by a probe control system, a control message that includes regular expressions automatically generated in response to execution of the instructions included in the web services definition language file by the processor, the control message transmitted to the probe to control a state of the probe to collect selected performance data associated with the network elements of the network from at least one of a load balancer and a network switch;
receiving the selected performance data associated with the network elements from the probe, the selected performance data resulting from collection by the probe using the regular expressions included in the control message, the selected performance data including a time stamp and performance information;
analyzing the received selected performance data to determine information associated with performance and capacity of the network; and
providing the determined information associated with the performance and capacity of the network to a network operations center.

2. The method of claim 1, wherein the network links a service path control server and a service path control client to an element management system server and element management system client.

3. The method of claim 2, wherein the service path control server and service path control client are included in a set top box.

4. The method of claim 3, wherein the element management system server and element management system client are included in a video head end cluster.

5. The method of claim 2, wherein the service path control server and service path control client are included in a remote gateway.

6. The method of claim 5, wherein the element management system server and element management system client are included in a content management system cluster.

7. The method of claim 1, wherein the probe operates in a proxy mode having the load balancer provide mirrored copies of the selected performance data to the probe.

8. The method of claim 1, wherein the probe operates in a passive observation mode to match a configured pattern of network performance data to pass-through appliance record transmission performance information included in the selected performance data, the application programming interfaces monitoring system receiving performance data matching the configured pattern of network performance data from the probe.

9. The method of claim 1, wherein the probe operates in a function-cooperative mode to extract performance data measurements from performance information associated with selected performance data, the application programming interfaces monitoring system receiving the performance data measurements from the probe.

10. A system to measure performance and capacity of a network, the system comprising:
a web services definition language file including instructions associated with monitoring network elements of the network;
a probe configured to receive a control message, the control message including regular expressions to control a state of the probe to collect selected performance data associated with the network elements of the network from at least one of a load balancer and a network switch, the selected performance data including a time stamp and performance information, the probe further configured to transmit the selected performance data to an application programming interfaces monitoring system;
the application programming interfaces monitoring system operatively connected to the probe and configured to receive the web services definition language file, the application programming interfaces monitoring system including:
a probe control system including a hardware processor, the probe control system configured to generate the control message that includes the regular expressions automatically generated in response to execution of the instructions included in the web services definition language file by the processor, the probe control system further configured to transmit the control message to the probe to control the state of the probe;
a database configured to receive the selected performance data transmitted by the probe to the application programming interfaces monitoring system; and
an alarm and report generator configured to analyze the selected performance data received by the database to determine information associated with performance and capacity of the network, the alarm and report generator further configured to provide the determined information associated with the performance and capacity of the network to a network operations center.

11. The system of claim 10, wherein the network links a service path control server and service path control client to an element management system server and element management system client.

12. The system of claim 11, wherein the service path control server and service path control client are included in a set top box.

13. The system of claim 12, wherein the element management system server and element management system client are included in a video head end cluster.

14. The system of claim 11, wherein the service path control server and service path control client are included in a remote gateway.

15. The system of claim 14, wherein the element management system server and element management system client are included in a content management system cluster.

16. The system of claim 10, wherein the probe operates in a proxy mode having the load balancer provide mirrored copies of the selected performance data to the probe.

17. The system of claim 10, wherein the probe operates in a passive observation mode to match a configured pattern of network performance data to pass-through appliance record transmission performance information included in the selected performance data, the probe further configured to transmit the performance data matching the configured pattern of network performance data to the database of the application programming interfaces monitoring system.

18. The system of claim 10, wherein the probe operates in a function-cooperative mode to extract performance data measurements from performance information associated with selected performance data, the probe further configured to transmit the performance data measurements to the database of the application programming interfaces monitoring system.

19. A non-transitory computer readable medium comprising instructions that, when executed by a computing device, cause the computing device to perform operations comprising:
monitoring network activity using an application programming interfaces monitoring system that includes a processor and a probe, the processor configured to receive a web services definition language file, the web services definition language file including instructions associated with monitoring network elements of a network;
generating, by a probe control system, a control message that includes regular expressions automatically generated in response to execution of the instructions included in the web services definition language file by the processor, the control message transmitted to the probe to control a state of the probe to collect selected performance data associated with the network elements of the network from at least one of a load balancer and a network switch;
receiving the selected performance data associated with the network elements from the probe, the selected performance data resulting from collection by the probe using the regular expressions included in the control message, the selected performance data includes a time stamp and performance information;
analyzing the received selected performance data to determine information associated with performance and capacity of the network; and
providing the determined information associated with the performance and capacity of the network to a network operations center.