WO2015183016A1 - 데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법 - Google Patents

데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법 Download PDF

Info

Publication number
WO2015183016A1
WO2015183016A1 PCT/KR2015/005368 KR2015005368W WO2015183016A1 WO 2015183016 A1 WO2015183016 A1 WO 2015183016A1 KR 2015005368 W KR2015005368 W KR 2015005368W WO 2015183016 A1 WO2015183016 A1 WO 2015183016A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
data
memory
memory read
engine
Prior art date
Application number
PCT/KR2015/005368
Other languages
English (en)
French (fr)
Inventor
강민구
최원석
한재규
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Publication of WO2015183016A1 publication Critical patent/WO2015183016A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Definitions

  • the present invention relates to a data processing apparatus and a method of confirming data recorded in a memory of the data processing apparatus. More specifically, in a data processing apparatus for loading a data object into a memory and updating the data object on the memory, a method of checking data included in a data object on a memory and a data processing apparatus to which the method is applied It is about.
  • the data object may be stored in the form of a database.
  • the software engine loads the data object from the database every time it executes specific logic, and then updates the value and reflects the updated value in the database, the software engine is difficult to process a plurality of requests.
  • a memory-based software engine for placing data objects on a memory with high I / O processing speed and managing the data objects on the memory.
  • the memory-based software engine may be provided with a large number of query requests or logic execution requests in a short time, and the memory-based software engine provides processing results at a high speed with respect to the provided requests.
  • such a memory-based software engine does not provide a method for checking what data is set in a data object on a memory and maintaining the consistency of the data. Even if the data written in the memory is read directly by accessing the data object on the memory, the memory-based software engine does not exclude the possibility of performing the data update according to the logic execution request at that moment. For example, when it is desired to check data for a specific subject of a data object at the present time, at the moment of reading the data to be verified, some values of the data to be verified may be updated by the software engine. In that case, the consistency of the data will be destroyed.
  • the technical problem to be solved by the present invention is to configure a data object on a memory, to receive an engine application program interface (API) message, and to perform software logic corresponding to the provided engine API message to perform the A data processing apparatus for managing data objects on a memory, the present invention provides a method for processing a real-time confirmation request for data on a memory and a data processing apparatus to which the method is applied.
  • API application program interface
  • Another technical problem to be solved by the present invention is a method for processing a real-time confirmation request for data on a memory by using a reception and processing scheme for an existing engine API message in the data processing apparatus, and data processing to which the method is applied. To provide a device.
  • a method of verifying data comprising: receiving a memory read message and inserting the memory read message into a message queue into which an engine application program interface (API) message is inserted; If an engine API message is extracted from the message queue, performing logic corresponding to the engine API message, and then applying the result to a data object recorded in a memory; and a memory read message in the message queue. If is extracted, the method may include reading at least some of the data objects from the memory and providing the read data.
  • API engine application program interface
  • the memory read message and the engine API message may be composed of text using the same representation.
  • the data checking method may further include extracting a next message from the message queue after processing of the message extracted from the queue is completed.
  • the data verification method may further include loading the data object from a database into the memory before performing logic corresponding to the engine API message.
  • the data object may be managed by a planning engine that operates in conjunction with an enterprise resource planning (ERP) system.
  • the planning engine may be, for example, one of an order promising engine, an allocation engine, a master planning, and a factory planning engine.
  • a data processing apparatus including a message queue management unit receiving a memory and a memory read message and inserting the received memory read message into a message queue into which an engine API message is inserted.
  • an engine function execution unit configured to perform logic corresponding to the engine API message and apply a result of the logic to a data object recorded in the memory, and a memory in the message queue.
  • the memory device may include a memory read function execution unit that reads at least some of the data objects from the memory and provides read data.
  • FIG. 1 is a conceptual diagram schematically illustrating embodiments of the present invention.
  • FIG. 2 is a flowchart of a data checking method according to an embodiment of the present invention.
  • FIG. 3 is a flowchart of a data checking method according to another embodiment of the present invention.
  • FIG. 4 is a detailed flowchart of some operations of the data checking method illustrated in FIG. 3.
  • 5A through 5B are diagrams illustrating a virtual memory read message and an engine API message converted into an object provided from an external device or an input device according to embodiments of the present invention.
  • 5C illustrates a virtual response message for a virtual memory read message according to embodiments of the present invention.
  • FIG. 6 is a flowchart of a data checking method according to another embodiment of the present invention.
  • FIG. 7 is a flowchart of a data checking method according to another embodiment of the present invention.
  • FIG. 8 is a block diagram of a data processing apparatus according to another embodiment of the present invention.
  • FIG. 9 is a hardware configuration diagram of a data processing apparatus according to still another embodiment of the present invention.
  • FIG. 10 is a configuration diagram of a data processing system according to another embodiment of the present invention.
  • FIG. 11 is a configuration diagram of a data processing system according to another embodiment of the present invention.
  • logic or routine refers to a series of instructions that can be executed by a processor, and is not limited to those written by a specific programming language.
  • a message queue 10 into which engine API messages provided from an external device or provided through a network are inserted.
  • a queue is a data structure in which input and output are performed in a first in first out (FIFO) manner.
  • FIFO first in first out
  • messages inserted into the message queue 10 are processed on a first-come, first-served basis.
  • the message queue 10 may be configured in various ways such as an array, a linked list, and a circular queue.
  • logic 30 corresponding to the engine API message is performed.
  • a message parser (not shown) for parsing the engine API message may be further provided to determine the logic 30 corresponding to the engine API message.
  • the API correspondence logic 30 queries some data from the data object 22 recorded in the memory 20 or updates some data of the data object 22 recorded in the memory 20 to achieve a predetermined purpose. can do. After the API correspondence logic 30 completes the operation, the next message is extracted from the message queue 10 and processed.
  • the memory 20 is connected to a processor (not shown) to provide instructions to the processor and to temporarily store data output from the processor.
  • the memory 20 may be configured as, for example, a random access memory (RAM), but the memory referred to in the present invention is not limited to indicating a RAM.
  • the message queue 10 is inserted not only the engine API message but also a memory read message provided from an external device through a network or provided from an input device.
  • the memory read message may be composed of text using the same representation as the engine API message. Accordingly, the memory read message may also be parsed using a message parser that parses an existing engine API message.
  • both the memory read message and the engine API message may include a type item indicating a type of a message.
  • a data designation ID indicating a data in a data object to be checked in the type item may be set in the type item.
  • a logic ID indicating a corresponding logic to be performed may be set in the type item in the engine API message.
  • the logic ID and the data designation ID are defined to have different values in a range of different values. For example, you can DEFINE the following:
  • Table 1 is an example of a symbol DEFINE code that can be used in a data verification method and a data processing apparatus to which the method is applied according to embodiments of the present invention.
  • the data designation ID is preferably specified in another range so as not to overlap with existing logic IDs API_A to API_F.
  • the message When the message is extracted from the message queue 10, it may be determined whether the message is a memory read message or an engine API message by using the value of the type item included in the message. If the extracted message is an engine API message, the corresponding API logic 30 will be performed. If the extracted message is a memory read message, the corresponding memory read logic 40 will be performed.
  • the message queue 10 extracts the next message only when the execution of logic corresponding to the previously extracted message is completed. For example, assuming that API_D, API_E, API_F, MEMORY_CHECK_B, and API_A shown in Table 1 are sequentially input to the message queue 10, the MEMORY_CHECK_B message is in memory 20 after all API_D, API_E, and API_F have been performed. Some of the data of the data object 22 is outputted. The data output by the MEMORY_CHECK_B message makes it possible to check the state of the data object 22 after the execution of API_D, API_E, API_F is completed. The data output by the MEMORY_CHECK_B message is the data not affected by the execution of API_A. That is, according to embodiments of the present invention, when the engine API messages are executed in a sequence, there is an effect of accurately confirming the state of the data object 22 at a specific point in time with the consistency of data.
  • the data object 22 recorded and configured in the memory 20 may be loaded from the database 50 and exported to the database 50. Exporting the data object 22 recorded in the memory 20 to the database 50 may be performed periodically or upon occurrence of a specific event.
  • the data verification method according to the present embodiment may be executed by, for example, a data processing apparatus in which a planning engine connected to an enterprise resource planning (ERP) system is executed.
  • the planning engine may include, for example, an order promising engine that accepts an order and provides delivery information for the order, the child ATP quantity of the root node in a hierarchical network of sellers.
  • Production planning (Master planning) to establish the entire production plan for each bucket (bucket), a time management unit using Allocation quantity allocation engine distributed to the nodes, order information and resource holding information, each factory receives the production plan It can be one of the factory planning engines that create a star production plan.
  • the engine API message is received (S100), and the provided engine API message is inserted into the message queue (S102).
  • the memory read message is received (S104), and the received memory reel message is inserted into the message queue (S106).
  • the order in which the engine API message and the memory read message are provided may be changed.
  • the message queue into which the memory read message is inserted and the message queue into which the engine API message is inserted are the same.
  • the memory read message when the memory read message is received from the terminal, the memory read message may be inserted into the message queue only when the terminal that has sent the memory read message is registered as a terminal having a memory read authority. That is, a terminal capable of real-time checking of data recorded in the memory through the memory read message may be limited to a terminal registered in advance.
  • Extracting a message from a message queue means outputting a message recorded in an extraction location slot of a message queue, deleting the output message from the extraction location slot, and moving a pointer to the extraction location slot.
  • the extracted message may be parsed by the message parser.
  • the extracted message since the engine API message and the memory read message are composed of text using the same notation, the extracted message may be parsed using the message parser for the engine API message even if the extracted message is a memory read message. .
  • the memory read message and the engine API message include a type item indicating the type of the message, the extracted message is based on the data set in the type item of the extracted message. Which one can be determined (S110).
  • the extracted message is a memory read message
  • the confirmation target data in the data object indicated by the data designation ID described in the type item and the additional information included in the memory read message is determined, and the confirmation target data is read from the memory.
  • the read data is formatted into output data.
  • the logic performed by the memory read message preferably does not perform any write command to the memory.
  • the extracted message is an engine API message
  • logic corresponding to the logic ID described in the type item is performed (S116).
  • at least some of the additional information included in the engine API message may be used as an input parameter for the logic.
  • next message extraction from the message queue is performed after the processing for the previously extracted message is completed (S114, S118).
  • a data verification method will be described with reference to FIG. 3.
  • an operation of receiving a message (S200) and inserting the message into a message queue (S202) and extracting a message from the message queue and performing a corresponding process are performed by different threads ( thread).
  • message reception and insertion into a message queue and message extraction and processing in a message queue can be performed in parallel at the same time.
  • an operation of receiving a message and inserting the message into a message queue and extracting a message from the message queue and performing a corresponding process may be modified by different processes.
  • the message queue is not empty (S300), and one message is extracted (S302), and the type of the message is checked through parsing the extracted message (S304). .
  • the extracted message is a memory read message (S206)
  • the data to be checked is read from a memory, and the read data is formatted as output data to provide the output data (S310).
  • the extracted message is an engine API message
  • logic corresponding to the logic ID described in the type item is performed, and the logic execution result is applied to the data object of the memory (S308).
  • both the engine API message and the memory read message may be text expressed by a JavaScript Object Notation (JSON) notation. See the website "http://www.json.org/" for the JSON representation. Text by JSON can be converted to an object using the JavaScript EVAL () function (S304a).
  • FIG. 5A is a representation 60 after the JSON-formatted text of the engine API message is converted to an object
  • FIG. 5B is a representation 70 after the JSON-formatted text of the memory read message is converted to an object.
  • both the engine API message and the memory read message may have a type item.
  • API_type is a string indicating a type item.
  • JavaScript code for example, "obj_name.API_type”
  • both the engine API message and the memory read message may be text expressed by an XML (eXtensible Markup Language) expression.
  • XML eXtensible Markup Language
  • the memory read message converted to the object as shown in Fig. 5B is processed, the data to be confirmed of the data object recorded in the memory is read in real time, the read data is processed into an output format.
  • 5C is an example of an output format. For example, a claim that data output from the planning engine is abnormal during the operation of the planning engine is received, or a plurality of engine API messages are simulated by virtually inputting the engine API during the stabilization operation of the planning engine, and then output from the planning engine. If an error is found in the data, the output format as shown in FIG. 5C may be useful for checking whether there is a problem with the planning engine itself. This is because the data included in the output format shown in FIG. 5C shows the data recorded in the memory at the time when the memory read message is performed (the time extracted from the message queue).
  • a data verification method will be described with reference to FIG. 6.
  • the data checking method according to the present embodiment may be utilized when performing an initial stabilization operation before starting a formal service using a data processing system in which a software engine performing a predetermined function is performed.
  • test for the software engine In order to test whether the engine is operating normally, the tester inputs a plurality of engine API messages to the software engine (S402). The test person checks whether the response of the software engine by the plurality of engine API messages is normal (S404).
  • the tester may input the memory read message together with the plurality of engine API messages (S404). For example, if API_D, API_E, API_F, and API_A are executed sequentially, and the final response of the software is found to be abnormal, the change of data objects written to memory after each engine API execution is checked by STEP BY STEP. In this case, the tester may sequentially input API_D, memory read message, API_E, memory read message, API_F, memory read message, API_A, and memory read message.
  • logic for processing the memory read message will be unnecessary during the actual service. Therefore, the logic for processing the memory read message may be deactivated in various ways to prevent unnecessary execution speed reduction at the end of the test (S406). For example, in a series of code that performs a matched routine based on the type of message extracted from the message queue, if the type of message corresponds to a memory read message, the series of code that performs the matched routine is annotated. Can be processed. After the engine test is completed, the formal service will be started (S408).
  • a data verification method according to another embodiment of the present invention will be described with reference to FIG. 7.
  • data is loaded from the database into the memory (S500), and a data object is constructed on the memory (S502).
  • a data object is constructed on the memory (S502).
  • data on order receipt and delivery appointment status for each seller node recorded in the database may be loaded into the memory from the database.
  • a routine corresponding to the input engine API message is performed (S506).
  • the routine to be performed achieves a predetermined purpose using only the data object configured on the memory, without I / O to the database, and the execution result is directly applied to the data object (S508).
  • the data object in memory is always updated with the latest value.
  • the check target data is read from the memory (S512).
  • the read data is processed and provided in an output format (S514). For example, when the memory read message is received from a terminal connected to a network and a data processing apparatus on which the data checking method according to the present embodiment is performed, the read data is processed into an output format and provided to the terminal.
  • the read data is processed into an output format and displayed on an output device (for example, a monitor device).
  • the data object recorded and configured in the memory may be exported back to the database (S516).
  • the export may be performed periodically or when a specific event occurs.
  • the data processing device 600 may be a computing device.
  • the data processing device 600 may be a computing device that executes a software engine that performs a specific function.
  • the data processing apparatus 600 may include a memory 602, a message queue manager 604, an engine function performer 610, and a memory read function performer 612.
  • the memory 602 is a main memory device that is connected to a processor (not shown) and provides instructions to the processor.
  • the memory 602 may be configured as a RAM.
  • the data object 622 is recorded in the memory 602, and the message queue 620 is also recorded.
  • the message queue manager 604 receives the memory read message and the engine API message, and inserts the received memory read message into the message queue into which the engine API message is inserted. That is, the message queue manager 604 inserts both the engine API message and the memory read message into the message queue 620.
  • the message queue manager 604 extracts messages from the message queue 620 one by one and provides them to the message parser 608.
  • the time point at which the message queue manager 604 extracts a message from the message queue 620 is a time point at which the processing of the engine function performer 610 or the message read function performer 612 for the message immediately extracted is terminated. .
  • the message parser 608 extracts the message from the message queue 620 and determines whether the extracted message is an engine API message or a memory read message based on the data set in the type item of the extracted message.
  • the message parser 608 delivers the extracted message to one of the engine function performing unit 610 and the memory read function performing unit 612 according to the determination result. If the message written to the message queue is composed of text in JSON representation, the message parser 608 may convert the JSON text into an object and then determine whether the extracted message is an engine API message or a memory read message. have.
  • the engine function performing unit 610 When the engine API message is extracted from the message queue 620, the engine function performing unit 610 performs logic corresponding to the engine API message, and records the execution result of the logic in the data object 622 in the memory 602. Applies to).
  • the memory read function performing unit 612 When the memory read message is extracted from the message queue 620, the memory read function performing unit 612 reads at least some of the data objects 622 from the memory 602, and reads the read data into the interface unit 606. to provide. As mentioned above, the memory read function performing unit 612 may be activated only when the data processing apparatus 600 operates in the debugging mode or the test mode. For example, the memory read function performing unit 612 may match the memory read message when the message type corresponds to the memory read message in a series of codes that perform a matching routine according to the message type extracted from the message queue. It can be deactivated by commenting out a series of code that executes a routine.
  • the interface unit 606 receives the memory read message and the engine API message from the network or the input device and provides the message to the message queue manager 604.
  • the interface unit 606 receives the data to be confirmed in the output format from the message read function performing unit 612 and transmits the processed data to an external device through a network, or outputs such as a display device through a system bus (not shown). To the device.
  • Each component of FIG. 8 may refer to software or hardware such as a field-programmable gate array (FPGA) or an application-specific integrated circuit (ASIC).
  • FPGA field-programmable gate array
  • ASIC application-specific integrated circuit
  • the components are not limited to software or hardware, and may be configured to be in an addressable storage medium and may be configured to execute one or more processors.
  • the functions provided in the above components may be implemented by more detailed components, or may be implemented as one component that performs a specific function by combining a plurality of components.
  • a data processing apparatus may include a system bus 706, a processor 702, a random access memory (RAM) 704, a storage 708, and a communication or input / output device with an external device. It may include an interface unit 710 for the connection of.
  • Computer program code that implements a method for verifying data in accordance with the present invention may be stored in storage 708, loaded into RAM 704, and executed by processor 702. As a result of the execution of the computer program code, a data object may be recorded in the RAM 704 and a message queue may be recorded.
  • the data processing system may include the data processing device 600, the input device 630, and the output device 640 described with reference to FIG. 8.
  • the input device 630 may be any one of a touch screen, a keyboard, a mouse, and a stylus pen
  • the output device 640 may be any one of a monitor, a TV, a projector, and a hologram output device.
  • the input device 630 generates an input signal according to a user's input and provides it to the data processing device 600.
  • the input signal may be converted into either the engine API message or the memory read message by the data processing device 600.
  • the output device 640 may display a response output in response to the memory read message.
  • the data processing system according to the present exemplary embodiment may include the data processing apparatus 600 and the terminal 650 described with reference to FIG. 8.
  • the terminal 650 is a computing device having a network connection function.
  • the terminal 650 may be one of a laptop PC, a desktop PC, a tablet PC, a smart phone, and a set top box.
  • the terminal 650 transmits the engine API message and the memory read message to the data processing apparatus 600 through a network.
  • the terminal 650 may receive output data including data to be confirmed on the memory corresponding to the memory read message from the data processing device 600 in response to the input of the memory read message.
  • the terminal 650 may perform a registration procedure with respect to the data processing apparatus 600 so that the data recorded in the memory may be checked in real time through the memory read message.
  • the concepts of the present invention described above with reference to FIGS. 1 through 11 may be implemented in computer readable code on a computer readable medium.
  • the computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer equipped hard disk). Can be.
  • the computer program recorded in the computer-readable recording medium may be transmitted to another computing device and installed in the other computing device through a network such as the Internet, thereby being used in the other computing device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

데이터 처리 장치에 있어서, 기존의 엔진 API 메시지에 대한 접수 및 처리 체계를 이용하여 메모리 상의 데이터에 대한 실시간 확인 요청을 처리하는 방법이 제공 된다. 본 발명의 일 실시예에 따른 데이터 확인 방법은 메모리 리드 메시지를 제공 받는 단계, 상기 메모리 리드 메시지를 엔진 API(Application Program Interface) 메시지가 삽입되는 메시지 큐에 삽입하는 단계, 상기 메시지 큐에서 엔진 API 메시지가 추출되는 경우, 상기 엔진 API 메시지에 대응하는 로직을 수행한 후, 그 결과를 메모리에 기록된 데이터 객체에 적용하는 단계, 및 상기 메시지 큐에서 메모리 리드(read) 메시지가 추출되는 경우, 상기 메모리에서 상기 데이터 객체 중 적어도 일부를 리드하고, 리드 된 데이터를 제공하는 단계를 포함한다.

Description

데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법
본 발명은 데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법에 관한 것이다. 보다 자세하게는, 메모리에 데이터 객체(object)를 로딩하고, 상기 메모리 상에서 상기 데이터 객체를 갱신하는 데이터 처리 장치에 있어서, 메모리 상의 데이터 객체에 포함된 데이터를 확인하는 방법 및 그 방법이 적용된 데이터 처리 장치에 관한 것이다.
특정 기능을 수행하고, 그 결과를 데이터 객체로 구성하여 관리하는 소프트웨어 엔진이 설치된 데이터 처리 장치에서, 상기 데이터 객체는 데이터베이스의 형태로 저장 될 수 있다. 그런데, 상기 소프트웨어 엔진이 특정 로직을 수행할 때마다 상기 데이터 객체를 데이터베이스로부터 로드 한 후, 그 값을 갱신하고 갱신된 값을 데이터베이스에 반영해야 한다면, 상기 소프트웨어 엔진은 다수의 요청을 처리하기 어렵다.
이러한 기술적 필요에 따라, 데이터 객체를 I/O 처리 속도가 빠른 메모리 상에 두고, 상기 메모리 상에서 데이터 객체를 관리하는 메모리 기반 소프트웨어 엔진이 제공된다. 상기 메모리 기반 소프트웨어 엔진에는 짧은 시간 내에 많은 수의 조회 요청 또는 로직 수행 요청이 제공될 수 있고, 상기 메모리 기반 소프트웨어 엔진은 상기 제공된 요청들에 대하여 빠른 속도로 처리 결과를 제공 한다.
그런데, 이러한 메모리 기반 소프트웨어 엔진에서는 메모리 상의 데이터 객체에 어떠한 데이터가 셋팅 되어 있는지, 상기 데이터의 정합성이 유지된 상태로 확인하기 위한 방법이 제공되지 않고 있다. 메모리 상의 데이터 객체에 직접 억세스 하여 메모리에 기록된 데이터를 리드(read) 하더라도, 그 순간 상기 메모리 기반 소프트웨어 엔진이 로직 수행 요청에 따른 데이터 갱신을 수행했을 가능성을 배제하지 못하기 때문이다. 예를 들어, 현재 시점에서 데이터 객체의 특정 주체에 대한 데이터를 확인하고자 할 때, 확인 대상 데이터를 리드(read) 하는 순간 상기 확인 대상 데이터의 일부 값이 상기 소프트웨어 엔진에 의하여 갱신될 수 있고, 이러한 경우에는 데이터의 정합성이 파괴될 것이다.
본 발명이 해결하고자 하는 기술적 과제는 메모리 상에서 데이터 객체(object)를 구성하고, 엔진 API(Application Program Interface) 메시지를 제공 받고, 상기 제공 받은 엔진 API 메시지에 대응하는 소프트웨어 로직(logic)을 수행하여 상기 메모리 상의 데이터 객체를 관리하는 데이터 처리 장치에 있어서, 메모리 상의 데이터에 대한 실시간 확인 요청을 처리하는 방법 및 그 방법이 적용된 데이터 처리 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 상기 데이터 처리 장치에 있어서, 기존의 엔진 API 메시지에 대한 접수 및 처리 체계를 이용하여 메모리 상의 데이터에 대한 실시간 확인 요청을 처리하는 방법 및 그 방법이 적용된 데이터 처리 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 데이터 확인 방법은 메모리 리드(read) 메시지를 제공 받는 단계, 상기 메모리 리드 메시지를 엔진 API(Application Program Interface) 메시지가 삽입되는 메시지 큐에 삽입하는 단계, 상기 메시지 큐에서 엔진 API 메시지가 추출되는 경우, 상기 엔진 API 메시지에 대응하는 로직을 수행한 후, 그 결과를 메모리에 기록된 데이터 객체에 적용하는 단계, 및 상기 메시지 큐에서 메모리 리드 메시지가 추출되는 경우, 상기 메모리에서 상기 데이터 객체 중 적어도 일부를 리드(read)하고, 리드 된 데이터를 제공하는 단계를 포함할 수 있다.
일부 실시예에 따르면, 상기 메모리 리드 메시지와 상기 엔진 API 메시지가 동일한 표현법에 의한 텍스트로 구성될 수 있다.
일부 실시예에 따르면, 상기 데이터 확인 방법이 상기 큐에서 추출된 메시지에 대한 처리가 완료된 후, 상기 메시지 큐에서 다음 메시지를 추출하는 단계를 더 포함할 수 있다.
일부 실시예에 따르면, 상기 데이터 확인 방법이 상기 엔진 API 메시지에 대응하는 로직을 수행하기에 앞서, 데이터베이스에서 상기 메모리로 상기 데이터 객체를 로드(load) 하는 단계를 더 포함할 수 있다.
일부 실시예에 따르면, 상기 데이터 객체는 ERP(Enterprise Resource Planning) 시스템과 연동하여 동작하는 플래닝 엔진에 의하여 관리될 수 있다. 상기 플래닝 엔진은, 예를 들어 납기 약속(Order promising) 엔진, 할당(Allocation) 엔진, 생산 계획(Master planning), 공장 계획(Factory planning) 엔진 중 하나 일 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 데이터 처리 장치는 메모리, 메모리 리드 메시지를 제공 받고, 제공 받은 상기 메모리 리드 메시지를 엔진 API 메시지가 삽입되는 메시지 큐에 삽입하는 메시지 큐 관리부, 상기 메시지 큐에서 엔진 API 메시지가 추출되는 경우, 상기 엔진 API 메시지에 대응하는 로직을 수행하고, 로직의 수행 결과를 상기 메모리에 기록된 데이터 객체에 적용하는 엔진 기능 수행부, 및 상기 메시지 큐에서 메모리 리드 메시지가 추출되는 경우, 상기 메모리에서 상기 데이터 객체 중 적어도 일부를 리드하고, 리드 된 데이터를 제공하는 메모리 리드 기능 수행부를 포함할 수 있다.
상기와 같은 본 발명에 따르면, 오더 정보가 납기 약속 장치에 제공 되기 전에, 시스템화 된 방식으로 상기 납기 약속을 하기 위한 정보(ATP, Allocation)를 조정 및 확인 할 수 있는 효과가 있다.
또한, 상기 납기약속을 위한 정보(ATP, Allocation)를 조정함에 있어서, 다양한 조정 규칙을 지원할 수 있는 효과가 있다.
도 1은 본 발명의 실시예들을 개괄적으로 설명하는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 확인 방법의 순서도이다.
도 3은 본 발명의 다른 실시예에 따른 데이터 확인 방법의 순서도이다.
도 4는 도 3에 도시된 데이터 확인 방법 중 일부 동작의 상세 순서도이다.
도 5a 내지 5b는 본 발명의 실시예들에 따라 외부 장치 또는 입력 장치로부터 제공되는, 객체로 변환된 가상의 메모리 리드 메시지 및 엔진 API 메시지를 나타내는 도면이다.
도 5c는 본 발명의 실시예들에 따른 가상의 메모리 리드 메시지에 대한 가상의 응답 메시지를 나타내는 도면이다.
도 6은 본 발명의 또 다른 실시예에 따른 데이터 확인 방법의 순서도이다.
도 7은 본 발명의 또 다른 실시예에 따른 데이터 확인 방법의 순서도이다.
도 8은 본 발명의 또 다른 실시예에 따른 데이터 처리 장치의 블록 구성도이다.
도 9는 본 발명의 또 다른 실시예에 따른 데이터 처리 장치의 하드웨어 구성도이다.
도 10은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템의 구성도이다.
도 11은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템의 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에서 로직(LOGIC) 또는 루틴(ROUTINE)은 프로세서에 의하여 수행 될 수 있는 일련의 명령어(OPERATION)를 의미하며, 특정 프로그래밍 언어에 의하여 작성 된 것으로 한정 되지 않는다.
먼저, 도 1을 참조하여 본 발명의 실시예들을 개괄적으로 설명한다.
본 발명의 실시예들에 따르면 외부 장치로부터 네트워크를 통해 제공되거나 입력 장치로부터 제공된 엔진 API 메시지가 삽입되는 메시지 큐(queue)(10)가 제공된다. 널리 알려진 바와 같이, 큐는 FIFO(First In First Out) 방식으로 입출력이 이뤄지는 데이터 구조이다. 따라서, 메시지 큐(10)에 삽입되는 메시지는 선착순으로 처리된다. 메시지 큐(10)는 어레이(array), 링크드 리스트(linked list), 서큘러 큐(circular queue) 등 다양한 방식으로 구성될 수 있다.
메시지 큐(10)에서 상기 엔진 API 메시지가 추출되면, 상기 엔진 API 메시지에 대응되는 로직(30)이 수행된다. 이 때, 상기 엔진 API 메시지에 대응되는 로직(30)을 결정하기 위해 상기 엔진 API 메시지를 파싱(parsing)하는 메시지 파서(미도시)가 더 제공될 수 있다. API 대응 로직(30)은 소정의 목적을 달성하기 위해 메모리(20)에 기록된 데이터 객체(22)로부터 일부 데이터를 조회하거나, 메모리(20)에 기록된 데이터 객체(22)의 일부 데이터를 갱신할 수 있다. API 대응 로직(30)이 동작을 완료한 후 메시지 큐(10)에서 다음 메시지가 추출되어 처리된다.
메모리(20)는 프로세서(미도시)와 연결되어 프로세서에 명령어를 제공하고, 프로세서로부터 출력된 데이터를 일시적으로 저장하는 장치이다. 메모리(20)는 예를 들어 RAM(Random Access Memory)로 구성될 수 있으나, 본 발명에서 지칭하는 메모리는 RAM을 가리키는 것으로 한정되지는 않는다.
일 실시예에 따르면, 메시지 큐(10)에 상기 엔진 API 메시지 뿐만 아니라 외부 장치로부터 네트워크를 통해 제공되거나 입력 장치로부터 제공된 메모리 리드 메시지도 삽입 된다.
일 실시예에 따르면, 상기 메모리 리드 메시지는 상기 엔진 API 메시지와 동일한 표현법에 의한 텍스트로 구성될 수 있다. 따라서, 기존의 엔진 API 메시지를 파싱하는 메시지 파서를 이용하여 상기 메모리 리드 메시지도 파싱할 수 있다.
일 실시예에 따르면, 상기 메모리 리드 메시지와 상기 엔진 API 메시지 모두 메시지의 타입을 가리키는 타입 항목을 포함할 수 있다. 예를 들어, 상기 메모리 리드 메시지에는 상기 타입 항목에 확인을 원하는 데이터 객체 내 데이터를 가리키는 데이터 지정 ID가 상기 타입 항목에 셋팅 될 수 있다. 또한, 상기 엔진 API 메시지에는 수행 되어야 할 대응 로직을 가리키는 로직 ID가 상기 타입 항목에 셋팅 될 수 있다. 상기 로직 ID와 상기 데이터 지정 ID는 서로 다른 값의 범위에서 모두 다른 값을 가지도록 DEFINE 되는 것이 바람직하다. 예를 들어, 아래와 같이 DEFINE 할 수 있다.
표 1
#DEFINE ENGINE_API_NUMBER 100
#DEFINE API_A 1
#DEFINE API_B 2
#DEFINE API_C 3
#DEFINE API_D 4
#DEFINE API_E 5
#DEFINE API_F 6
... ...
#DEFINE MEMORY_CHECK_A ENGINE_API_NUMBER+1
#DEFINE MEMORY_CHECK_B ENGINE_API_NUMBER+2
#DEFINE MEMORY_CHECK_C ENGINE_API_NUMBER+3
#DEFINE MEMORY_CHECK_D ENGINE_API_NUMBER+4
#DEFINE MEMORY_CHECK_E ENGINE_API_NUMBER+5
상기 표 1은 본 발명의 실시예들에 따른 데이터 확인 방법 및 그 방법이 적용된 데이터 처리 장치에서 사용될 수 있는 심볼 DEFINE 코드의 일 예이다. 표 1에 도시된 바와 같이, 상기 데이터 지정 ID는 기존의 로직 ID(API_A 내지 API_F)와 겹치지 않도록 다른 범위에서 지정되는 것이 바람직하다.
메시지 큐(10)에서 메시지가 추출되면, 메시지에 포함된 상기 타입 항목의 값을 이용하여 메시지가 메모리 리드 메시지인지 아니면 엔진 API 메시지인지 확인할 수 있다. 추출된 메시지가 엔진 API 메시지라면 대응하는 API 로직(30)이 수행될 것이고, 추출된 메시지가 메모리 리드 메시지라면 대응하는 메모리 리드 로직(40)이 수행될 것이다.
메시지 큐(10)에서는, 이전에 추출된 메시지에 대응하는 로직의 수행이 완료된 경우에 한하여 다음의 메시지를 추출한다. 예를 들어, 표 1에 도시된 API_D, API_E, API_F, MEMORY_CHECK_B, API_A가 순차적으로 메시지 큐(10)에 입력된다고 할 때, MEMORY_CHECK_B 메시지는 API_D, API_E, API_F가 모두 수행 된 후의 메모리(20) 내 데이터 객체(22)의 데이터 중 일부가 출력되도록 한다. MEMORY_CHECK_B 메시지에 의하여 출력된 데이터는 API_D, API_E, API_F의 수행이 모두 완료된 후의 데이터 객체(22)의 상태를 확인할 수 있도록 한다. MEMORY_CHECK_B 메시지에 의하여 출력된 데이터는 API_A의 수행에 의하여 영향을 받지 않은 데이터이다. 즉, 본 발명의 실시예들에 따르면, 엔진 API 메시지가 일련의 순서에 따라 실행될 때, 특정 시점의 데이터 객체(22) 상태를 데이터의 정합성이 유지된 상태로 정확하게 확인할 수 있는 효과가 있다.
한편, 메모리(20)가 RAM으로 구성되는 경우, 전원-OFF와 동시에 저장된 데이터가 삭제된다. 따라서, 메모리(20)에 기록되어 구성되는 데이터 객체(22)는 데이터 베이스(50)로부터 LOAD 되고, 데이터 베이스(50)로 EXPORT될 수 있다. 메모리(20)에 기록된 데이터 객체(22)가 데이터 베이스(50)로 EXPORT되는 것은, 주기적으로 수행 되거나, 특정 이벤트의 발생 시에 수행 될 수 있다.
본 발명의 일 실시예에 따른 데이터 확인 방법에 대하여, 도 2를 참조하여 설명한다. 본 실시예에 따른 데이터 확인 방법은, 예를 들어 ERP(Enterprise Resource Planning) 시스템과 연결된 플래닝 엔진이 실행되는 데이터 처리 장치에 의하여 실행 될 수 있으나, 실시 주체가 한정되는 것은 아니다. 상기 플래닝 엔진은, 상기 플래닝 엔진은, 예를 들어 주문을 접수하고, 해당 주문에 대한 납기 정보를 제공하는 납기 약속(Order promising) 엔진, 계층적으로 구성된 판매자 네트워크에서 루트 노드가 가진 ATP 수량을 자식 노드들로 분배하는 Allocation 수량 할당 엔진, 주문 정보 및 리소스 보유 정보 등을 이용하여 시간 관리 단위인 버켓(bucket) 별 전체 생산 계획을 수립하는 생산 계획(Master planning), 상기 생산 계획을 제공 받아 각 공장 별 생산 계획을 수립하는 공장 계획(Factory planning) 엔진 중 하나 일 수 있다.
엔진 API 메시지를 제공 받아(S100), 제공 받은 엔진 API 메시지를 메시지 큐에 삽입한다(S102). 메모리 리드 메시지를 제공 받아(S104), 제공 받은 메모릴 리드 메시지를 상기 메시지 큐에 삽입한다(S106). 도 2에 도시된 것과 달리 엔진 API 메시지와 메모리 리드 메시지를 제공 받는 순서는 서로 바뀔 수 있다. 다만, 메모리 리드 메시지가 삽입되는 메시지 큐와 엔진 API 메시지가 삽입되는 메시지 큐는 동일한 점을 유의한다.
한편, 메모리 리드 메시지가 단말로부터 수신되는 경우, 메모리 리드 메시지를 송신한 단말이 메모리 리드 권한이 있는 단말로 등록된 경우에 한하여 상기 메모리 리드 메시지를 상기 메시지 큐에 삽입할 수 있다. 즉, 메모리 리드 메시지를 통하여 메모리에 기록 된 데이터를 실시간 확인 할 수 있는 단말은 미리 등록 된 단말으로 한정 될 수 있다.
메시지 큐에서 메시지 1개를 추출한다(S108). 메시지 큐에서 메시지를 추출하는 것은, 메시지 큐의 추출 위치 슬롯에 기록 된 메시지를 출력 하고, 상기 출력된 메시지를 상기 추출 위치 슬롯에서 삭제하며, 상기 추출 위치 슬롯을 가리키는 포인터를 이동 시키는 것을 의미한다.
추출된 메시지는 메시지 파서에 의하여 파싱(parsing) 될 수 있다. 이미 언급한 바와 같이, 일 실시예에 따르면 엔진 API 메시지와 메모리 리드 메시지는 동일한 표현법에 의한 텍스트로 구성된 것이므로, 추출된 메시지가 메모리 리드 메시지라도 엔진 API 메시지 용 메시지 파서를 그대로 이용하여 파싱 할 수 있다. 또한, 상기 메모리 리드 메시지와 상기 엔진 API 메시지는 메시지의 타입을 가리키는 타입 항목을 포함하므로, 상기 추출된 메시지의 상기 타입 항목에 셋팅 된 데이터를 바탕으로 추출 된 메시지가 엔진 API 메시지 및 메모리 리드 메시지 중 어느 것인지 판단할 수 있다(S110).
상기 추출된 메시지가 메모리 리드 메시지인 경우, 상기 타입 항목에 기재된 데이터 지정 ID 및 상기 메모리 리드 메시지에 포함된 부가 정보가 가리키는 데이터 객체 내 확인 대상 데이터를 결정하고, 메모리에서 상기 확인 대상 데이터를 리드 하며, 리드 된 데이터를 출력 데이터로 포맷팅 한다(S112). 메모리 리드 메시지로 인하여 메모리에 기록 된 데이터 객체가 손상되는 것을 방지하기 위하여, 메모리 리드 메시지에 의하여 수행 되는 로직은 메모리에 대한 어떠한 라이트(WRITE) 커맨드도 수행하지 않는 것이 바람직하다.
상기 추출된 메시지가 엔진 API 메시지인 경우, 상기 타입 항목에 기재된 로직 ID에 대응하는 로직을 수행한다(S116). 이 때, 상기 엔진 API 메시지에 포함된 부가 정보 중 적어도 일부가 상기 로직에 대한 입력 파라미터로 사용될 수 있다.
메시지 큐에서 다음번 메시지가 추출 되는 것은 이전에 추출된 메시지에 대한 처리가 완료된 이후에 수행된다(S114, S118).
본 발명의 다른 실시예에 따른 데이터 확인 방법을 도 3을 참조하여 설명한다. 본 실시예에 따르면, 도 3에 도시된 바와 같이, 메시지를 수신(S200)하여 메시지 큐에 삽입(S202)하는 동작과 메시지 큐에서 메시지를 추출하여 대응하는 처리를 수행하는 동작이 서로 다른 쓰레드(thread)에 의하여 수행될 수 있다. 본 실시예에 따르면, 메시지 접수 및 메시지 큐에 대한 삽입과, 메시지 큐에서의 메시지 추출 및 처리가 동시에 병렬적으로 수행 될 수 있다.
본 실시예는 메시지를 수신하여 메시지 큐에 삽입하는 동작과 메시지 큐에서 메시지를 추출하여 대응하는 처리를 수행하는 동작이 서로 다른 프로세스(process)에 의하여 수행되는 것으로 변형될 수 있다.
메시지 큐에서 메시지를 추출하여 처리하는 쓰레드는, 메시지 큐가 비어 있지 않은 경우(S300), 메시지가 1개 추출되고(S302), 추출된 메시지에 대한 파싱을 통하여 메시지의 타입이 체크 된다(S304). 이미 설명된 바와 같이, 상기 추출된 메시지가 메모리 리드 메시지인 경우(S206), 메모리에서 확인 대상 데이터를 리드 하며, 리드 된 데이터를 출력 데이터로 포맷팅 하여 상기 출력 데이터를 제공 한다(S310). 또한, 상기 추출된 메시지가 엔진 API 메시지인 경우, 상기 타입 항목에 기재된 로직 ID에 대응하는 로직을 수행하고, 로직 수행 결과를 메모리의 데이터 객체에 적용 한다(S308).
이하, 도 4를 참조하여 추출된 메시지에 대한 파싱을 통하여 메시지의 타입을 체크하는 동작(S304)에 대하여 보다 상세히 설명한다. 이미 언급한 바와 같이, 엔진 API 메시지 및 메모리 리드 메시지는 동일한 표현법에 의하여 표현 된 텍스트일 수 있다.
예를 들어, 상기 엔진 API 메시지 및 메모리 리드 메시지는 모두 JSON(JavaScript Object Notation) 표현법에 의하여 표현된 텍스트일 수 있다. JSON 표현법에 대하여는 웹사이트 "http://www.json.org/"를 참조 한다. JSON에 의한 텍스트는 자바스크립트의 EVAL() 함수를 이용하여 객체(object)로 변환할 수 있다(S304a). 도 5a는 엔진 API 메시지의 JSON 형식 텍스트가 객체로 변환된 후를 표현한 것(60)이고, 도 5b는 메모리 리드 메시지의 JSON 형식 텍스트가 객체로 변환된 후를 표현한 것(70)이다.
이미 언급한 바와 같이, 상기 엔진 API 메시지 및 메모리 리드 메시지는 모두 타입 항목을 가질 수 있다. 도 5a, 5b에서 "API_type"으로 표현 된 것이 타입 항목을 가리키는 문자열 이다. 객체화 된 후에는 자바 스크립트 코드(예를 들어, "obj_name.API_type") 등을 통하여 API_type에 대하여 쉽게 접근할 수 있다. 객체화 된 메시지의 API_type을 확인 함으로써 메시지가 엔진 API 메시지인지, 메모리 리드 메시지인지 판단할 수 있다(S304b).
다른 실시예에 따르면, 상기 엔진 API 메시지 및 메모리 리드 메시지는 모두 XML(eXtensible Markup Language) 표현법에 의하여 표현된 텍스트일 수도 있다.
한편, 도 5b에 도시된 것과 같이 객체로 변환되는 메모리 리드 메시지가 처리 되면, 메모리에 기록된 데이터 객체의 확인 대상 데이터가 실시간 리드 되고, 리드 된 데이터가 출력 포맷으로 가공된다.
도 5c는 출력 포맷의 일 예이다. 예를 들어, 플래닝 엔진의 운영 도중, 상기 플래닝 엔진으로부터 출력 된 데이터가 이상하다는 클레임이 접수되거나, 플래닝 엔진의 안정화 작업 도중 다수의 엔진 API 메시지를 가상으로 입력하여 시뮬레이션을 하다가 상기 플래닝 엔진으로부터 출력 된 데이터에 오류가 있는 점이 발견된 경우, 플래닝 엔진 자체에 문제가 있는지 여부를 확인하기 위하여, 도 5c와 같은 출력 포맷이 유용할 수 있다. 도 5c와 같은 출력 포맷에 포함된 데이터는 메모리 리드 메시지가 수행되는 시점(메시지 큐에서 추출 된 시점)에 메모리에 기록된 데이터를 그대로 보여주기 때문이다.
본 발명의 또 다른 실시예에 따른 데이터 확인 방법을 도 6을 참조하여 설명한다. 본 실시예에 따른 데이터 확인 방법은 소정의 기능을 수행하는 소프트웨어 엔진이 수행되는 데이터 처리 시스템을 이용하여 정식 서비스를 개시하기에 앞서, 초기 안정화 작업을 수행할 때 활용될 수 있다.
소프트웨어 엔진에 대한 테스트가 개시되면(S400), 엔진의 정상 동작 여부를 테스트 하기 위하여, 테스트 담당자는 다수의 엔진 API 메시지를 상기 소프트웨어 엔진에 입력 한다(S402). 테스트 담당자는 상기 다수의 엔진 API 메시지에 의한 상기 소프트웨어 엔진의 응답이 정상인지 확인한다(S404).
응답에 오류가 있는 점이 확인 된 경우, 상기 테스트 담당자는 상기 다수의 엔진 API 메시지와 함께 상기 메모리 리드 메시지를 입력 할 수 있다(S404). 예를 들어, API_D, API_E, API_F, API_A가 순차적으로 수행되었을 때 소프트웨어의 최종 응답이 비정상인 것으로 확인 된 경우, 각각의 엔진 API 실행 후 메모리에 기록된 데이터 객체의 변경을 STEP BY STEP으로 확인하고자 할 때, 테스트 담당자는 API_D, 메모리 리드 메시지, API_E, 메모리 리드 메시지, API_F, 메모리 리드 메시지, API_A, 메모리 리드 메시지를 순차적으로 입력할 수 있다.
한편, 상기 메모리 리드 메시지를 처리 하기 위한 로직은 실제 서비스 도중에는 불필요할 것이다. 따라서, 테스트 종료 시 불필요한 수행 속도 감소를 막기 위해 상기 메모리 리드 메시지를 처리 하기 위한 로직은 다양한 방식으로 비활성화 될 수 있다(S406). 예를 들어, 메시지 큐에서 추출 된 메시지의 타입에 따라 매칭 된 루틴을 수행해주는 일련의 코드에서, 메시지의 타입이 메모리 리드 메시지에 해당하는 것인 경우, 매칭 된 루틴을 수행해주는 일련의 코드가 주석 처리 될 수 있다. 엔진 테스트가 종료 된 후, 정식 서비스가 개시될 것이다(S408).
본 발명의 또 다른 실시예에 따른 데이터 확인 방법에 대하여 도 7을 참조하여 설명한다.
먼저, 데이터 베이스에서 메모리로 데이터를 로드 하여(S500), 메모리 상에 데이터 객체를 구성한다(S502). 예를 들어, 납기 약속 소프트웨어 엔진에 의하여 본 실시예가 수행되는 경우, 데이터 베이스에 기록 된 각 판매자 노드 별 주문 접수 및 납기 약속 현황에 대한 데이터가 데이터 베이스로부터 메모리로 로드 될 수 있다.
엔진 API 메시지가 입력 되면(S504), 입력 된 엔진 API 메시지에 대응하는 루틴을 수행한다(S506). 이 때, 수행 되는 루틴은 상기 데이터 베이스에 대한 I/O 없이, 메모리 상이 구성 된 상기 데이터 객체 만을 이용하여 소정의 목적을 달성하고, 수행 결과는 상기 데이터 객체에 바로 적용 한다(S508). 따라서, 메모리 상의 상기 데이터 객체는 항상 최신의 값으로 갱신 된다.
메모리 리드 메시지가 입력 되면(S510), 입력 된 메모리 리드 메시지에 대응 하는 확인 대상 데이터를 결정 한 후, 상기 확인 대상 데이터를 메모리에서 리드 한다(S512). 리드 된 데이터는 출력 포맷으로 가공 하여 제공 된다(S514). 예를 들어, 상기 메모리 리드 메시지가, 본 실시예에 따른 데이터 확인 방법이 수행 되는 데이터 처리 장치와 네트워크로 연결 된 단말로부터 수신된 경우, 리드 된 데이터는 출력 포맷으로 가공 하여 상기 단말에 제공 된다. 상기 메모리 리드 메시지가, 본 실시예에 따른 데이터 확인 방법이 수행 되는 데이터 처리 장치에 바로 입력 된 경우, 리드 된 데이터는 출력 포맷으로 가공 하여 출력 장치(예를 들어, 모니터 장치)에 표시 된다.
메모리에 기록되어 구성되는 상기 데이터 객체는 다시 데이터 베이스로 EXPORT될 수 있다(S516). 상기 EXPORT는, 주기적으로 수행 되거나, 특정 이벤트의 발생 시에 수행 될 수 있다.
본 발명의 또 다른 실시예에 따른 데이터 처리 장치의 구성 및 동작을 도 8을 참조하여 설명하기로 한다. 본 실시예에 따른 데이터 처리 장치(600)는 컴퓨팅 장치일 수 있다. 예를 들어, 데이터 처리 장치(600)는 특정 기능을 수행하는 소프트웨어 엔진을 실행 하는 컴퓨팅 장치일 수 있다. 도 8에 도시된 바와 같이, 데이터 처리 장치(600)는 메모리(602), 메시지 큐 관리부(604), 엔진 기능 수행부(610) 및 메모리 리드 기능 수행부(612)를 포함할 수 있다.
메모리(602)는 프로세서(미도시)와 연결 되어 프로세서에 명령어를 제공하는 주기억 장치로, 예를 들어 RAM으로 구성 될 수 있다. 메모리(602)에는 데이터 객체(622)가 기록 되며, 메시지 큐(620)도 기록 된다.
메시지 큐 관리부(604)는 메모리 리드 메시지 및 엔진 API 메시지를 제공 받고, 제공 받은 상기 메모리 리드 메시지를 엔진 API 메시지가 삽입되는 메시지 큐에 삽입한다. 즉, 메시지 큐 관리부(604)는 엔진 API 메시지 및 메모리 리드 메시지를 모두 메시지 큐(620)에 삽입한다. 메시지 큐 관리부(604)는 메시지 큐(620)에서 메시지를 하나씩 추출하여 메시지 파서(608)에 제공한다. 메시지 큐 관리부(604)가 메시지 큐(620)에서 메시지를 추출하는 시점은, 직전에 추출 된 메시지에 대한 엔진 기능 수행부(610) 또는 메시지 리드 기능 수행부(612)의 처리가 종료되는 시점이다.
메시지 파서(608)는 메시지 큐(620)에서 메시지를 추출하여, 추출된 메시지의 상기 타입 항목에 셋팅 된 데이터를 바탕으로 추출된 메시지가 엔진 API 메시지 및 메모리 리드 메시지 중 어느 것인지 판단한다. 메시지 파서(608)는, 판단 결과에 따라 엔진 기능 수행부(610) 및 메모리 리드 기능 수행부(612) 중 하나에, 추출된 메시지를 전달한다. 메시지 큐에 기록 된 메시지가 JSON 표현법에 의한 텍스트로 구성된 것인 경우, 메시지 파서(608)는 JSON 텍스트를 객체로 변환한 후, 추출된 메시지가 엔진 API 메시지 및 메모리 리드 메시지 중 어느 것인지 판단할 수 있다.
엔진 기능 수행부(610)는 메시지 큐(620)에서 엔진 API 메시지가 추출되는 경우, 상기 엔진 API 메시지에 대응하는 로직을 수행하고, 로직의 수행 결과를 메모리(602)에 기록된 데이터 객체(622)에 적용한다.
메모리 리드 기능 수행부(612)는 메시지 큐(620)에서 메모리 리드 메시지가 추출되는 경우, 메모리(602)에서 데이터 객체(622) 중 적어도 일부를 리드하고, 리드 된 데이터를 인터페이스부(606)에 제공한다. 이미 언급한 바와 같이, 메모리 리드 기능 수행부(612)는, 데이터 처리 장치(600)가 디버깅 모드 또는 테스트 모드로 동작할 때에 한하여 활성화될 수 있다. 예를 들어, 메모리 리드 기능 수행부(612)는, 메시지 큐에서 추출 된 메시지의 타입에 따라 매칭 된 루틴을 수행해주는 일련의 코드에서, 메시지의 타입이 메모리 리드 메시지에 해당하는 것인 경우, 매칭 된 루틴을 수행해주는 일련의 코드를 주석 처리 함으로써, 비활성화 될 수 있다.
인터페이스부(606)는 네트워크 또는 입력 장치로부터 상기 메모리 리드 메시지 및 엔진 API 메시지를 제공 받아 메시지 큐 관리부(604)에 제공한다. 인터페이스부(606)는 메시지 리드 기능 수행부(612)로부터 확인 대상 데이터가 출력 포맷으로 가공 된 데이터를 제공 받아 네트워크를 통해 외부 장치로 송신하거나, 시스템 버스(미도시)를 통해 디스플레이 장치와 같은 출력 장치에 제공한다.
도 8의 각 구성요소는 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현할 수도 있다.
도 9는 본 발명의 또 다른 실시예에 따른 데이터 처리 장치의 하드웨어 구성도이다. 도 9를 참조하면, 본 실시예에 따른 데이터 처리 장치는 시스템 버스(706), 프로세서(702), RAM(Random Access Memory)(704), 스토리지(708) 및 외부 장치와의 통신 또는 입출력 장치와의 연결을 위한 인터페이스부(710)를 포함할 수 있다. 본 발명에 따른 데이터 확인 방법을 구현하는 컴퓨터 프로그램 코드는 스토리지(708)에 저장되어 RAM(704)에 로드 되고 프로세서(702)에 의해 실행될 수 있다. 상기 컴퓨터 프로그램 코드의 실행 결과, RAM(704)에 데이터 객체가 기록 되고, 메시지 큐가 기록 될 수 있다.
도 10은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템의 구성도이다. 본 실시예에 따른 데이터 처리 시스템은 도 8을 참조하여 설명한 데이터 처리 장치(600), 입력 장치(630) 및 출력 장치(640)를 포함할 수 있다. 예를 들어, 입력 장치(630)는 터치 스크린, 키보드, 마우스, 스타일러스 펜 중 어느 하나 일 수 있고, 출력 장치(640)는 모니터, TV, 프로젝터, 홀로그램 출력 장치 중 어느 하나 일 수 있다.
입력 장치(630)는 사용자의 입력에 따라 입력 신호를 생성하여 데이터 처리 장치(600)에 제공 한다. 상기 입력 신호는 데이터 처리 장치(600)에 의하여 상기 엔진 API 메시지 또는 메모리 리드 메시지 중 어느 하나로 변환 될 수 있다. 출력 장치(640)는 메모리 리드 메시지에 대한 응답 출력을 디스플레이 할 수 있다.
도 11은 본 발명의 또 다른 실시예에 따른 데이터 처리 시스템의 구성도이다. 본 실시예에 따른 데이터 처리 시스템은 도 8을 참조하여 설명한 데이터 처리 장치(600) 및 단말(650)을 포함할 수 있다. 단말(650)은 네트워크 연결 기능을 가진 컴퓨팅 장치로, 예를 들어, 노트북 피씨, 데스크톱 피씨, 태블릿 피씨, 스마트 폰, 셋탑 박스 중 어느 하나 일 수 있다.
단말(650)은 네트워크를 통하여 상기 엔진 API 메시지 및 메모리 리드 메시지를 데이터 처리 장치(600)에 송신 한다. 단말(650)은 상기 메모리 리드 메시지의 입력에 대한 응답으로, 데이터 처리 장치(600)로부터 상기 메모리 리드 메시지에 대응하는 메모리 상의 확인 대상 데이터가 포함된 출력 데이터를 수신할 수 있다.
단말(650)은 메모리 리드 메시지를 통하여 메모리에 기록 된 데이터를 실시간 확인 할 수 있도록, 데이터 처리 장치(600)에 대한 등록 절차를 수행 할 수 있다.
지금까지 도 1 내지 도 11을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록 된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (12)

  1. 메모리 리드(read) 메시지를 제공 받는 단계;
    상기 메모리 리드 메시지를 엔진 API(Application Program Interface) 메시지가 삽입되는 메시지 큐에 삽입하는 단계;
    상기 메시지 큐에서 엔진 API 메시지가 추출되는 경우, 상기 엔진 API 메시지에 대응하는 로직을 수행한 후, 그 결과를 메모리에 기록된 데이터 객체(object)에 적용하는 단계; 및
    상기 메시지 큐에서 메모리 리드(read) 메시지가 추출되는 경우, 상기 메모리에서 상기 데이터 객체 중 적어도 일부를 리드하고, 리드 된 데이터를 제공하는 단계를 포함하는,
    데이터 확인 방법.
  2. 제1 항에 있어서,
    상기 메모리 리드 메시지와 상기 엔진 API 메시지는 동일한 표현법에 의한 텍스트로 구성된 것인,
    데이터 확인 방법.
  3. 제2 항에 있어서,
    상기 메모리 리드 메시지와 상기 엔진 API 메시지는 메시지의 타입을 가리키는 타입 항목을 포함하고,
    상기 메시지 큐에서 메시지를 추출하여, 추출된 메시지의 상기 타입 항목에 셋팅 된 데이터를 바탕으로 추출된 메시지가 엔진 API 메시지 및 메모리 리드 메시지 중 어느 것인지 판단하는 단계를 더 포함하는,
    데이터 확인 방법.
  4. 제2 항에 있어서,
    상기 메모리 리드 메시지와 상기 엔진 API 메시지는 JSON(JavaScript Object Notation) 표현법에 의한 텍스트로 구성된 것인,
    데이터 확인 방법.
  5. 제1 항에 있어서,
    상기 큐에서 추출된 메시지에 대한 처리가 완료된 후, 상기 메시지 큐에서 다음 메시지를 추출하는 단계를 더 포함하는,
    데이터 확인 방법.
  6. 제1 항에 있어서,
    상기 엔진 API 메시지에 대응하는 로직을 수행하기에 앞서, 데이터베이스에서 상기 메모리로 상기 데이터 객체를 로드(load) 하는 단계를 더 포함하는,
    데이터 확인 방법.
  7. 제1 항에 있어서,
    상기 메모리 리드 메시지를 제공 받는 단계는,
    단말로부터 상기 메모리 리드 메시지를 수신하는 단계를 포함하고,
    상기 메시지 큐에 삽입하는 단계는,
    상기 메모리 리드 메시지를 송신한 단말이 메모리 리드 권한이 있는 단말로 등록된 경우에 한하여 상기 메모리 리드 메시지를 상기 메시지 큐에 삽입하는 단계를 포함하는,
    데이터 확인 방법.
  8. 제1 항에 있어서,
    상기 데이터 객체는 납기 약속(Order promising) 엔진에 의하여 관리되는 것인,
    데이터 확인 방법.
  9. 제1 내지 8 항 중 어느 한 항의 방법을 수행하는 컴퓨터 프로그램이 기록된, 컴퓨터로 읽을 수 있는 기록 매체.
  10. 메모리;
    메모리 리드(read) 메시지를 제공 받고, 제공 받은 상기 메모리 리드 메시지를 엔진 API 메시지가 삽입되는 메시지 큐에 삽입하는 메시지 큐 관리부;
    상기 메시지 큐에서 엔진 API 메시지가 추출되는 경우, 상기 엔진 API 메시지에 대응하는 로직을 수행하고, 로직의 수행 결과를 상기 메모리에 기록된 데이터 객체(object)에 적용하는 엔진 기능 수행부; 및
    상기 메시지 큐에서 메모리 리드 메시지가 추출되는 경우, 상기 메모리에서 상기 데이터 객체 중 적어도 일부를 리드하고, 리드 된 데이터를 제공하는 메모리 리드 기능 수행부를 포함하는,
    데이터 처리 장치.
  11. 제10 항에 있어서,
    상기 메모리 리드 기능 수행부는, 상기 데이터 처리 장치가 디버깅 모드로 동작할 때에 한하여 활성화되는,
    데이터 처리 장치.
  12. 제10 항에 있어서,
    상기 메모리 리드 메시지와 상기 엔진 API 메시지는, 메시지의 타입을 가리키는 타입 항목을 포함하는 동일한 메시지 포맷으로 구성된 것이고,
    상기 메시지 큐에서 메시지를 추출하여, 추출된 메시지의 상기 타입 항목에 셋팅 된 데이터를 바탕으로 추출된 메시지가 엔진 API 메시지 및 메모리 리드 메시지 중 어느 것인지 판단하여, 판단 결과에 따라 상기 엔진 기능 수행부 및 상기 메모리 리드 기능 수행부 중 하나에 추출된 메시지를 전달하는 메시지 파서(parser)를 더 포함하는,
    데이터 처리 장치.
PCT/KR2015/005368 2014-05-29 2015-05-28 데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법 WO2015183016A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2014-0065111 2014-05-29
KR1020140065111A KR101968501B1 (ko) 2014-05-29 2014-05-29 데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법

Publications (1)

Publication Number Publication Date
WO2015183016A1 true WO2015183016A1 (ko) 2015-12-03

Family

ID=54699278

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/005368 WO2015183016A1 (ko) 2014-05-29 2015-05-28 데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법

Country Status (2)

Country Link
KR (1) KR101968501B1 (ko)
WO (1) WO2015183016A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279988A (zh) * 2018-01-25 2018-07-13 微梦创科网络科技(中国)有限公司 一种基于Lua脚本语言的消息处理方法及系统
CN112348713A (zh) * 2020-09-25 2021-02-09 贝壳技术有限公司 基于QLRunner的数据处理方法、装置、电子设备和介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900020A (en) * 1996-06-27 1999-05-04 Sequent Computer Systems, Inc. Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
US20020126541A1 (en) * 2001-03-09 2002-09-12 Christopher Spiegel Method and apparatus for processing commands in a queue coupled to a system or memory
WO2003071435A1 (en) * 2002-02-15 2003-08-28 Proquent Systems Corporation Management of message queues
US20070083569A1 (en) * 2005-10-07 2007-04-12 Lik Wong Commit-time ordered message queue supporting arbitrary read and dequeue patterns from multiple subscribers
US20070198796A1 (en) * 2006-02-22 2007-08-23 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
US20090024808A1 (en) * 2004-10-21 2009-01-22 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
WO2010116151A1 (en) * 2009-04-07 2010-10-14 Imagination Technologies Limited Ensuring consistency between a data cache and a main memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954933B2 (en) * 2000-10-30 2005-10-11 Microsoft Corporation Method and apparatus for providing and integrating high-performance message queues in a user interface environment
KR100762576B1 (ko) 2005-07-02 2007-10-01 엘지전자 주식회사 임베디드 시스템의 플래시 메모리 덤프 방법 및 그 시스템
KR100902808B1 (ko) 2007-11-02 2009-06-12 경북대학교 산학협력단 실시간 디버깅 기능을 가지는 대규모 실시간 감시 시스템용디버깅 단말기 및 이를 포함하는 디버깅 시스템

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5900020A (en) * 1996-06-27 1999-05-04 Sequent Computer Systems, Inc. Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
US20020126541A1 (en) * 2001-03-09 2002-09-12 Christopher Spiegel Method and apparatus for processing commands in a queue coupled to a system or memory
WO2003071435A1 (en) * 2002-02-15 2003-08-28 Proquent Systems Corporation Management of message queues
US20090024808A1 (en) * 2004-10-21 2009-01-22 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
US20070083569A1 (en) * 2005-10-07 2007-04-12 Lik Wong Commit-time ordered message queue supporting arbitrary read and dequeue patterns from multiple subscribers
US20070198796A1 (en) * 2006-02-22 2007-08-23 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
WO2010116151A1 (en) * 2009-04-07 2010-10-14 Imagination Technologies Limited Ensuring consistency between a data cache and a main memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108279988A (zh) * 2018-01-25 2018-07-13 微梦创科网络科技(中国)有限公司 一种基于Lua脚本语言的消息处理方法及系统
CN108279988B (zh) * 2018-01-25 2021-07-23 微梦创科网络科技(中国)有限公司 一种基于Lua脚本语言的消息处理方法及系统
CN112348713A (zh) * 2020-09-25 2021-02-09 贝壳技术有限公司 基于QLRunner的数据处理方法、装置、电子设备和介质

Also Published As

Publication number Publication date
KR101968501B1 (ko) 2019-04-15
KR20150137369A (ko) 2015-12-09

Similar Documents

Publication Publication Date Title
US9152394B2 (en) Generating application model build artifacts
CN106030546B (zh) 计算机程序的方法
JP6758274B2 (ja) スキーマで表される必要条件を用いた自動プロセス制御ハードウェア工学
WO2022127449A1 (zh) 一种网页页面的同步方法及装置、设备、存储介质
CN109522228A (zh) 接口自动化测试数据构造方法、装置、平台及存储介质
US10042622B2 (en) Methods and systems of generating ease of use interfaces for legacy system management facilities
JP2022545303A (ja) 概念データモデルからのソフトウェアアーチファクトの生成
WO2018004020A1 (ko) 마크업 언어 기반 문서에 대한 동시 편집 정합성 검증 장치 및 방법
US8117042B2 (en) Communication and interface support system
CN104731641B (zh) 用于复制计算系统的批量作业的方法与系统
US20190324763A1 (en) Insertion of custom activities in an orchestrated application suite
WO2015183016A1 (ko) 데이터 처리 장치 및 데이터 처리 장치의 메모리에 기록된 데이터의 확인 방법
WO2018004025A1 (ko) 개체에 대한 스타일 동시 편집을 지원하는 문서 협업 장치 및 그 동작 방법
JP5249807B2 (ja) ファイル管理方法、ファイル管理プログラム、および、ファイル管理装置
US20180336171A1 (en) System and method for constructing extensible event log with javascript object notation (json) encoded payload data
WO2023151397A1 (zh) 应用程序部署方法、装置、设备及介质
WO2015137703A1 (ko) 모바일 장치를 활용한 전자의료기록 시스템
CN109902104A (zh) 用于管理知识库的方法、装置、设备和介质
CN113010208B (zh) 一种版本信息的生成方法、装置、设备及存储介质
JP2012113502A (ja) 半導体集積回路の検証装置
US20140074869A1 (en) Autoclassifying compound documents for enhanced metadata search
CN111125232A (zh) 一种公有云资产信息接入的方法及装置
JP7344521B1 (ja) プログラム、方法、情報処理装置、及びシステム
US10534766B2 (en) Data management apparatus and data management method
US9436440B1 (en) System, method, and computer program for validating web service interface design

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15800299

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15800299

Country of ref document: EP

Kind code of ref document: A1