US8547996B2 - Self learning performance optimized data transfer via one or several communication channels between systems - Google Patents
Self learning performance optimized data transfer via one or several communication channels between systems Download PDFInfo
- Publication number
- US8547996B2 US8547996B2 US11/641,472 US64147206A US8547996B2 US 8547996 B2 US8547996 B2 US 8547996B2 US 64147206 A US64147206 A US 64147206A US 8547996 B2 US8547996 B2 US 8547996B2
- Authority
- US
- United States
- Prior art keywords
- data
- communication
- optimal channel
- new
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000004891 communication Methods 0.000 title claims abstract description 83
- 238000012546 transfer Methods 0.000 title claims abstract description 45
- 230000007786 learning performance Effects 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims 3
- 238000012935 Averaging Methods 0.000 claims 1
- 238000004590 computer program Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- GKSPIZSKQWTXQG-UHFFFAOYSA-N (2,5-dioxopyrrolidin-1-yl) 4-[1-(pyridin-2-yldisulfanyl)ethyl]benzoate Chemical compound C=1C=C(C(=O)ON2C(CCC2=O)=O)C=CC=1C(C)SSC1=CC=CC=N1 GKSPIZSKQWTXQG-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating wireless communication parameters
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/03—Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
Definitions
- This disclosure relates generally to computer-based mechanisms for exchanging data between two systems, and more particularly to techniques for self-learning performance-optimize data transfer between two systems via one or more communication channels.
- FIG. 1 illustrates a generic system landscape 100 in which a calling system (System A 102 ) sends requests to called system (System B 104 ).
- System A 102 and System B 104 can be two separate computing systems, or may be two separate servers in one computing system.
- System A 102 includes a client 106 , such as an application, and a communicator 108 through which the client 106 sends the requests to System B 104 .
- the communicator 108 includes logic and interfaces for one or more channels 110 .
- Each channel 110 represents the physical media, such as cable or wireless media, and the communication type or protocol to be used, such as the Hypertext Transmission Protocol (HTTP), Simple Message Transfer Protocol (SMTP), Remote Function Call (RFC), or the like.
- HTTP Hypertext Transmission Protocol
- SMTP Simple Message Transfer Protocol
- RCF Remote Function Call
- the request can include data.
- a common repository 112 such as a database or file system.
- System A 102 need only send a reference to the data in the request via the channel 110 .
- System B 104 can use the reference to access the data from the common repository 112 .
- System B 104 can simply use the channel 110 to receive the data.
- Considerations for data exchanges include CPU processing time or speed, memory usage, network usage and/or bandwidth, and costs such as channel, storage, or transmission costs. Usually, these considerations are taken into account and hard-coded during design time of communication scenarios of an application or business process. However, such an approach does not achieve an optimal way to exchange data, and which is generic for all purposes.
- a system for optimizing data transfers in requests from a calling system to a called system via one or more channels includes a performance metrics database storing performance data related to a set of performance metrics for one or more communication scenarios of the calling system.
- the system further includes an optimizer that polls the performance metrics database, analyzes the performance data based on the performance metrics, determines an optimal channel from the one or more channels on which a data transfer should occur based on the analysis, and determines a communication type for the optimal channel.
- a method for optimizing data transfers in requests from a calling system to a called system via one or more channels includes the steps of storing performance data related to a set of performance metrics for one or more communication scenarios of the calling system, and analyzing the performance data based on the performance metrics. The method further includes the steps of determining an optimal channel from the one or more channels on which a data transfer should occur based on the analyzing the performance data, and determining a communication type for the optimal channel.
- a computer-implemented method for optimizing data transfers in requests from a calling system to a called system via one or more channels includes storing performance data related to a set of performance metrics in a database, the set of performance metrics being associated with one or more communication scenarios of the calling system.
- the computer-implemented method further includes polling the database to retrieve a selection of the performance data, determining an optimal channel from the one or more channels on which a data transfer should occur based on the selection of the performance data, and determining a communication type for the optimal channel based on the selection of the performance data.
- FIG. 1 is a block diagram of a communication system landscape.
- FIG. 2 is a block diagram of a communication system landscape including an optimization system.
- FIG. 3 is a flowchart of a communication optimization method.
- An optimal data transfer depends on at least the actual system configuration, communication scenario, and the amount of data being exchanged.
- calling System A 102 includes an optimizer 120 and a scenario performance metrics database 122 .
- the scenario performance metrics database 122 stores performance metrics for the one or more channels 110 and data transfers by the calling system 102 .
- the optimizer 120 runs an initialization process. The initialization process polls the scenario performance metrics database 122 and determines the types of channels 10 that are available and the size of the data to be transferred, and analyzes CPU usage and other hardware metrics if desired.
- the optimizer 120 could protocol and evaluate metrics from System B 104 as well, if available.
- the optimizer 120 determines an optimal channel from the one or more channels 110 for the data transfer, and determines a communication type (HTTP, SMPT, RFC, etc.) that is best for the optimal channel.
- the optimizer 120 may also decide whether to pass data over the selected optimal channel, or to just send a reference to the data stored in the common repository 112 .
- the optimizer 120 then monitors the scenario for new performance data of the data transfer (e.g. size of transferred data, elapsed time, CPU time, network time, memory consumption, etc.), and updates the scenario performance metrics database 112 with at least a subset of the new performance data.
- Each scenario can include a unique identifier at the calling system which provides a number of performance characteristics for the scenario's performance data.
- the performance metrics in the scenario performance metrics database 122 can be averaged for several requests to reduce statistical errors. Further, any of the performance metrics can be weighted or scaled depending on the desired performance outcome for the system.
- the initialization process need not be run for subsequent data transfers, but can be run in the event of a hardware or other system change, or may be set to run periodically. For example, if a subsequent data transfer involves an amount of data that is different from the previous data transfer, the optimizer 120 can poll the scenario performance metrics database 112 again to determine if another of the one or more channels is more suitable. Accordingly, the calling System A includes a communication optimization system that is self-learning, and which continuously, dynamically adjusts communication to the optimum scenario including communication channel and communication type.
- FIG. 3 is a flowchart of a method 200 for a method for optimizing data transfers in requests from a calling system to a called system via one or more channels.
- performance data related to a set of performance metrics are stored.
- the performance metrics are associated with one or more communication scenarios—i.e. communication channel used, communication type employed, whether data is transferred or just a reference is sent, etc.
- the performance data is preferably stored in a database, and can be weighted or scaled based on desired performance parameters of the calling system.
- the performance data is analyzed according to the performance metrics.
- an optimal channel is determined from one or more available channels, based on the analysis of performance data.
- a communication type is determined for the optimal channel.
- a communicator having an interface with the one or more channels is instructed as to the determined channel and communication type. Thereafter, data transfers will be executed on the selected channel and according to the communication type.
- one or more communication scenarios are monitored, and new performance data is collected.
- the performance data is updated with the new performance data, and made available for future, preferably regular analyses and channel selection.
- the method 200 may return at 202 or any step thereafter for self-learning and optimization of communication scenarios.
- Implementation of the optimization system and method and all of the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of them.
- the optimization system and method can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer readable medium, e.g., a machine readable storage device, a machine readable storage medium, a memory device, or a machine-readable propagated signal, for execution by, or to control the operation of, data processing apparatus.
- data processing apparatus encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers.
- the apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of them.
- a propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
- a computer program (also referred to as a program, software, an application, a software application, a script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- the processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.
- the processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read only memory or a random access memory or both.
- the essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to, a communication interface to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio player, a Global Positioning System (GPS) receiver, to name just a few.
- Information carriers suitable for embodying computer program instructions and data include all forms of non volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD-ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- embodiments of the invention can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
- a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
- keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
- the optimization system and method can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back end, middleware, or front end components.
- the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
- LAN local area network
- WAN wide area network
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- embodiments of the invention have been described. Other embodiments are within the scope of the following claims. For example, the steps recited in the claims can be performed in a different order and still achieve desirable results.
- embodiments of the invention are not limited to database architectures that are relational; for example, the invention can be implemented to provide indexing and archiving methods and systems for databases built on models other than the relational model, e.g., navigational databases or object oriented databases, and for databases having records with complex attribute structures, e.g., object oriented programming objects or markup language documents.
- the processes described may be implemented by applications specifically performing archiving and retrieval functions or embedded within other applications.
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (19)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/641,472 US8547996B2 (en) | 2006-12-18 | 2006-12-18 | Self learning performance optimized data transfer via one or several communication channels between systems |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/641,472 US8547996B2 (en) | 2006-12-18 | 2006-12-18 | Self learning performance optimized data transfer via one or several communication channels between systems |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20080144653A1 US20080144653A1 (en) | 2008-06-19 |
| US8547996B2 true US8547996B2 (en) | 2013-10-01 |
Family
ID=39527122
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/641,472 Active 2030-09-13 US8547996B2 (en) | 2006-12-18 | 2006-12-18 | Self learning performance optimized data transfer via one or several communication channels between systems |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US8547996B2 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9092146B2 (en) | 2013-06-28 | 2015-07-28 | International Business Machines Corporation | Dynamically varying transfer size in a storage device for improved performance |
| US9335945B2 (en) | 2014-06-10 | 2016-05-10 | International Business Machines Corporation | Transfer size monitor, determination, and optimization engine for storage devices |
| US12153544B2 (en) | 2019-04-02 | 2024-11-26 | Micro Focus Software Inc. | Temporal difference learning, reinforcement learning approach to determine optimal number of threads to use for file copying |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9432864B2 (en) * | 2012-05-29 | 2016-08-30 | Alcatel Lucent | Generic persistence in a diameter routing agent |
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5732240A (en) * | 1993-06-04 | 1998-03-24 | Digital Equipment Corporation | Real-time data cache size adjustment in a server computer |
| US6480497B1 (en) * | 1998-11-23 | 2002-11-12 | Ricochet Networks, Inc. | Method and apparatus for maximizing data throughput in a packet radio mesh network |
| US20030189950A1 (en) * | 2002-04-08 | 2003-10-09 | Stephen Spear | Optimization of a wireless interface based on communication type |
| US6795851B1 (en) * | 2000-06-19 | 2004-09-21 | Path Communications Inc. | Web-based client/server communication channel with automated client-side channel endpoint feature detection and selection |
| US6973622B1 (en) * | 2000-09-25 | 2005-12-06 | Wireless Valley Communications, Inc. | System and method for design, tracking, measurement, prediction and optimization of data communication networks |
| US7197315B1 (en) * | 2003-08-08 | 2007-03-27 | Intel Corporation | Method and apparatus to select a channel using performance metrics |
| US7327697B1 (en) * | 2002-06-25 | 2008-02-05 | Airespace, Inc. | Method and system for dynamically assigning channels across multiple radios in a wireless LAN |
| US7340477B1 (en) * | 2003-12-16 | 2008-03-04 | Unisys Corporation | Method and system for a telemetry warehouse for storing, retrieving and analyzing data |
| US7412402B2 (en) * | 2005-03-22 | 2008-08-12 | Kim A. Cooper | Performance motivation systems and methods for contact centers |
| US7636550B2 (en) * | 2005-06-23 | 2009-12-22 | Autocell Laboratories, Inc. | System and method for determining channel quality in a wireless network |
-
2006
- 2006-12-18 US US11/641,472 patent/US8547996B2/en active Active
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5732240A (en) * | 1993-06-04 | 1998-03-24 | Digital Equipment Corporation | Real-time data cache size adjustment in a server computer |
| US6480497B1 (en) * | 1998-11-23 | 2002-11-12 | Ricochet Networks, Inc. | Method and apparatus for maximizing data throughput in a packet radio mesh network |
| US6795851B1 (en) * | 2000-06-19 | 2004-09-21 | Path Communications Inc. | Web-based client/server communication channel with automated client-side channel endpoint feature detection and selection |
| US6973622B1 (en) * | 2000-09-25 | 2005-12-06 | Wireless Valley Communications, Inc. | System and method for design, tracking, measurement, prediction and optimization of data communication networks |
| US20030189950A1 (en) * | 2002-04-08 | 2003-10-09 | Stephen Spear | Optimization of a wireless interface based on communication type |
| US7327697B1 (en) * | 2002-06-25 | 2008-02-05 | Airespace, Inc. | Method and system for dynamically assigning channels across multiple radios in a wireless LAN |
| US7197315B1 (en) * | 2003-08-08 | 2007-03-27 | Intel Corporation | Method and apparatus to select a channel using performance metrics |
| US7340477B1 (en) * | 2003-12-16 | 2008-03-04 | Unisys Corporation | Method and system for a telemetry warehouse for storing, retrieving and analyzing data |
| US7412402B2 (en) * | 2005-03-22 | 2008-08-12 | Kim A. Cooper | Performance motivation systems and methods for contact centers |
| US7636550B2 (en) * | 2005-06-23 | 2009-12-22 | Autocell Laboratories, Inc. | System and method for determining channel quality in a wireless network |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9092146B2 (en) | 2013-06-28 | 2015-07-28 | International Business Machines Corporation | Dynamically varying transfer size in a storage device for improved performance |
| US9335945B2 (en) | 2014-06-10 | 2016-05-10 | International Business Machines Corporation | Transfer size monitor, determination, and optimization engine for storage devices |
| US9342255B2 (en) | 2014-06-10 | 2016-05-17 | International Business Machines Corporation | Transfer size monitor, determination, and optimization engine for storage devices |
| US12153544B2 (en) | 2019-04-02 | 2024-11-26 | Micro Focus Software Inc. | Temporal difference learning, reinforcement learning approach to determine optimal number of threads to use for file copying |
Also Published As
| Publication number | Publication date |
|---|---|
| US20080144653A1 (en) | 2008-06-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11310331B2 (en) | Optimizing user interface data caching for future actions | |
| US11513844B1 (en) | Pipeline set selection based on duty cycle estimation | |
| US6829630B1 (en) | Mechanisms for web-object event/state-driven communication between networked devices | |
| US11314553B2 (en) | Method, apparatus, and computer program product for determining usage change rate of storage system | |
| JP2018533779A (en) | Performance monitoring of distributed storage systems | |
| US20170060656A1 (en) | Predicting service issues by detecting anomalies in event signal | |
| US9374417B1 (en) | Dynamic specification auditing for a distributed system | |
| CN110377503A (en) | Method for testing pressure, device, computer equipment and storage medium | |
| US20220391808A1 (en) | Data processing method, electronic device and storage medium | |
| US20220148022A1 (en) | Market segment analysis of product or service offerings | |
| WO2021173168A1 (en) | Contact center call volume prediction | |
| US11394807B2 (en) | Critical path estimation for accelerated and optimal loading of web pages | |
| US8547996B2 (en) | Self learning performance optimized data transfer via one or several communication channels between systems | |
| CN111935025B (en) | Control method, device, equipment and medium for TCP transmission performance | |
| CN111311014B (en) | Service data processing method, device, computer equipment and storage medium | |
| US10769218B2 (en) | Display for network time series data with adaptable zoom intervals | |
| US10944631B1 (en) | Network request and file transfer prioritization based on traffic elasticity | |
| CN113823368B (en) | Resource allocation method and device | |
| CN112433891A (en) | Data processing method and device and server | |
| EP4481582A1 (en) | Virtual warehouse analysis and configuration planning system | |
| CN109634938A (en) | Mysql Database performance tuning method, apparatus, equipment and the medium of cloud platform | |
| CN103944955B (en) | Mobile phone spatial Information Service method based on wireless network | |
| US20250229156A1 (en) | Systems and methods for model evaluation using prior data | |
| WO2025017715A1 (en) | System and method for detecting anomalies in a communication network | |
| WO2025052428A1 (en) | Method and system for de-establishing network protocol connections |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: SAP AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DEUTESFELD, ANDREAS;REEL/FRAME:018727/0145 Effective date: 20061215 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| AS | Assignment |
Owner name: SAP SE, GERMANY Free format text: CHANGE OF NAME;ASSIGNOR:SAP AG;REEL/FRAME:033625/0334 Effective date: 20140707 |
|
| FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |