KR102567658B1 - Method and System for developing business components in isolation using multi-transactions - Google Patents

Method and System for developing business components in isolation using multi-transactions Download PDF

Info

Publication number
KR102567658B1
KR102567658B1 KR1020210048182A KR20210048182A KR102567658B1 KR 102567658 B1 KR102567658 B1 KR 102567658B1 KR 1020210048182 A KR1020210048182 A KR 1020210048182A KR 20210048182 A KR20210048182 A KR 20210048182A KR 102567658 B1 KR102567658 B1 KR 102567658B1
Authority
KR
South Korea
Prior art keywords
database
transaction
commit
business
transactions
Prior art date
Application number
KR1020210048182A
Other languages
Korean (ko)
Other versions
KR20220141994A (en
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 주식회사 카카오뱅크
Priority to KR1020210048182A priority Critical patent/KR102567658B1/en
Publication of KR20220141994A publication Critical patent/KR20220141994A/en
Application granted granted Critical
Publication of KR102567658B1 publication Critical patent/KR102567658B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템 및 방법에 관한 것으로서, 시스템은, 개발 환경에서, 업무 영역에 대응되는 적어도 하나의 업무 테이블을 포함하는 제1 데이터베이스, 개발 어플리케이션으로부터 제1 요청(Request)을 입력 받고, 접근 권한이 상이한 개별 업무 계정을 통해 상기 제1 데이터베이스에 접속하여 복수의 트랜잭션을 생성하여 처리하는 제1 서버, 운영 환경에서, 업무 영역에 대응되는 적어도 하나의 업무 테이블을 포함하는 제2 데이터베이스, 운영 어플리케이션으로부터 제2 요청을 입력 받고, 단일 운영 계정을 통해 상기 제2 데이터베이스에 접속하여 하나의 트랜잭션을 처리하는 제2 서버, 및 제1 서버 및 상기 제2 서버 각각에 상이한 환경 정보(properties)를 제공하는 환경 설정 서버를 포함한다.A business component isolation development system and method using multi-transaction according to the present invention relates to a system and method, in which, in a development environment, a first database including at least one business table corresponding to a business area and a first request from a development application ( A first server that receives a request), accesses the first database through individual work accounts having different access rights, creates and processes a plurality of transactions, and includes at least one work table corresponding to a work area in an operating environment. A second database that operates, a second server that receives a second request from an operating application, accesses the second database through a single operating account, and processes one transaction, and different environments for each of the first server and the second server. Contains a configuration server that provides properties.

Description

멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템{Method and System for developing business components in isolation using multi-transactions}Method and System for developing business components in isolation using multi-transactions}

본 발명은 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템에 관한 것이다.The present invention relates to a method and system for developing business component isolation using multi-transaction.

최근 업무 범위에 따라 구분되는 수백 개의 테이블 또는 복수의 데이터베이스로 구성된 데이터베이스 및 복수의 어플리케이션을 포함하는 시스템이 개발되고 있다. Recently, a system including a database composed of hundreds of tables or a plurality of databases classified according to the scope of business and a plurality of applications is being developed.

이러한 어플리케이션은 데이터베이스에 저장된 정보를 이용하여 사용자에게 서비스를 제공한다. 특히, 어플리케이션은 업무 범위에 따라 구분되는 데이터베이스에 저장된 정보들을 트랜잭션을 통해 획득하여 사용자에서 서비스를 제공한다.These applications provide services to users using information stored in databases. In particular, applications provide services to users by acquiring information stored in databases classified according to business scopes through transactions.

이때, 어플리케이션은 데이터베이스에 저장된 정보를 요청하고, 하나의 데이터베이스 계정을 통해 복수의 업무 범위에 대응하는 테이블 및 데이터베이스에 트랜잭션을 실행시킬 수 있다. 이러한 경우, 업무 범위에 따라 구분되는 테이블 및 데이터베이스에 대해 실행된 트랜잭션을 추적하기 어려워 시스템의 유지 및 보수에 문제가 발생할 수 있다. At this time, the application may request information stored in the database and execute transactions in tables and databases corresponding to a plurality of business scopes through one database account. In this case, it is difficult to track transactions executed for tables and databases classified according to the scope of work, which may cause problems in system maintenance.

한편, 업무 간의 의존성을 제거하기 위해 업무 범위에 따라 구분되는 데이터베이스의 계정을 이용하여 업무 범위에 따라 구분되는 테이블 또는 데이터베이스에 트랜잭션을 실행시키는 경우, 데이터베이스의 정합성을 보장할 수 없는 문제가 발생할 수 있다.On the other hand, if a transaction is executed on a table or database classified according to the business scope by using a database account classified according to the business scope in order to remove the dependency between jobs, a problem in which the consistency of the database cannot be guaranteed may occur. .

본 발명은 상술한 문제점을 해결하기 위한 것으로서, 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템을 제공하는 것을 그 기술적 과제로 한다.The present invention is to solve the above problems, and to provide a method and system for developing business component isolation using multi-transaction as its technical task.

본 발명의 일 측면은, 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템에 관한 것으로서, 시스템은, 개발 환경에서, 업무 영역에 대응되는 적어도 하나의 업무 테이블을 포함하는 제1 데이터베이스, 개발 어플리케이션으로부터 제1 요청(Request)을 입력 받고, 접근 권한이 상이한 개별 업무 계정을 통해 상기 제1 데이터베이스에 접속하여 복수의 트랜잭션을 생성하여 처리하는 제1 서버, 운영 환경에서, 업무 영역에 대응되는 적어도 하나의 업무 테이블을 포함하는 제2 데이터베이스, 운영 어플리케이션으로부터 제2 요청을 입력 받고, 단일 운영 계정을 통해 상기 제2 데이터베이스에 접속하여 하나의 트랜잭션을 처리하는 제2 서버; 및 상기 제1 서버 및 상기 제2 서버 각각에 상이한 환경 정보(properties)를 제공하는 환경 설정 서버를 포함한다.One aspect of the present invention relates to a business component isolation development system using multi-transaction, wherein the system includes, in a development environment, a first database including at least one business table corresponding to a business area and a first request from a development application. A first server that receives a (Request) input, accesses the first database through individual work accounts having different access rights, creates and processes a plurality of transactions, and in an operating environment, at least one work table corresponding to a work area A second server that receives a second request from a second database and an operating application, accesses the second database through a single operating account, and processes one transaction; and an environment setting server providing different environment information (properties) to each of the first server and the second server.

시스템의 제1 서버는, 적어도 하나의 업무 컴포넌트를 포함하고, 상기 제1 요청을 처리하는 제1 비즈니스 로직부, 및 상기 제1 요청에 의해 생성된 복수의 트랜잭션을 통해 상기 제1 데이터베이스로부터 응답 정보를 취득하고, 상기 응답 정보를 상기 업무 컴포넌트에 제공하는 제1 프레임워크를 포함하고, 상기 제1 프레임워크는, 상기 제1 요청에 대응하여 상기 제1 데이터베이스에 대한 상기 복수의 트랜잭션을 생성하는 제1 트랜잭션 매니저를 포함할 수 있다.The first server of the system includes at least one business component, and includes a first business logic unit that processes the first request, and response information from the first database through a plurality of transactions generated by the first request. and a first framework for obtaining and providing the response information to the business component, wherein the first framework generates the plurality of transactions for the first database in response to the first request. 1 may include a transaction manager.

또한, 제1 트랜잭션 매니저는, 커밋 준비 단계 및 커밋 실행 단계를 통해 상기 제1 데이터베이스에 대한 상기 복수의 트랜잭션의 처리를 완료하고, 복수의 트랜잭션 모두의 커밋 준비 단계가 완료되면, 상기 복수의 트랜잭션의 상기 커밋 실행 단계를 실행할 수 있다. 제1 트랜잭션 매니저는, 상기 복수의 트랜잭션 각각의 업무 범위에 대응하는 업무 계정을 이용하여 상기 제1 데이터베이스의 해당 업무 테이블에 접근할 수 있다.In addition, the first transaction manager completes the processing of the plurality of transactions for the first database through the commit preparation step and the commit execution step, and when the commit preparation step of all of the plurality of transactions is completed, the plurality of transactions The commit execution step can be executed. The first transaction manager may access a corresponding work table of the first database using a work account corresponding to a work scope of each of the plurality of transactions.

제1 트랜잭션 매니저는, 상기 커밋 준비 단계에서, 복수의 트랜잭션 각각의 커밋 준비 메시지를 상기 제1 데이터베이스에 전송하고, 상기 커밋 준비 메시지에 대한 답변 메시지를 상기 제1 데이터베이스로부터 수신하고, 상기 커밋 준비 메시지에 대한 답변 메시지가 모두 커밋 준비 완료 메시지이면, 상기 커밋 실행 단계를 실행하고, 커밋 실행 단계에서, 상기 복수의 트랜잭션 각각의 커밋 실행 메시지를 상기 제1 데이터베이스에 전송할 수 있다.In the commit preparation step, the first transaction manager transmits a commit preparation message for each of a plurality of transactions to the first database, receives a response message to the commit preparation message from the first database, and transmits the commit preparation message to the first database. If all of the response messages for are ready to commit messages, the commit execution step may be executed, and in the commit execution step, a commit execution message of each of the plurality of transactions may be transmitted to the first database.

한편, 제1 트랜잭션 매니저는, 커밋 준비 단계에서, 커밋 준비 메시지를 상기 복수의 트랜잭션 각각에 대응하는 업무 영역에 전송되고, 상기 커밋 준비 메시지에 대한 답변 메시지를 상기 제1 데이터베이스로부터 수신하고, 상기 커밋 준비 메시지에 대한 답변 메시지 중 적어도 하나가 커밋 준비 실패 메시지이면, 상기 복수의 트랜잭션에 대해 진행중인 단계를 모두 취소(rollback) 처리할 수 있다.Meanwhile, in the commit preparation step, the first transaction manager transmits a commit preparation message to a work area corresponding to each of the plurality of transactions, receives a response message to the commit preparation message from the first database, and commits the commit preparation message. If at least one of the response messages to the preparation message is a commit preparation failure message, all ongoing steps of the plurality of transactions may be rolled back.

다른 실시예로, 제2 서버는, 제2 요청(Request)을 처리하는 적어도 하나의 업무 컴포넌트를 포함하는 제2 비즈니스 로직부, 및 상기 제2 요청에 대응하는 하나의 트랜잭션을 통해 상기 제2 데이터베이스로부터 정보를 취득하고, 취득한 정보를 상기 업무 컴포넌트에 제공하는 제2 프레임워크를 포함할 수 있다. 또한 제2 프레임워크는, 제1 요청에 대응하여 상기 하나의 트랜잭션을 생성하고, 단일 운영 계정을 이용하여 상기 제2 데이터베이스에 접근하는 제2 트랜잭션 매니저를 포함할 수 있다.In another embodiment, the second server may include a second business logic unit including at least one business component that processes a second request, and the second database through one transaction corresponding to the second request. and a second framework for obtaining information from and providing the obtained information to the business component. In addition, the second framework may include a second transaction manager that generates the one transaction in response to the first request and accesses the second database using a single operating account.

제2 트랜잭션 매니저는, 커밋 실행 단계를 통해 상기 제2 데이터베이스에 대한 상기 하나의 트랜잭션의 커밋을 완료하고, 커밋 실행 단계에서, 상기 하나의 트랜잭션에 대한 커밋 실행 메시지를 상기 제2 데이터베이스의 제2 데이터베이스 관리 시스템에 전송하고, 상기 커밋 실행 메시지에 대한 답변 메시지를 상기 제2 데이터베이스 관리 시스템으로부터 수신할 수 있다.The second transaction manager completes the commit of the one transaction to the second database through the commit execution step, and in the commit execution step, the commit execution message for the one transaction is sent to the second database of the second database. It may be transmitted to a management system and a response message to the commit execution message may be received from the second database management system.

본 발명의 다른 측면은, 개발 환경의 서버에 의해 동작하는, 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법에 관한 것으로, 개발 어플리케이션으로부터 제1 요청(Request)을 수신하는 단계; 프레임워크의 트랜잭션 매니저를 통해, 상기 제1 요청에 대응하는 복수의 트랜잭션을 생성하는 단계; 상기 트랜잭션 매니저를 통해 제1 데이터베이스에 커밋 준비 메시지를 송신하는 단계; 및 상기 복수의 트랜잭션을 통해 각각 상기 제1 데이터베이스로부터 상기 커밋 준비 메시지에 대응하는 응답 정보를 취득하는 단계를 포함하고, 상기 송신하는 단계는, 접근 권한이 상이한 개별 업무 계정을 이용하여 제1 데이터베이스의 각 업무 영역에 트랜잭션을 송신한다.Another aspect of the present invention relates to a method for developing business component isolation using multi-transaction, which is operated by a server in a development environment, comprising: receiving a first request from a development application; generating a plurality of transactions corresponding to the first request through a transaction manager of the framework; sending a commit preparation message to a first database through the transaction manager; and acquiring response information corresponding to the commit preparation message from the first database through the plurality of transactions. Transactions are sent to each business area.

선택적으로, 상기 방법은, 취득하는 단계에서 취득한 응답 정보가, 상기 복수의 트랜잭션 트랜잭션에 대해 모두 커밋 준비 완료 메시지인 경우, 상기 제1 데이터베이스에 복수의 트랜잭션에 대한 커밋 실행 메시지를 송신하는 단계를 더 포함할 수 있다. 또한 취득하는 단계에서 취득한 응답 정보 중, 적어도 하나가 커밋 준비 실패 메시지이면, 상기 복수의 트랜잭션에 대해 진행되는 단계가 모두 취소(rollback)될 수 있다. 한편, 프레임워크는, 개발 환경에 대응하는 환경 정보인 개발 환경 정보(properties)를 환경 설정 서버(configuration server)로부터 제공받고, 제공받은 개발 환경 정보를 로드하여, 개발 환경을 구축할 수 있다.Optionally, the method further comprises sending a commit execution message for a plurality of transactions to the first database when the response information obtained in the acquiring step is a commit ready message for all transactions of the plurality of transactions. can include In addition, if at least one of the response information obtained in the obtaining step is a commit preparation failure message, all of the steps performed for the plurality of transactions may be rolled back. Meanwhile, the framework may receive development environment information (properties), which is environment information corresponding to the development environment, from a configuration server, load the provided development environment information, and build the development environment.

본 발명에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템은 개발 환경 및 운영 환경에서 서로 다른 과정을 통해 트랜잭션을 처리하기 때문에 개발 환경 및 운영 환경 모두에서 업무 간 의존성(dependency)를 제거하는 동시에, 데이터베이스의 정합성을 보장하고 신속하게 트랜잭션을 처리할 수 있다. Since the business component isolation development method and system using multi-transaction according to the present invention processes transactions through different processes in the development environment and the operating environment, it eliminates the dependency between tasks in both the development environment and the operating environment, Database consistency can be guaranteed and transactions can be processed quickly.

본 발명에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템은 개발 환경에서 각 업무 범위에 따른 데이터베이스 계정을 이용하여 각 업무 범위에 따라 구분되는 테이블 또는 데이터베이스에 접근하고, 복수의 트랜잭션을 커밋 준비 단계 및 커밋 실행 단계를 통해 실행시키기 때문에 각 테이블 또는 데이터베이스에 대한 접근을 제한할 수 있어 개발 과정 중 데이터베이스의 유지 및 보수가 용이해지고, 데이터베이스의 정합성을 보장할 수 있는 효과가 있다.Business component isolation development method and system using multi-transaction according to the present invention accesses a table or database classified according to each business scope using a database account according to each business scope in a development environment, and prepares to commit a plurality of transactions. And since it is executed through the commit execution step, it is possible to restrict access to each table or database, thereby facilitating maintenance and repair of the database during the development process and ensuring the consistency of the database.

또한, 본 발명에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템은 운영 환경에서 하나의 데이터베이스 계정을 이용하여 데이터베이스에 접근하여 하나의 트랜잭션을 커밋 실행 단계를 통해 실행시키기 때문에 신속하게 트랜잭션을 처리하고, 데이터베이스의 정합성을 보장할 수 있는 효과가 있다. In addition, since the business component isolation development method and system using multi-transaction according to the present invention accesses the database using one database account in the operating environment and executes one transaction through the commit execution step, the transaction is processed quickly and , it has the effect of ensuring the consistency of the database.

또한, 본 발명에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템은 제1 트랜잭션 매니저가 복수의 업무 영역 각각에 대응하는 복수의 트랜잭션에 대해 각각 커밋 준비 메시지를 전송하기 때문에, 물리적으로 분리되어 있거나 다른 DBMS 제품인 경우라 하더라도 정합성을 보장할 수 있는 효과가 있다.In addition, in the business component isolation development method and system using multi-transactions according to the present invention, since the first transaction manager transmits a commit preparation message for each of a plurality of transactions corresponding to each of a plurality of business areas, physically separated or Even in the case of other DBMS products, it has the effect of guaranteeing consistency.

도 1은 본 발명의 일 실시예에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템을 나타내는 블록도이다.
도 2a는 본 발명의 일 실시예에 따른 개발 환경에서의 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템을 나타내는 블록도이다.
도 2b는 본 발명의 일 실시예에 따른 운영 환경에서의 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템을 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 제1 서버의 제1 프레임워크의 동작을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 제2 서버의 제2 프레임워크의 동작을 나타내는 도면이다.
도 5는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법에 대한 플로우 차트이다.
도 6a는 본 발명의 일 실시예에 따라 개발 환경에서 트랜잭션이 처리되는 방법을 나타내는 시퀀스 다이어그램이다.
도 6b는 본 발명의 일 실시예에 따라 운영 환경에서 트랜잭션이 처리되는 방법을 나타내는 시퀀스 다이어그램이다.
1 is a block diagram showing a business component isolation development system using multi-transactions according to an embodiment of the present invention.
Figure 2a is a block diagram showing a business component isolation development system using multi-transaction in a development environment according to an embodiment of the present invention.
Figure 2b is a block diagram showing a business component isolation development system using multi-transaction in an operating environment according to an embodiment of the present invention.
3 is a diagram illustrating an operation of a first framework of a first server according to an embodiment of the present invention.
4 is a diagram illustrating an operation of a second framework of a second server according to an embodiment of the present invention.
5 is a flowchart of a method for developing business component isolation using multi-transaction.
6A is a sequence diagram illustrating how transactions are processed in a development environment according to one embodiment of the present invention.
6B is a sequence diagram illustrating how transactions are processed in an operating environment in accordance with one embodiment of the present invention.

명세서 전체에 걸쳐서 동일한 참조번호들은 실질적으로 동일한 구성요소들을 의미한다. 이하의 설명에서, 본 발명의 핵심 구성과 관련이 없는 경우 및 본 발명의 기술분야에 공지된 구성과 기능에 대한 상세한 설명은 생략될 수 있다. 본 명세서에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Like reference numbers throughout the specification indicate substantially the same elements. In the following description, detailed descriptions of components and functions not related to the core components of the present invention and known in the art may be omitted. The meaning of terms described in this specification should be understood as follows.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms, only these embodiments make the disclosure of the present invention complete, and common knowledge in the art to which the present invention belongs. It is provided to fully inform the holder of the scope of the invention, and the present invention is only defined by the scope of the claims.

본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. The shapes, sizes, ratios, angles, numbers, etc. disclosed in the drawings for explaining the embodiments of the present invention are illustrative, so the present invention is not limited to the details shown. Like reference numbers designate like elements throughout the specification. In addition, in describing the present invention, if it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted.

본 명세서에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우 '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성 요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다. When 'includes', 'has', 'consists', etc. mentioned in this specification is used, other parts may be added unless 'only' is used. In the case where a component is expressed in the singular, the case including the plural is included unless otherwise explicitly stated.

구성 요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.In interpreting the components, even if there is no separate explicit description, it is interpreted as including the error range.

시간 관계에 대한 설명일 경우, 예를 들어, '~후에', '~에 이어서', '~다음에', '~전에' 등으로 시간적 선후 관계가 설명되는 경우, '바로' 또는 '직접'이 사용되지 않는 이상 연속적이지 않은 경우도 포함할 수 있다.In the case of a description of a temporal relationship, for example, 'immediately' or 'directly' when a temporal precedence relationship is described in terms of 'after', 'following', 'next to', 'before', etc. It can also include non-continuous cases unless is used.

제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.Although first, second, etc. are used to describe various components, these components are not limited by these terms. These terms are only used to distinguish one component from another. Therefore, the first component mentioned below may also be the second component within the technical spirit of the present invention.

"적어도 하나"의 용어는 하나 이상의 관련 항목으로부터 제시 가능한 모든 조합을 포함하는 것으로 이해되어야 한다. 예를 들어, "제1 항목, 제2 항목 및 제3 항목 중에서 적어도 하나"의 의미는 제1 항목, 제2 항목 또는 제3 항목 각각뿐만 아니라 제1 항목, 제2 항목 및 제3 항목 중에서 2개 이상으로부터 제시될 수 있는 모든 항목의 조합을 의미할 수 있다. The term “at least one” should be understood to include all possible combinations from one or more related items. For example, "at least one of the first item, the second item, and the third item" means not only the first item, the second item, or the third item, but also two of the first item, the second item, and the third item. It may mean a combination of all items that can be presented from one or more.

본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하고, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시할 수도 있다.Each feature of the various embodiments of the present invention can be partially or entirely combined or combined with each other, technically various interlocking and driving are possible, and each embodiment can be implemented independently of each other or can be implemented together in a related relationship. may be

이하, 도 1 내지 도 2b를 참조하여, 본 발명의 일 실시예에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템에 대해 상세히 설명한다. 도 1은 본 발명의 일 실시예에 따른 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템을 나타내는 블록도이다. 도 2a는 본 발명의 일 실시예에 따른 개발 환경에서의 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템을 나타내는 블록도이고, 도 2b는 본 발명의 일 실시예에 따른 운영 환경에서의 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템을 나타내는 블록도이다.Hereinafter, a business component isolation development system using multi-transaction according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 to 2B. 1 is a block diagram showing a business component isolation development system using multi-transactions according to an embodiment of the present invention. Figure 2a is a block diagram showing a business component isolation development system using multi-transactions in a development environment according to an embodiment of the present invention, Figure 2b is a business using multi-transactions in an operating environment according to an embodiment of the present invention It is a block diagram representing a component isolation development system.

도 1을 참조하면, 개발 환경 및 운영 환경에서 최적화된 트랜잭션을 실행하는 시스템은 제1 데이터베이스(100), 제1 서버(200), 개발 단말(300), 제2 데이터베이스(400), 제2 서버(500), 고객 단말(600), 운영 단말(700) 및 환경 설정 서버(800)를 포함한다.Referring to FIG. 1, a system for executing optimized transactions in a development environment and an operating environment includes a first database 100, a first server 200, a development terminal 300, a second database 400, and a second server. 500, a customer terminal 600, an operating terminal 700, and an environment setting server 800.

제1 데이터베이스(100)는 개발 어플리케이션에 대한 정보를 저장한다. 제1 데이터베이스(100)는 복수의 테이블 또는 복수의 데이터베이스로 구성되고, 복수의 테이블 또는 복수의 데이터베이스는 업무 범위에 따라 업무 영역으로 구분된다. 각 업무 영역은 각 업무 영역에 대응되는 업무 계정을 통해 접근될 수 있다. 즉, 제1 데이터베이스(100)는 업무 범위에 따라 업무 영역으로 구분되며, 각 업무 영역에 각각 접근할 수 있는 복수의 업무 계정을 포함할 수 있다. The first database 100 stores information on development applications. The first database 100 is composed of a plurality of tables or a plurality of databases, and the plurality of tables or databases are divided into business areas according to business scopes. Each work area can be accessed through a work account corresponding to each work area. That is, the first database 100 is divided into business areas according to the business scope, and may include a plurality of business accounts that can respectively access each business area.

제1 데이터베이스(100)는 제1 데이터베이스 관리 시스템을 포함한다. 제1 데이터베이스 관리 시스템은 제1 데이터베이스(100)에서 데이터와 데이터의 집합을 생성, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다. 이때, 제1 데이터베이스(100)는 복수의 테이블뿐만 아니라 복수의 데이터베이스를 포함할 수 있기 때문에 제1 데이터베이스 관리 시스템은 제1 데이터베이스(100)에 포함된 복수의 데이터베이스의 데이터베이스 관리 시스템을 포함할 수 있다. The first database 100 includes a first database management system. The first database management system is an application program that provides functions for creating, storing, and managing data and data sets in the first database 100 . In this case, since the first database 100 may include a plurality of databases as well as a plurality of tables, the first database management system may include a database management system of a plurality of databases included in the first database 100. .

본 발명의 일 실시예에 따르면, 제1 데이터베이스 관리 시스템은 제1 서버(200)로부터 입력되는 트랜잭션을 처리한다. 트랜잭션(transaction)은 데이터베이스에서 실행되는 논리적인 작업의 단위로, 하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 포함할 수 있다. 즉, 트랜잭션은 프레임워크가 트랜잭션 매니저를 통해 데이터베이스에 요청을 시작하고(Tx Begin 생성), 데이터베이스로부터 응답을 수신하는(Tx Commit 생성)하는 작업의 단위를 의미하고, 이러한 작업은 트랜잭션의 요청 시작 시에 생성되는 트랜잭션 ID(TID) 기반으로 이루어진다. 특히 본 발명의 일 실시예에 따르면, 제1 데이터베이스(100)와 제1 서버(200) 사이에서의 트랜잭션은 제1 프레임워크(220)가 제1 트랜잭션 매니저를 통해 제1 데이터베이스(100)에 커밋 준비 메시지를 전송하고, 제1 데이터베이스(100)로부터 커밋 실행 메시지에 대한 답변 메시지를 수신하는 작업의 단위를 의미한다. 전술한 바와 같이, 제1 데이터베이스(100)와 제1 서버(200) 사이의 하나의 트랜잭션에 대한 메시지는 동일한 트랜잭션 ID(TID)를 가질 수 있다. 구체적으로, 제1 데이터베이스(100)와 제1 서버(200) 사이에서 트랜잭션을 시작하는 커밋 준비 메시지 전송될 때 트랜잭션 ID가 생성되고, 트랜잭션을 종료하는 커밋 실행 메시지에 대한 답변 메시지가 전송될 때까지 하나의 트랜잭션에 대한 메시지는 동일한 트랜잭션 ID를 가질 수 있다. According to one embodiment of the present invention, the first database management system processes a transaction input from the first server 200 . A transaction is a unit of logical work executed in a database, and may include database operations required to perform one work. In other words, a transaction means a unit of work in which the framework initiates a request to the database through the transaction manager (creating Tx Begin) and receives a response from the database (creating Tx Commit). It is based on the transaction ID (TID) generated in In particular, according to one embodiment of the present invention, a transaction between the first database 100 and the first server 200 is committed by the first framework 220 to the first database 100 through the first transaction manager. It refers to a unit of work that transmits a preparation message and receives a response message to a commit execution message from the first database 100 . As described above, messages for one transaction between the first database 100 and the first server 200 may have the same transaction ID (TID). Specifically, until a transaction ID is generated when a commit preparation message for starting a transaction is transmitted between the first database 100 and the first server 200, and a reply message to the commit execution message for terminating the transaction is transmitted. Messages for one transaction can have the same transaction ID.

제1 데이터베이스 관리 시스템은 제1 데이터베이스(100)의 업무 범위에 각각 대응되는 복수의 트랜잭션을 커밋(commit) 준비 단계 및 커밋(commit) 실행 단계를 통해 처리한다. 이때, 커밋 실행 단계는 데이터베이스에 저장된 정보에 대해 업데이트가 실행되어 취소 불가한 상태를 말하며, 커밋을 실행하기 위해 준비하는 커밋 준비(prepare) 단계와는 구분된다. 이에 대해서는 도 3을 참조하여 상세히 후술한다.The first database management system processes a plurality of transactions respectively corresponding to the business scope of the first database 100 through a commit preparation step and a commit execution step. At this time, the commit execution step refers to an irrevocable state in which an update is executed for information stored in the database, and is distinguished from a commit prepare step in which a commit is prepared to be executed. This will be described later in detail with reference to FIG. 3 .

제1 서버(200)는 개발 단말(300)에 개발 어플리케이션을 제공하고, 제공된 어플리케이션을 통해 입력되는 요청(request)에 대한 적어도 하나의 트랜잭션을 생성한다.The first server 200 provides a development application to the development terminal 300 and generates at least one transaction for a request input through the provided application.

제1 서버(200)는 입력 받은 요청(request)을 처리하기 위해 제1 프레임워크(220)를 통해 제1 데이터베이스(100)로부터 정보를 취득하고, 취득한 정보를 이용하여 어플리케이션을 통해 서비스를 제공할 수 있다.The first server 200 acquires information from the first database 100 through the first framework 220 to process the input request, and provides a service through an application using the acquired information. can

제1 서버(200)는, 도 2a에 도시된 바와 같이, 제1 비즈니스 로직부(210) 및 제1 프레임워크(220)를 포함한다.As shown in FIG. 2A , the first server 200 includes a first business logic unit 210 and a first framework 220 .

제1 비즈니스 로직부(210)는 어플리케이션에 대한 비즈니스 로직을 구현한 코드를 포함할 수 있다. 도 2a에 도시된 바와 같이, 제1 비즈니스 로직부(210)는 각 비즈니스 로직을 구현하는 코드를 포함하는 복수의 업무 컴포넌트를 포함한다. 이러한 업무 컴포넌트는 제1 프레임워크(220)를 통해 제1 데이터베이스(100)로부터 취득하는 정보를 이용하여 어플리케이션을 통해 서비스를 제공한다. 이때, 복수의 업무 컴포넌트는 업무 범위에 따라 구분될 수 있다. 예를 들어, 어플리케이션이 은행 관련 어플리케이션인 경우, 제1 비즈니스 로직부(210)는 계좌 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트, 여신 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트, 또는 카드 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트 등을 포함할 수 있다. 이러한 업무 컴포넌트는 제1 프레임워크(220)를 통해 제1 데이터베이스(100)로부터 정보를 취득하고, 취득한 정보를 이용하여 어플리케이션을 통해 서비스를 제공한다. 특히 본 발명의 일 실시예에 따르면, 각 업무 컴포넌트는 제1 프레임워크(220)를 통해 제1 데이터베이스(100)의 각 업무 영역에 대응되는 복수의 업무 계정을 이용하여 제1 데이터베이스(100)에 접근하고, 각 업무 영역에 대응되는 복수의 트랜잭션을 통해 제1 데이터베이스(100)로부터 정보를 취득할 수 있다. The first business logic unit 210 may include code implementing business logic for an application. As shown in FIG. 2A , the first business logic unit 210 includes a plurality of business components including codes for implementing each business logic. These business components provide services through applications using information obtained from the first database 100 through the first framework 220 . In this case, the plurality of business components may be classified according to the business scope. For example, if the application is a bank-related application, the first business logic unit 210 may include a business component including code implementing account-related business logic, a business component including code implementing credit-related business logic, or It may include business components including code that implements card-related business logic. This business component acquires information from the first database 100 through the first framework 220 and provides a service through an application using the acquired information. In particular, according to one embodiment of the present invention, each business component is stored in the first database 100 using a plurality of business accounts corresponding to each business area of the first database 100 through the first framework 220. It is possible to obtain information from the first database 100 through a plurality of transactions corresponding to each work area.

제1 프레임워크(220)는 제1 비즈니스 로직부(210)의 업무 컴포넌트가 실행되는 환경을 구축한다. 구체적으로, 제1 프레임워크(220)는 개발 환경에 대응하는 환경 정보인 개발 환경 정보(properties)를 환경 설정 서버(configuration server, 800)로부터 제공받아 제1 비즈니스 로직부(210)의 업무 컴포넌트가 실행될 환경을 구축할 수 있다. 제1 프레임워크(220)는 개발 환경 정보를 저장하고 있는 환경 설정 서버(800)로부터 제공받아, 특정 키 값이 정의된 개발 환경 정보를 로드한다. 제1 프레임워크(220)는 로드된 개발 환경 정보를 이용하여 제1 비즈니스 로직부(210)의 업무 컴포넌트가 실행될 환경을 구축할 수 있다. 예를 들어, 'true'로 정의된 'iamf.global.xa.use'특성을 포함하는 개발 환경 정보를 이용하여 제1 비즈니스 로직부(210)의 업무 컴포넌트가 실행될 환경을 구축할 수 있다. 이는 복수의 트랜잭션에 대한 정합성을 보장할 수 있다는 의미로, 서도 다른 계정에 대한 정합성이나, 서로 다른 데이터베이스에 대한 정합성까지도 지원한다.The first framework 220 builds an environment in which business components of the first business logic unit 210 are executed. Specifically, the first framework 220 receives development environment information (properties), which is environment information corresponding to the development environment, from a configuration server (configuration server, 800), and the business component of the first business logic unit 210 You can build an environment to run on. The first framework 220 is provided from the environment setting server 800 that stores development environment information and loads development environment information in which a specific key value is defined. The first framework 220 may build an environment in which business components of the first business logic unit 210 are executed by using the loaded development environment information. For example, an environment in which a business component of the first business logic unit 210 is executed may be established using development environment information including a 'iamf.global.xa.use' characteristic defined as 'true'. This means that consistency for multiple transactions can be guaranteed, and consistency for different accounts and even for different databases is supported.

본 발명의 일 실시예에 따르면, 이러한 개발 환경 정보에 의해 제1 프레임워크(220)의 제1 트랜잭션 매니저의 구성이 결정된다. 이에 대해서는 도 6a를 참조하여 상세히 후술한다.According to an embodiment of the present invention, the configuration of the first transaction manager of the first framework 220 is determined by the development environment information. This will be described later in detail with reference to FIG. 6A.

본 발명의 일 실시예에 따르면, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 개발 환경에 대응하는 개발 환경 정보를 JSON(JavaScript Object Notation) 형태로 제공받을 수 있다. 이때, JSON 형태는 "속성-값 쌍" 또는 "키-값 쌍"으로 이루어진 데이터를 전달하기 위해 사용자가 읽을 수 있는 텍스트를 사용하는 포맷이다. 구체적으로, 환경 설정 서버(800)는 개발 환경 정보를 JSON 형태로 변환하여 제1 프레임워크(220)에 제공하고, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 제공받은 JSON 형태로 변환된 개발 환경 정보를 분석하여, 분석한 개발 환경 정보에 따라 제1 프레임워크(220)의 환경 설정 파일의 특정 키 값을 정의하여 환경 정보를 로드한다.According to an embodiment of the present invention, the first framework 220 may receive development environment information corresponding to the development environment from the environment setting server 800 in the form of JSON (JavaScript Object Notation). At this time, the JSON format is a format that uses text that can be read by a user to transmit data consisting of "property-value pairs" or "key-value pairs". Specifically, the environment setting server 800 converts the development environment information into JSON form and provides it to the first framework 220, and the first framework 220 converts the JSON form provided from the environment setting server 800 The converted development environment information is analyzed, and environment information is loaded by defining a specific key value of the environment setting file of the first framework 220 according to the analyzed development environment information.

본 발명의 다른 일 실시예에 따르면, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 개발 환경에 대응하는 개발 환경 정보를 파일 형태로 제공받을 수 있다. 구체적으로, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 개발 환경 정보를 파일 형태로 다운로드(download)받아 제공받을 수 있다. 제1 프레임워크(220)는 환경 설정 서버(800)로부터 다운로드 받은 개발 환경 정보에 따라 환경 정보를 로드한다. 이때, 환경 설정 서버(800)로부터 다운로드 받은 파일 형태의 개발 환경 정보는 특정 키 값이 정의된 파일일 수 있다.According to another embodiment of the present invention, the first framework 220 may receive development environment information corresponding to the development environment in the form of a file from the environment setting server 800 . Specifically, the first framework 220 may download and receive development environment information in the form of a file from the environment setting server 800 . The first framework 220 loads environment information according to development environment information downloaded from the environment setting server 800 . At this time, the development environment information in the form of a file downloaded from the environment setting server 800 may be a file in which a specific key value is defined.

즉, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 개발 환경에 대응하는 개발 환경 정보를 이용하여 환경 정보를 로드하고, 로드한 환경 정보에 따라 개발 어플리케이션이 실행될 환경을 구축할 수 있다.That is, the first framework 220 may load environment information using development environment information corresponding to the development environment from the environment setting server 800, and build an environment in which a development application is executed according to the loaded environment information. .

본 발명의 일 실시예에 따르면, 제1 프레임워크(220)는 개발 환경 정보에 따라 제1 데이터베이스(100)의 업무 영역으로부터 데이터를 취득하기 위한 세션을 관리하는 제1 트랜잭션 매니저를 결정한다. According to one embodiment of the present invention, the first framework 220 determines a first transaction manager managing a session for acquiring data from a work area of the first database 100 according to development environment information.

본 발명의 일 실시예에 따르면, 개발 어플리케이션을 통해 입력되는 요청(Request)에 따라 제1 비즈니스 로직부(210)의 업무 컴포넌트에서 제1 데이터베이스(100)에 저장된 정보를 이용하여 사용자에게 서비스를 제공하기 위해, 제1 트랜잭션 매니저는 입력된 요청에 대응되고 제1 데이터베이스(100)의 각 업무 영역에 대응하는 복수의 트랜잭션을 생성한다. 이때, 각 트랜잭션은 제1 데이터베이스(100)의 각 업무 영역에 접근 가능한 업무 계정을 통해 진행될 수 있다. 제1 트랜잭션 매니저로부터 생성된 트랜잭션은 제1 데이터베이스(100)에 커밋 준비 메시지를 전송하고, 생성된 모든 트랜잭션에 대해 제1 트랜잭션 매니저가 커밋 준비 상태를 확인하면, 제1 트랜잭션 매니저는 제1 데이터베이스(100)에 모든 트랜잭션에 대해 커밋 실행 메시지를 전송한다. 제1 트랜잭션 매니저는 커밋 실행 메시지에 대한 답변 메시지로 커밋 실행 결과 정보를 수신하면, 트랜잭션은 종료된다. 구체적으로, 제1 트랜잭션 매니저가 업무로직이 수행되기 전에 트랜잭션을 생성하고, 업무로직으로 인해, 제1 데이터베이스(100)에 데이터가 추가 또는 변경되면, 제1 트랜잭션 매니저가 제1 데이터베이스(100)에 커밋 준비 메시지를 전송함에 따라 DBMS는 데이터를 임시저장영역에 저장하게 된다. 제1 트랜잭션 매니저가 모든 트랜잭션에 대한 커밋준비단계를 확인하여, 제1 데이터베이스(100)에 커밋요청을 하게되면, 임시영역에 저장된 데이터가 테이블영역으로 저장되면서 DBMS로부터 커밋 실행 메시지에 대한 답변 메시지를 수신하고 트랜잭션이 종료되게 된다.According to one embodiment of the present invention, the business component of the first business logic unit 210 provides a service to the user using information stored in the first database 100 according to a request input through a development application. To do this, the first transaction manager generates a plurality of transactions corresponding to the input request and corresponding to each work area of the first database 100 . At this time, each transaction may be carried out through a work account accessible to each work area of the first database 100 . When the transaction generated from the first transaction manager transmits a commit readiness message to the first database 100 and the first transaction manager checks the commit readiness state for all generated transactions, the first transaction manager sends the first database (100). 100), a commit execution message is sent for all transactions. When the first transaction manager receives commit execution result information as a response message to the commit execution message, the transaction is terminated. Specifically, if the first transaction manager creates a transaction before the business logic is executed and data is added or changed in the first database 100 due to the business logic, the first transaction manager As the commit preparation message is transmitted, the DBMS stores the data in the temporary storage area. When the first transaction manager checks the commit preparation stage for all transactions and requests a commit to the first database 100, the data stored in the temporary area is stored as a table area and a response message to the commit execution message is sent from the DBMS. received and the transaction ends.

본 발명의 일 실시예에 따르면, 환경 설정 서버(800)에 의해 제공된 개발 환경 정보에 의해 구축된 개발 환경이 구축되고, 개발 어플리케이션으로부터 입력된 요청(request)에 의해 제1 서버(200)의 제1 트랜잭션 매니저는 제1 데이터베이스(100)의 복수의 업무 영역에 각각 접근 가능한 복수의 업무 계정을 통해 복수의 업무 영역에 대응되는 복수의 트랜잭션을 각각 생성한다.According to an embodiment of the present invention, a development environment built by the development environment information provided by the environment setting server 800 is established, and a request of the first server 200 is established by a request input from a development application. 1 transaction manager generates a plurality of transactions corresponding to a plurality of work areas through a plurality of work accounts respectively accessible to a plurality of work areas of the first database 100 .

개발 단말(300)은 어플리케이션을 개발하고 개발 어플리케이션을 제1 서버(200)로부터 제공받는 단말로, 제공된 어플리케이션을 통해 제1 서버(200)로 요청(Request)를 전송할 수 있다. The development terminal 300 is a terminal that develops an application and receives the developed application from the first server 200, and may transmit a request to the first server 200 through the provided application.

제2 데이터베이스(400)는 개발이 완료되어 운영되는 어플리케이션에 대한 정보를 저장한다. 제2 데이터베이스(400)는 복수의 테이블 또는 복수의 데이터베이스로 구성된다. 본 발명의 일 실시예에 따르면, 제2 데이터베이스(400)는 제2 데이터베이스(400)의 복수의 테이블 또는 복수의 데이터베이스에 접근할 수 있는 하나의 운영 계정을 포함할 수 있다. The second database 400 stores information about applications that have been developed and operated. The second database 400 is composed of a plurality of tables or a plurality of databases. According to one embodiment of the present invention, the second database 400 may include a plurality of tables of the second database 400 or one operating account capable of accessing a plurality of databases.

제2 데이터베이스(400)는 제2 데이터베이스 관리 시스템을 포함한다. 제2 데이터베이스 관리 시스템은 제2 데이터베이스(400)에서 데이터와 데이터의 집합을 생성, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다. 이때, 제2 데이터베이스(400)는 복수의 테이블뿐만 아니라 복수의 데이터베이스를 포함할 수 있기 때문에 제2 데이터베이스 관리 시스템은 제2 데이터베이스(400)에 포함된 복수의 데이터베이스의 데이터베이스 관리 시스템을 포함할 수 있다. The second database 400 includes a second database management system. The second database management system is an application program that provides functions for creating, storing, and managing data and data sets in the second database 400 . At this time, since the second database 400 may include a plurality of databases as well as a plurality of tables, the second database management system may include a database management system of a plurality of databases included in the second database 400. .

본 발명의 일 실시예에 따르면, 제2 데이터베이스 관리 시스템은 제2 서버(500)로부터 생성된 트랜잭션을 처리한다. 전술한 바와 같이, 트랜잭션은 프레임워크가 트랜잭션 매니저를 통해 데이터베이스에 요청을 시작하고(Tx Begin 생성), 데이터베이스로부터 응답을 수신하는(Tx Commit 생성)하는 작업의 단위를 의미하고, 이러한 작업은 트랜잭션의 요청 시작 시에 생성되는 트랜잭션 ID(TID) 기반으로 이루어진다. 특히 본 발명의 일 실시예에 따르면, 제2 데이터베이스(400)와 제2 서버(500) 사이에서의 트랜잭션은 제2 프레임워크(520)가 제2 트랜잭션 매니저를 통해 제2 데이터베이스(400)에 커밋 실행 메시지를 전송하고, 제2 데이터베이스(400)로부터 커밋 실행 메시지에 대한 답변 메시지를 수신하는 작업의 단위를 의미한다. 제2 데이터베이스(400)와 제2 서버(500) 사이의 하나의 트랜잭션에 대한 메시지는 동일한 트랜잭션 ID(TID)를 가질 수 있다. 구체적으로, 제2 데이터베이스(400)와 제2 서버(500) 사이에서 트랜잭션을 시작하는 커밋 실행 메시지 전송될 때 트랜잭션 ID가 생성되고, 트랜잭션을 종료하는 커밋 실행 메시지에 대한 답변 메시지가 전송될 때까지 하나의 트랜잭션에 대한 메시지는 동일한 트랜잭션 ID를 가질 수 있다. According to one embodiment of the present invention, the second database management system processes transactions generated from the second server 500 . As described above, a transaction refers to a unit of work in which the framework initiates a request to the database through a transaction manager (generating Tx Begin) and receives a response from the database (generating Tx Commit). This is done based on the transaction ID (TID) generated at the start of the request. In particular, according to one embodiment of the present invention, a transaction between the second database 400 and the second server 500 is committed by the second framework 520 to the second database 400 through the second transaction manager. It refers to a unit of work that transmits an execution message and receives a response message to the commit execution message from the second database 400 . Messages for one transaction between the second database 400 and the second server 500 may have the same transaction ID (TID). Specifically, until a transaction ID is generated when a commit execution message for starting a transaction is transmitted between the second database 400 and the second server 500, and a reply message to the commit execution message for ending the transaction is transmitted. Messages for one transaction can have the same transaction ID.

제2 데이터베이스 관리 시스템은 제2 서버(500)로부터 입력되는 하나의 트랜잭션을 커밋 실행 단계를 통해 처리한다. 이때, 커밋 실행 단계는 데이터베이스에 저장된 정보에 대해 업데이트가 실행되어 취소 불가한 상태를 말한다. 이에 대해서는 도 4를 참조하여 상세히 후술한다. The second database management system processes one transaction input from the second server 500 through a commit execution step. At this time, the commit execution step refers to an irreversible state in which an update is executed for information stored in the database. This will be described later in detail with reference to FIG. 4 .

제2 서버(500)는 개발이 완료되어 운영 어플리케이션을 고객 단말(600)에 제공하고, 고객 단말(600)에 제공된 어플리케이션을 통해 입력되는 요청(request)에 대한 하나의 트랜잭션을 생성한다. The second server 500 is developed, provides an operation application to the customer terminal 600, and generates one transaction for a request input through the application provided to the customer terminal 600.

제2 서버(500)는 입력 받은 요청(request)을 처리하기 위해 제2 프레임워크(520)를 통해 제2 데이터베이스(400)로부터 정보를 취득하고, 취득한 정보를 이용하여 어플리케이션을 통해 서비스를 제공할 수 있다.The second server 500 acquires information from the second database 400 through the second framework 520 to process the input request, and provides a service through an application using the acquired information. can

제2 서버(500)는, 도 2b에 도시된 바와 같이, 제2 비즈니스 로직부(510) 및 제2 프레임워크(520)를 포함한다.As shown in FIG. 2B , the second server 500 includes a second business logic unit 510 and a second framework 520 .

제2 비즈니스 로직부(510)는 어플리케이션에 대한 비즈니스 로직을 구현한 코드를 포함할 수 있다. 도 2b에 도시된 바와 같이, 제2 비즈니스 로직부(510)는 비즈니스 로직을 구현하는 코드를 각각 포함하는 복수의 업무 컴포넌트를 포함한다. 이때, 복수의 업무 컴포넌트는 업무 범위에 따라 구분될 수 있다. 예를 들어, 어플리케이션이 은행 관련 어플리케이션인 경우, 제2 비즈니스 로직부(510)는 계좌 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트, 여신 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트, 또는 카드 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트 등을 포함할 수 있다. 이러한 업무 컴포넌트는 제2 프레임워크(520)를 통해 제2 데이터베이스(400)로부터 정보를 취득하고, 취득한 정보를 이용하여 어플리케이션을 통해 서비스를 제공한다. 특히 본 발명의 일 실시예에 따르면, 각 업무 컴포넌트는 제2 프레임워크(520)를 통해 제2 데이터베이스(400)의 하나의 운영 계정을 이용하여 제2 데이터베이스(400)에 접근하고, 하나의 트랜잭션을 통해 제2 데이터베이스(400)로부터 정보를 취득할 수 있다. The second business logic unit 510 may include code implementing business logic for an application. As shown in FIG. 2B , the second business logic unit 510 includes a plurality of business components each including code implementing the business logic. In this case, the plurality of business components may be classified according to the business scope. For example, if the application is a bank-related application, the second business logic unit 510 may include a business component including code implementing account-related business logic, a business component including code implementing credit-related business logic, or It may include business components including code that implements card-related business logic. This business component acquires information from the second database 400 through the second framework 520 and provides a service through an application using the acquired information. In particular, according to one embodiment of the present invention, each business component accesses the second database 400 using one operating account of the second database 400 through the second framework 520, and performs one transaction. It is possible to obtain information from the second database 400 through.

제2 프레임워크(520)는 제2 비즈니스 로직부(510)의 업무 컴포넌트가 실행되는 환경을 구축한다. 구체적으로, 제2 프레임워크(520)는 운영 환경에 대응하는 정보인 운영 환경 정보(properties)를 환경 설정 서버(800)로부터 제공받아 제2 비즈니스 로직부(510)의 업무 컴포넌트가 실행될 환경을 구축할 수 있다. 제2 프레임워크(520)는 운영 환경 정보를 저장하고 있는 환경 설정 서버(800)로부터 제공받아, 특정 키 값이 정의된 운영 환경 정보를 운영 환경 정보를 로드한다. 제2 프레임워크(520)는 로드된 운영 환경 정보를 이용하여 제2 비즈니스 로직부(510)의 업무 컴포넌트가 실행될 환경을 구축할 수 있다. 예를 들어, 'false'로 정의된'iamf.global.xa.use'특성을 포함하는 개발 환경 정보를 이용하여 제2 비즈니스 로직부(510)의 업무 컴포넌트가 실행될 환경을 구축할 수 있다. 이는 단일 트랜잭션 안에서 수행된 데이터베이스 데이터의 추가/변경에 대한 정합성을 보장한다는 뜻으로,이러한 설정환경에서는 서로 다른 계정이나 서로 다른 데이터베이스의 정합성을 보장하지 않는다.The second framework 520 builds an environment in which business components of the second business logic unit 510 are executed. Specifically, the second framework 520 receives operating environment information (properties), which is information corresponding to the operating environment, from the environment setting server 800 and builds an environment in which business components of the second business logic unit 510 are executed. can do. The second framework 520 is provided from the environment setting server 800 storing the operating environment information, and loads the operating environment information in which a specific key value is defined. The second framework 520 may build an environment in which business components of the second business logic unit 510 are executed by using the loaded operating environment information. For example, an environment in which a business component of the second business logic unit 510 is executed may be established using development environment information including a 'iamf.global.xa.use' characteristic defined as 'false'. This means that the consistency of database data additions/changes performed within a single transaction is guaranteed. In this setting environment, the consistency of different accounts or different databases is not guaranteed.

본 발명의 일 실시예에 따르면, 이러한 운영 환경 정보에 의해 제2 프레임워크(520)의 제2 트랜잭션 매니저의 구성이 결정된다. 이에 대해서는 도 6b를 참조하여 상세히 후술한다.According to an embodiment of the present invention, the configuration of the second transaction manager of the second framework 520 is determined by the operating environment information. This will be described later in detail with reference to FIG. 6B.

본 발명의 일 실시예에 따르면, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경에 대응하는 운영 환경 정보를 JSON 형태로 제공받을 수 있다. 구체적으로, 환경 설정 서버(800)는 운영 환경 정보를 JSON 형태로 변환하여 제2 프레임워크(520)에 제공하고, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 제공받은 JSON 형태로 변환된 운영 환경 정보를 분석하여, 분석한 운영 환경 정보에 따라 제2 프레임워크(520)의 환경 설정 파일의 특정 키 값을 정의하여 운영 어플리케이션이 실행될 환경을 구축할 수 있다.According to an embodiment of the present invention, the second framework 520 may receive operating environment information corresponding to the operating environment in JSON form from the environment setting server 800 . Specifically, the environment setting server 800 converts the operating environment information into JSON form and provides it to the second framework 520, and the second framework 520 converts the JSON form provided from the environment setting server 800. The converted operating environment information is analyzed, and a specific key value of the environment setting file of the second framework 520 is defined according to the analyzed operating environment information, thereby establishing an environment in which the operating application is executed.

본 발명의 다른 일 실시예에 따르면, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경에 대응하는 운영 환경 정보를 파일 형태로 제공받을 수 있다. 구체적으로, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경 정보를 파일 형태로 다운로드(download)받아 제공받을 수 있다. 제2 프레임워크(520)는 환경 설정 서버(800)로부터 다운로드 받은 운영 환경 정보에 따라 환경 정보를 로드한다. 이때, 환경 설정 서버(800)로부터 다운로드 받은 파일 형태의 개발 환경 정보는 특정 키 값이 정의된 파일일 수 있다. According to another embodiment of the present invention, the second framework 520 may receive operating environment information corresponding to the operating environment from the environment setting server 800 in the form of a file. Specifically, the second framework 520 may download operating environment information in the form of a file from the environment setting server 800 and receive the provided information. The second framework 520 loads environment information according to operating environment information downloaded from the environment setting server 800 . At this time, the development environment information in the form of a file downloaded from the environment setting server 800 may be a file in which a specific key value is defined.

즉, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경에 대응하는 운영 환경 정보를 이용하여 환경 정보를 로드하고, 로드한 환경 정보에 따라 운영 어플리케이션이 실행될 환경을 구축할 수 있다.That is, the second framework 520 may load environment information using operating environment information corresponding to the operating environment from the environment setting server 800, and build an environment in which operating applications are executed according to the loaded environment information. .

본 발명의 일 실시예에 따르면, 제2 프레임워크(520)는 개발 환경 정보에 따라 제2 데이터베이스(400)의 업무 영역으로부터 데이터를 취득하기 위한 세션을 관리하는 제2 트랜잭션 매니저를 결정한다. According to one embodiment of the present invention, the second framework 520 determines a second transaction manager that manages a session for acquiring data from a work area of the second database 400 according to development environment information.

본 발명의 일 실시예에 따르면, 제2 트랜잭션 매니저는 운영 어플리케이션을 통해 입력되는 요청(Request)에 대응하여 제2 비즈니스 로직부(510)의 업무 컴포넌트를 실행시키고, 제2 데이터베이스(400)의 각 업무 영역에 대응하는 하나의 트랜잭션을 생성한다. 이때, 하나의 트랜잭션은 제2 데이터베이스(400)의 모든 업무 영역에 접근 가능한 운영 계정을 통해 진행될 수 있다. 제2 트랜잭션 매니저로부터 생성된 트랜잭션은 제2 데이터베이스(400)에 커밋 실행 메시지를 전송하고, 생성된 하나의 트랜잭션은 제2 데이터베이스(400)로부터 커밋 실행 메시지에 대한 답변 메시지를 수신함에 따라 트랜잭션이 종료된다. 구체적으로, 제2 트랜잭션 매니저가 업무로직이 수행되기 전에 트랜잭션을 생성하고, 업무로직으로 인해, 제2 데이터베이스(400)에 데이터가 추가 또는 변경되면, 제2 트랜잭션 매니저는 제2 데이터베이스(400)에 커밋 실행 메시지를 전송함에 따라 DBMS는 데이터를 테이블영역에 바로 저장하게 된다. 제2 트랜잭션 매니저가 커밋 준비 메시지에 대한 답변 메시지를 수신하면, 제2 트랜잭션 매니저는 트랜잭션을 종료시킨다.According to one embodiment of the present invention, the second transaction manager executes a business component of the second business logic unit 510 in response to a request input through an operation application, and each of the second database 400 Create one transaction corresponding to the business area. At this time, one transaction may proceed through an operating account accessible to all business areas of the second database 400 . The transaction created from the second transaction manager transmits a commit execution message to the second database 400, and one generated transaction receives a response message to the commit execution message from the second database 400, and the transaction ends. do. Specifically, if the second transaction manager creates a transaction before the business logic is executed and data is added or changed in the second database 400 due to the business logic, the second transaction manager stores the data in the second database 400. As the commit execution message is transmitted, the DBMS immediately stores the data in the table area. When the second transaction manager receives the response message to the commit ready message, the second transaction manager terminates the transaction.

본 발명의 일 실시예에 따르면, 환경 설정 서버(800)에 의해 제공된 운영 환경 정보에 의해 구축된 운영 환경이 구축되고, 운영 어플리케이션으로부터 입력된 요청(request)에 의해 제2 서버(500)의 제2 트랜잭션 매니저는 제2 데이터베이스(400)에 접근 가능한 하나의 운영 계정을 통해 하나의 트랜잭션을 생성한다.According to an embodiment of the present invention, an operating environment built by the operating environment information provided by the environment setting server 800 is built, and a request of the second server 500 is established by a request input from an operating application. 2 The transaction manager creates one transaction through one operational account accessible to the second database 400 .

고객 단말(600)은 운영 어플리케이션을 제2 서버(500)로부터 제공받는 단말로, 제공된 어플리케이션을 통해 제2 서버(500)로 요청(Request)를 전송할 수 있다. The customer terminal 600 is a terminal that receives an operating application from the second server 500 and may transmit a request to the second server 500 through the provided application.

운영 단말(700)은 제2 서버(500)에서 제공하는 어플리케이션을 운영하는 단말로, 운영 어플리케이션의 제2 서버(500)를 통해 어플리케이션의 설정 및 상태를 관리할 수 있다. The operating terminal 700 is a terminal that operates an application provided by the second server 500 and can manage application settings and states through the second server 500 of the operating application.

환경 설정 서버(800)는 개발 환경에 대응하는 환경 정보인 개발 환경 정보 및 운영 환경에 대응하는 운영 환경 정보를 포함한다. 구체적으로, 환경 설정 서버(800)는 'iamf.global.xa.use'특성이 'true'로 정의된 개발 환경 정보 및 iamf.global.xa.use'특성이 'false'로 정의된 운영 환경 정보를 포함한다.The environment setting server 800 includes development environment information corresponding to the development environment and operating environment information corresponding to the operating environment. Specifically, the environment setting server 800 provides development environment information in which the 'iamf.global.xa.use' property is defined as 'true' and operating environment information in which the 'iamf.global.xa.use' property is defined as 'false'. includes

환경 설정 서버(800)는 개발 환경에 대응하는 환경 정보인 개발 환경 정보를 제1 서버(200)에 제공하고, 운영 환경에 대응하는 운영 환경 정보를 제2 서버(500)에 제공한다. 구체적으로, 환경 설정 서버(800)는 'iamf.global.xa.use'특성이 'true'로 정의된 개발 환경 정보를 제1 서버(200)에 제공하고, iamf.global.xa.use'특성이 'false'로 정의된 운영 환경 정보를 제2 서버(500)에 제공한다. 이에 따라, 제1 프레임워크(220)는 'iamf.global.xa.use'가 'true'로 설정된 개발 환경 정보를 환경 설정 서버(800)로부터 제공받아 개발 환경을 구축하고, 구축된 개발 환경에 의해 설정된 제1 트랜잭션 매니저를 구동한다. 상술한 것처럼, global transaction은 복수의 트랜잭션에 대한 정합성을 보장할 수 있다는 의미로, 서도 다른 계정에 대한 정합성이나, 서로 다른 데이터베이스에 대한 정합성까지도 지원한다. The environment setting server 800 provides development environment information corresponding to the development environment to the first server 200 and provides operating environment information corresponding to the operating environment to the second server 500 . Specifically, the environment setting server 800 provides development environment information in which the 'iamf.global.xa.use' characteristic is defined as 'true' to the first server 200, and the 'iamf.global.xa.use' characteristic Operating environment information defined as 'false' is provided to the second server 500 . Accordingly, the first framework 220 receives the development environment information in which 'iamf.global.xa.use' is set to 'true' from the environment setting server 800 to build a development environment, and in the built development environment. Drives the first transaction manager set by As described above, global transaction means that it can guarantee consistency for multiple transactions, and it supports consistency for different accounts and even for different databases.

또한, 제2 프레임워크(520)는 'iamf.global.xa.use'특성이 'false'로 설정된 운영 환경 정보를 환경 설정 서버(800)로부터 제공받아 운영 환경을 구축하고, 구축된 운영 환경에 의해 설정된 제2 트랜잭션 매니저를 구동한다. 상술한 것처럼, single transaction은 단일 트랜잭션안에서 수행된 DB데이터의 추가/변경(업무로직에서 처리한 변경)에 대한 정합성을 보장한다는 의미이며, 서로 다른 계정이나 서로 다른 DB의 정합성을 보장하지 않고 설정도 지원하지 않는다. 개발 환경에 의해 구동되는 제1 트랜잭션 매니저 및 운영 환경에 의해 구동되는 제2 트랜잭션 매니저에 대해서는, 도 3 및 도 4를 참조하여 상세히 후술한다.In addition, the second framework 520 receives operating environment information in which the 'iamf.global.xa.use' characteristic is set to 'false' from the environment setting server 800 to build an operating environment, and to the built operating environment. The second transaction manager set by As described above, a single transaction means that the consistency of DB data additions/changes (changes processed in business logic) performed within a single transaction is guaranteed. do not support The first transaction manager driven by the development environment and the second transaction manager driven by the operating environment will be described in detail later with reference to FIGS. 3 and 4 .

이하, 도 3 및 도 4를 참조하여, 본 발명의 일 실시예에 따른 제1 서버의 제1 프레임워크 및 제2 서버의 제2 프레임워크의 동작에 대해 설명한다.Hereinafter, operations of the first framework of the first server and the second framework of the second server according to an embodiment of the present invention will be described with reference to FIGS. 3 and 4 .

도 3은 본 발명의 일 실시예에 따른 제1 서버의 제1 프레임워크의 동작을 나타내는 도면이다. 도 4는 본 발명의 일 실시예에 따른 제2 서버의 제2 프레임워크의 동작을 나타내는 도면이다.3 is a diagram illustrating an operation of a first framework of a first server according to an embodiment of the present invention. 4 is a diagram illustrating an operation of a second framework of a second server according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 제1 데이터베이스(100)는 전술한 바와 같이, 업무 범위에 따라 업무 영역으로 구분된다. 예를 들어, 어플리케이션이 금융에 대한 비즈니스 로직을 포함하고 제1 데이터베이스(100)가 금융 관련 데이터를 포함하는 경우, 제1 데이터베이스(100)는, 도 3에 도시된 바와 같이, 업무 범위에 따라 구분된 제1 업무 영역인 계좌 테이블, 제2 업무 영역인 여신 테이블 및 제3 업무 영역인 카드 테이블로 구분될 수 있다. As described above, the first database 100 according to an embodiment of the present invention is divided into work areas according to work scopes. For example, when an application includes business logic for finance and the first database 100 includes finance-related data, the first database 100 is classified according to the business scope, as shown in FIG. 3 . It can be divided into an account table as a first work area, a credit table as a second work area, and a card table as a third work area.

또한, 제1 데이터베이스(100)는 업무 범위에 따라 구분되는 업무 계정을 포함하여, 각 업무 영역은 해당 업무 영역과 동일한 업무 범위의 업무 계정을 이용하여 접근될 수 있다. 예를 들어, 제1 업무 영역인 계좌 테이블은 제1 업무 계정인 depapp을 통해서만 접근될 수 있으며, 제2 업무 영역인 여신 테이블은 제2 업무 계정인 Ionapp을 통해서만 접근될 수 있으며, 제3 업무 영역인 카드 테이블은 제3 업무 계정인 capapp을 통해서만 접근될 수 있다. 즉, 본 발명의 일 실시예에 따르면, 제1 데이터베이스(100)의 업무 영역에서 각 업무 영역에 대응되는 업무 계정을 통해서만 업무 영역 테이블에 접근할 수 있고, 이러한 방식을 통해 무분별한 데이터의 접근을 막음으로써 안정적이고 효율적인 운영이 가능하다. In addition, the first database 100 includes work accounts classified according to work scopes, and each work area can be accessed using a work account of the same work scope as the corresponding work area. For example, Account Table, the first business area, can only be accessed through the first business account, depapp, and Credit Table, the second business area, can only be accessed through the second business account, Ionapp. The in-card table can only be accessed through a third-party account, capapp. That is, according to one embodiment of the present invention, in the work area of the first database 100, the work area table can be accessed only through the work account corresponding to each work area, and indiscriminate data access is prevented through this method. This enables stable and efficient operation.

본 발명의 일 실시예에 따른 제1 프레임워크(220)는 'iamf.global.xa.use'특성이 'true'로 정의된 개발 환경 정보(properties)를 이용하여 개발 환경을 구축하고, 제1 트랜잭션 매니저의 구성을 결정한다. 제1 트랜잭션 매니저는 개발 단말(300)로부터 입력된 요청(Request)에 대해 제1 데이터베이스(100)의 업무 영역들에 각각 대응되는 복수의 트랜잭션을 생성한다. 구체적으로, 도 3에 도시된 바와 같이, 개발 어플리케이션을 통해 제1 프레임워크(220)에 요청(Request)이 입력되면, 제1 프레임워크(220)의 제1 트랜잭션 매니저는 해당 요청에 대해 업무 범위에 따라 구분되는 제1 트랜잭션(T1), 제2 트랜잭션(T2) 및 제3 트랜잭션(T3)을 생성할 수 있다. 생성된 제1 트랜잭션(T1), 제2 트랜잭션(T2) 및 제3 트랜잭션(T3)은 각각 대응되는 업무 영역에 대응되는 제1 데이터베이스(100)의 업무 계정을 통해 각각 처리될 수 있다. 예를 들어, 제1 트랜잭션 매니저는 제1 업무 계정(depapp)을 통해 제1 업무 영역(계좌 테이블)에서 제1 트랜잭션(T1)을 처리하고, 제2 업무 계정(Ionapp)을 통해 제2 업무 영역(여신 테이블)에서 제2 트랜잭션(T2)을 처리하고, 제3 업무 계정(capapp)을 통해 제3 업무 영역(카드 테이블)에서 제3 트랜잭션(T3)을 처리할 수 있다.The first framework 220 according to an embodiment of the present invention builds a development environment using development environment information (properties) in which the 'iamf.global.xa.use' property is defined as 'true', and Determines the configuration of the transaction manager. The first transaction manager generates a plurality of transactions corresponding to business areas of the first database 100 in response to a request input from the development terminal 300 . Specifically, as shown in FIG. 3 , when a request is input to the first framework 220 through a development application, the first transaction manager of the first framework 220 responds to the request within a business range. A first transaction T1, a second transaction T2, and a third transaction T3 classified according to may be generated. The generated first transaction T1 , second transaction T2 , and third transaction T3 may be respectively processed through the work account of the first database 100 corresponding to the corresponding work area. For example, the first transaction manager processes the first transaction T1 in the first work area (account table) through the first work account (depapp), and processes the first transaction (T1) through the second work account (Ionapp) in the second work area. The second transaction T2 may be processed in the credit table, and the third transaction T3 may be processed in the third work area (card table) through the third work account capapp.

본 발명의 일 실시예에 따르면, 제1 트랜잭션 매니저는 제1 데이터베이스(100)의 업무 영역에 각각 대응되는 복수의 트랜잭션을 커밋(commit) 준비 단계 및 커밋(commit) 실행 단계를 통해 처리한다. 이에 대해서는, 도 5 및 도 6a를 참조하여 상세히 후술한다.According to one embodiment of the present invention, the first transaction manager processes a plurality of transactions respectively corresponding to the business areas of the first database 100 through a commit preparation step and a commit execution step. This will be described in detail later with reference to FIGS. 5 and 6A.

본 발명의 일 실시예에 따르면, 제1 서버(200)는 제1 데이터베이스(100)의 각 업무 영역에 대응되는 업무 계정을 이용하여 각 업무 영역에서 복수의 트랜잭션을 처리한다. 구체적으로, 제1 서버(200)는 복수의 트랜잭션을 커밋 준비 단계 및 커밋 실행 단계를 통해 처리하기 때문에 제1 데이터베이스(100)의 다른 업무 영역의 테이블 및 데이터베이스에 대한 접근을 제한할 수 있어 개발 과정 중 데이터베이스의 유지 및 보수가 용이해지고, 데이터베이스의 정합성을 보장할 수 있는 효과가 있다.According to an embodiment of the present invention, the first server 200 processes a plurality of transactions in each business area using a business account corresponding to each business area of the first database 100 . Specifically, since the first server 200 processes a plurality of transactions through a commit preparation step and a commit execution step, it is possible to restrict access to tables and databases in other business areas of the first database 100 during the development process. Maintenance and repair of the database becomes easy, and there is an effect of ensuring the consistency of the database.

본 발명의 일 실시예에 따른 제2 데이터베이스(400)는 어플리케이션이 금융에 대한 비즈니스 로직을 포함하고 제2 데이터베이스(400)가 금융 관련 데이터를 포함하는 경우, 제2 데이터베이스(400)는, 복수의 테이블 및 데이터베이스를 포함한다. 예를 들어, 제2 데이터베이스(400)는, 도 4에 도시된 바와 같이, 계좌 테이블, 여신 테이블 및 카드 테이블을 포함할 수 있다.The second database 400 according to an embodiment of the present invention, when the application includes business logic for finance and the second database 400 includes finance-related data, the second database 400 includes a plurality of Includes tables and databases. For example, as shown in FIG. 4 , the second database 400 may include an account table, a credit table, and a card table.

본 발명의 일 실시예에 따른 제2 데이터베이스(400)는 하나의 운영 계정을 포함하여, 이 운영 계정을 통해 모든 테이블 및 데이터베이스에 접근될 수 있다.The second database 400 according to an embodiment of the present invention includes one operating account, and all tables and databases can be accessed through this operating account.

본 발명의 일 실시예에 따른 제2 프레임워크(520)는 'iamf.global.xa.use'가 'false'로 설정된 운영 환경 정보(properties)를 이용하여 운영 환경을 구축하고, 제2 트랜잭션 매니저의 구성을 결정한다. 제2 트랜잭션 매니저는 고객 단말(600)로부터 입력된 요청(Request)에 대해 제2 데이터베이스(400)의 업무 영역들에 각각 대응되는 단일 트랜잭션을 생성한다. 구체적으로, 도 4에 도시된 바와 같이, 운영 어플리케이션을 통해 제2 프레임워크(520)에 요청(Request)이 입력되면, 제2 프레임워크(520)의 제2 트랜잭션 매니저는 해당 요청에 대해 하나의 트랜잭션(To)을 생성할 수 있다. 생성된 하나의 트랜잭션(To)은 제2 데이터베이스(400)의 하나의 운영 계정을 통해 처리될 수 있다. 이때, 하나의 트랜잭션(To)은 업무 범위에 따라 구분되는 복수의 테이에 대한 추가/변경처리가 가능하다. 예를 들어, 제2 트랜잭션 매니저는 하나의 운영 계정(To)을 통해 계좌 테이블, 여신 테이블 및 카드 테이블에 대한 하나의 트랜잭션(To)을 처리할 수 있다. The second framework 520 according to an embodiment of the present invention builds an operating environment using operating environment information (properties) in which 'iamf.global.xa.use' is set to 'false', and the second transaction manager determine the composition of The second transaction manager generates a single transaction corresponding to each business area of the second database 400 in response to a request input from the customer terminal 600 . Specifically, as shown in FIG. 4 , when a request is input to the second framework 520 through an operating application, the second transaction manager of the second framework 520 sends one request to the second framework 520 . You can create a transaction (To). One generated transaction (To) may be processed through one operating account of the second database 400 . At this time, one transaction (To) can add/change processing for a plurality of tables classified according to the business scope. For example, the second transaction manager may process one transaction To for an account table, credit table, and card table through one operating account To.

제2 트랜잭션 매니저는 제2 데이터베이스(400)에 대한 하나의 트랜잭션을 커밋 실행 단계를 통해 처리한다. 이에 대해서는 도 5 및 도 6b를 참조하여 상세히 후술한다. The second transaction manager processes one transaction for the second database 400 through a commit execution step. This will be described later in detail with reference to FIGS. 5 and 6B.

본 발명에 따르면, 제2 서버(500)는 하나의 운영 계정(To)을 이용하여 복수의 업무 범위에 대한 하나의 트랜잭션(To)을 처리한다. 구체적으로, 제2 서버(500)는 하나의 트랜잭션을 커밋 실행 단계를 통해 처리하기 때문에 신속하게 트랜잭션을 처리하고, 제2 데이터베이스(400)의 정합성을 보장할 수 있는 효과가 있다. According to the present invention, the second server 500 processes one transaction (To) for a plurality of business scopes using one operating account (To). Specifically, since the second server 500 processes one transaction through a commit execution step, there is an effect of quickly processing the transaction and guaranteeing the consistency of the second database 400 .

본 발명에 따르면, 제1 서버(200) 및 제2 서버(500)는 서로 다른 환경에서 구동되며, 이에 따라 서로 다른 과정을 통해 트랜잭션을 생성 및 처리하기 때문에, 데이터베이스의 제품 종류와 같은 환경에 무관하게 제1 데이터베이스(100) 및 제2 데이터베이스(400)의 정합성을 보장하고 신속하게 트랜잭션을 처리할 수 있다.According to the present invention, since the first server 200 and the second server 500 are driven in different environments and thus generate and process transactions through different processes, the environment such as the product type of the database is irrelevant. It is possible to ensure the consistency of the first database 100 and the second database 400 and to quickly process transactions.

도 5를 참조하여, 본 발명의 일 실시예에 따른 개발 환경 및 운영 환경에서 최적화된 트랜잭션을 실행하는 방법에 대해 상세히 설명한다. Referring to FIG. 5 , a method of executing an optimized transaction in a development environment and an operating environment according to an embodiment of the present invention will be described in detail.

도 5는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법에 대한 플로우 차트이다.5 is a flowchart of a method for developing business component isolation using multi-transaction.

도 5를 참조하면, 트랜잭션은 개발 환경과 운영 환경에서 서로 다른 과정을 통해 생성되고 처리된다. 즉, 전술한 바와 같이, 환경 설정 서버(800)는 개발 환경에 대응하는 개발 환경 정보(properties)를 제1 서버(200)에 제공하고, 운영 환경에 대응하는 운영 환경 정보(properties)를 제2 서버(500)에 제공한다. 이에 따라, 제1 프레임워크(220)의 제1 트랜잭션 매니저 및 제2 프레임워크(520)의 제2 트랜잭션 매니저는 서로 다른 구성으로 결정되어 서로 다른 방법을 통해 트랜잭션을 생성하고 처리한다. Referring to FIG. 5 , transactions are created and processed through different processes in a development environment and an operating environment. That is, as described above, the environment setting server 800 provides development environment information (properties) corresponding to the development environment to the first server 200 and operating environment information (properties) corresponding to the operating environment to the second server 200 . It is provided to the server 500. Accordingly, the first transaction manager of the first framework 220 and the second transaction manager of the second framework 520 are determined to have different configurations and generate and process transactions through different methods.

개발 환경에서, 환경 설정 서버(800)에 저장된 개발 환경 정보가 제1 서버(200)의 제1 프레임워크(220)에 제공되어 환경 설정에 적용된다(S511). 구체적으로, 'true'로 정의된 'iamf.global.xa.use'특성을 포함하는 개발 환경 정보에 따라, 제1 프레임워크(220)는 제1 트랜잭션 매니저의 구성을 결정할 수 있다. In the development environment, the development environment information stored in the environment setting server 800 is provided to the first framework 220 of the first server 200 and applied to the environment setting (S511). Specifically, the first framework 220 may determine the configuration of the first transaction manager according to development environment information including the 'iamf.global.xa.use' characteristic defined as 'true'.

제1 트랜잭션 매니저는 업무 계정을 통해 각 업무 범위에 대응하는 업무 영역에 접근한다(S512). 예를 들어, 전술한 바와 같이, 제1 서버(200)의 제1 프레임워크(220)는 제1 업무 계정(depapp)을 통해 제1 업무 영역(계좌 테이블)에 접근하고, 제2 업무 계정(Ionapp)을 통해 제2 업무 영역(여신 테이블)에 접근할 수 있다.The first transaction manager accesses the work area corresponding to each work scope through the work account (S512). For example, as described above, the first framework 220 of the first server 200 accesses the first work area (account table) through the first work account (depapp), and the second work account ( You can access the second work area (loan table) through Ionapp).

제1 서버(200) 및 제1 데이터베이스(100)는 커밋 준비 단계를 수행한다(S513). 구체적으로, 제1 서버(200)의 제1 트랜잭션 매니저 및 제1 데이터베이스(100)의 제1 데이터베이스 관리 시스템(DBMS1)은 커밋 준비 단계를 수행한다. 커밋 준비 단계에서, 제1 트랜잭션 매니저는 제1 데이터베이스 관리 시스템(DBMS1)에 커밋 준비 메시지를 전송하고, 이에 대한 답변 메시지를 제1 데이터베이스 관리 시스템으로부터 수신한다. 이때, 커밋 준비 메시지에 대한 답변 메시지는 커밋 준비 완료 메시지 또는 커밋 준비 실패 메시지일 수 있다. 특히, 본 발명의 일 실시예에 따르면, 제1 트랜잭션 매니저는 어플리케이션으로부터 수신한 요청에 대해 복수의 업무 영역에 각각 대응하는 복수의 트랜잭션을 생성하고, 모든 트랜잭션에 대해 제1 트랜잭션 매니저가 커밋 준비 메시지에 대한 답변 메시지로서 커밋 준비 완료 메시지를 수신하면, 제1 트랜잭션 매니저 및 제2 데이터베이스 관리 시스템은 커밋 단계를 진행한다(S514).The first server 200 and the first database 100 perform a commit preparation step (S513). Specifically, the first transaction manager of the first server 200 and the first database management system DBMS1 of the first database 100 perform a commit preparation step. In the commit preparation step, the first transaction manager transmits a commit preparation message to the first database management system (DBMS1) and receives a response message to the commit preparation message from the first database management system. In this case, the response message to the commit preparation message may be a commit preparation completion message or a commit preparation failure message. In particular, according to an embodiment of the present invention, the first transaction manager generates a plurality of transactions corresponding to a plurality of work areas in response to a request received from an application, and the first transaction manager sends a commit preparation message for all transactions. Upon receiving the commit preparation completion message as a response message to , the first transaction manager and the second database management system proceed with a commit step (S514).

제1 트랜잭션 매니저 및 제1 데이터베이스 관리 시스템의 커밋 준비 단계(S513) 및 커밋 실행 단계(S514)에 대해 도 6a를 참조하여 상세히 후술한다.A commit preparation step (S513) and a commit execution step (S514) of the first transaction manager and the first database management system will be described later in detail with reference to FIG. 6A.

운영 환경에서, 환경 설정 서버(800)에 저장된 운영 환경 정보가 제2 서버(500)의 제2 프레임워크(520)에 제공되어 환경 설정에 적용된다(S521). 구체적으로, 'false'로 정의된 'iamf.global.xa.use'특성을 포함하는 개발 환경 정보에 따라, 제2 프레임워크(520)는 제2 트랜잭션 매니저의 구성을 결정할 수 있다. In the operating environment, the operating environment information stored in the environment setting server 800 is provided to the second framework 520 of the second server 500 and applied to the environment setting (S521). Specifically, the second framework 520 may determine the configuration of the second transaction manager according to development environment information including the 'iamf.global.xa.use' characteristic defined as 'false'.

제2 트랜잭션 매니저는 하나의 운영 계정(To)을 통해 제2 데이터베이스(400)의 복수의 업무 범위에 접근한다(S522). 예를 들어, 제2 트랜잭션 매니저는 운영 계정(To)을 통해 복수의 업무 범위(계좌 테이블, 여신 테이블)에 접근할 수 있다.The second transaction manager accesses a plurality of business scopes of the second database 400 through one operating account (To) (S522). For example, the second transaction manager may access a plurality of business scopes (account table, credit table) through the operating account To.

제2 서버(500) 및 제2 데이터베이스(400)는 커밋 실행 단계를 수행한다(S523). 구체적으로, 제2 서버(500)의 제2 트랜잭션 매니저 및 제2 데이터베이스(400)의 제2 데이터베이스 관리 시스템은 커밋 실행 단계를 수행한다. The second server 500 and the second database 400 perform a commit execution step (S523). Specifically, the second transaction manager of the second server 500 and the second database management system of the second database 400 perform a commit execution step.

제2 트랜잭션 매니저 및 제2 데이터베이스 관리 시스템의 커밋 실행 단계에 대해서는 도 6b를 참조하여 상세히 설명한다.The commit execution step of the second transaction manager and the second database management system will be described in detail with reference to FIG. 6B.

도 6a 및 도 6b를 참조하여, 개발 환경에서 수행되는 커밋 준비 단계 및 커밋 단계 및 운영 환경에서 수행되는 커밋 단계에 대해 상세히 설명한다.Referring to FIGS. 6A and 6B , a commit preparation step and a commit step performed in a development environment and a commit step performed in an operating environment will be described in detail.

도 6a는 본 발명의 일 실시예에 따른 개발 환경에서 트랜잭션이 처리되는 방법을 나타내는 시퀀스 다이어그램이고, 도 6b는 본 발명의 일 실시예에 따른 운영 환경에서 트랜잭션이 처리되는 방법을 나타내는 시퀀스 다이어그램이다. 6A is a sequence diagram illustrating how a transaction is processed in a development environment according to an embodiment of the present invention, and FIG. 6B is a sequence diagram illustrating how a transaction is processed in an operating environment according to an embodiment of the present invention.

전술한 바와 같이, 개발 환경에 대응하는 환경 설정이 적용된 제1 트랜잭션 매니저 및 운영 환경에 대응하는 환경 설정이 적용된 제2 트랜잭션 매니저 각각은 서로 다른 과정을 통해 트랜잭션이 처리된다. 구체적으로, 'iamf.global.xa.use'가 'true'로 정의된 개발 환경 정보(properties)가 제1 프레임워크(220)에 적용되어 구축된 개발 환경에서 제1 트랜잭션 매니저가 구동하고, 제1 트랜잭션 매니저는 커밋 준비 단계 및 커밋 실행 단계를 통해 복수의 트랜잭션을 처리한다. 한편, 'iamf.global.xa.use'가 'false'로 정의된 운영 환경 정보(properties)가 제2 프레임워크(520)에 적용되어 구축된 운영 환경에서 제2 트랜잭션 매니저는 커밋 실행 단계를 통해 하나의 트랜잭션을 처리한다.As described above, the first transaction manager, to which environment settings corresponding to the development environment are applied, and the second transaction manager, to which environment settings corresponding to the operating environment are applied, each process a transaction through a different process. Specifically, the first transaction manager runs in the development environment built by applying the development environment information (properties) in which 'iamf.global.xa.use' is defined as 'true' to the first framework 220, and 1 A transaction manager processes multiple transactions through a commit preparation phase and a commit execution phase. Meanwhile, in the operating environment built by applying the operating environment information (properties) in which 'iamf.global.xa.use' is defined as 'false' to the second framework 520, the second transaction manager performs a commit execution step. Process one transaction.

도 6a를 참조하면, 제1 트랜잭션 매니저는 커밋 준비 단계 및 커밋 실행 단계의 두 단계를 통해 복수의 트랜잭션을 처리한다. Referring to FIG. 6A , the first transaction manager processes a plurality of transactions through two stages: a commit preparation stage and a commit execution stage.

커밋 준비 단계에서, 제1 트랜잭션 매니저는 커밋 준비 메시지를 제1 데이터베이스 관리 시스템(DBMS1)으로 전송한다(S611). 이때, 전술한 바와 같이, 제1 트랜잭션 매니저는 어플리케이션으로부터 수신한 요청에 대해 복수의 업무 영역에 각각 대응하는 복수의 트랜잭션을 생성한다. 즉, 제1 트랜잭션 매니저는 복수의 트랜잭션 각각에 대해 커밋 준비 메시지를 제1 데이터베이스 관리 시스템(DBMS1)으로 전송한다. 특히, 본 발명의 일 실시예에 따르면, 제1 트랜잭션 매니저가 복수의 업무 영역 각각에 대응하는 복수의 트랜잭션에 대해 각각 커밋 준비 메시지를 전송하기 때문에, 물리적으로 분리되어 있거나 다른 DBMS 제품인 경우라 하더라도 정합성이 보장되는 이점이 있다.In the commit preparation step, the first transaction manager transmits a commit preparation message to the first database management system (DBMS1) (S611). At this time, as described above, the first transaction manager generates a plurality of transactions respectively corresponding to a plurality of work areas in response to the request received from the application. That is, the first transaction manager transmits a commit preparation message for each of a plurality of transactions to the first database management system DBMS1. In particular, according to an embodiment of the present invention, since the first transaction manager transmits a commit preparation message for each of a plurality of transactions corresponding to each of a plurality of business areas, consistency is maintained even if they are physically separated or different DBMS products. There are benefits to this guaranteed.

이후, 제1 트랜잭션 매니저는 제1 데이터베이스 관리 시스템(DBMS1)으로부터 복수의 트랜잭션의 각 커밋 준비 메시지에 대한 답변 메시지를 수신한다(S612). 이때, 커밋 준비 메시지에 대한 답변 메시지는 커밋 준비 완료 메시지 또는 커밋 준비 실패 메시지일 수 있다. 복수의 트랜잭션의 커밋 준비 메시지에 대한 답변 메시지가 모두 커밋 준비 완료 메시지이면, 제1 트랜잭션 매니저는 커밋 실행 단계를 진행한다. 반면, 복수의 트랜잭션의 커밋 준비 메시지에 대한 답변 메시지들 중 적어도 하나가 커밋 준비 실패 메시지이면, 제1 트랜잭션 매니저는 모든 트랜잭션은 진행되던 단계를 취소(rollback) 할 수 있다. 구체적으로, 취소(rollback)는 트랜잭션에서 커밋 준비 단계를 철회하는 것을 의미한다. Thereafter, the first transaction manager receives a response message for each commit preparation message of a plurality of transactions from the first database management system (DBMS1) (S612). In this case, the response message to the commit preparation message may be a commit preparation completion message or a commit preparation failure message. If the response messages to the commit preparation messages of the plurality of transactions are all commit preparation complete messages, the first transaction manager proceeds with a commit execution step. On the other hand, if at least one of the response messages to the commit preparation messages of the plurality of transactions is a commit preparation failure message, the first transaction manager may roll back steps in progress of all transactions. Specifically, rollback means withdrawing the commit preparation phase from a transaction.

복수의 트랜잭션의 커밋 준비 메시지에 대한 답변 메시지가 모두 커밋 준비 완료 메시지이면, 제1 트랜잭션 매니저는 커밋 실행 메시지를 제1 데이터베이스 관리 시스템(DBMS1)으로 전송한다(S613). If the response messages to the commit preparation messages of the plurality of transactions are all commit preparation completion messages, the first transaction manager transmits a commit execution message to the first database management system DBMS1 (S613).

이후, 제1 트랜잭션 매니저는 커밋 실행 메시지를 제1 데이터베이스 관리 시스템(DBMS1)으로 전송한다(S614). 이때, 커밋 실행 메시지에 대한 답변 메시지는 커밋 실행 완료 메시지 또는 커밋 실행 실패 메시지일 수 있다. 트랜잭션의 커밋 실행 메시지에 대한 답변 메시지가 모두 커밋 실행 완료 메시지이면, 제1 트랜잭션 매니저는 모든 트랜잭션에 대한 커밋이 완료된 것으로 판단할 수 있다.Thereafter, the first transaction manager transmits a commit execution message to the first database management system (DBMS1) (S614). In this case, the response message to the commit execution message may be a commit execution completion message or a commit execution failure message. If all of the response messages to the commit execution messages of the transaction are commit execution completion messages, the first transaction manager may determine that the commit of all transactions is completed.

도 6b에 도시된 바와 같이, 제2 프레임워크(520)의 제2 트랜잭션 매니저는 신속하게 트랜잭션을 처리하기 위해 커밋 실행 단계를 통해 하나의 트랜잭션을 처리한다.As shown in FIG. 6B , the second transaction manager of the second framework 520 processes one transaction through a commit execution phase in order to quickly process the transaction.

제2 트랜잭션 매니저는 커밋 실행 메시지를 제2 데이터베이스 관리 시스템(DBMS2)으로 전송한다(S621). The second transaction manager transmits the commit execution message to the second database management system (DBMS2) (S621).

이후, 제2 트랜잭션 매니저는 커밋 실행 메시지를 제1 데이터베이스 관리 시스템(DBMS1)으로 전송한다(S622). 이때, 커밋 실행 메시지에 대한 답변 메시지는 커밋 실행 완료 메시지 또는 커밋 실행 실패 메시지일 수 있다. 하나의 트랜잭션의 커밋 실행 메시지에 대한 답변 메시지가 커밋 실행 완료 메시지이면, 제2 트랜잭션 매니저는 커밋이 완료된 것으로 판단할 수 있다.Thereafter, the second transaction manager transmits a commit execution message to the first database management system (DBMS1) (S622). In this case, the response message to the commit execution message may be a commit execution completion message or a commit execution failure message. If a response message to the commit execution message of one transaction is a commit execution complete message, the second transaction manager may determine that the commit is completed.

본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.Those skilled in the art to which the present invention pertains will be able to understand that the above-described present invention may be embodied in other specific forms without changing its technical spirit or essential features.

또한, 본 명세서에 설명되어 있는 방법들은 적어도 부분적으로, 하나 이상의 컴퓨터 프로그램 또는 구성요소를 사용하여 구현될 수 있다. 이 구성요소는 휘발성 및 비휘발성 메모리를 포함하는 컴퓨터로 판독 가능한 매체 또는 기계 판독 가능한 매체를 통해 일련의 컴퓨터 지시어들로서 제공될 수 있다. 상기 지시어들은 소프트웨어 또는 펌웨어로서 제공될 수 있으며, 전체적 또는 부분적으로, ASICs, FPGAs, DSPs, 또는 그 밖의 다른 유사 소자와 같은 하드웨어 구성에 구현될 수도 있다. 상기 지시어들은 하나 이상의 프로세서 또는 다른 하드웨어 구성에 의해 실행되도록 구성될 수 있는데, 상기 프로세서 또는 다른 하드웨어 구성은 상기 일련의 컴퓨터 지시어들을 실행할 때 본 명세서에 개시된 방법들 및 절차들의 모두 또는 일부를 수행하거나 수행할 수 있도록 한다.Additionally, the methods described herein may be implemented, at least in part, using one or more computer programs or components. This component may be provided as a set of computer instructions via a computer readable medium including volatile and nonvolatile memory or a machine readable medium. The instructions may be provided as software or firmware, and may be implemented in whole or in part in hardware configurations such as ASICs, FPGAs, DSPs, or other similar devices. The instructions may be configured for execution by one or more processors or other hardware components, which upon executing the series of computer instructions perform or perform all or part of the methods and procedures disclosed herein. make it possible

그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, it should be understood that the embodiments described above are illustrative in all respects and not limiting. The scope of the present invention is indicated by the following claims rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and equivalent concepts should be construed as being included in the scope of the present invention. do.

100: 데이터베이스 200: 제1 서버
300: 개발 단말 400: 제2 데이터베이스
500: 제2 서버 600: 고객 단말
700: 운영 단말 800: 환경 설정 서버
100: database 200: first server
300: development terminal 400: second database
500: second server 600: customer terminal
700: operating terminal 800: environment setting server

Claims (12)

멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템으로서,
개발 환경에서, 비즈니스 로직에 의해 구분되는 업무 범위를 기준으로 분류되는 적어도 하나의 업무 영역을 포함하는 제1 데이터베이스;
개발 어플리케이션으로부터 제1 요청(Request)을 입력 받고, 접근 권한이 상이한 개별 업무 계정을 통해 상기 제1 데이터베이스에 접속하여 복수의 트랜잭션을 생성하여 처리하는 제1 서버;
운영 환경에서, 상기 업무 범위를 기준으로 분류되는 적어도 하나의 업무 영역을 포함하는 제2 데이터베이스;
운영 어플리케이션으로부터 제2 요청을 입력 받고, 단일 운영 계정을 통해 상기 제2 데이터베이스에 접속하여 하나의 트랜잭션을 처리하는 제2 서버; 및
상기 제1 서버 및 상기 제2 서버 각각에 상이한 환경 정보(properties)를 제공하는 환경 설정 서버를 포함하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
As a business component isolation development system using multi-transaction,
In a development environment, a first database including at least one work area classified based on a business scope classified by business logic;
A first server that receives a first request from a development application, accesses the first database through individual work accounts having different access rights, and generates and processes a plurality of transactions;
In an operating environment, a second database including at least one work area classified based on the work scope;
a second server that receives a second request from an operating application, accesses the second database through a single operating account, and processes one transaction; and
The business component isolation development system using multi-transaction, characterized in that it comprises an environment setting server that provides different environment information (properties) to each of the first server and the second server.
제1항에 있어서,
상기 제1 서버는,
적어도 하나의 업무 컴포넌트를 포함하고, 상기 제1 요청을 처리하는 제1 비즈니스 로직부, 및
상기 제1 요청에 의해 생성된 복수의 트랜잭션을 통해 상기 제1 데이터베이스로부터 응답 정보를 취득하고, 상기 응답 정보를 상기 업무 컴포넌트에 제공하는 제1 프레임워크를 포함하고,
상기 제1 프레임워크는,
상기 제1 요청에 대응하여 상기 제1 데이터베이스에 대한 상기 복수의 트랜잭션을 생성하는 제1 트랜잭션 매니저를 포함하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
According to claim 1,
The first server,
a first business logic unit including at least one business component and processing the first request; and
A first framework for acquiring response information from the first database through a plurality of transactions generated by the first request and providing the response information to the business component;
The first framework,
and a first transaction manager generating the plurality of transactions for the first database in response to the first request.
제2항에 있어서,
상기 제1 트랜잭션 매니저는,
커밋 준비 단계 및 커밋 실행 단계를 통해 상기 제1 데이터베이스에 대한 상기 복수의 트랜잭션의 처리를 완료하고,
상기 복수의 트랜잭션 모두의 커밋 준비 단계가 완료되면, 상기 복수의 트랜잭션의 상기 커밋 실행 단계를 실행하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
According to claim 2,
The first transaction manager,
completing the processing of the plurality of transactions for the first database through a commit preparation step and a commit execution step;
When the commit preparation step of all of the plurality of transactions is completed, the work component isolation development system using multi-transaction, characterized in that to execute the commit execution step of the plurality of transactions.
제3항에 있어서,
상기 제1 트랜잭션 매니저는, 상기 복수의 트랜잭션 각각의 업무 범위에 대응하는 업무 계정을 이용하여 상기 복수의 트랜잭션 각각의 업무 범위에 대응하는 상기 제1 데이터베이스의 업무 영역에 접근하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
According to claim 3,
The first transaction manager accesses a business area of the first database corresponding to a business range of each of the plurality of transactions using a business account corresponding to the business range of each of the plurality of transactions. Business component isolation development system using .
제3항에 있어서,
상기 제1 트랜잭션 매니저는,
상기 커밋 준비 단계에서, 복수의 트랜잭션 각각의 커밋 준비 메시지를 상기 제1 데이터베이스에 전송하고, 상기 커밋 준비 메시지에 대한 답변 메시지를 상기 제1 데이터베이스로부터 수신하고, 상기 커밋 준비 메시지에 대한 답변 메시지가 모두 커밋 준비 완료 메시지이면, 상기 커밋 실행 단계를 실행하고,
상기 커밋 실행 단계에서, 상기 복수의 트랜잭션 각각의 커밋 실행 메시지를 상기 제1 데이터베이스에 전송하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
According to claim 3,
The first transaction manager,
In the commit preparation step, a commit preparation message for each of a plurality of transactions is transmitted to the first database, a reply message to the commit preparation message is received from the first database, and all reply messages to the commit preparation message are sent to the first database. If it is a commit ready message, the commit execution step is executed,
In the commit execution step, the business component isolation development system using multi-transaction, characterized in that for transmitting the commit execution message of each of the plurality of transactions to the first database.
제3항에 있어서,
상기 제1 트랜잭션 매니저는,
상기 커밋 준비 단계에서, 커밋 준비 메시지를 상기 복수의 트랜잭션 각각의 업무 범위에 대응하는 상기 제1 데이터베이스의 업무 영역에 전송되고, 상기 커밋 준비 메시지에 대한 답변 메시지를 상기 제1 데이터베이스로부터 수신하고,
상기 커밋 준비 메시지에 대한 답변 메시지 중 적어도 하나가 커밋 준비 실패 메시지이면, 상기 복수의 트랜잭션에 대해 진행중인 단계를 모두 취소(rollback) 처리하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
According to claim 3,
The first transaction manager,
In the commit preparation step, a commit preparation message is transmitted to a business area of the first database corresponding to the business scope of each of the plurality of transactions, and a response message to the commit preparation message is received from the first database,
If at least one of the response messages to the commit preparation message is a commit preparation failure message, all in-progress steps for the plurality of transactions are rolled back.
제1항에 있어서,
상기 제2 서버는,
상기 제2 요청(Request)을 처리하는 적어도 하나의 업무 컴포넌트를 포함하는 제2 비즈니스 로직부, 및
상기 제2 요청에 대응하는 하나의 트랜잭션을 통해 상기 제2 데이터베이스로부터 정보를 취득하고, 취득한 정보를 상기 업무 컴포넌트에 제공하는 제2 프레임워크를 포함하고,
상기 제2 프레임워크는,
상기 하나의 요청에 대응하여 상기 하나의 트랜잭션을 생성하고, 단일 운영 계정을 이용하여 상기 제2 데이터베이스에 접근하는 제2 트랜잭션 매니저를 포함하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
According to claim 1,
The second server,
A second business logic unit including at least one business component that processes the second request; and
A second framework for acquiring information from the second database through one transaction corresponding to the second request and providing the acquired information to the business component;
The second framework,
and a second transaction manager that generates the one transaction in response to the one request and accesses the second database using a single operating account.
제7항에 있어서,
상기 제2 트랜잭션 매니저는,
커밋 실행 단계를 통해 상기 제2 데이터베이스에 대한 상기 하나의 트랜잭션의 커밋을 완료하고,
상기 커밋 실행 단계에서, 상기 하나의 트랜잭션에 대한 커밋 실행 메시지를 상기 제2 데이터베이스의 제2 데이터베이스 관리 시스템에 전송하고,
상기 커밋 실행 메시지에 대한 답변 메시지를 상기 제2 데이터베이스 관리 시스템으로부터 수신하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.
According to claim 7,
The second transaction manager,
Completing the commit of the one transaction to the second database through a commit execution step;
In the commit execution step, a commit execution message for the one transaction is transmitted to a second database management system of the second database;
A business component isolation development system using multi-transaction, characterized in that for receiving a response message to the commit execution message from the second database management system.
개발 환경의 서버에 의해 동작하는, 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법에 있어서,
개발 어플리케이션으로부터 제1 요청(Request)을 수신하는 단계;
프레임워크의 트랜잭션 매니저를 통해, 상기 제1 요청에 대응하는 복수의 트랜잭션을 생성하는 단계;
상기 트랜잭션 매니저를 통해 제1 데이터베이스에 커밋 준비 메시지를 송신하는 단계; 및
상기 복수의 트랜잭션을 통해 각각 상기 제1 데이터베이스로부터 상기 커밋 준비 메시지에 대응하는 응답 정보를 취득하는 단계를 포함하고,
상기 송신하는 단계는, 접근 권한이 상이한 개별 업무 계정을 이용하여 비즈니스 로직에 의해 구분되는 업무 범위를 기준으로 분류되는 제1 데이터베이스의 각 업무 영역에 트랜잭션을 송신하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법.
In the business component isolation development method using multi-transaction, which is operated by a server in a development environment,
Receiving a first request from a development application;
generating a plurality of transactions corresponding to the first request through a transaction manager of the framework;
sending a commit preparation message to a first database through the transaction manager; and
Acquiring response information corresponding to the commit preparation message from the first database through the plurality of transactions, respectively;
In the transmitting step, the transaction is transmitted to each work area of the first database classified based on the work scope classified by the business logic using individual work accounts having different access rights. Component isolation development methodology.
제9항에 있어서,
상기 취득하는 단계에서 취득한 응답 정보가, 상기 복수의 트랜잭션 트랜잭션에 대해 모두 커밋 준비 완료 메시지인 경우, 상기 제1 데이터베이스에 복수의 트랜잭션에 대한 커밋 실행 메시지를 송신하는 단계를 더 포함하는, 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법.
According to claim 9,
When the response information obtained in the acquiring step is a commit ready message for all of the plurality of transaction transactions, transmitting a commit execution message for a plurality of transactions to the first database, multi-transaction Business component isolation development method used.
제9항에 있어서,
상기 취득하는 단계에서 취득한 응답 정보 중, 적어도 하나가 커밋 준비 실패 메시지이면, 상기 복수의 트랜잭션에 대해 진행되는 단계가 모두 취소(rollback)되는 것을 특징으로 하는, 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법.
According to claim 9,
Characterized in that, if at least one of the response information acquired in the acquiring step is a commit preparation failure message, all of the steps in progress for the plurality of transactions are rolled back.
제9항에 있어서,
상기 프레임워크는, 개발 환경에 대응하는 환경 정보인 개발 환경 정보(properties)를 환경 설정 서버(configuration server)로부터 제공받고, 제공받은 개발 환경 정보를 로드하여, 개발 환경을 구축하는 것을 특징으로 하는, 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법.
According to claim 9,
The framework receives development environment information (properties), which is environment information corresponding to the development environment, from a configuration server, loads the provided development environment information, and builds the development environment. Business component isolation development method using multi-transaction.
KR1020210048182A 2021-04-14 2021-04-14 Method and System for developing business components in isolation using multi-transactions KR102567658B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210048182A KR102567658B1 (en) 2021-04-14 2021-04-14 Method and System for developing business components in isolation using multi-transactions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210048182A KR102567658B1 (en) 2021-04-14 2021-04-14 Method and System for developing business components in isolation using multi-transactions

Publications (2)

Publication Number Publication Date
KR20220141994A KR20220141994A (en) 2022-10-21
KR102567658B1 true KR102567658B1 (en) 2023-08-16

Family

ID=83805474

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210048182A KR102567658B1 (en) 2021-04-14 2021-04-14 Method and System for developing business components in isolation using multi-transactions

Country Status (1)

Country Link
KR (1) KR102567658B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101748378B1 (en) * 2015-12-28 2017-06-27 (주)아이티엑스퍼트그룹 Performance management system and method for application program in its development process
KR101865343B1 (en) * 2017-05-29 2018-07-13 김희민 Server-side framework device for development of web service application, method for executing web service application developmed using the same and computer program for the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711678B2 (en) * 2006-11-17 2010-05-04 Microsoft Corporation Software transaction commit order and conflict management
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
KR101792331B1 (en) * 2015-07-10 2017-11-01 전자부품연구원 Method and System for Transaction in the M2M/IoT Platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101748378B1 (en) * 2015-12-28 2017-06-27 (주)아이티엑스퍼트그룹 Performance management system and method for application program in its development process
KR101865343B1 (en) * 2017-05-29 2018-07-13 김희민 Server-side framework device for development of web service application, method for executing web service application developmed using the same and computer program for the same

Also Published As

Publication number Publication date
KR20220141994A (en) 2022-10-21

Similar Documents

Publication Publication Date Title
US7890964B2 (en) Methods and apparatus for contextual awareness in a groupware client
US7853959B2 (en) Business process extension for productivity suite application
US8156137B2 (en) Data processing systems and methods
US11283698B2 (en) Optimizing timeout settings for nodes in a workflow
US20160267458A1 (en) Enhanced Mobile Transactions and Payments
CN104077362A (en) Online mass data processing system and method
US11803834B2 (en) Providing enhanced merchant experiences in mobile transactions
CN112817995B (en) Data processing method and device, electronic equipment and storage medium
KR100404786B1 (en) An apparatus, method and computer program product for client/server computing with client selectable location of transaction objects
CN111626602A (en) Service processing method, service processing device, storage medium and electronic equipment
KR102567658B1 (en) Method and System for developing business components in isolation using multi-transactions
US8286181B2 (en) Supporting administration of a multi-application landscape
US20050262021A1 (en) Method and system for performing automated transactions using a server-side script-engine
PL193583B1 (en) Apparatus for method of and computer software product for client/server processing with intelligent distribution of transaction objects
CN117291517A (en) Method and device for constructing approval process
US10877737B2 (en) Automatic translation of computer code
US20070168203A1 (en) Context-based mapping of a content repository in a context driven component execution environment
US9286321B2 (en) Systems and methods for providing an automated validity check of transactional data postings
US20070156631A1 (en) Synchronization of transactional applications and analytical applications
US11934879B1 (en) Data processing using application sequence identifiers in cloud environments
JP2002157386A (en) Workflow management method, its device, its processing program and recording medium with its processing program stored
JP6920270B2 (en) Operation execution system, operation execution device, operation execution method and program
Rodrigues et al. Web services composition through data events approach
CN117196632A (en) Order data processing method and related device
US20180217869A1 (en) Platform for orchestrating custom processes across system landscapes

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant