Detailed Description
The present application will be described in further detail with reference to the following drawings and examples. It is to be understood that the specific embodiments described herein are merely illustrative of the application and are not limiting of the application. It should be further noted that, for the convenience of description, only some of the structures related to the present application are shown in the drawings, not all of the structures.
Fig. 1 is a flowchart of a data transmission method according to an embodiment of the present application. The data transmission method provided by the embodiment of the application can be suitable for the situation of transmitting data. Typically, the embodiment of the present application is suitable for the case of data transmission in the decoding and splicing controller cascaded by the switches. A network schematic of a decode splice controller host is shown in fig. 2. The 98DX336S is an exchanger, or an exchanger of other types, and the exchanger only needs to have a TCAM function. The CPU1 is the primary processor and the CPU2 may be used for back-up purposes, not limited to having to configure the CPU 2. The other chips are slave processors. The switch chip is used as a switching core and is managed through PCIE. The method may be specifically performed by a data transmission apparatus, which may be implemented by software and/or hardware, and the apparatus may be integrated in an electronic device, such as a switch device, capable of implementing the data transmission method. Referring to fig. 1, the method of the embodiment of the present application specifically includes:
s110, determining a target virtual local area network to which the target message belongs according to a matching result of the target message and a preset matching rule.
The target packet may include a negotiation packet or a data stream packet, where the negotiation packet is used to negotiate service data between a sending end and a receiving end, and the data stream packet may be an actual data stream. For example, in a scene where video data is displayed on a display screen, the negotiation packet may be negotiation data such as a transmission address and a transmission mode of the video data sent to the decoding and splicing controller by the image collector, and the data stream packet may be specific video data. The preset matching rule may be a rule for fast lookup of an access control list, a routing table, etc., such as a TCAM table matching rule. The preset matching rule may be set according to actual conditions, and specifies a rule to be followed by the sending of the packet, for example, in which virtual local area network, to which physical port the packet is sent. The virtual local area network can divide the physical ports and the IP addresses of the switch according to actual conditions. In the same virtual local area network, the message can be forwarded through the MAC address table.
Illustratively, as shown in fig. 3, the target message may be message 1, message 2, message 3, or message 4. The messages 1 and 2 are negotiation messages for direct communication between the external device and the master processor, and the messages 3 and 4 are data flow messages sent between the external device and the slave processor. And when the target message enters the switch from the physical port of the switch, matching the target message with a preset matching rule, and determining a target virtual local area network to which the target message belongs according to a matching result so as to forward the target message through the target virtual local area network. The scheme realizes network address conversion through the matching of the preset matching rules and the determination of the target virtual local area network, and can realize the external and internal forwarding of the message through an external public network IP address.
S120, determining a target physical port from the candidate physical ports in the target virtual local area network. Wherein the candidate physical port is a physical port of the switch.
For example, the candidate physical ports in the target vlan may be physical ports classified as belonging to the target vlan. For example, in fig. 3, port a, port B, port C, and port D are physical ports of the switch, and may be candidate physical ports. If the port a and the port B are divided into the first virtual local area network, the port a and the port B are candidate physical ports of the first virtual local area network. And dividing the port C and the port D into a second virtual local area network, wherein the port C and the port D are candidate physical ports of the second virtual local area network. In this embodiment of the present application, in the same target virtual local area network, a target physical port may be determined from candidate physical ports, so as to forward a target packet through the target physical port. For example, determining the target physical port from the candidate physical ports may be configured according to actual conditions, or may be determined according to a MAC address table. The MAC address table stores addresses that identify the device that sent the data and the device that received the data when transmitting the data.
In the embodiment of the application, in the candidate physical ports in the same target virtual local area network, the target physical port is determined so as to facilitate the forwarding of the target message, thereby realizing the ordered management and sending of the target message.
S130, the target message is forwarded through the target physical port.
Illustratively, the switch forwards the target packet through the target physical port. For example, as shown in fig. 3, if the determined target physical port is port B for target packet 1, the switch sends target packet 1 from port B to CN 7130. If the determined target physical port is the port C for the target packet 3, the switch sends the target packet 3 from the port C to the CN 7130.
In the embodiment of the application, a target virtual local area network to which a target message belongs is determined according to a matching result of the target message and a preset matching rule; determining a target physical port from candidate physical ports in a target virtual local area network; and forwarding the target message through the target physical port. According to the scheme, the conversion of the internal address and the external address is realized through the preset matching rule and the attribute of the virtual local area network, the limitation on the number of the external public network IPs is reduced, the problem that a plurality of processors need to be configured with a plurality of external public network IPs is solved, and therefore network resources are saved.
Fig. 4 is a flowchart of a data transmission method according to another embodiment of the present application. For further optimization of the embodiments, details which are not described in detail in the embodiments of the present application are described in the embodiments. Referring to fig. 4, a data transmission method provided in an embodiment of the present application may include:
and S210, respectively allocating a first IP address and a second IP address to the master processor and the slave processor, wherein the first IP addresses of the master processor and the slave processor are the same and are used for communicating with external equipment, and the second IP addresses of the master processor and the slave processor are different and are used for communicating between the master processor and the slave processor.
Illustratively, the master processor and the slave processor are respectively allocated with two IP addresses, namely a first IP address and a second IP address, the first IP address is used for communicating to the outside, and the first IP addresses used by the master processor and the slave processor for communicating to the outside are the same, such as IP 1. The second IP address is used for communication between the master processor and the slave processor, and the respective second IP addresses of the master processor and the slave processor are different, for example, the second IP address of the master processor is IP2, and the second IP address of the slave processor is IP3, IP4, etc., as shown in fig. 3.
S220, dividing a first IP address and a candidate physical port corresponding to the main processor and a candidate physical port communicated with external equipment into a first virtual local area network, and dividing a second IP address and a candidate physical port corresponding to the main processor and a candidate physical port corresponding to the auxiliary processor into a second virtual local area network.
For example, in order to forward the target packet in a targeted manner and reduce the requirement on external IP, different virtual local area networks may be divided to implement flexible and ordered transmission of the target packet through different virtual local area networks. For example, as shown in fig. 3, a first IP address, i.e., IP1, port B, corresponding to the master processor, and port a for communicating with the external device are divided into a first virtual local area network, and a second IP address, i.e., IP2, port B, port C and port D, corresponding to the master processor, are divided into a second virtual local area network. Since the port B is divided into the first vlan and the second vlan, the port B needs to be set in trunk mode to implement its functions in the two vlans. The port a, the port C and the port D are set to access mode to realize their functions in one virtual local area network.
S230, if the preset matching rule comprises a target matching rule corresponding to the destination address information or the source address information of the target message, modifying the default virtual local area network identifier of the target message into a target virtual local area network identifier based on the target matching rule.
For example, specific rules to be followed by forwarding are formulated in the preset matching rules for the target packet of which the forwarding path needs to be determined through the matching rules, and for the target packet which can be sequentially forwarded according to the current virtual local area network, corresponding specific rules do not need to be formulated in the preset matching rules. For example, if the switch physical port corresponding to the destination address of the target packet and the switch physical port receiving the target packet belong to the same virtual local area network, the corresponding matching rule may not be set in the preset matching rule. If the switch physical port corresponding to the destination address of the target message transmission and the switch physical port receiving the target message do not belong to the same virtual local area network, a target matching rule in the matching rule needs to be preset, the transmission rule of the target message is determined, and the target message is orderly forwarded. Whether a preset matching rule needs to be determined for the target packet may also be determined according to the source address of the target packet, for example, if the source address is an external IP, it may be determined that the target packet needs to be sent to an external device, so a target virtual local area network, a target physical port, and the like on which the target packet is forwarded may be specified in the preset matching rule. Therefore, after the target message is received, if the preset matching rule includes the target matching rule corresponding to the destination address information or the source address information of the target message, based on the target matching rule, the default virtual local area network identifier marked when the target message enters the switch is modified into the target virtual local area network identifier, so that the target message is forwarded based on the target virtual local area network.
S240, if the preset matching rule does not include the target matching rule corresponding to the destination address information or the source address information of the target message, the default virtual local area network identification of the target message is not modified.
For example, for a target packet that can be forwarded through the same vlan, a corresponding preset matching rule may not be set, and for the target packet, the preset matching rule does not include the corresponding target matching rule, and the target packet does not need to be modified from the default vlan id, so that the target packet is forwarded in the vlan to which the physical port of the switch belongs.
In this embodiment of the present application, if the preset matching rule includes a target matching rule corresponding to target address information or source address information of the target packet, before modifying the default vlan id of the target packet to a target vlan id based on the target matching rule, the method further includes: if the target message is accessed from a candidate physical port corresponding to external equipment, setting a default virtual local area network identifier of the target message as a first virtual local area network identifier; correspondingly, if the preset matching rule includes a target matching rule corresponding to the target address information or the source address information of the target packet, modifying the default virtual local area network identifier of the target packet to a target virtual local area network identifier based on the target matching rule, including: if the target logic port of the target message is the flow receiving logic port of the slave processor, acquiring a target matching rule corresponding to the target logic port from the preset matching rule; modifying the first virtual local area network identification of the target message into a second virtual local area network identification based on the target matching rule; if the preset matching rule does not include the target matching rule corresponding to the target address information or the source address information of the target message, the default virtual local area network identifier of the target message is not modified, and the method comprises the following steps: if the target logic port of the target message is the stream receiving logic port of the main processor, and the preset matching rule does not include the target matching rule corresponding to the target logic port, the default virtual local area network identification of the target message is not modified.
For example, as shown in fig. 3, for the target packet 3, if it is determined that the target packet 3 needs to be forwarded to the DSP1 according to the destination logical port, the target packet 3 is labeled with the first virtual local area network identifier when entering the switch from the port a. And matching the target message 3 with a preset matching rule, wherein a target logic port of the target message 3 corresponds to the slave processor DSP1, and a physical port of the switch, which is in communication with the slave processor, is a port slave and belongs to a second virtual local area network, so that according to the preset matching rule, a first virtual local area network identifier marked by the target message is required to be modified into a second virtual local area network identifier, and a port C used for forwarding the target message 3 on the switch is determined as a target physical port, so that the target message 3 is sent to the slave processor through the port C.
Illustratively, for the target message 1, when the target message 1 enters the switch from the port a, the first vlan id is labeled as a default vlan id, it is determined that the target message 1 needs to be sent to the main processor CN7130 according to the destination logical port, and the port B of the switch connected to the main processor also belongs to the first vlan, so that the default vlan id does not need to be modified according to a preset matching rule, and the target message 1 is directly forwarded in the first vlan. For the target message 2, when the target message 2 enters the switch from the port B, the first vlan id is marked as a default vlan id, and it is determined that the target message 2 needs to be sent to the external device according to the destination logical port and needs to be sent from the port a, where the port a belongs to the first vlan, so that the default vlan id does not need to be modified and is directly forwarded in the first vlan.
If the preset matching rule includes a target matching rule corresponding to the target address information or the source address information of the target message, modifying the default virtual local area network identifier of the target message into a target virtual local area network identifier based on the target matching rule, including: if the source IP address of the target message is the first IP address, acquiring a target matching rule from the preset matching rule; and setting the default virtual local area network identification as a first virtual local area network identification based on the target matching rule.
Illustratively, for the target message 4, when the target message 4 enters the switch from the port D, the second vlan id is marked as the default vlan id, and since it is determined that the target message 4 needs to be sent to the external device according to the destination logical port, the default vlan id needs to be modified into the first vlan id according to the preset matching rule. In this embodiment, the DSP2 cannot obtain destination Address information from a local ARP (Address Resolution Protocol) message, and therefore the main processor needs to synchronize the ARP to the slave processor, so as to determine the destination Address information of the destination message according to the ARP, determine a processor to send the destination message according to a destination logical port in the destination Address information, and further determine a port a of a switch connected to the processor as a target physical port, so that the destination message is sent to the port a through the first virtual local area network and then sent to the external device.
And for the target message 2, sending the target message from the port B to the switch, and marking the first virtual local area network identification as a default virtual local area network identification. Because the target physical port a is determined to be sent to according to the destination logical address of the target packet 2, and the target physical port a also belongs to the first vlan, the default vlan id of the target packet 2 may not be modified. In order to facilitate setting of the preset matching rule, the default virtual local area network of the target message with the source IP being IP1 may also be directly modified to be the first virtual local area network identifier, so that only one preset matching rule needs to be added, and efficient and ordered sending of all the target messages sent to the port a can be achieved.
And S250, determining a target physical port from the candidate physical ports in the target virtual local area network.
S260, forwarding the target message through the target physical port.
According to the scheme in the embodiment of the application, the two IPs are respectively set for the main processor and the slave processor, the two virtual local area networks are divided, the conversion of the virtual local area network identification is realized through the preset matching rule, and the ordered successful forwarding of the target message is realized by using fewer external IPs.
In an embodiment of the present application, the method further includes: and setting a flow receiving logic port corresponding to the slave processor, wherein the flow receiving logic port is a preset number of continuous masks. The method further comprises the following steps: and setting the stream receiving logic port corresponding to the slave processor as a reserved logic port, so that the master processor randomly selects logic ports except the reserved logic port as the stream receiving logic port of the master processor.
Illustratively, in order to save the number of the preset matching rules, the mask is set to set the flow receiving logical port corresponding to each slave processor to a preset number of consecutive masks, for example, the flow receiving logical port of the slave processor 1 is set to 10000 to 10256, the flow receiving logical port corresponding to the slave processor 2 is set to 10257 and 10512, and so on. Based on the scheme, only one preset matching rule is needed to determine the flow receiving logic port corresponding to one slave processor, and one preset matching rule does not need to be set for the slave processor corresponding to each mask, so that the number of the preset matching rules is saved.
The stream receiving logical port of the main processor is randomly allocated, for example, a mask is randomly selected as the stream receiving logical port of the main processor. However, the stream receiving logical port of the slave processor may also be randomly selected as the stream receiving port of the master processor, which causes a conflict, and therefore, in this embodiment of the present application, the stream receiving logical port of the slave processor is set as the reserved logical port, the reserved logical port is avoided when the master processor randomly selects the stream receiving logical port, and the ports other than the reserved logical port are randomly selected as the stream receiving logical port.
In the embodiment of the present application, a host and an extension cabinet may also be included, as shown in fig. 5. Port A, port B, port C and port D are physical ports of the switch 98DX336S _0, and port E and port F are physical ports of the switch 98DX336S _ 1. A plurality of extension cabinets can be cascaded and connected with a host to realize function extension. The service of one host is about 2.56Gb, so a trillion port or four giga ports can be selected for aggregation, and the transmission of messages is realized. Similarly, as shown in fig. 6, the master processor and the slave processor are respectively provided with two IP addresses, the IP address of the master processor is IP1 and IP2, the IP address of the slave processor 1 is IP1 and IP3, and the IP address of the slave processor 2 is IP1 and IP 4. The port a, port B and IP1 of the main processor are divided into a first virtual local area network and the IP2, port B and other switch physical ports of the main processor are divided into a second virtual local area network. The sending process of the target message 1 and the target message 2 is the same as that in the above embodiment. The target message 3 enters 96DX336S _0 from the port A, is marked with a first virtual local area network identifier, and is determined to be actually a message sent to the DSP1 after being matched with a preset matching rule, so that the identifier of the target message is modified into a second virtual local area network identifier, a target MAC address is modified into a corresponding MAC address of the DSP1, and in the second virtual local area network, a switch physical port corresponding to the DSP1 can be found out according to an MAC address table through secondary switching and sent so as to send the target message 3 to the DSP 1. For the same reason of the target message 4, the message enters the switch 96DX336S _1 through the port F and is sent to the switch 96DX336S _0 according to the MAC address table, since the message enters the switch 96DX336S _0 from the port C, the message is labeled with the second vlan id, according to the preset matching rule, since the source IP address is IP1, the id is modified into the first vlan id, and then the message is forwarded from the target physical port a according to the MAC address table in the switch 96DX336S _0, thereby realizing the function extension of the multiple expansion cabinets.
Fig. 7 is a schematic structural diagram of a data transmission device according to an embodiment of the present application. The device is applicable to the condition of transmitting data. Typically, the embodiment of the present application is suitable for the case of data transmission in the decoding and splicing controller cascaded by the switches. The apparatus may be implemented by software and/or hardware, and the apparatus may be integrated in an electronic device. Referring to fig. 7, the apparatus specifically includes:
the local area network determining module 310 is configured to determine a target virtual local area network to which the target packet belongs according to a matching result of the target packet and a preset matching rule;
a target port determining module 320, configured to determine a target physical port from candidate physical ports in a target vlan; wherein, the candidate physical port is a physical port of the switch;
a forwarding module 330, configured to forward the target packet through the target physical port.
In an embodiment of the present application, the apparatus further includes:
the IP address allocation module is used for allocating a first IP address and a second IP address to the master processor and the slave processor respectively, wherein the first IP addresses of the master processor and the slave processor are the same and are used for communicating with external equipment, and the second IP addresses of the master processor and the slave processor are different and are used for communicating between the master processor and the slave processor;
the local area network dividing module is used for dividing a first IP address and a candidate physical port corresponding to the main processor and a candidate physical port communicated with the external equipment into a first virtual local area network, and dividing a second IP address and a candidate physical port corresponding to the main processor and a candidate physical port corresponding to the slave processor into a second virtual local area network.
In this embodiment, the local area network determining module 310 includes:
an identifier modification unit, configured to modify a default virtual local area network identifier of the target packet into a target virtual local area network identifier based on the target matching rule if the preset matching rule includes a target matching rule corresponding to destination address information or source address information of the target packet;
and the identifier retaining unit is used for not modifying the default virtual local area network identifier of the target message if the preset matching rule does not include the target matching rule corresponding to the destination address information or the source address information of the target message.
In an embodiment of the present application, the apparatus further includes:
the identifier setting module is used for setting a default virtual local area network identifier of the target message as a first virtual local area network identifier if the target message is accessed from a candidate physical port corresponding to external equipment;
correspondingly, the identifier modification unit is specifically configured to:
if the target logic port of the target message is the flow receiving logic port of the slave processor, acquiring a target matching rule corresponding to the target logic port from the preset matching rule;
modifying the first virtual local area network identification of the target message into a second virtual local area network identification based on the target matching rule;
an identifier retention unit, specifically configured to:
if the target logic port of the target message is the stream receiving logic port of the main processor, and the preset matching rule does not include the target matching rule corresponding to the target logic port, the default virtual local area network identification of the target message is not modified.
In an embodiment of the present application, the identifier modification unit is specifically configured to:
if the source IP address of the target message is the first IP address, acquiring a target matching rule from the preset matching rule;
and setting the default virtual local area network identification as a first virtual local area network identification based on the target matching rule.
In an embodiment of the present application, the apparatus further includes:
and the flow receiving logic port determining module is used for setting a flow receiving logic port corresponding to the slave processor, wherein the flow receiving logic port is a preset number of continuous masks.
In an embodiment of the present application, the apparatus further includes:
and the port reservation module is used for setting the flow receiving logic port corresponding to the slave processor as a reserved logic port so that the master processor randomly selects the logic ports except the reserved logic port as the flow receiving logic port of the master processor.
The data transmission device provided by the embodiment of the application can execute the data transmission method provided by any embodiment of the application, and has corresponding functional modules and beneficial effects of the execution method.
Fig. 8 is a schematic structural diagram of an electronic device according to an embodiment of the present application. FIG. 8 illustrates a block diagram of an exemplary electronic device 412 suitable for use in implementing embodiments of the present application. The electronic device 412 shown in fig. 8 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present application.
As shown in fig. 8, the electronic device 412 may include: one or more processors 416; the memory 428 is configured to store one or more programs, and when the one or more programs are executed by the one or more processors 416, the one or more processors 416 are enabled to implement the data transmission method provided in the embodiment of the present application, including:
determining a target virtual local area network to which the target message belongs according to a matching result of the target message and a preset matching rule;
determining a target physical port from candidate physical ports in a target virtual local area network; wherein, the candidate physical port is a physical port of the switch;
and forwarding the target message through the target physical port.
The components of the electronic device 412 may include, but are not limited to: one or more processors or processors 416, a memory 428, and a bus 418 that couples the various device components including the memory 428 and the processors 416.
Bus 418 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures include, but are not limited to, Industry Standard Architecture (ISA) bus, micro-channel architecture (MAC) bus, transaction ISA bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
Electronic device 412 typically includes a variety of computer device-readable storage media. These storage media may be any available storage media that can be accessed by electronic device 412 and includes both volatile and nonvolatile storage media, removable and non-removable storage media.
Memory 428 can include computer-device readable storage media in the form of volatile memory, such as Random Access Memory (RAM)430 and/or cache memory 432. The electronic device 412 may further include other removable/non-removable, volatile/nonvolatile computer device storage media. By way of example only, storage system 434 may be used to read from and write to non-removable, nonvolatile magnetic storage media (not shown in FIG. 8, and commonly referred to as a "hard drive"). Although not shown in FIG. 8, a magnetic disk drive for reading from and writing to a removable, nonvolatile magnetic disk (e.g., a "floppy disk") and an optical disk drive for reading from or writing to a removable, nonvolatile optical disk (e.g., a CD-ROM, DVD-ROM, or other optical storage medium) may be provided. In these cases, each drive may be connected to bus 418 by one or more data storage media interfaces. Memory 428 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the application.
A program/utility 440 having a set (at least one) of program modules 442 may be stored, for instance, in memory 428, such program modules 442 including, but not limited to, an operating device, one or more application programs, other program modules, and program data, each of which examples or some combination thereof may comprise an implementation of a network environment. The program modules 442 generally perform the functions and/or methods of the embodiments described herein.
The electronic device 412 may also communicate with one or more external devices 414 (e.g., keyboard, pointing device, display 424, etc.), with one or more devices that enable a user to interact with the electronic device 412, and/or with any devices (e.g., network card, modem, etc.) that enable the electronic device 412 to communicate with one or more other computing devices. Such communication may occur via input/output (I/O) interfaces 422. Also, the electronic device 412 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network, such as the internet) through the network adapter 420. As shown in FIG. 8, network adapter 420 communicates with the other modules of electronic device 412 over bus 418. It should be appreciated that although not shown in FIG. 8, other hardware and/or software modules may be used in conjunction with the electronic device 412, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID devices, tape drives, and data backup storage devices, among others.
The processor 416 executes various functional applications and data processing by executing at least one of other programs of the plurality of programs stored in the memory 428, for example, to implement a data transmission method provided by the embodiments of the present application.
One embodiment of the present application provides a storage medium containing computer-executable instructions that when executed by a computer processor perform a data transfer method, comprising:
determining a target virtual local area network to which the target message belongs according to a matching result of the target message and a preset matching rule;
determining a target physical port from candidate physical ports in a target virtual local area network; wherein, the candidate physical port is a physical port of the switch;
and forwarding the target message through the target physical port.
The computer storage media of the embodiments of the present application may take any combination of one or more computer-readable storage media. The computer readable storage medium may be a computer readable signal storage medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor device, apparatus, or any combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In embodiments of the present application, a computer readable storage medium may be any tangible storage medium that can contain, or store a program for use by or in connection with an instruction execution apparatus, device, or apparatus.
A computer readable signal storage medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal storage medium may also be any computer readable storage medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution apparatus, device, or apparatus.
Program code embodied on a computer readable storage medium may be transmitted using any appropriate storage medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present application may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C + +, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or device. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider).
It is to be noted that the foregoing is only illustrative of the preferred embodiments of the present application and the technical principles employed. It will be understood by those skilled in the art that the present application is not limited to the particular embodiments described herein, but is capable of various obvious changes, rearrangements and substitutions as will now become apparent to those skilled in the art without departing from the scope of the application. Therefore, although the present application has been described in more detail with reference to the above embodiments, the present application is not limited to the above embodiments, and may include other equivalent embodiments without departing from the spirit of the present application, and the scope of the present application is determined by the scope of the appended claims.