Systems, methods, and apparatuses for routing API calls

Information

  • Patent Grant
  • 11080105
  • Patent Number
    11,080,105
  • Date Filed
    Wednesday, November 18, 2020
    4 years ago
  • Date Issued
    Tuesday, August 3, 2021
    3 years ago
  • CPC
  • Field of Search
    • US
    • 719 328000
    • CPC
    • G06F9/542
  • International Classifications
    • G06F3/00
    • G06F9/54
Abstract
The present disclosure relates to methods, systems and apparatuses for routing API calls to multiple backend systems that share a common API. A system may receive an API call comprising a unique identifier from a client computing device. The system may identify the unique identifier in the API call, and determine a target backend system associated with the unique identifier from the plurality of backend systems. Further, the system may route the API call to the target backend system based on the unique identifier.
Description
TECHNICAL FIELD

The present disclosure relates generally to handling API calls. More specifically, the present disclosure relates to methods, systems and apparatuses for routing API calls to multiple backend systems that share a common API.





BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.



FIG. 1 illustrates a block diagram of an API call routing system 100 in accordance with one embodiment.



FIG. 2 illustrates a simplified signal flow diagram 200 for a smart routing API gateway 204 in accordance with one embodiment.



FIG. 3 illustrates a method 300 to route an API call in accordance with one embodiment.



FIG. 4 illustrates a method 400 to create and implement an API common to multiple backend systems in accordance with one embodiment.



FIG. 5 is a block diagram of a smart router API gateway smart router API gateway 500 according to one embodiment.





DETAILED DESCRIPTION

Described herein are embodiments of systems, apparatuses, and methods for routing Application Programming Interface (API) calls using a common API to multiple backend systems. An API gateway is a way to connect various developers or applications to a backend system. Traditional API gateways use an API to connect a client competing device to services of a single backend system. Unlike traditional API gateways, the embodiments herein include smart routing API gateways that can reuse a single API for to connect multiple different applications and clients to multiple different backend systems.


Using a common API to connect multiple applications to multiple backend systems can lead to greater computing efficiencies. For instance, the traditional API gateway can receive API calls from many client computing devices and routes them to a single backend system. However, this means that for each backend system, the developer would have to develop multiple integrations of an API if it was desired to use the API with multiple backend systems. In contrast, the smart routing API gateway is capable of connecting many client computing devices and applications to many backend systems. This allows a developer to develop a single API that can be used to access multiple backend systems. Thus, with a smart routing API gateway fewer application integrations would need to be developed.


In some embodiments herein, an API gateway may receive an API call comprising a unique identifier. The API gateway may identify the unique identifier in the API call and determine a target backend system associated with the unique identifier from a plurality of backend systems. The API gateway may then route the API call to the target backend system based on the unique identifier.


The phrases “coupled to,” “connected to,” and “in communication with” refer to any form of interaction between two or more components, including mechanical, electrical, magnetic, and electromagnetic interaction. Two components may be connected to each other, even though they are not in direct contact with each other, and even though there may be intermediary devices between the two components.


It will be readily understood that the components of the embodiments as generally described below and illustrated in the Figures herein could be arranged and designed in a wide variety of different configurations. For instance, the steps of a method do not necessarily need to be executed in any specific order, or even sequentially, nor do the steps need to be executed only once. Thus, the following more detailed description of various embodiments, as described below and represented in the Figures, is not intended to limit the scope of the disclosure but is merely representative of various embodiments. While the various aspects of the embodiments are presented in the drawings, the drawings are not necessarily drawn to scale unless specifically indicated.


Embodiments and implementations of systems and methods described herein may include various steps, which may be embodied in machine-executable instructions to be executed by a computer system. A computer system may include one or more general-purpose or special-purpose computers (or other electronic devices). The computer system may include hardware components that include specific logic for performing the steps or may include a combination of hardware, software, and/or firmware.


Embodiments may be provided as a computer program product including a computer-readable medium having stored thereon instructions that may be used to program a computer system or other electronic device to perform the processes described herein. The computer-readable medium may include, but is not limited to: hard drives, floppy diskettes, optical disks, CD-ROMs, DVD-ROMs, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, solid-state memory devices, or other types of media/computer-readable media suitable for storing electronic instructions.


Computer systems and the computers in a computer system may be connected via a network. Suitable networks for configuration and/or use as described herein include one or more local area networks, wide area networks, metropolitan area networks, and/or Internet or IP networks, such as the World Wide Web, a private Internet, a secure Internet, a value-added network, a virtual private network, an extranet, an intranet, or even stand-alone machines which communicate with other machines by physical transport of media. In particular, a suitable network may be formed from parts or entireties of two or more other networks, including networks using disparate hardware and network communication technologies.


One suitable network includes a server and several clients; other suitable networks may contain other combinations of servers, clients, and/or peer-to-peer nodes, and a given computer system may function both as a client and as a server. Each network includes at least two computers or computer systems, such as the server and/or clients. A computer system may include a workstation, laptop computer, disconnectable mobile computer, server, mainframe, cluster, so-called “network computer” or “thin client,” tablet, smart phone, personal digital assistant or other hand-held computing device, “smart” consumer electronics device or appliance, medical device, or a combination thereof.


Suitable networks may include communications or networking software, such as the software available from Novell®, Microsoft®, and other vendors, and may operate using TCP/IP, SPX, IPX, and other protocols over twisted pair, coaxial, or optical fiber cables; telephone lines; radio waves; satellites; microwave relays; modulated AC power lines; physical media transfer; and/or other data transmission “wires” known to those of skill in the art. The network may encompass smaller networks and/or be connectable to other networks through a gateway or similar mechanism.


Each computer system includes one or more processors and/or memory; computer systems may also include various input devices and/or output devices. The processor may include a general-purpose device, such as an Intel®, AMD®, or other “off-the-shelf” microprocessor. The processor may include a special-purpose processing device, such as an ASIC, SoC, SiP, FPGA, PAL, PLA, FPLA, PLD, or other customized or programmable device. The memory may include static RAM, dynamic RAM, flash memory, one or more flip-flops, ROM, CD-ROM, disk, tape, magnetic, optical, or other computer storage medium. The input device(s) may include a keyboard, mouse, touch screen, light pen, tablet, microphone, sensor, or other hardware with accompanying firmware and/or software. The output device(s) may include a monitor or other display, printer, speech or text synthesizer, switch, signal line, or other hardware with accompanying firmware and/or software.


The computer systems may be capable of using a floppy drive, tape drive, optical drive, magneto-optical drive, or other means to read a storage medium. A suitable storage medium includes a magnetic, optical, or other computer-readable storage device having a specific physical configuration. Suitable storage devices include floppy disks, hard disks, tape, CD-ROMs, DVDs, PROMs, RAM, flash memory, and other computer system storage devices. The physical configuration represents data and instructions which cause the computer system to operate in a specific and predefined manner as described herein.


Suitable software to assist in implementing the invention is readily provided by those of skill in the pertinent art(s) using the teachings presented here and programming languages and tools, such as JavaScript, Modern Fortran, Java, Pascal, C++, C, PHP, .Net, database languages, APIs, SDKs, assembly, firmware, microcode, and/or other languages and tools. Suitable signal formats may be embodied in analog or digital form, with or without error detection and/or correction bits, packet headers, network addresses in a specific format, and/or other supporting data readily provided by those of skill in the pertinent art(s).


Aspects of certain embodiments may be implemented as software modules or components. As used herein, a software module or component may include any type of computer instruction or computer executable code located within or on a computer-readable storage medium. A software module may, for instance, comprise one or more physical or logical blocks of computer instructions, which may be organized as a routine, program, object, component, data structure, etc., that performs one or more tasks or implement particular abstract data types. A particular software module may comprise disparate instructions stored in different locations of a computer-readable storage medium, which together implement the described functionality of the module. Indeed, a module may comprise a single instruction or many instructions, and may be distributed over several different code segments, among different programs, and across several computer-readable storage media.


Some embodiments may be practiced in a distributed computing environment where tasks are performed by a remote processing device linked through a communications network. In a distributed computing environment, software modules may be located in local and/or remote computer-readable storage media. In addition, data being tied or rendered together in a database record may be resident in the same computer-readable storage medium, or across several computer-readable storage media, and may be linked together in fields of a record in a database across a network. According to one embodiment, a database management system (DBMS) allows users to interact with one or more databases and provides access to the data contained in the databases.



FIG. 1 illustrates a block diagram of an API call routing system 100 in accordance with one embodiment. As shown, the API call routing system 100 may include a plurality of client computing devices (e.g., first client computing device 110, second client computing device 112, and third client computing device 114), an API gateway 102, and a plurality of backend systems (e.g., first backend system 104, second backend system 106, third backend system 108 fourth backend system 116, and fifth backend system 124).


The client computing devices may be configured for a variety of clients. For example, the client computing devices may be used for a plurality of different car dealerships. Each client may use one or more applications for their business. Therefore, each client computing device may have one or more applications. The applications may include applications related to finances, inventory management, contact management, and scheduling management. The client computing devices may communicate with the API gateway 102. For example, the client computing devices may make API calls to the API gateway 102 and receive payloads associated with the calls.


The API calls may be a request by an application on a client computing device for information from one of the backend systems. The backend systems may store information and provide one or more services. The backend systems may be separately maintained systems that do not communicate directly with one another. In some embodiments, the backend systems may be managed by different companies. The backend systems may be controlled by one or more data providers. For example, the backend systems may be car dealer management system, a statistic provider, an insurance company, etc.


As shown, the API gateway 102 may route API calls from the client computing devices to the appropriate backend system using one of the APIs (e.g., first API 118, second API 120, and third API 122). As shown, some APIs may be capable of communicating with multiple databases. Thus, an API call from a client computing device may correspond to an API that is common to multiple backend systems.


Accordingly, when the API gateway 102 receives an API call, the associated API may determine the proper backend system to route the call too. In some embodiments, the API call routing system 100 may use unique identifiers in the API call to indicate which backend system to use. The unique identifiers may be subscription identifiers that are unique to an application, a client, or a combination of the application for a client. In some embodiments, the unique identifiers may be part of the API header. In some embodiments, the unique identifiers may be part of the API payload. In some embodiments, the unique identifiers may be a universally unique identifier (UUID) or a globally unique identifier (GUID). The unique identifiers may be 24 bytes or 36 bytes.



FIG. 2 illustrates a simplified signal flow diagram 200 for a smart routing API gateway 204 in accordance with one embodiment. As shown, the API gateway 204 may use token-based security to prevent unauthorized access to the multiple backend systems in communication with the API gateway 204. For example, the API gateway 204 may use OAUTH security.


The client computing device 202 may send an initial API call 210 to the API gateway 204. The initial API call 210 may be sent when a client is setting up an application. The initial API call 210 may initiate interaction between the client computing device 202 and the API gateway 204 and be used to receive a token 212. The token may be used to provide authorization of future API calls. For example, the token may be issued to determine what application and client has authority to access a data source (e.g., backend system 206).


The client computing device 202 may send an API call 214 to the API gateway 204. The API call 214 may include a unique identifier such as a subscription identifier for the client and application. The client computing device 202 may also send the token with the API call 214. The API gateway 204 may check that the token is still authorized for the application and client that sent the API call 214. If the API call 214 is authorized to proceed, the API gateway 204 may determine the unique identifier in the API call 214 and determine which backend system to route the API call 214.


In the illustrated embodiment, the API gateway 204 determines that the unique identifier is associated with the backend system 206. Accordingly, the API gateway 204 sends a routed API call 216 to the backend system 206. An adapter 208 formats the routed API call 216 for the backend system 206. The backend system 206 responds to the routed API call 216 by sending a payload 218 to the API gateway 204. The API gateway 204 may forward the payload 220 to the client computing device 202.



FIG. 3 illustrates a method 300 to route an API call in accordance with one embodiment. A system implementing the method 300 may receive 302 an API call comprising a unique identifier. The system may identify 304 the unique identifier in the API call. The unique identifier may be a subscription identifier unique to an application and a client. In some embodiments, the unique identifier may be in the header of the API call. In some embodiments, the unique identifier may be in the payload of the API call.


The system may determine 306 a target backend system associated with the unique identifier from a plurality of backend systems. The API call may correspond to an API that is common to multiple backend systems communicatively coupled with the router. Accordingly, the system may determine how to route the API call based on the unique identifier.


The system may route 308 the API call to the target backend system based on the unique identifier. The target backend system may be one of a dealer management system, a statistic provider, or an insurance company. In some embodiments, the backend systems that are associated with the API may be from different data providers. The system may receive 310 a payload associated with the API call from the target backend system and send the payload to a client computing device. In some embodiments, the system may receive a token with the API call and check that the token is valid for the unique identifier of the API call.



FIG. 4 illustrates a method 400 to create and implement an API common to multiple backend systems in accordance with one embodiment. In the method 400, a first data provider designs 402 an API and publishes it. The data provider may be an automobile dealer management system, statistic provider, or an insurance company.


This API may be used by other data providers for their backend systems. For example, a second data provider can also write 406 an adapter for the same API specification and publish their own adapter. Using a common API for multiple data providers or multiple backend systems allows for fewer APIs which may assist the data providers and software developers as there are fewer APIs needed to be developed and applications will not have to be written for multiple APIs. Additionally, this may provide a client with a choice of providers for the data.


In the method 400, a software developer develops 408 an application, registers the application with the application with an API gateway, and signs up to the API. The software developer may test 410 the application with a test subscription ID. A client may choose 412 to use the application and choose which data provider to use 412.


A subscription ID may be generated 414 for the client for the application. The API gateway may use 416 the subscription ID to decide which data provider to use when an API call is received. Thus, the API gateway serves as a smart router to route API calls to a correct backend system and data provider. This means that multiple data providers can be accessed by the application without the software developer writing another specific integration of the application.



FIG. 5 is a block diagram of a smart router API gateway smart router API gateway 500 according to one embodiment. The smart router API gateway 500 may perform the methods and use the techniques described with reference to the other figures in the specification. The smart router API gateway 500 can include a memory 503, one or more processors 504, a network interface 506, an input/output interface 508, and a system bus 509.


The one or more processors 504 may include one or more general purpose devices, such as an Intel®, AMD®, or other standard microprocessor. The one or more processors 504 may include a special purpose processing device, such as ASIC, SoC, SiP, FPGA, PAL, PLA, FPLA, PLD, or other customized or programmable device. The one or more processors 504 can perform distributed (e.g., parallel) processing to execute or otherwise implement functionalities of the presently disclosed embodiments. The one or more processors 504 may run a standard operating system and perform standard operating system functions. It is recognized that any standard operating systems may be used, such as, for example, Microsoft® Windows®, Apple® MacOS®, Disk Operating System (DOS), UNIX, IRJX, Solaris, SunOS, FreeBSD, Linux®, ffiM® OS/2® operating systems, and so forth.


The memory 503 may include static RAM, dynamic RAM, flash memory, one or more flip-flops, ROM, CD-ROM, DVD, disk, tape, or magnetic, optical, or other computer storage medium. The memory 503 may include a plurality of program modules 510 and program data 520. The memory 503 may be local to the smart router API gateway 500, as shown, or may be distributed and/or remote relative to the smart router API gateway 500.


Data generated or used by the smart router API gateway 500, such as by the program modules 510 or other modules, may be stored on the memory 503, for example, as stored program data 520. The data 520 may be organized as one or more databases.


The data 520 may include subscription IDs 522 and tokens 524. The subscription IDs 522 may be unique identifiers for an application, a client, or a combination of the application and client. The subscription ID may be assigned per application and client during a setup process of the application. The smart router API gateway 500 may associate the subscription ID with a backend system that the client indicated. The smart router API gateway 500 may route API calls to the indicated backend system. The tokens 524 may be used to authorize access to backend systems for applications and clients.


The program modules 510 may run multiple operations concurrently or in parallel by or on the one or more processors 504. In some embodiments, portions of the disclosed modules, components, and/or facilities are embodied as executable instructions embodied in hardware or firmware, or stored on a non-transitory, machine-readable storage medium. The executable instructions may comprise computer program code that, when executed by a processor and/or computing device, cause a computing system to implement certain processing steps, procedures, and/or operations, as disclosed herein. The modules, components, and/or facilities disclosed herein may be implemented and/or embodied as a driver, a library, an interface, an API, FPGA configuration data, firmware (e.g., stored on an EEPROM), and/or the like. In some embodiments, portions of the modules, components, and/or facilities disclosed herein are embodied as machine components, such as general and/or application-specific devices, including, but not limited to: circuits, integrated circuits, processing components, interface components, hardware controller(s), storage controller(s), programmable hardware, FPGAs, ASICs, and/or the like. Accordingly, the modules disclosed herein may be referred to as controllers, layers, services, engines, facilities, drivers, circuits, subsystems, and/or the like.


The modules 510 may comprise a routing engine 512, a token generator 514, an authentication engine 516, and one or more APIs 518. The routing engine 512 may be used to route API calls to a correct backend system based on the subscription ID within the API call. The token generator 514 and authentication engine 516 may be used to determine authorization of the API calls before accessing a backend system. The one or more APIs may be developed by data providers to access backend systems. An API may be common to multiple data providers and/or backend systems.


The input/output interface 508 may facilitate user interaction with one or more input devices and/or one or more output devices. The input device(s) may include a keyboard, mouse, touchscreen, light pen, tablet, microphone, sensor, or other hardware with accompanying firmware and/or software. The output device(s) may include a monitor or other display, printer, speech or text synthesizer, switch, signal line, or other hardware with accompanying firmware and/or software. For example, in one embodiment, the input/output interface 508 comprises a display to provide a graphical user interface (GUI) illustrating the potential ablation perimeters. The input/output interface 508 can receive the user input data 522. In some embodiments, the input/output interface 508 is a touchscreen, and the size input is received via the touchscreen. In some embodiments, the input/output interface 508 can superimpose the target ablation perimeters on an image of the tissue.


The network interface 506 may facilitate communication with other computing devices and/or networks and/or other computing and/or communications networks. The network interface 506 may be equipped with conventional network connectivity, such as, for example, Ethernet (IEEE 1102.3), Token Ring (IEEE 1102.5), Fiber Distributed Datalink Interface (FDDI), or Asynchronous Transfer Mode (ATM). Further, the network interface 506 may be configured to support a variety of network protocols such as, for example, Internet Protocol (IP), Transfer Control Protocol (TCP), Network File System over UDP/TCP, Server Message Block (SMB), Microsoft® Common Internet File System (CIFS), Hypertext Transfer Protocols (HTTP), Direct Access File System (DAFS), File Transfer Protocol (FTP), Real-Time Publish Subscribe (RTPS), Open Systems Interconnection (OSI) protocols, Simple Mail Transfer Protocol (SMTP), Secure Shell (SSH), Secure Socket Layer (SSL), and so forth.


The system bus 509 may facilitate communication and/or interaction between the other components of the smart router API gateway 500, including the one or more processors 504, the memory 503, the input/output interface 508, and the network interface 506.


Any methods disclosed herein comprise one or more steps or actions for performing the described method. The method steps and/or actions may be interchanged with one another. In other words, unless a specific order of steps or actions is required for proper operation of the embodiment, the order and/or use of specific steps and/or actions may be modified.


While specific embodiments of stents have been illustrated and described, it is to be understood that the disclosure provided is not limited to the precise configuration and components disclosed. Various modifications, changes, and variations apparent to those of skill in the art having the benefit of this disclosure may be made in the arrangement, operation, and details of the methods and systems disclosed, with the aid of the present disclosure.


Without further elaboration, it is believed that one skilled in the art can use the preceding description to utilize the present disclosure to its fullest extent. The examples and embodiments disclosed herein are to be construed as merely illustrative and exemplary and not a limitation of the scope of the present disclosure in any way. It will be apparent to those having skill, having the benefit of this disclosure, in the art that changes may be made to the details of the above-described embodiments without departing from the underlying principles of the disclosure herein.

Claims
  • 1. A method to route an API call, the method comprising: connecting a plurality of clients to a plurality of backend systems via an Application Programming Interface (API) gateway comprising a common API that is used by multiple of the plurality of backend systems, wherein connecting comprises: registering an application on one of the plurality of clients with the common API on the API gateway; receiving an indication of a target backend system that the application is to access using the common API, wherein the target backend system is one of the plurality of backend systems using the common API; assigning a unique identifier to the application; and associating the unique identifier with the target backend system; receiving, at the common API gateway, an API call comprising a unique identifier from the assigned unique identifiers; identifying the unique identifier in the API call; determining, via the common API, the target backend system associated with the unique identifier from the plurality of backend systems; and routing, via the common API, the API call to the target backend system based on the unique identifier; wherein the unique identifier is within a header of the API call,receiving a token with the API call and checking that the token is valid for the unique identifier of the API call.
  • 2. The method of claim 1, wherein the API call corresponds to the common API that is common to multiple backend systems communicatively coupled with the API gateway.
  • 3. The method of claim 1, wherein the unique identifier is a subscription identifier unique to an application and a client.
  • 4. The method of claim 1, wherein the target backend system is implemented by one of a plurality of data providers using the common API.
  • 5. The method of claim 1, further comprising receiving a payload associated with the API call from the target backend system and sending the payload to a client computing device.
  • 6. An API gateway comprising: an interface to communicate with a plurality of client computing devices comprising one or more applications and a plurality of backend systems; memory to store one or more APIs and one or more processors configured to: register each of the one or more applications with a corresponding API of the one or more APIs, wherein at least one of the one or more APIs is common to multiple backend systems; receive an indication of a target backend system for applications registered with an API common to multiple backend systems; assign unique identifiers to each application of the one or more applications on the plurality of client computing devices; associate each of the unique identifiers with one of the plurality of backend systems; receive an API call comprising a unique identifier from a client computing device; identify the unique identifier in the API call determine, via an API associated with the API call, the target backend system associated with the unique identifier from the plurality of backend systems; and route, via the API associated with the API call, the API call to the target backend system based on the unique identifier; wherein the unique identifier is within a header of the API call,comprising receiving a token with the API call and checking that the token is valid for the unique identifier of the API call.
  • 7. The API gateway of claim 6, wherein the API call corresponds to an API that is common to multiple backend systems communicatively coupled with the API gateway.
  • 8. The API gateway of claim 6, wherein the unique identifier is a subscription identifier unique to an application and a client.
  • 9. The API gateway of claim 6, wherein the target backend system is implemented by one of a plurality of data providers using a common API.
  • 10. The API gateway of claim 6, wherein the one or more processors are further configured to receive a payload associated with the API call from the target backend system and send the payload to a client computing device.
  • 11. An API call router comprising: memory to store an API associated with more than one backend system; one or more processors configured to: register an application on one of a plurality of clients with a common API that is used by multiple backend systems, receive an indication of a target backend system that the application is to access using the common API, wherein the target backend system is one of the multiple backend systems using the common API; assign a unique identifer to the application; associate the unique identifer with the target backend system; receive an API call corresponding to the API, the API call comprising a unique identifier from a client computing device; identify the unique identifier in the API call determine, via the common API, the target backend system associated with the unique identifier from the more than one backend systems associated with the API; and route, via the common API, the API call to the target backend system based on the unique identifer; wherein the unique identifier is within a header of the API call;wherein the one or more processors are further configured to receive a token with the API call and check that the token is valid for an application making the API call based on the unique identifier.
  • 12. The API call router of claim 11, wherein the unique identifer is a subscription identifier unique to an application and a client.
  • 13. The API call router of claim 11, wherein the target backend system is implemented by one of a plurality of data providers using the API.
  • 14. The API call router of claim 11, wherein the one or more processors are further configured to receive a payload associated with the API call from the target backend system and send the payload to a client computing device.
US Referenced Citations (481)
Number Name Date Kind
3792445 Bucks et al. Feb 1974 A
4258421 Juhasz et al. Mar 1981 A
4992940 Dworkin Feb 1991 A
5003476 Abe Mar 1991 A
5034889 Abe Jul 1991 A
5058044 Stewart et al. Oct 1991 A
5421015 Khoyi et al. May 1995 A
5442553 Parrillo Aug 1995 A
5452446 Johnson Sep 1995 A
5521815 Rose, Jr. May 1996 A
5649186 Ferguson Jul 1997 A
5694595 Jacobs et al. Dec 1997 A
5729452 Smith et al. Mar 1998 A
5787177 Leppek Jul 1998 A
5790785 Klug et al. Aug 1998 A
5835712 Dufresne Nov 1998 A
5845299 Arora et al. Dec 1998 A
5862346 Kley et al. Jan 1999 A
5911145 Arora et al. Jun 1999 A
5956720 Fernandez et al. Sep 1999 A
5974149 Leppek Oct 1999 A
5974418 Blinn et al. Oct 1999 A
5974428 Gerard et al. Oct 1999 A
5978776 Seretti et al. Nov 1999 A
5987506 Carter et al. Nov 1999 A
6003635 Bantz et al. Dec 1999 A
6006201 Berent et al. Dec 1999 A
6009410 Lemole et al. Dec 1999 A
6018748 Smith Jan 2000 A
6021416 Dauerer et al. Feb 2000 A
6021426 Douglis et al. Feb 2000 A
6026433 D'Arlach et al. Feb 2000 A
6041310 Green et al. Mar 2000 A
6041344 Bodamer et al. Mar 2000 A
6055541 Solecki et al. Apr 2000 A
6061698 Chadha et al. May 2000 A
6067559 Allard et al. May 2000 A
6070164 Vagnozzi May 2000 A
6134532 Lazarus et al. Oct 2000 A
6151609 Truong Nov 2000 A
6178432 Cook et al. Jan 2001 B1
6181994 Colson et al. Jan 2001 B1
6185614 Cuomo et al. Feb 2001 B1
6189104 Leppek Feb 2001 B1
6216129 Eldering Apr 2001 B1
6219667 Lu et al. Apr 2001 B1
6236994 Schwartz et al. May 2001 B1
6240365 Bunn May 2001 B1
6263268 Nathanson Jul 2001 B1
6285932 De Belledeuille et al. Sep 2001 B1
6289382 Bowman-Amuah Sep 2001 B1
6295061 Park et al. Sep 2001 B1
6330499 Chou et al. Dec 2001 B1
6343302 Graham Jan 2002 B1
6353824 Boguraev et al. Mar 2002 B1
6356822 Diaz et al. Mar 2002 B1
6374241 Lamburt et al. Apr 2002 B1
6397226 Sage May 2002 B1
6397336 Leppek May 2002 B2
6401103 Ho et al. Jun 2002 B1
6421733 Tso et al. Jul 2002 B1
6473849 Keller et al. Oct 2002 B1
6496855 Hunt et al. Dec 2002 B1
6505106 Lawrence et al. Jan 2003 B1
6505205 Kothuri et al. Jan 2003 B1
6519617 Wanderski et al. Feb 2003 B1
6535879 Behera Mar 2003 B1
6539370 Chang et al. Mar 2003 B1
6546216 Mizoguchi et al. Apr 2003 B2
6553373 Boguraev et al. Apr 2003 B2
6556904 Larson et al. Apr 2003 B1
6564216 Waters May 2003 B2
6571253 Thompson et al. May 2003 B1
6581061 Graham Jun 2003 B2
6583794 Wattenberg Jun 2003 B1
6594664 Estrada et al. Jul 2003 B1
6606525 Muthuswamy et al. Aug 2003 B1
6629148 Ahmed et al. Sep 2003 B1
6643663 Dabney et al. Nov 2003 B1
6654726 Hanzek Nov 2003 B1
6678706 Fishel Jan 2004 B1
6697825 Underwood et al. Feb 2004 B1
6701232 Yamaki Mar 2004 B2
6721747 Lipkin Apr 2004 B2
6728685 Ahluwalia Apr 2004 B1
6738750 Stone et al. May 2004 B2
6744735 Nakaguro Jun 2004 B1
6748305 Klausner et al. Jun 2004 B1
6785864 Te et al. Aug 2004 B1
6795819 Wheeler et al. Sep 2004 B2
6823258 Ukai et al. Nov 2004 B2
6823359 Heidingsfeld Nov 2004 B1
6826594 Pettersen Nov 2004 B1
6847988 Toyouchi et al. Jan 2005 B2
6850823 Eun et al. Feb 2005 B2
6871216 Miller et al. Mar 2005 B2
6901430 Smith Mar 2005 B1
6894601 Grunden et al. May 2005 B1
6917941 Wight et al. Jul 2005 B2
6922674 Nelson Jul 2005 B1
6941203 Chen Sep 2005 B2
6944677 Zhao Sep 2005 B1
6954731 Montague et al. Oct 2005 B1
6963854 Boyd et al. Nov 2005 B1
6965806 Eryurek et al. Nov 2005 B2
6965968 Touboul Nov 2005 B1
6978273 Bonneau et al. Dec 2005 B1
6981028 Rawat et al. Dec 2005 B1
6990629 Heaney et al. Jan 2006 B1
6993421 Pillar Jan 2006 B2
7000184 Matveyenko et al. Feb 2006 B2
7003476 Samra et al. Feb 2006 B1
7028072 Kliger et al. Apr 2006 B1
7031554 Iwane Apr 2006 B2
7039704 Davis et al. May 2006 B2
7047318 Svedloff May 2006 B1
7062343 Ogushi et al. Jun 2006 B2
7062506 Taylor et al. Jun 2006 B2
7072943 Landesmann Jul 2006 B2
7092803 Kapolka et al. Aug 2006 B2
7107268 Zawadzki et al. Sep 2006 B1
7124116 Huyler Oct 2006 B2
7152207 Underwood et al. Dec 2006 B1
7155491 Schultz et al. Dec 2006 B1
7171418 Blessin Jan 2007 B2
7184866 Squires et al. Feb 2007 B2
7197764 Cichowlas Mar 2007 B2
7219234 Ashland et al. May 2007 B1
7240125 Fleming Jul 2007 B2
7246263 Skingle Jul 2007 B2
7281029 Rawat Oct 2007 B2
7287000 Boyd et al. Oct 2007 B2
7322007 Schowtka et al. Jan 2008 B2
7386786 Davis et al. Jun 2008 B2
7401289 Lachhwani et al. Jul 2008 B2
7406429 Salonen Jul 2008 B2
7433891 Haber et al. Oct 2008 B2
7457693 Olsen et al. Nov 2008 B2
7477968 Lowrey Jan 2009 B1
7480551 Lowrey et al. Jan 2009 B1
7496543 Bamford et al. Feb 2009 B1
7502672 Kolls Mar 2009 B1
7536641 Rosenstein et al. May 2009 B2
7548985 Guigui Jun 2009 B2
7587504 Adams et al. Sep 2009 B2
7590476 Shumate Sep 2009 B2
7593925 Cadiz et al. Sep 2009 B2
7593999 Nathanson Sep 2009 B2
7613627 Doyle et al. Nov 2009 B2
7620484 Chen Nov 2009 B1
7624342 Matveyenko et al. Nov 2009 B2
7657594 Banga et al. Feb 2010 B2
7664667 Ruppelt et al. Feb 2010 B1
7739007 Logsdon Jun 2010 B2
7747680 Ravikumar et al. Jun 2010 B2
7778841 Bayer et al. Aug 2010 B1
7801945 Geddes et al. Sep 2010 B1
7818380 Tamura et al. Oct 2010 B2
7861309 Spearman et al. Dec 2010 B2
7865409 Monaghan Jan 2011 B1
7870253 Muilenburg et al. Jan 2011 B2
7899701 Odom Mar 2011 B1
7908051 Oesterling Mar 2011 B2
7979506 Cole Jul 2011 B2
8010423 Bodin et al. Aug 2011 B2
8019501 Breed Sep 2011 B2
8036788 Breed Oct 2011 B2
8051159 Muilenburg et al. Nov 2011 B2
8055544 Ullman et al. Nov 2011 B2
8060274 Boss et al. Nov 2011 B2
8095403 Price Jan 2012 B2
8099308 Uyeki Jan 2012 B2
8135804 Uyeki Mar 2012 B2
8145379 Schwinke Mar 2012 B2
8190322 Lin et al. May 2012 B2
8209259 Graham, Jr. et al. Jun 2012 B2
8212667 Petite et al. Jul 2012 B2
8271473 Berg Sep 2012 B2
8271547 Taylor et al. Sep 2012 B2
8275717 Ullman et al. Sep 2012 B2
8285439 Hodges Oct 2012 B2
8296007 Swaminathan et al. Oct 2012 B2
8311905 Campbell et al. Nov 2012 B1
8355950 Colson et al. Jan 2013 B2
8407664 Moosmann et al. Mar 2013 B2
8428815 Van Engelshoven et al. Apr 2013 B2
8438310 Muilenburg et al. May 2013 B2
8521654 Ford et al. Aug 2013 B2
8538894 Ullman et al. Sep 2013 B2
8645193 Swinson et al. Feb 2014 B2
8676638 Blair et al. Mar 2014 B1
8725341 Ogasawara May 2014 B2
8745641 Coker Jun 2014 B1
8849689 Jagannathan et al. Sep 2014 B1
8886389 Edwards et al. Nov 2014 B2
8924071 Stanek et al. Dec 2014 B2
8954222 Costantino Feb 2015 B2
8996230 Lorenz et al. Mar 2015 B2
8996235 Singh et al. Mar 2015 B2
9014908 Chen et al. Apr 2015 B2
9015059 Sims et al. Apr 2015 B2
9026304 Olsen, III et al. May 2015 B2
9047722 Kurnik et al. Jun 2015 B2
9165413 Jones et al. Oct 2015 B2
9183681 Fish Nov 2015 B2
9325650 Yalavarty et al. Apr 2016 B2
9349223 Palmer May 2016 B1
9384597 Koch et al. Jul 2016 B2
9577866 Rogers et al. Feb 2017 B2
9596287 Rybak et al. Mar 2017 B2
9619945 Adderly et al. Apr 2017 B2
9659495 Modica et al. May 2017 B2
9706008 Rajan et al. Jul 2017 B2
9715665 Schondorf et al. Jul 2017 B2
9754304 Taira et al. Sep 2017 B2
9778045 Bang Oct 2017 B2
9836714 Lander et al. Dec 2017 B2
10032139 Adderly et al. Jul 2018 B2
10083411 Kinsey et al. Sep 2018 B2
10229394 Davis et al. Mar 2019 B1
10475256 Chowdhury et al. Nov 2019 B2
20010005831 Lewin et al. Jun 2001 A1
20010014868 Herz et al. Aug 2001 A1
20010037332 Miller et al. Nov 2001 A1
20010039594 Park et al. Nov 2001 A1
20010054049 Maeda et al. Dec 2001 A1
20020023111 Arora et al. Feb 2002 A1
20020024537 Jones et al. Feb 2002 A1
20020026359 Long et al. Feb 2002 A1
20020032626 Dewolf et al. Mar 2002 A1
20020032701 Gao et al. Mar 2002 A1
20020042738 Srinivasan et al. Apr 2002 A1
20020046245 Hillar et al. Apr 2002 A1
20020049831 Platner et al. Apr 2002 A1
20020052778 Murphy et al. May 2002 A1
20020059260 Jas May 2002 A1
20020065698 Schick et al. May 2002 A1
20020065739 Florance et al. May 2002 A1
20020069110 Sonnenberg Jun 2002 A1
20020073080 Lipkin Jun 2002 A1
20020082978 Ghouri et al. Jun 2002 A1
20020091755 Narin Jul 2002 A1
20020107739 Schlee Aug 2002 A1
20020111727 Vanstory et al. Aug 2002 A1
20020111844 Vanstory et al. Aug 2002 A1
20020116418 Lachhwani et al. Aug 2002 A1
20020123359 Wei et al. Sep 2002 A1
20020124053 Adams et al. Sep 2002 A1
20020128728 Murakami et al. Sep 2002 A1
20020129054 Ferguson et al. Sep 2002 A1
20020133273 Lowrey et al. Sep 2002 A1
20020138331 Hosea et al. Sep 2002 A1
20020143646 Boyden et al. Oct 2002 A1
20020154146 Rodriquez et al. Oct 2002 A1
20020169851 Weathersby et al. Nov 2002 A1
20020173885 Lowrey et al. Nov 2002 A1
20020196273 Krause Dec 2002 A1
20020198761 Ryan et al. Dec 2002 A1
20020198878 Baxter et al. Dec 2002 A1
20030014443 Bernstein et al. Jan 2003 A1
20030023632 Ries et al. Jan 2003 A1
20030033378 Needham et al. Feb 2003 A1
20030036832 Kokes et al. Feb 2003 A1
20030036964 Boyden et al. Feb 2003 A1
20030037263 Kamat et al. Feb 2003 A1
20030046179 Anabtawi et al. Mar 2003 A1
20030051022 Sogabe et al. Mar 2003 A1
20030055666 Roddy et al. Mar 2003 A1
20030061263 Riddle Mar 2003 A1
20030065532 Takaoka Apr 2003 A1
20030065583 Takaoka Apr 2003 A1
20030069785 Lohse Apr 2003 A1
20030069790 Kane Apr 2003 A1
20030074392 Campbell et al. Apr 2003 A1
20030095038 Dix May 2003 A1
20030101262 Godwin May 2003 A1
20030115292 Griffin et al. Jun 2003 A1
20030120502 Robb et al. Jun 2003 A1
20030145310 Thames et al. Jul 2003 A1
20030177050 Crampton et al. Sep 2003 A1
20030177175 Worley et al. Sep 2003 A1
20030225853 Wang et al. Dec 2003 A1
20030229623 Chang et al. Dec 2003 A1
20030233246 Snapp et al. Dec 2003 A1
20040012631 Skorski Jan 2004 A1
20040039646 Hacker Feb 2004 A1
20040041818 White et al. Mar 2004 A1
20040073546 Forster et al. Apr 2004 A1
20040073564 Haber et al. Apr 2004 A1
20040088228 Mercer et al. May 2004 A1
20040093243 Bodin et al. May 2004 A1
20040117046 Colle et al. Jun 2004 A1
20040122735 Meshkin et al. Jun 2004 A1
20040128320 Grove et al. Jul 2004 A1
20040139203 Graham, Jr. et al. Jul 2004 A1
20040148342 Cotte Jul 2004 A1
20040156020 Edwards Aug 2004 A1
20040163047 Nagahara et al. Aug 2004 A1
20040181464 Vanker et al. Sep 2004 A1
20040199413 Hauser et al. Oct 2004 A1
20040220863 Porter et al. Nov 2004 A1
20040225664 Casement Nov 2004 A1
20040230897 Latzel Nov 2004 A1
20040255233 Croney et al. Dec 2004 A1
20040267263 May Dec 2004 A1
20040268225 Walsh et al. Dec 2004 A1
20040268232 Tunning Dec 2004 A1
20050015491 Koeppel Jan 2005 A1
20050021197 Zimmerman et al. Jan 2005 A1
20050027611 Wharton Feb 2005 A1
20050065804 Worsham et al. Mar 2005 A1
20050096963 Myr et al. May 2005 A1
20050108112 Ellenson et al. May 2005 A1
20050114270 Hind et al. May 2005 A1
20050114764 Gudenkauf et al. May 2005 A1
20050108637 Sahota et al. Jun 2005 A1
20050149398 McKay Jul 2005 A1
20050171836 Leacy Aug 2005 A1
20050176482 Raisinghani et al. Aug 2005 A1
20050187834 Painter et al. Aug 2005 A1
20050228736 Norman et al. Oct 2005 A1
20050267774 Merritt et al. Dec 2005 A1
20050268282 Laird Dec 2005 A1
20050289020 Bruns et al. Dec 2005 A1
20050289599 Matsuura et al. Dec 2005 A1
20060031811 Ernst et al. Feb 2006 A1
20060059253 Goodman et al. Mar 2006 A1
20060064637 Rechterman et al. Mar 2006 A1
20060123330 Horiuchi et al. Jun 2006 A1
20060129423 Sheinson et al. Jun 2006 A1
20060129982 Doyle Jun 2006 A1
20060136105 Larson Jun 2006 A1
20060161841 Horiuchi et al. Jul 2006 A1
20060200751 Underwood et al. Sep 2006 A1
20060248442 Rosenstein et al. Nov 2006 A1
20060265355 Taylor Nov 2006 A1
20060271844 Suklikar Nov 2006 A1
20060277588 Harrington et al. Dec 2006 A1
20070005446 Fusz et al. Jan 2007 A1
20070016486 Stone et al. Jan 2007 A1
20070027754 Collins et al. Feb 2007 A1
20070033087 Combs et al. Feb 2007 A1
20070033520 Kimzey et al. Feb 2007 A1
20070053513 Hoffberg Mar 2007 A1
20070100519 Engel May 2007 A1
20070150368 Arora et al. Jun 2007 A1
20070209011 Padmanabhuni et al. Sep 2007 A1
20070226540 Konieczny Sep 2007 A1
20070250229 Wu Oct 2007 A1
20070250327 Hedy Oct 2007 A1
20070250840 Coker Oct 2007 A1
20070271154 Broudy et al. Nov 2007 A1
20070271330 Mattox et al. Nov 2007 A1
20070271389 Joshi et al. Nov 2007 A1
20070282711 Ullman et al. Dec 2007 A1
20070282712 Ullman et al. Dec 2007 A1
20070282713 Ullman et al. Dec 2007 A1
20070288413 Mizuno et al. Dec 2007 A1
20070294192 Tellefsen Dec 2007 A1
20080010561 Bay et al. Jan 2008 A1
20080015929 Koeppel et al. Jan 2008 A1
20080027827 Eglen et al. Jan 2008 A1
20080119983 Inbarajan et al. May 2008 A1
20080172632 Stambaugh Jul 2008 A1
20080189143 Wurster Aug 2008 A1
20080195435 Bentley et al. Aug 2008 A1
20080195932 Oikawa et al. Aug 2008 A1
20080201163 Barker et al. Aug 2008 A1
20080255925 Vailaya et al. Oct 2008 A1
20090012887 Taub et al. Jan 2009 A1
20090024918 Silverbrook et al. Jan 2009 A1
20090043780 Hentrich, Jr. et al. Feb 2009 A1
20090070435 Abhyanker Mar 2009 A1
20090089134 Uyeki Apr 2009 A1
20090106036 Tamura et al. Apr 2009 A1
20090112687 Blair et al. Apr 2009 A1
20090182232 Zhang et al. Jul 2009 A1
20090187513 Noy et al. Jul 2009 A1
20090187939 Lajoie Jul 2009 A1
20090204454 Lagudi Aug 2009 A1
20090222532 Finlaw Sep 2009 A1
20090265607 Raz et al. Oct 2009 A1
20090313035 Esser et al. Dec 2009 A1
20100023393 Costy et al. Jan 2010 A1
20100070343 Taira et al. Mar 2010 A1
20100082778 Muilenburg et al. Apr 2010 A1
20100082780 Muilenburg et al. Apr 2010 A1
20100088158 Pollack Apr 2010 A1
20100100259 Geiter Apr 2010 A1
20100100506 Marot Apr 2010 A1
20100235219 Merrick et al. Sep 2010 A1
20100235231 Jewer Sep 2010 A1
20100293030 Wu Nov 2010 A1
20100312608 Shan et al. Dec 2010 A1
20100318408 Sankaran et al. Dec 2010 A1
20100324777 Tominaga et al. Dec 2010 A1
20110010432 Uyeki Jan 2011 A1
20110015989 Tidwell et al. Jan 2011 A1
20110022525 Swinson et al. Jan 2011 A1
20110082804 Swinson et al. Apr 2011 A1
20110145064 Anderson et al. Jun 2011 A1
20110161167 Jallapuram Jun 2011 A1
20110191264 Inghelbrecht et al. Aug 2011 A1
20110196762 Dupont Aug 2011 A1
20110224864 Gellatly et al. Sep 2011 A1
20110231055 Knight et al. Sep 2011 A1
20110288937 Manoogian, III Nov 2011 A1
20110307411 Bolivar et al. Dec 2011 A1
20120066010 Williams et al. Mar 2012 A1
20120089474 Xiao et al. Apr 2012 A1
20120095804 Calabrese et al. Apr 2012 A1
20120116868 Chin et al. May 2012 A1
20120158211 Chen et al. Jun 2012 A1
20120209714 Douglas et al. Aug 2012 A1
20120221125 Bell Aug 2012 A1
20120268294 Michaelis et al. Oct 2012 A1
20120278886 Luna Nov 2012 A1
20120284113 Pollak Nov 2012 A1
20120316981 Hoover et al. Dec 2012 A1
20130046432 Edwards et al. Feb 2013 A1
20130080196 Schroeder et al. Mar 2013 A1
20130080305 Virag et al. Mar 2013 A1
20130151334 Berkhin et al. Jun 2013 A1
20130204484 Ricci Aug 2013 A1
20130325541 Capriotti et al. Dec 2013 A1
20130332023 Bertosa et al. Dec 2013 A1
20140026037 Garb et al. Jan 2014 A1
20140052327 Hosein et al. Feb 2014 A1
20140088866 Knapp et al. Mar 2014 A1
20140094992 Lambert et al. Apr 2014 A1
20140136278 Carvalho May 2014 A1
20140229391 East et al. Aug 2014 A1
20140244110 Tharaldson et al. Aug 2014 A1
20140277906 Lowrey et al. Sep 2014 A1
20140278805 Thompson Sep 2014 A1
20140316825 Van Dijk et al. Oct 2014 A1
20140324275 Stanek et al. Oct 2014 A1
20140337163 Whisnant Nov 2014 A1
20140379530 Kim et al. Dec 2014 A1
20150057875 McGinnis et al. Feb 2015 A1
20150066781 Johnson et al. Mar 2015 A1
20150066933 Kolodziej et al. Mar 2015 A1
20150100199 Kurnik et al. Apr 2015 A1
20150142256 Jones May 2015 A1
20150227894 Mapes, Jr. et al. Aug 2015 A1
20150268059 Borghesani et al. Sep 2015 A1
20150286979 Ming et al. Oct 2015 A1
20160004516 Ivanov et al. Jan 2016 A1
20160071054 Kakarala et al. Mar 2016 A1
20160092944 Taylor et al. Mar 2016 A1
20160132935 Shen et al. May 2016 A1
20160140609 Demir May 2016 A1
20160140620 Pinkowish et al. May 2016 A1
20160140622 Wang et al. May 2016 A1
20160148439 Akselrod et al. May 2016 A1
20160180358 Battista Jun 2016 A1
20160180378 Toshida et al. Jun 2016 A1
20160180418 Jaeger Jun 2016 A1
20160267503 Zakai-Or et al. Sep 2016 A1
20160275533 Smith et al. Sep 2016 A1
20160307174 Marcelle et al. Oct 2016 A1
20160357599 Glatfelter Dec 2016 A1
20170039785 Richter et al. Feb 2017 A1
20170053460 Hauser et al. Feb 2017 A1
20170064038 Chen Mar 2017 A1
20170124525 Johnson et al. May 2017 A1
20170262894 Kirti et al. Sep 2017 A1
20170293894 Taliwal et al. Oct 2017 A1
20170308844 Kelley Oct 2017 A1
20170308864 Kelley Oct 2017 A1
20170308865 Kelley Oct 2017 A1
20170316459 Strauss et al. Nov 2017 A1
20170337573 Toprak Nov 2017 A1
20170352054 Ma et al. Dec 2017 A1
20180225710 Kar et al. Aug 2018 A1
20180232749 Moore, Jr. et al. Aug 2018 A1
20180285901 Zackrone Oct 2018 A1
20180285925 Zackrone Oct 2018 A1
20190297162 Amar et al. Sep 2019 A1
20190334884 Ross Oct 2019 A1
20200038363 Kim Feb 2020 A1
Foreign Referenced Citations (2)
Number Date Country
2494350 May 2004 CA
0461888 Mar 1995 EP
Non-Patent Literature Citations (177)
Entry
Clemens Grelck, A Multithreaded Compiler Backend for High-Level Array Programming. (Year: 2003).
Bo Hu1, A Platform based Distributed Service Framework for Large-scale Cloud Ecosystem Development. (Year: 2015).
Open Bank Project , https://www.openbankproject.com/, retrieved Nov. 23, 2020, 10 pages.
Standards for Technology in Auto , https://www.starstandard.org/, retrieved Nov. 23, 2020, 4 pages.
U.S. Appl. No. 10/665,899, et al., Non-Final Office Action ,dated Aug. 30, 2010 ,23 pages.
U.S. Appl. No. 10/665,899, et al., Final Office Action ,dated Feb. 24, 2010 ,22 pages.
U.S. Appl. No. 10/665,899, et al., Final Office Action ,dated Jul. 7, 2008 ,11 pages.
U.S. Appl. No. 10/665,899, et al., Final Office Action ,dated Mar. 8, 2011 ,21 pages.
U.S. Appl. No. 10/665,899, et al., Final Office Action ,dated May 11, 2009 ,14 pages.
U.S. Appl. No. 10/665,899, et al., Non-Final Office Action ,dated Nov. 13, 2008 ,11 pages.
U.S. Appl. No. 10/665,899, et al., Non-Final Office Action ,dated Sep. 14, 2009 ,14 pages.
U.S. Appl. No. 10/665,899, et al., Non-Final Office Action ,dated Sep. 17, 2007 ,11 pages.
Anonymous, “Software ready for prime time”, Automotive News. Detroit, vol. 76, Issue 5996, Nov. 5, 2001, 28 pages.
U.S. Appl. No. 11/149,909, et al., Final Office Action ,dated Feb. 4, 2009 ,14 pages.
U.S. Appl. No. 11/149,909, et al., Non-Final Office Action ,dated May 13, 2008 ,14 pages.
U.S. Appl. No. 11/149,909, et al., Non-Final Office Action ,dated May 6, 2009 ,6 pages.
U.S. Appl. No. 11/149,909, et al., Notice of Allowance ,dated Sep. 16, 2009 ,7 pages.
U.S. Appl. No. 11/414,939, et al., Non-Final Office Action ,dated Jul. 19, 2010 ,7 pages.
U.S. Appl. No. 11/414,939, et al., Non-Final Office Action ,dated Mar. 9, 2010 ,11 pages.
U.S. Appl. No. 11/414,939, et al., Notice of Allowance ,dated Nov. 2, 2010.
U.S. Appl. No. 11/442,821, et al., Final Office Action ,dated Apr. 7, 2009 ,19 pages.
U.S. Appl. No. 11/442,821, et al., Notice of Allowance ,dated Jul. 30, 2012 ,6 pages.
U.S. Appl. No. 11/442,821, et al., Non-Final Office Action ,dated Jun. 1, 2011 ,23 pages.
U.S. Appl. No. 11/442,821, et al., Final Office Action ,dated May 21, 2010 ,28 pages.
U.S. Appl. No. 11/442,821, et al., Non-Final Office Action ,dated Nov. 12, 2009 ,19 pages.
U.S. Appl. No. 11/442,821, et al., Final Office Action ,dated Nov. 29, 2011 ,26 pages.
U.S. Appl. No. 11/442,821, et al., Non-Final Office Action ,dated Sep. 3, 2008 ,14 pages.
U.S. Appl. No. 11/446,011, et al., Notice of Allowance ,dated Aug. 9, 2011 ,10 pages.
U.S. Appl. No. 11/446,011, et al., Final Office Action ,dated Jun. 8, 2010 ,12 pages.
U.S. Appl. No. 11/446,011, et al., Non-Final Office Action ,dated Mar. 1, 2011 ,15 pages.
U.S. Appl. No. 11/446,011, et al., Non-Final Office Action ,dated Nov. 27, 2009 ,14 pages.
U.S. Appl. No. 12/243,861, Notice of Allowance, dated Sep. 6, 2011, 10 pages.
Interconnection, In Roget's II The New Thesaurus. Boston, MA: Houghton Mifflin .credoreference.com/entry/hmrogets/interconnection, 1 page, 2003 Retrieved.
U.S. Appl. No. 11/524,602, et al., Notice of Allowance ,dated Aug. 6, 2013 ,22 pages.
U.S. Appl. No. 11/524,602, et al., Non-Final Office Action ,dated Dec. 11, 2009 ,20 pages.
U.S. Appl. No. 11/524,602, et al., Final Office Action ,dated Jul. 27, 2010 ,13 pages.
U.S. Appl. No. 11/524,602, et al., Final Office Action ,dated Jun. 26, 2012 ,11 pages.
U.S. Appl. No. 11/524,602, et al., Non-Final Office Action ,dated Nov. 14, 2011 ,19 pages.
U.S. Appl. No. 11/525,009, et al., Non-Final Office Action ,dated Aug. 10, 2011 ,18 pages.
U.S. Appl. No. 11/525,009, et al., Final Office Action ,dated Aug. 3, 2010 ,16 pages.
U.S. Appl. No. 11/525,009, et al., Non-Final Office Action ,dated Dec. 16, 2009 ,20 pages.
U.S. Appl. No. 11/525,009, et al., Notice of Allowance ,dated Jul. 23, 2012 ,19 pages.
U.S. Appl. No. 12/243,852, et al., Restriction Requirement ,dated Dec. 7, 2010.
U.S. Appl. No. 12/243,852, et al., Notice of Allowance ,dated Feb. 27, 2013 ,6 pages.
U.S. Appl. No. 12/243,852, et al., Non-Final Office Action ,dated Jan. 16, 2013 ,5 pages.
U.S. Appl. No. 12/243,852, et al., Non-Final Office Action ,dated Mar. 17, 2011 ,8 pages.
U.S. Appl. No. 12/243,852, et al., Supplemental Notice of Allowability ,dated Mar. 19, 2013 ,3 pages.
U.S. Appl. No. 12/243,852, et al., Final Office Action ,dated Oct. 24, 2011 ,13 pages.
U.S. Appl. No. 12/243,855, et al., Notice of Allowance ,dated Nov. 22, 2010 ,10 pages.
U.S. Appl. No. 12/243,855, et al., Non-Final Office Action ,dated Oct. 14, 2010 ,6 pages.
U.S. Appl. No. 12/243,855, et al., Notice of Allowance ,dated Oct. 28, 2010 ,5 pages.
U.S. Appl. No. 12/243,861, et al., Final Office Action ,dated Jun. 22, 2011 ,5 pages.
U.S. Appl. No. 12/243,861, et al., Non-Final Office Action ,dated Nov. 8, 2010 ,8 pgs.
U.S. Appl. No. 14/208,042, et al., Notice of Allowance ,dated May 6, 2021 ,13 pages.
U.S. Appl. No. 15/478,042, et al., Final Office Action ,dated May 5, 2021 ,38 pages.
U.S. Appl. No. 15/478,048, et al., Non-Final Office Action ,dated Mar. 8, 2021 ,69 pages.
U.S. Appl. No. 16/041,552, et al., Final Office Action ,dated Apr. 27, 2021 ,23 pages.
Johns,Pamela et al.,“Competitive intelligence in service marketing, Marketing Intelligence & Planning”, vol. 28, No. 5 ,2010 ,pp. 551-570.
http://web.archive.org/web/20010718130244/http://chromedata.com/maing2/about/index.asp, 1 pg.
http://web.archive.org/web/20050305055408/http://www.dealerclick.com/, 1 pg.
http://web.archive.org/web/20050528073821/http://www.kbb.com/, 1 pg.
http://web.archive.org/web/20050531000823/http://www.carfax.com/, 1 pg.
Internet Archive Dan Gillmor Sep. 1, 1996.
Internet Archive Wayback Machine, archive of LDAP Browser.com—FAQ. Archived Dec. 11, 2000. Available at <http://web.archive.org/web/200012110152/http://www.ldapbrowser.com/faq/faq.php3?sID=fe4ae66f023d86909f35e974f3a1ce>.
Internet Archive Wayback Machine, archive of LDAP Browser.com—Product Info. Archived Dec. 11, 2000. Available at <http://web.archive.org/web/200012110541/.ldapbrowser.com/prodinfo/prodinfo.php3?sID=fe4ae66f2fo23d86909f35e974f3a1ce>.
Internet Archive: Audio Archive, archive.org/audio/audio-searchresults.php?search=@start=0&limit=100&sort=ad, printed May 12, 2004, 12 pgs.
Internet Archive: Democracy Now, archive.org/audio/collection.php?collection=democracy_now, printed May 12, 2004, 2 pgs.
Java 2 Platform, Enterprise Edition (J2EE) Overview, printed Mar. 6, 2010, 3 pgs.
Java version history—Wikipedia, the free encyclopedia, printed Mar. 6, 2010, 9 pgs.
Permissions in the Java™ 2 SDK, printed Mar. 6, 2010, 45 pgs.
Trademark Application, Serial No. 76375405. 13 pages of advertising material and other application papers enclosed. Available from Trademark Document Retrieval system at.
Trademark Electronic Search System record for Serial No. 76375405, Word Mark “NITRA”.
An Appointment with Destiny—The Time for Web-Enabled Scheduling has Arrived, Link Fall ,2007 ,2 pages.
How a Solution found a Problem of Scheduling Service Appointments, Automotive News ,2016 ,4 pages.
IBM Tivoli Access Manager Base Administration Guide, Version 5.1. International Business Machines Corporation. Entire book enclosed and cited. ,2003 ,402 pgs.
NetFormx Offers Advanced Network Discovery Software, PR Newswire. Retrieved from highbeam.com/doc/1G1-54102907.html>. ,Mar. 15, 1999
Openbay Announces First-of-its-Kind Connected Car Repair Service, openbay.com ,Mar. 31, 2015 ,14 pages.
Service Advisor, Automotive Dealership Institute ,2007 ,26 pages.
xTime.com Web Pages, ,Jan. 8, 2015 ,1 page.
XTimes Newsletter, vol. 7 ,2013 ,4 pages.
U.S. Appl. No. 10/350,795, et al., Non-Final Office Action ,dated Dec. 26, 2008 ,13 pages.
U.S. Appl. No. 10/350,795, et al., Non-Final Office Action ,dated Feb. 6, 2006 ,11 pages.
U.S. Appl. No. 10/350,795, et al., Non-Final Office Action ,dated Jul. 22, 2009 ,22 pages.
U.S. Appl. No. 10/350,795, et al., Final Office Action ,dated Jul. 6, 2011 ,26 pages.
U.S. Appl. No. 10/350,795, et al., Non-Final Office Action ,dated Jun. 29, 2006 ,11 pages.
U.S. Appl. No. 10/350,795, et al., Non-Final Office Action ,dated Mar. 12, 2007 ,10 pages.
U.S. Appl. No. 10/350,795, et al., Final Office Action ,dated Mar. 3, 2010 ,24 pages.
U.S. Appl. No. 10/350,795, et al., Non-Final Office Action ,dated May 29, 2008 ,10 pages.
U.S. Appl. No. 10/350,795, et al., Notice of Allowance ,dated May 7, 2012 ,15 pages.
U.S. Appl. No. 10/350,795, et al., Non-Final Office Action ,dated Nov. 1, 2010 ,19 pages.
U.S. Appl. No. 10/350,796, et al., Notice of Allowance ,dated Feb. 1, 2006 ,5 pages.
U.S. Appl. No. 10/350,796, et al., Non-Final Office Action ,dated May 19, 2005 ,7 pages.
U.S. Appl. No. 10/350,810, et al., Notice of Allowance ,dated Apr. 14, 2008 ,6 pages.
U.S. Appl. No. 10/350,810, et al., Non-Final Office Action ,dated Apr. 17, 2007 ,12 pages.
U.S. Appl. No. 10/350,810, et al., Final Office Action ,dated Apr. 5, 2005 ,12 pages.
U.S. Appl. No. 10/350,810, et al., Notice of Non-compliant Amendment ,dated Dec. 12, 2006.
U.S. Appl. No. 10/350,810, et al., Non-Final Office Action ,dated Dec. 9, 2005 ,14 pages.
U.S. Appl. No. 10/350,810, et al., Final Office Action ,dated May 18, 2006 ,15 pages.
U.S. Appl. No. 10/350,810, et al., Final Office Action ,dated Nov. 14, 2007 ,13 pages.
U.S. Appl. No. 10/350,810, et al., Non-Final Office Action ,dated Sep. 22, 2004 ,10 pages.
U.S. Appl. No. 10/351,465, et al., Non-Final Office Action ,dated Jul. 27, 2004 ,9 pages.
U.S. Appl. No. 10/351,465, et al., Final Office Action ,dated May 5, 2005 ,8 pages.
U.S. Appl. No. 10/351,465, et al., Notice of Allowance ,dated Sep. 21, 2005 ,4 pages.
U.S. Appl. No. 10/351,606, et al., Notice of Allowance ,dated Apr. 4, 2006 ,12 pages.
U.S. Appl. No. 10/351,606, et al., Non-final Office Action ,dated Dec. 19, 2005 ,7 pages.
U.S. Appl. No. 10/351,606, et al., Non-final Office Action ,dated May 17, 2004 ,5 pages.
U.S. Appl. No. 10/351,606, et al., Non-Final Office Action ,dated May 17, 2004 ,6 pages.
U.S. Appl. No. 13/025,019, et al., Non-Final Office Action ,dated Apr. 22, 2016 ,16 pages.
U.S. Appl. No. 13/025,019, et al., Non-Final Office Action ,dated Apr. 5, 2013 ,15 pages.
U.S. Appl. No. 13/025,019, et al., Final Office Action ,dated Aug. 28, 2015 ,25 pages.
U.S. Appl. No. 16/041,552, Non-Final Office Action, dated Sep. 17, 2020, 16 pages.
U.S. Appl. No. 13/025,019, et al., Final Office Action ,dated Jul. 13, 2018 ,11 pages.
U.S. Appl. No. 13/025,019, et al., Non-Final Office Action ,dated Oct. 6, 2017 ,17 pages.
U.S. Appl. No. 13/025,019, et al., Final Office Action ,dated Sep. 12, 2013 ,13 pages.
U.S. Appl. No. 13/025,019, et al., Non-Final Office Action ,dated Sep. 18, 2014 ,15 pages.
U.S. Appl. No. 13/025,019, et al., Notice of Allowance ,dated Sep. 26, 2019 ,9 pages.
Openbay.com web pages, Openbay.com, retrieved from archive.org on May 14, 2019, 2 pages.
Openbay.com Web Pages, Openbay.com, retrieved from archive.org, May 14, 2019, 11 pages.
Openbay.com Web Pages, Openbay.com, retrieved from archive.org May 14, 2019, 6 pages.
PubNub Staff, Streaming Vehicle Data in Realtime with Automatic (Pt 1), Pubnub.com, Aug. 17, 2015, 13 pages.
CNY Business Journal, Frank La Voila named Southern Tier Small-Business Person of 1999, Jun. 11, 1999, 2 pages.
Needham, Charlie, “Google Now Taking Appointments for Auto Repair Shops”, Autoshopsolutions.com, Aug. 25, 2015, 6 pages.
U.S. Appl. No. 14/208,042, et al., Final Office Action ,dated Apr. 16, 2018.
U.S. Appl. No. 14/208,042, et al., Non-Final Office Action ,dated Aug. 21, 2020 ,13 pages.
U.S. Appl. No. 14/208,042, et al., Final Office Action ,dated Dec. 6, 2016 ,26 pages.
U.S. Appl. No. 14/208,042, et al., Final Office Action ,dated Jan. 11, 2019 ,16 pages.
U.S. Appl. No. 14/208,042, et al., Advisory Action ,dated Jul. 12, 2018.
U.S. Appl. No. 14/208,042, et al., Non-Final Office Action ,dated Jun. 30, 2016 ,23 pages.
U.S. Appl. No. 14/208,042, et al., Non-Final Office Action ,dated Sep. 20, 2017.
U.S. Appl. No. 14/208,042, et al., Non-Final Office Action ,dated Sep. 21, 2018.
U.S. Appl. No. 15/134,779, et al., Final Office Action ,dated Feb. 27, 2020 ,18 pages.
U.S. Appl. No. 15/134,779, et al., Non-Final Office Action ,dated Jan. 30, 2019 ,26 pages.
U.S. Appl. No. 15/134,779, et al., Advisory Action ,dated Jul. 29, 2019 ,6 pages.
U.S. Appl. No. 15/134,779, et al., Final Office Action ,dated May 17, 2019 ,25 pages.
U.S. Appl. No. 15/134,779, et al., Non-Final Office Action ,dated Nov. 19, 2019 ,27 pages.
U.S. Appl. No. 15/134,779, et al., Notice of Allowance ,dated Sep. 9, 2020 ,12 pages.
U.S. Appl. No. 15/134,793, et al., Non-Final Office Action ,dated Jan. 30, 2019 ,26 pages.
U.S. Appl. No. 15/134,793, et al., Advisory Action ,dated Jul. 29, 2019 ,6 pages.
U.S. Appl. No. 15/134,793, et al., Final Office Action ,dated Mar. 27, 2020 ,22 pages.
U.S. Appl. No. 15/134,793, et al., Final Office Action ,dated May 13, 2019 ,26 pages.
U.S. Appl. No. 15/134,793, et al., Non-Final Office Action ,dated Nov. 19, 2019 ,31 pages.
U.S. Appl. No. 15/134,793, et al., Notice of Allowance ,dated Nov. 2, 2020 ,13 pages.
U.S. Appl. No. 15/134,820, et al., Non-Final Office Action ,dated Feb. 23, 2018.
U.S. Appl. No. 15/134,820, et al., Notice of Allowance ,dated Jan. 28, 2019 ,7 pages.
U.S. Appl. No. 15/134,820, et al., Final Office Action ,dated Sep. 21, 2018.
U.S. Appl. No. 15/478,042, et al., Non-Final Office Action ,dated Aug. 4, 2020 ,42 pages.
U.S. Appl. No. 15/478,042, et al., Final Office Action ,dated Mar. 19, 2020 ,35 pages.
U.S. Appl. No. 15/478,042, et al., Non-Final Office Action ,dated Oct. 10, 2019 ,26 pages.
U.S. Appl. No. 15/478,048, et al., Final Office Action ,dated Apr. 9, 2020 ,42 pages.
U.S. Appl. No. 15/478,048, et al., Non-Final Office Action ,dated Sep. 30, 2019 ,30 pages.
U.S. Appl. No. 15/602,999, et al., Notice of Allowance ,dated Apr. 18, 2019 ,6 pages.
U.S. Appl. No. 15/602,999, et al., Advisory Action ,dated Jan. 31, 2019 ,3 pages.
U.S. Appl. No. 15/602,999, et al., Non-Final Office Action ,dated May 3, 2018.
U.S. Appl. No. 15/602,999, et al., Final Office Action ,dated Nov. 21, 2018.
U.S. Appl. No. 16/041,552, et al., Non-Final Office Action ,dated Dec. 27, 2019 ,13 pages.
U.S. Appl. No. 16/041,552, et al., Final Office Action ,dated May 29, 2020 ,18 pages.
Aloisio,Giovanni et al.,Web-based access to the Grid using the Grid Resource Broker portal, Google ,2002 , pp. 1145-1160.
Bedell,Doug et al., Dallas Morning News, “I Know Someone Who Knows Kevin Bacon”. Oct. 27, 1998. 4 pgs.
Chadwick,D.W. et al., Understanding X.500—The Directory, Available at <http://sec.cs.kent.ac.uk/x500book/>. Entire work cited. ,1996.
Chatterjee,Pallab et al.,On-board diagnostics not just for racing anymore, EDN.com ,May 6, 2013 ,7 pages.
Chen,Deren et al., Business to Business Standard and Supply Chain System Framework in Virtual Enterprises, Computer Supported Cooperative Work in Design, The Sixth International Conference on 2001 ,pp. 472-476.
Croswell,Wayne et al., Service Shop Optimiztion, Modern Tire Retailer ,May 21, 2013 ,7 pages.
Davis,Peter T. et al., Sams Teach Yourself Microsoft Windows NT Server 4 in 21 Days, Sams® Publishing, ISBN: 0-672-31555-6 ,1999, printed Dec. 21, 2008 ,15 pages.
Derfler,Frank J. et al., How Networks Work: Millennium Edition, Que, A Division of Macmillan Computer Publishing, ISBN: 0-7897-2445-6 ,2000 ,9 pages.
Drawbaugh,Ben et al.,Automatic Link Review: an expensive way to learn better driving habits, Endgadget.com , Nov. 26, 2013 ,14 pages.
Emmanuel,Daniel et al.,Basics to Creating an Appointment System for Automotive Service Customers, Automotiveservicemanagement.com ,2006 ,9 pages.
Hogue, et al.,Thresher: Automating the Unwrapping of Semantic Content from the World Wide Web, ACM ,2005 , pp. 86-95.
Housel,Barron C. et al.,WebExpress: A client/intercept based system for optimizing Web browsing in a wireless environment, Google ,1998 ,pp. 419-431.
Jenkins,Will et al.,Real-time vehicle performance monitoring with data intergrity, A Thesis Submitted to the Faculty of Mississippi State University ,Oct. 2006 ,57 pages.
Lavrinc,Damon et al.,First Android-powered infotainment system coming to 2012 Saab 9-3, Autoblog.com ,Mar. 2, 2011 ,8 pages.
Lee,Adam J. et al.,Searching for Open Windows and Unlocked Doors: Port Scanning in Large-Scale Commodity Clusters, Cluster Computing and the Grid, 2005. IEEE International Symposium on vol. 1 ,2005 ,pp. 146-151.
Michener,J.R. et al.,Managing System and Active-Content Integrity, Computer; vol. 33, Issue: 7 ,2000 ,pp. 108-110.
Milic-Frayling,Natasa et al.,SmartView: Enhanced Document Viewer for Mobile Devices, Google ,Nov. 15, 2002 ,11 pages.
Phelan,Mark et al.,Smart phone app aims to automate car repairs, Detroit Free Press Auto Critic ,Mar. 31, 2015 ,2 pages.
Strebe,Matthew et al., MCSE: NT Server 4 Study Guide, Third Edition. SYBEX Inc. Front matter ,2000 ,pp. 284-293, and 308-347.
Warren,Tamara et al.,This Device Determines What Ails Your Car and Finds a Repair Shop—Automatically, CarAndDriver.com ,Apr. 8, 2015 ,7 pages.
You,Song et al.,Overview of Remote Diagnosis and Maintenance for Automotive Systems, 2005 SAE World Congress ,Apr. 11-14, 2015 ,10 pages.