DATA PROCESSING DEVICE AND DATA PROCESSING
Patent Information
- Application Number
- DE102024201787
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-04
- Filing Date
- 2024-02-27
- Publication Date
- 2025-04-10
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
CROSS REFERENCE TO RELATED APPLICATIONSThis application claims the benefit of Korean Patent Application No. 10-2023-0131865 filed on Oct. 4, 2023, which is hereby incorporated by reference.TECHNICAL FIELDThe present disclosure relates to a data processing apparatus and a data processing method.BACKGROUNDA self-propelled service robot is a complex of different technologies and therefore comprises a software structure based on several modules. Each of the modules is exposed to the outside in the form of a service endpoint (access point) API, and all actual business logics are abstracted. Technical details such as logic, architecture, programming language, database, and quality assurance system are obfuscated by the API. Each module is independent and can be flexible when new technologies are applied to the module. Such a system may have an advantage that even if a fault occurs in a particular module among the modules, the fault does not affect other modules.On the other hand, the design of the above-mentioned system is complex, and there may be a problem in configuration of communication taking all service modules into account due to a distributed structure. In other words, the management of endpoint APIs is important to the above-mentioned system, and compatibility between dozens or hundreds of modules must be checked. Moreover, it may be difficult to develop and maintain an integrated structure and perform data management, such as unified application of policies, introduction of a security system, and integrated tests.To solve these problems, technologies must be developed that enable efficient transmission, reception, and management of data by uniformizing various development languages, protocols, and data formats for each service module of the robot system.SUMMARYThe present disclosure relates to a data processing apparatus and a data processing method. Particular embodiments relate to a technology for processing data received from a control server.Embodiments of the present disclosure may solve problems occurring in the prior art while retaining the advantages achieved by the prior art.An embodiment of the present disclosure provides an information processing apparatus and a data processing method capable of performing data exchange based on channel filter information by identifying channel filter information related to target data in a router database even when service modules have different development languages, protocols, and data formats, and increasing maintenance of data communication for each service module.An embodiment of the present disclosure provides a data processing apparatus and a data processing method capable of obtaining target encapsulated data by applying target data and channel filter information to a first filter encapsulating the target data to solve the problem of difficulty in applying comprehensive authentication policies due to a distributed structure and uniformly applying authentication and security policies to all service modules by simply writing a script to the first filter.An embodiment of the present disclosure provides a data processing apparatus and a data processing method capable of applying target encapsulated data to a second filter that converts the format of the target encapsulated data, wherein integration is possible simply by registering a channel through the user interface without additionally implementing various protocols and data formats used for linking internal / external service modules, and linking service modules by simply writing a script corresponding to the reception format of each target service module.The technical problems that can be solved by the embodiments of the present disclosure are not limited to the above-mentioned problems, and all other technical problems that are not mentioned here will be clearly understood by those skilled in the art to which the present disclosure pertains from the following description.According to an embodiment of the present disclosure, a computing device includes a memory storing computer executable instructions, at least one processor accessing the memory and executing the instructions, and a communication device supporting communication between the computing device and a control server, wherein the at least one processor receives target data from the control server via the communication device, identifies channel filter information related to the target data in a router database (DB), obtains encapsulated target data by applying the target data and the channel filter information to a first filter that encapsulates the target data based on the channel filter information identified in the router database, and transmits the encapsulated target data to a target service module of the target data by applying the encapsulated target data to a second filter, converting a format of the encapsulated target data.According to an embodiment, the at least one processor may convert the target data into unregistered data based on the channel filter information that is not identified in the router database, and transmit the unregistered data to the control server via the communication device.According to an embodiment, the at least one processor may decode the target data with a predetermined key based on the target data and the channel filter information applied to the first filter, and parse the decoded target data into a target format to obtain parsed data.According to an embodiment, the at least one processor may verify whether the parsed data comprises a predetermined authentication token based on the decoded target data that is parsed according to the target format and the obtained parsed data, and generate payload data by extracting a first packet related to a command, a second packet related to a data state, and a third packet related to a message from the target data.According to an embodiment, the at least one processor may encode the payload based on the predetermined key and obtain the encapsulated data by applying a header related to information about a robot including the data processing device and a tail related to series information of the robot to the encoded payload.According to an embodiment, the at least one processor may convert the target data into irregular data based on an error in parsing the decoded target data based on the target format, and transmit the irregular data and the channel filter information to the control server via the communication device.According to an embodiment, the at least one processor may convert the target data into irregular data based on the authentication token not included in the decoded target data, and transmit the irregular data and the channel filter information to the control server via the communication device.According to an embodiment, the at least one processor may obtain a reception format of the target service module extracted from the channel filter information and transmit the encapsulated target data by converting the format of the encapsulated target data to the reception format.According to an embodiment, the data processing device may further comprise a user interface receiving source codes of the first filter and the second filter from a user. The at least one processor may apply the source codes input via the user interface to at least one of the first filters, the second filter, or any combination thereof.According to an embodiment, the at least one processor may identify at least one of a feature related to the target data, a reception type, a transmission type, the target service module, or any combination thereof from the user interface, and generate the channel filter information by binding at least one of the features of the command, the reception type, the transmission type, the target service module, or any combination thereof.According to an embodiment of the present disclosure, a data processing method includes receiving, from a control server via a communication device, target data, identifying channel filter information related to the target data in a router database (DB), obtaining encapsulated target data by applying the target data and the channel filter information to a first filter encapsulating the target data based on the channel filter information identified in the router database, and transmitting the encapsulated target data to a target service module of the target data by applying the encapsulated target data to a second filter converting a format of the encapsulated target data.According to an embodiment, identifying the channel filter information related to the target data may include converting the target data into unregistered data based on the channel filter information not identified in the router database, and transmitting the unregistered data to the control server via the communication device.According to an embodiment, obtaining the encapsulated target data may include decoding the target data with a predetermined key based on the target data and the channel filter information applied to the first filter, and parsing the decoded target data into a target format to obtain parsed data.According to an embodiment, the data processing method may further include checking whether the parsed data includes a predetermined authentication token based on the decoded target data that is parsed according to the target format and the obtained parsed data, and generating payload data by extracting a first packet related to a command, a second packet related to a data state, and a third packet related to a message from the target data.According to an embodiment, the data processing method may further include encoding the payload based on the predetermined key and obtaining the encapsulated data by applying a header related to information about a robot including a data processing device and a tail related to serial information of the robot to the encoded payload.According to an embodiment, obtaining the parsed data may include converting the target data into irregular data based on an error in parsing the decoded target data based on the target format, and transmitting the irregular data and the channel filter information to the control server via the communication device.According to an embodiment, checking whether the parsed data includes the authentication token may include converting the target data into irregular data based on the authentication token not being included in the decoded target data, and transmitting the irregular data and the channel filter information to the control server via the communication device.According to an embodiment, obtaining the encapsulated target data may include obtaining a reception format of the target service module extracted from the channel filter information, and transmitting the encapsulated target data by converting a format of the encapsulated target data to the reception format.According to an embodiment, the data processing method may further comprise applying the source codes input via the user interface to the first filter, the second filter, or any combination thereof.According to an embodiment, the processing method may further include identifying at least one of the following features: a command regarding the target data, a reception type, a transmission type, the target service module, or any combination thereof from the user interface, and generating the channel filter information by binding at least one of the command, the reception type, the transmission type, the target service module, or any combination thereof.BRIEF DESCRIPTION OF THE DRAWINGSThe above and other objects, features and advantages of embodiments of the present disclosure will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings, in which: FIG. 1 is a diagram showing a data processing apparatus according to an embodiment of the present disclosure; FIG. 2 is a flowchart for describing a data processing method according to an embodiment of the present disclosure; FIG. 3 is a diagram illustrating a method of communication with a control server in a data processing apparatus according to an embodiment of the present disclosure; FIG. 4 is a flowchart illustrating a method for registering channel filter information in a data processing apparatus according to an embodiment of the present disclosure; FIG. 5 is a flow chart illustrating a method for transmitting target data to a target service module in a data processing apparatus according to an embodiment of the present disclosure; FIG. 6 is a diagram illustrating source codes implementing a first filter in a data processing apparatus according to an embodiment of the present disclosure; FIG. 7 is a diagram illustrating source codes implementing a second filter in a data processing apparatus according to an embodiment of the present disclosure; FIG. 8 is a diagram illustrating a method of generating channel filter information based on information extracted from a user interface in a data processing apparatus according to an embodiment of the present disclosure; and FIG. 9 illustrates a computer system related to a data processing apparatus or a processing method according to an embodiment of the present disclosure.In the description of the drawings, the same or similar reference numerals may be used for the same or similar components.DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTSHereinafter, some embodiments of the present disclosure will be described in detail with reference to the example drawings. In adding reference numerals to the components of each drawing, it should be noted that the same or equivalent component is designated by the same reference numeral even if it is shown on other drawings. Further, in describing the embodiments of the present disclosure, detailed description of known features or functions will be omitted so as not to unnecessarily obscure the gist of the embodiments of the present disclosure. In particular, various embodiments of the disclosure may be described with reference to the accompanying drawings. However, it is not intended to limit the technology described herein to particular embodiments, and those skilled in the art will recognize that modifications, equivalents, and / or alternatives to the various embodiments described herein may be made in various ways without departing from the scope and spirit of the disclosure. With regard to the description of the drawings, similar components may be identified by similar reference numerals.In describing the components of the embodiments according to the present disclosure, terms such as first, second, "A", "B", (a), (b), and the like may be used. These terms are merely for distinguishing one component from another, and the terms do not limit the kind, order, or order of the components. Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present disclosure pertains. Such terms as defined in a generally used dictionary are to be interpreted as having a meaning that corresponds to contextual meaning in the relevant field of art, and are not to be interpreted as having an ideal or excessively formal meaning unless clearly defined as such in the present application. For example, terms such as "first", "second", and the like used in the disclosure may be used to refer to different components regardless of the order and / or priority, and to distinguish the relevant components from other components, but they do not limit the components. For example, "a first device of the user" and "a second device of the user" indicate different devices of the user, regardless of the order or priority. For example, without departing from the scope of the disclosure, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.The terms "have", "may have", "comprise" and "comprise" or "may comprise" and "may comprise" used in the disclosure indicate the presence of corresponding features (for example, components such as numerical values, functions, operations, or sections), but do not exclude the presence of further features.It will be appreciated that when a component (e.g., a first component) is referred to as being "(operatively or communicatively) coupled to / on" or "connected to" another component (e.g., a second component), it may be directly coupled to / connected to the other component or an intervening component (e.g., a third component) may be present. On the other hand, when a component (e.g., a first component) is referred to as being "directly connected to / on" or "directly connected to" another component (e.g., a second component), it is assumed that there is no intermediate component (e.g., a third component).Depending on the situation, the term "configured for" used in the disclosure may be used, for example, as the term "suitable for", "having the capability to", "designed for", "adapted for", "made for", or "capable of".The term "configured to" is not only intended to mean "specially designed" in the hardware. Rather, the phrase "a device configured to" may also mean that the device may "be" cooperating with another device or other portions. For example, a "processor configured (or set) to execute A, B, and C" may mean a special processor (e.g., an embedded processor) for performing a corresponding operation, or a general processor (e.g., a central processing unit (CPU) or an application processor) that performs corresponding operations by executing one or more software programs stored in a storage device. The terms used in the disclosure are used merely to describe specific embodiments and are not intended to limit the scope of other embodiments. The terms used in the disclosure are merely for describing particular embodiments and are not intended to limit the scope of other embodiments. The terms singular also include plural, unless otherwise specified. All terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art. It will be further understood that terms defined in a dictionary and commonly used should also be interpreted as common in the relevant related art, and not in an idealized or overly formal sense unless expressly so defined in various embodiments of the disclosure. In some instances, although terms are defined in the disclosure, they should not be construed to exclude embodiments of the disclosure.In the disclosure, the terms "A or B", "at least one of A and / or B", or "one or more of A and / or B", and the like, may include any and all combinations of one or more of the associated listed items. For example, the term "A or B", "at least one of A and B", or "at least one of A or B" may refer to all cases (1) in which at least one A is included, the case (2) in which at least one B is included, or the case (3) in which both at least one A and at least one B is included. Moreover, in describing the components of embodiments of the present disclosure, terms such as "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", "at least one of A, B or C", and "at least one of A, B, C or any combination thereof" may include any of the listed items or any possible combination thereof. In particular, terms such as "at least one of A, B, C, or a combination thereof" may include A or B or C, or a combination thereof such as AB or ABC.Hereinafter, embodiments of the present disclosure will be described in detail with reference to FIGS. 1 to 9.FIG. 1 is a diagram showing a data processing apparatus according to an embodiment of the present disclosure.A computing device 100 according to an embodiment may include a processor 110, a memory 120 including instructions 122, and a communication device 130.The information processing apparatus 100 may refer to an apparatus that processes target data received from a control server 140 to transmit the target data to a service module included in a robot system. For example, the data processing device 100 may receive target data from the control server 140 via the communication device 130. Here, the target data may represent data to be transmitted from the control server 140 to a service module included in a robot system.The data processing apparatus 100 may identify channel filter information regarding destination data in a router database. In this case, the router database can comprise at least one channel filter information item. The channel filter information may include information about sequences in which target data is routed until the target data is received by the computing device 100 and transmitted to the service module. For example, the channel filter information may include a command related to target data, a reception type received from the control server 140, a transmission type transmitted to a target service module, and the target service module.The data processing apparatus 100 may apply target data and channel filter information to a first filter for encapsulating the target data, based on the channel filter information regarding the target data identified in the router database, to obtain the encapsulated target data. For example, the first filter may be a data proxy filter that is a function that performs encapsulation with respect to a process of decoding, parsing, verifying, marking, encrypting, and encoding target data. A detailed description thereof will be provided later with reference to FIG. 6 below.The computing device 100 may transmit the encapsulated target data to a target service module of the target data by supplying the encapsulated target data to a second filter that converts the format of the encapsulated target data. For example, the second filter may represent a function that converts the format of the encapsulated target data according to the reception format of the target service module. A detailed description thereof will be provided later with reference to FIG. 7 below.By performing the above-described operations, the information processing apparatus 100 can transmit the target data to the target service module regardless of the different development languages, protocols, and data communication formats for a plurality of service modules including the robot system.The processor 110 may execute software and control at least one other component (e.g., a hardware or software component) connected to the processor 110. Processor 110 may also perform various data processings or operations. For example, the processor 110 may store target data, channel filter information, and encapsulated target data in the memory 120.As a reference, the processor 110 may perform all operations performed by the computing device 100. Therefore, in this DESCRIPTION, for convenience, the operations performed by the data processing apparatus 100 will be mainly described as operations performed by the processor 110. In addition, in this description, for convenience, the processor 110 is mainly described as a single processor, but is not limited thereto. For example, computing device 100 may include one or more processors. Each of the one or more processors may perform all operations related to the operation.The memory 120 may temporarily and / or permanently store a variety of data and / or information required for processing or transmitting target data. For example, the memory 120 may store target data, channel filter information, and encapsulated target data.The communication device 130 may carry the communication between the data processing device 100 and the control server 140. For example, the communication device 130 may include one or more components that enable communication between the computing device 100 and the control server 140. For example, the device 130 may include a short-range wireless communication unit, a microphone, and the like. In this case, the short-range communication technology may include, but is not limited to, wireless LAN (Wi-Fi), Bluetooth, ZigBee, WFD (Wi-Fi Direct), UWB (Ultra Wide Band), infrared communication (IrDA, infrared data association), BLE (Bluetooth Low Energy), NFC (Near Field Communication), or the like.FIG. 2 is a flowchart for describing a data processing method according to an embodiment of the present disclosure.In operation 210, a computing device (e.g., computing device 100 in FIG. 1 ) according to an embodiment may receive target data from a control server via a communication device and identify channel filter information regarding the target data from a router database. For example, the computing device may receive the target data via the communication device corresponding to the robot operating system (ROS) communication protocol, the Apache Kafka (KAFKA) communication protocol, and the message queue (MQ) communication protocol. The computing device may identify channel filter information regarding the target data by determining whether the channel filter information regarding the target data is registered and / or stored in the router database. When the data processing device identifies the channel filter information related to the target data, the data processing device may extract and / or obtain the channel filter information related to the target data to apply it to a first filter.In operation 220, the computing device may obtain encapsulated target data by applying the target data and the channel filter information to the first filter encapsulating the target data based on the channel filter information identified in a router database. For example, the data processing apparatus may apply the target data and the channel filter information to the first filter, which is in the form of a function written in a script (for example, Javascript or Python), which obtains the target data as parameters. In this way, the data processing device can obtain the encapsulated target data from the first filter. The first filter may be generated by source codes input via a user interface. A user may write operations to be implemented in the first filter with source codes and input the written source codes to the user interface.In operation 230, the computing device may transmit the encapsulated target data to a target service module of the target data by supplying the encapsulated target data to a second filter that converts the format of the encapsulated target data. For example, the data processing device may apply the encapsulated target data to a second filter, which is in the form of a function written in a script (e.g., Javascript or Python), which receives the encapsulated target data as a parameter. Thereby, the data processing device can obtain from the second filter data converted into a format associated with the receiving module of the destination service module. The second filter may be generated by source codes input via the user interface. A user may write operations to be implemented in the second filter with source codes and input the written source codes to the user interface.FIG. 3 is a diagram illustrating a method of communication with a control server in a data processing apparatus according to an embodiment of the present disclosure.A computing device 310 according to an embodiment may be included in a control system 300 and communicate with a control server 340. For example, the robot system 300 may include a first service module 320, a second service module 325, a third service module 330, a fourth service module 335, and the data processing device 310. The service module enclosed in the robot system 300 can represent a module for carrying out a specific function and / or a specific service of the robot system 300. In addition, the robot system 300 may be a delivery robot system, a patrol robot system, a serving robot system, or the like.The control server 340 may perform an operation of transmitting target data to the robot system 300 and receiving data related to the robot system 300 from the robot system 300. For example, the control server 340 may perform the operation of transmitting and / or receiving the above-described data based on the Kafka communication protocol.The computing device 310 may include a first filter, a second filter, a user interface, a communication device, and a router database. The data processing device 310 may receive target data from the control server 340 via the communication device. The computing device 310 may apply source code input via a user interface to the first filter, the second filter, or any combination thereof. The computing device 310 may apply the target data to each of the first and second filters and transmit encapsulated target data to a target service module. Here, the target service module may represent at least one of the following modules: the first service module 320, the second service module 325, the third service module 330, the fourth service module 335, or any combination thereof. Therefore, the target data may be transmitted from the control server 340 to a service module, and additionally to service modules that may be classified according to service logic or network protocols.On the other hand, when the information processing apparatus 310 is not present in the robot system 300, the robot system 300 may need to implement a data filter in each service module to receive target data from the control server 340 and transmit the received target data to a target service module. For example, the data filter may be a filter set that is associated with the reception format of each service module and may be changed depending on the source and destination. Such a system may be difficult to maintain or manage and may have problems in setting up a comprehensive authentication system for security. Moreover, the system can have a highly complex structure because even if the system performs an operation for transmitting data to the same service modules, the operation can be processed differently depending on the structure of the data. Accordingly, it is possible to solve the above-mentioned problems such that the robot system 300 includes the information processing device 310 and processes the data received from the control server 340 via the information processing device 310.FIG. 4 is a flowchart illustrating a method of registering channel filter information in a data processing apparatus according to an embodiment of the present disclosure.In operation 410, a computing device (e.g., computing device 100 of FIG. 1 ) may obtain information related to channel filter information from a user interface, according to an embodiment. For example, the data processing device can receive source codes of a first filter and a second filter via the user interface. The computing device may identify, via the user interface, at least one of the following features: a command related to target data, a receive type, a transmit type, a target service module, or any combination thereof. That is, the information processing apparatus may identify the command related to the target data, the reception type, the transmission type, the target service module, source codes of the first filter, and source codes of the second filter with information on the channel filter information.In operation 420, the computing device may determine whether a connection is established between service modules. For example, the computing device may identify whether a first service module (e.g., the first service module 320 in FIG. 3 ), a second service module (e.g., the second service module 325 in FIG. 3 ), a third service module (e.g., the third service module 330 in FIG. 3 ), and a fourth service module (e.g., the fourth service module 335 in FIG. 3 ) are each connected to the computing device.At operation 460, the computing device may treat the generation of channel filter information as failed because the connection between the service modules was not established at operation 420. That is, the data processing apparatus cannot generate channel filter information when there is no connection between the service modules.In operation 430, the computing device may determine whether it is possible to functionalize a first filter based on the connection between the service modules. For example, the computing device may functionalize the first filter written in a script that receives target data as a parameter.In operation 440, the computing device may determine whether it is possible to functionalize a second filter based on the case that it is possible to functionalize the first filter. For example, the computing device may functionalize the second filter written in a script that receives target encapsulated data as a parameter.In operations 430 and 440, the computing device may treat the generation of channel filter information as failed when it is difficult to functionalize either the first or second filters. That is, the data processing apparatus cannot generate channel filter information when it is difficult to functionalize one of the first or second filters.In operation 450, the computing device may generate channel filter information and store the channel filter information in the router database. The information processing apparatus may identify the channel filter information related to the target data received from the router database each time target data is received from the control server after the generated channel filter information is stored in the router database. Thus, the channel filter information may be input via a user interface and available in the computing device by a user input.FIG. 5 is a flowchart illustrating a method of transmitting target data to a target service module in a data processing apparatus according to an embodiment of the present disclosure.In operation 511, a computing device (e.g., computing device 100 of FIG. 1 ) according to an embodiment may receive target data from a control server via a communication device. Thereafter, in operation 513, the computing device may identify channel filter information regarding the received destination data in a router database. That is, the data processing apparatus may determine whether there is channel filter information for the received destination data by referring to the router database.In operation 515, the computing device may determine whether the channel filter information is identified in the router database. In operation 521, the computing device may apply the target data to the first filter encapsulating the target data based on the identified channel filter information. That is, the data processing apparatus may execute logic included in the first filter written in a script by applying the target data to the first filter. Alternatively, the computing device may convert the target data to unregistered data at operation 517 and transmit the unregistered data to a control server at operation 519 based on the channel filter information not being identified.In operation 523, the computing device may determine whether the encapsulated target data is obtained based on the target data applied to the first filter. A detailed description of this operation will be provided later with reference to FIG. 6 below. In operations 525 to 527, the computing device may convert the target data to irregular data and transmit the irregular data and channel filter information to the control server based on the encapsulated target data not being obtained from the first filter. In other words, the data processing apparatus may classify target data as normal data or irregular data depending on whether the target data satisfies the pass conditions written in the script of the first filter. In addition, when the target data is classified as irregular data, the data processing apparatus may discard the irregular data by converting the target data into irregular data and transmitting the irregular data to the control server.In operation 529, the computing device may apply the encapsulated target data to a second filter that converts the format of the encapsulated target data based on receiving the encapsulated target data from the first filter. In operation 531, the computing device may transmit the encapsulated target data to a target service module of the target data.FIG. 6 is a diagram illustrating source codes implementing a first filter in a data processing apparatus according to an embodiment of the present disclosure.Referring to FIG. 6, code for implementing a first filter may be partially included in source code 600. Source code 600 may include first source code 610, second source code 620, third source code 630, fourth source code 640, fifth source code 650, sixth source code 660, and seventh source code 670.The first source code 610 may include an operation for decoding target data with a predetermined key (e.g., shown as a "key" in FIG. 6 ). For example, the computing device (e.g., computing device 100 of FIG. 1 ) may decode target data with the predetermined key based on the target data and channel filter information applied to the first filter by executing the first source codes 610. Here, the predetermined key may be used as "patrol_robot" as shown in FIG. 6, but is not limited thereto. The data processing apparatus may obtain decoded target data (for example, illustrated as "decoded_target data" in FIG. 6 ) through the process of decoding the target data.The second source codes 620 may include an operation for parsing the target data. For example, the computing device may parse the decoded target data into a target format by executing the second source codes 620 to obtain parsed data (e.g., shown as "parsed" in FIG. 6 ). Here, the target format may be, but is not limited to, JSON (JavaScript Object Notation) format. The information processing apparatus may convert the target data into irregular data based on an error in parsing the decoded target data based on the target format, and transmit the irregular data and channel filter information to the control server via a communication unit.The third source code 630 may include an operation for verifying parsed data using an authentication token. For example, the data processing apparatus may verify whether the parsed data includes a predetermined authentication token based on the parsed data obtained by parsing the decoded target data according to the target format by executing the third source codes 630. In this case, the authentication token may be "iefk2ad1" as shown in FIG. 6, but is not limited thereto. The data processing device may convert the target data into irregular data, and transmit the irregular data and channel filter information to the control server via the communication device based on the authentication token not included in the decoded target data.The fourth source codes 640 may include operations to generate payload data (e.g., shown as a "payload" in FIG. 6 ) by extracting particular packets from the target data. For example, the computing device may extract a first packet related to a command, a second packet related to a data state, and a third packet related to a message from the target data, and generate payload data based on the first packet and the third packet by executing the fourth source codes 640. The data processing apparatus can extract only necessary data from the target data by executing the fourth source codes 640, thereby reducing the overhead in a data receiving and / or transmitting process.The fifth source code 650 may represent an operation for determining a name that may relate to operations included in the first filter. For example, the operations included in the first filter may represent a single data sequence in which target data is received from the control server and transmitted to the target service module. Therefore, the information processing apparatus can determine the execution of the above-described operations as a name that can be used as a channel name.The sixth source codes 660 may include operations to encapsulate payload data. For example, the computing device may encode the payload data based on a predetermined key (i.e., a predetermined key included in the first source code 610) by executing the sixth source code 660. Thereafter, the information processing apparatus may apply a header related to the information about a robot including the information processing apparatus and a tail related to the series information of the robot to the encoded payload to obtain the encapsulated data.The seventh source codes 670 may include an operation to return the encapsulated data to the computing device. The computing device may obtain the encapsulated target data from the first filter by executing the seventh source codes 670.FIG. 7 is a diagram illustrating source codes implementing a second filter in a data processing apparatus according to an embodiment of the present disclosure.Referring to FIG. 7, the codes for implementing a second filter may be partially included in the source code 700. For example, a computing device (e.g., computing device 100 of FIG. 1 ) may convert the format of encapsulated target data (e.g., shown as "encapsulated" in FIG. 7 ) to a receiving format by executing source codes 700. The data processing apparatus may obtain the reception format of a destination service module from channel filter information. The data processing device may receive the encapsulated target data converted to the reception format from the second filter. The source codes 700 may convert the encapsulated target data to the string type in JSON format, convert the encapsulated target data from the string format to the byte type, and convert the encapsulated target data from the XML format to the HTML type. However, a method by which the data processing device converts the format of the target encapsulated data is not limited thereto.FIG. 8 is a diagram illustrating a method for generating channel filter information based on information extracted from a user interface in a data processing apparatus according to an embodiment of the present disclosure.A computing device (e.g., computing device 100 of FIG. 1 ) according to an embodiment may further include a user interface. For example, the computing device may further include a user interface that receives source codes for a first filter and a second filter from a user. The computing device may apply source code input via the user interface to the first filter, the second filter, or any combination thereof.The computing device may generate channel filter information 800 based on information identified by the user interface. For example, the computing device may identify at least one command relating to target data, a receive type, a transmit type, a target service module, or any combination thereof from the user interface.The computing device may generate the channel filter information 800 by binding at least one of the following features: a command, a receive type, a transmit type, a target service module, or any combination thereof.Referring to the channel filter information 800 illustrated in FIG. 8, the command may indicate a command included in the target data. The reception type may indicate a protocol type used for receiving target data. The reception options may indicate option settings provided according to a reception protocol type. The transmission type may indicate a protocol type used for the transmission of data. Transmission options may indicate option settings provided according to a transmission protocol type.As described above, the command, the reception type, the reception options, the transmission type, the transmission options, and the destination service module may be input from a user via the user interface, but are not limited thereto and may be extracted from destination data.FIG. 9 illustrates a computer system related to a data processing apparatus or method for processing data according to an embodiment of the present disclosure.Referring to FIG. 9, a computer system 1000 related to a data processing apparatus or method may include at least a processor 1100, a memory 1300, a user interface input device 1400, a user interface output device 1500, a memory (i.e., a memory) 1600, and a network interface 1700, which are connected to each other via a bus 1200.The processor 1100 may be a central processing unit (CPU) or a semiconductor device that processes instructions stored in the memory 1300 and / or the storage 1600. The memory 1300 and the storage 1600 may include various types of volatile or nonvolatile storage media. For example, the memory 1300 may include a read only memory (ROM) 1310 and a random access memory (RAM) 1320.Thus, the operations of the method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware or a software module executed by the processor 1100, or in a combination thereof. The software module may reside on a storage medium (i.e., the memory 1300 and / or the storage 1600), for example, a RAM, a flash memory, a ROM, an EPROM, an EEPROM, a register, a hard disk, a removable disk, and a CD-ROM.The example storage medium may be connected to the processor 1100, and the processor 1100 may read information from the storage medium and record information in the storage medium. Alternatively, the storage medium may be integrated into the processor 1100. The processor and the storage medium may be incorporated in an application specific integrated circuit (ASIC). The ASIC may be accommodated in a user terminal. In another case, the processor and the storage medium may be housed as separate components in the user terminal.The above description is merely for illustrating the technical idea of embodiments of the present disclosure, and various modifications and variations can be made by those skilled in the art to which the present disclosure pertains without departing from the essential features of the embodiments of the present disclosure.The embodiments described herein may be implemented with hardware components and software components and / or a combination of the hardware components and the software components. For example, the apparatus, method, and components described in the embodiments may be implemented using a general purpose or special purpose computer, such as a processor, controller, and arithmetic logic unit (ALU), digital signal processor, microcomputer, field programmable array (FPGA), programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and a software application running on the OS. The processing device may also access, store, manipulate, process, and create data in response to execution of the software. For simplicity, a processing device is described as being used, but those skilled in the art will appreciate that the processing device includes a plurality of processing elements and / or multiple types of processing elements. For example, the processing device may include multiple processors or a single processor and a single control unit. Moreover, various processing configurations are possible, for example, a parallel processor.The software may include a computer program, code, instruction, or a combination thereof to independently or jointly instruct or configure the processing device as it is to operate. Software and data may be embodied permanently or temporarily in any type of machine, component, physical or virtual equipment, computer storage medium or device, or in a propagating signal wave capable of providing instructions or features to or being interpreted by the processing device. The software may also be distributed over network-coupled computer systems so that the software is stored and executed in a distributed manner. The software and data may be stored on a computer readable recording medium.The methods described above may be embodied in the form of program instructions executable by various computer means and recordable on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, or the like, alone or in combination, and the program instructions recorded on the medium may be specially designed and constructed for or known and available to those skilled in the art of computer software. Examples of computer readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic disks such as floppy disks, magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only the machine code generated by a compiler but also high-level language code executable by a computer using an interpreter or the like.The above-described hardware device may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments of the present disclosure, and vice versa.Although the embodiments have been described by the limited embodiments and the drawings as described above, various modifications and variations will be possible to those skilled in the art based on the above description. For example, the described techniques may be performed in a different order than the described method, and / or components of the described systems, structures, devices, circuits, etc. may be combined or combined in a different form than the described method, or other components, or even if replaced or substituted by equivalents, a corresponding result may be achieved.Therefore, other implementations, other embodiments, and equivalents to the claims are within the scope of the following claims.Accordingly, the embodiments disclosed in the present disclosure are not intended to limit the technical idea of the embodiments of the present disclosure but to describe exemplary embodiments of the present disclosure, and the scope of the technical idea of the embodiments of the present disclosure is not limited by the embodiments. The scope of the embodiments of the present disclosure should be construed by the following claims, and all technical ideas within the range equivalent thereto should be construed to be included in the scope of the embodiments of the present disclosure.The effects of the information processing apparatus and the information processing method according to the embodiments of the present disclosure are as follows.According to at least one of the embodiments of the present disclosure, it is possible to perform the data exchange based on channel filter information by identifying channel filter information related to target data in a router database even when service modules have different development languages, protocols, and data formats, and to increase maintenance of data communication for each service module.Further, according to at least one of the embodiments of the present disclosure, it is possible to obtain target encapsulated data by applying target data and channel filter information to a first filter encapsulating the target data, to solve the problem of difficulty in applying comprehensive authentication policies due to a distributed structure, and uniformly apply authentication and security policies to all service modules by simply writing a script to the first filter.Further, according to at least one of the embodiments of the present disclosure, it is possible to apply target encapsulated data to a second filter that converts the format of the target encapsulated data, and integration is possible simply by registering a channel via the user interface without additionally implementing various protocols and data formats used for linking internal / external service modules and linking service modules by simply writing a script corresponding to the reception format of each target service module.Moreover, various effects may be provided that are directly or indirectly understood by the disclosure.Although the embodiments of the present disclosure have been described with reference to exemplary embodiments and the accompanying drawings, the embodiments of the present disclosure are not limited thereto, but may be variously modified and changed by those skilled in the art related to the field of the present disclosure without departing from the spirit and scope of the embodiments of the present disclosure claimed in the following claims.References included in the specificationThis list of documents cited by the applicant has been produced in an automated manner and is only included for the better information of the reader. The list is not part of the German patent application or utility model application. The DPMA does not take any adhesion for any faults or omissions.Patent Literature citedKR 10-2023-0131865
[0001]
Claims
A computing device, the device comprising: a communication device configured to support communication between the computing device and a control server; a memory configured to store a program; and one or more processors configured to access the memory and execute the program, the program comprising computer executable instructions to: receive, via the communication device, target data from the control server; attempt to identify channel filter information regarding the target data in a router database; obtain encapsulated target data by applying the target data and the channel filter information to a first filter encapsulating the target data based on the channel filter information identified in the router database; transmitting the encapsulated target data to a target service module of the target data by applying the encapsulated target data to a second filter that converts a format of the encapsulated target data.The apparatus of claim 1, wherein the program further comprises computer executable instructions to: convert the target data into unregistered data based on the channel filter information not identified in the router database; and transmit the unregistered data to the control server via the communication device.The apparatus of claim 1, wherein the program further comprises computer executable instructions to: decode the target data with a predetermined key based on the target data and the channel filter information applied to the first filter; and parse the decoded target data into a target format to obtain parsed data.The apparatus of claim 3, wherein the program further comprises computer executable instructions to: check whether the parsed data comprises a predetermined authentication token based on the decoded target data that is parsed according to the target format and the obtained parsed data; and generate payload data by extracting a first packet related to a command, a second packet related to a data state, and a third packet related to a message from the target data.The apparatus of claim 4, wherein the program further comprises computer executable instructions for: encoding the payload based on the predetermined key; and obtaining the encapsulated data by applying a header related to information about a robot comprising the data processing apparatus and an end related to serial information of the robot to the encoded payload.The apparatus of claim 4, wherein the program further comprises computer executable instructions to: convert the target data to irregular data in response to the authentication token not being included in the decoded target data; and transmit the irregular data and the channel filter information to the control server via the communication device.The apparatus of claim 3, wherein the program further comprises computer executable instructions to: convert the target data into irregular data in response to an error in parsing the decoded target data based on the target format; and transmit the irregular data and the channel filter information to the control server via the communication device.The apparatus of claim 1, wherein the program further comprises computer executable instructions for: obtaining a reception format of the target service module extracted from the channel filter information; and transmitting the encapsulated target data by converting the format of the encapsulated target data to the reception format.The apparatus of claim 1, further comprising a user interface configured to receive source codes of the first filter and the second filter from a user, the program further comprising computer executable instructions to apply the source codes input via the user interface to the first filter, the second filter, or both the first filter and the second filter.The apparatus of claim 9, wherein the program further comprises computer executable instructions to: identify a command relating to the target data, a receive type, a transmit type, the target service module, or any combination thereof from the user interface; and generate the channel filter information by binding the command, the receive type, the transmit type, the target service module, or any combination thereof.A data processing method, the method comprising: receiving, from a control server via a communication device, target data; attempting to identify channel filter information related to the target data in a router database; obtaining encapsulated target data by applying the target data and the channel filter information to a first filter encapsulating the target data based on the channel filter information identified in the router database; and transmitting the encapsulated target data to a target service module of the target data by applying the encapsulated target data to a second filter converting a format of the encapsulated target data.The method of claim 11, wherein in response to the channel filter information not being identified in the router database, the method further comprises: converting the target data into unregistered data; and transmitting the unregistered data to the control server via the communication device.The method of claim 11, wherein obtaining the encapsulated target data comprises: decoding the target data with a predetermined key based on the target data and the channel filter information applied to the first filter; and parsing the decoded target data into a target format to obtain parsed data.The method of claim 13, further comprising: checking whether the parsed data comprises a predetermined authentication token based on the decoded target data that is parsed according to the target format and the obtained parsed data; and generating payload data by extracting a first packet related to a command, a second packet related to a data state, and a third packet related to a message from the target data.The method of claim 14, further comprising: encoding the payload based on the predetermined key; and obtaining the encapsulated data by applying a header related to information about a robot including a data processing device and an end related to series information of the robot to the encoded payload.The method of claim 14, wherein in response to the authentication token not being included in the decoded target data, the method further comprises: converting the target data into irregular data; and transmitting the irregular data and the channel filter information to the control server via the communication device.The method of claim 13, wherein in response to an error in parsing the decoded target data based on the target format, the method further comprises converting the target data into irregular data; and transmitting the irregular data and the channel filter information to the control server via the communication device.The method of claim 11, wherein obtaining the encapsulated target data comprises: obtaining a reception format of the target service module extracted from the channel filter information; and transmitting the encapsulated target data by converting a format of the encapsulated target data to the reception format.The method of claim 11, further comprising applying source code input via a user interface to the first filter, the second filter, or both the first filter and the second filter.The method of claim 19, further comprising: identifying a command relating to the target data, a reception type, a transmission type, the target service module, or any combination thereof from the user interface; and generating the channel filter information by binding the command, the reception type, the transmission type, the target service module, or any combination thereof.