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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction 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
본 발명은 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 방법 및 시스템에 관한 것이다.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
제1 데이터베이스(100)는 개발 어플리케이션에 대한 정보를 저장한다. 제1 데이터베이스(100)는 복수의 테이블 또는 복수의 데이터베이스로 구성되고, 복수의 테이블 또는 복수의 데이터베이스는 업무 범위에 따라 업무 영역으로 구분된다. 각 업무 영역은 각 업무 영역에 대응되는 업무 계정을 통해 접근될 수 있다. 즉, 제1 데이터베이스(100)는 업무 범위에 따라 업무 영역으로 구분되며, 각 업무 영역에 각각 접근할 수 있는 복수의 업무 계정을 포함할 수 있다. The
제1 데이터베이스(100)는 제1 데이터베이스 관리 시스템을 포함한다. 제1 데이터베이스 관리 시스템은 제1 데이터베이스(100)에서 데이터와 데이터의 집합을 생성, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다. 이때, 제1 데이터베이스(100)는 복수의 테이블뿐만 아니라 복수의 데이터베이스를 포함할 수 있기 때문에 제1 데이터베이스 관리 시스템은 제1 데이터베이스(100)에 포함된 복수의 데이터베이스의 데이터베이스 관리 시스템을 포함할 수 있다. The
본 발명의 일 실시예에 따르면, 제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
제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
제1 서버(200)는 개발 단말(300)에 개발 어플리케이션을 제공하고, 제공된 어플리케이션을 통해 입력되는 요청(request)에 대한 적어도 하나의 트랜잭션을 생성한다.The
제1 서버(200)는 입력 받은 요청(request)을 처리하기 위해 제1 프레임워크(220)를 통해 제1 데이터베이스(100)로부터 정보를 취득하고, 취득한 정보를 이용하여 어플리케이션을 통해 서비스를 제공할 수 있다.The
제1 서버(200)는, 도 2a에 도시된 바와 같이, 제1 비즈니스 로직부(210) 및 제1 프레임워크(220)를 포함한다.As shown in FIG. 2A , the
제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
제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
본 발명의 일 실시예에 따르면, 이러한 개발 환경 정보에 의해 제1 프레임워크(220)의 제1 트랜잭션 매니저의 구성이 결정된다. 이에 대해서는 도 6a를 참조하여 상세히 후술한다.According to an embodiment of the present invention, the configuration of the first transaction manager of the
본 발명의 일 실시예에 따르면, 제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
본 발명의 다른 일 실시예에 따르면, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 개발 환경에 대응하는 개발 환경 정보를 파일 형태로 제공받을 수 있다. 구체적으로, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 개발 환경 정보를 파일 형태로 다운로드(download)받아 제공받을 수 있다. 제1 프레임워크(220)는 환경 설정 서버(800)로부터 다운로드 받은 개발 환경 정보에 따라 환경 정보를 로드한다. 이때, 환경 설정 서버(800)로부터 다운로드 받은 파일 형태의 개발 환경 정보는 특정 키 값이 정의된 파일일 수 있다.According to another embodiment of the present invention, the
즉, 제1 프레임워크(220)는 환경 설정 서버(800)로부터 개발 환경에 대응하는 개발 환경 정보를 이용하여 환경 정보를 로드하고, 로드한 환경 정보에 따라 개발 어플리케이션이 실행될 환경을 구축할 수 있다.That is, the
본 발명의 일 실시예에 따르면, 제1 프레임워크(220)는 개발 환경 정보에 따라 제1 데이터베이스(100)의 업무 영역으로부터 데이터를 취득하기 위한 세션을 관리하는 제1 트랜잭션 매니저를 결정한다. According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 개발 어플리케이션을 통해 입력되는 요청(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
본 발명의 일 실시예에 따르면, 환경 설정 서버(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
개발 단말(300)은 어플리케이션을 개발하고 개발 어플리케이션을 제1 서버(200)로부터 제공받는 단말로, 제공된 어플리케이션을 통해 제1 서버(200)로 요청(Request)를 전송할 수 있다. The
제2 데이터베이스(400)는 개발이 완료되어 운영되는 어플리케이션에 대한 정보를 저장한다. 제2 데이터베이스(400)는 복수의 테이블 또는 복수의 데이터베이스로 구성된다. 본 발명의 일 실시예에 따르면, 제2 데이터베이스(400)는 제2 데이터베이스(400)의 복수의 테이블 또는 복수의 데이터베이스에 접근할 수 있는 하나의 운영 계정을 포함할 수 있다. The
제2 데이터베이스(400)는 제2 데이터베이스 관리 시스템을 포함한다. 제2 데이터베이스 관리 시스템은 제2 데이터베이스(400)에서 데이터와 데이터의 집합을 생성, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다. 이때, 제2 데이터베이스(400)는 복수의 테이블뿐만 아니라 복수의 데이터베이스를 포함할 수 있기 때문에 제2 데이터베이스 관리 시스템은 제2 데이터베이스(400)에 포함된 복수의 데이터베이스의 데이터베이스 관리 시스템을 포함할 수 있다. The
본 발명의 일 실시예에 따르면, 제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
제2 데이터베이스 관리 시스템은 제2 서버(500)로부터 입력되는 하나의 트랜잭션을 커밋 실행 단계를 통해 처리한다. 이때, 커밋 실행 단계는 데이터베이스에 저장된 정보에 대해 업데이트가 실행되어 취소 불가한 상태를 말한다. 이에 대해서는 도 4를 참조하여 상세히 후술한다. The second database management system processes one transaction input from the
제2 서버(500)는 개발이 완료되어 운영 어플리케이션을 고객 단말(600)에 제공하고, 고객 단말(600)에 제공된 어플리케이션을 통해 입력되는 요청(request)에 대한 하나의 트랜잭션을 생성한다. The
제2 서버(500)는 입력 받은 요청(request)을 처리하기 위해 제2 프레임워크(520)를 통해 제2 데이터베이스(400)로부터 정보를 취득하고, 취득한 정보를 이용하여 어플리케이션을 통해 서비스를 제공할 수 있다.The
제2 서버(500)는, 도 2b에 도시된 바와 같이, 제2 비즈니스 로직부(510) 및 제2 프레임워크(520)를 포함한다.As shown in FIG. 2B , the
제2 비즈니스 로직부(510)는 어플리케이션에 대한 비즈니스 로직을 구현한 코드를 포함할 수 있다. 도 2b에 도시된 바와 같이, 제2 비즈니스 로직부(510)는 비즈니스 로직을 구현하는 코드를 각각 포함하는 복수의 업무 컴포넌트를 포함한다. 이때, 복수의 업무 컴포넌트는 업무 범위에 따라 구분될 수 있다. 예를 들어, 어플리케이션이 은행 관련 어플리케이션인 경우, 제2 비즈니스 로직부(510)는 계좌 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트, 여신 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트, 또는 카드 관련 비즈니스 로직을 구현한 코드를 포함하는 업무 컴포넌트 등을 포함할 수 있다. 이러한 업무 컴포넌트는 제2 프레임워크(520)를 통해 제2 데이터베이스(400)로부터 정보를 취득하고, 취득한 정보를 이용하여 어플리케이션을 통해 서비스를 제공한다. 특히 본 발명의 일 실시예에 따르면, 각 업무 컴포넌트는 제2 프레임워크(520)를 통해 제2 데이터베이스(400)의 하나의 운영 계정을 이용하여 제2 데이터베이스(400)에 접근하고, 하나의 트랜잭션을 통해 제2 데이터베이스(400)로부터 정보를 취득할 수 있다. The second
제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
본 발명의 일 실시예에 따르면, 이러한 운영 환경 정보에 의해 제2 프레임워크(520)의 제2 트랜잭션 매니저의 구성이 결정된다. 이에 대해서는 도 6b를 참조하여 상세히 후술한다.According to an embodiment of the present invention, the configuration of the second transaction manager of the
본 발명의 일 실시예에 따르면, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경에 대응하는 운영 환경 정보를 JSON 형태로 제공받을 수 있다. 구체적으로, 환경 설정 서버(800)는 운영 환경 정보를 JSON 형태로 변환하여 제2 프레임워크(520)에 제공하고, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 제공받은 JSON 형태로 변환된 운영 환경 정보를 분석하여, 분석한 운영 환경 정보에 따라 제2 프레임워크(520)의 환경 설정 파일의 특정 키 값을 정의하여 운영 어플리케이션이 실행될 환경을 구축할 수 있다.According to an embodiment of the present invention, the
본 발명의 다른 일 실시예에 따르면, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경에 대응하는 운영 환경 정보를 파일 형태로 제공받을 수 있다. 구체적으로, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경 정보를 파일 형태로 다운로드(download)받아 제공받을 수 있다. 제2 프레임워크(520)는 환경 설정 서버(800)로부터 다운로드 받은 운영 환경 정보에 따라 환경 정보를 로드한다. 이때, 환경 설정 서버(800)로부터 다운로드 받은 파일 형태의 개발 환경 정보는 특정 키 값이 정의된 파일일 수 있다. According to another embodiment of the present invention, the
즉, 제2 프레임워크(520)는 환경 설정 서버(800)로부터 운영 환경에 대응하는 운영 환경 정보를 이용하여 환경 정보를 로드하고, 로드한 환경 정보에 따라 운영 어플리케이션이 실행될 환경을 구축할 수 있다.That is, the
본 발명의 일 실시예에 따르면, 제2 프레임워크(520)는 개발 환경 정보에 따라 제2 데이터베이스(400)의 업무 영역으로부터 데이터를 취득하기 위한 세션을 관리하는 제2 트랜잭션 매니저를 결정한다. According to one embodiment of the present invention, the
본 발명의 일 실시예에 따르면, 제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
본 발명의 일 실시예에 따르면, 환경 설정 서버(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
고객 단말(600)은 운영 어플리케이션을 제2 서버(500)로부터 제공받는 단말로, 제공된 어플리케이션을 통해 제2 서버(500)로 요청(Request)를 전송할 수 있다. The
운영 단말(700)은 제2 서버(500)에서 제공하는 어플리케이션을 운영하는 단말로, 운영 어플리케이션의 제2 서버(500)를 통해 어플리케이션의 설정 및 상태를 관리할 수 있다. The operating
환경 설정 서버(800)는 개발 환경에 대응하는 환경 정보인 개발 환경 정보 및 운영 환경에 대응하는 운영 환경 정보를 포함한다. 구체적으로, 환경 설정 서버(800)는 'iamf.global.xa.use'특성이 'true'로 정의된 개발 환경 정보 및 iamf.global.xa.use'특성이 'false'로 정의된 운영 환경 정보를 포함한다.The
환경 설정 서버(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
또한, 제2 프레임워크(520)는 'iamf.global.xa.use'특성이 'false'로 설정된 운영 환경 정보를 환경 설정 서버(800)로부터 제공받아 운영 환경을 구축하고, 구축된 운영 환경에 의해 설정된 제2 트랜잭션 매니저를 구동한다. 상술한 것처럼, single transaction은 단일 트랜잭션안에서 수행된 DB데이터의 추가/변경(업무로직에서 처리한 변경)에 대한 정합성을 보장한다는 의미이며, 서로 다른 계정이나 서로 다른 DB의 정합성을 보장하지 않고 설정도 지원하지 않는다. 개발 환경에 의해 구동되는 제1 트랜잭션 매니저 및 운영 환경에 의해 구동되는 제2 트랜잭션 매니저에 대해서는, 도 3 및 도 4를 참조하여 상세히 후술한다.In addition, the
이하, 도 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
또한, 제1 데이터베이스(100)는 업무 범위에 따라 구분되는 업무 계정을 포함하여, 각 업무 영역은 해당 업무 영역과 동일한 업무 범위의 업무 계정을 이용하여 접근될 수 있다. 예를 들어, 제1 업무 영역인 계좌 테이블은 제1 업무 계정인 depapp을 통해서만 접근될 수 있으며, 제2 업무 영역인 여신 테이블은 제2 업무 계정인 Ionapp을 통해서만 접근될 수 있으며, 제3 업무 영역인 카드 테이블은 제3 업무 계정인 capapp을 통해서만 접근될 수 있다. 즉, 본 발명의 일 실시예에 따르면, 제1 데이터베이스(100)의 업무 영역에서 각 업무 영역에 대응되는 업무 계정을 통해서만 업무 영역 테이블에 접근할 수 있고, 이러한 방식을 통해 무분별한 데이터의 접근을 막음으로써 안정적이고 효율적인 운영이 가능하다. In addition, the
본 발명의 일 실시예에 따른 제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
본 발명의 일 실시예에 따르면, 제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
본 발명의 일 실시예에 따르면, 제1 서버(200)는 제1 데이터베이스(100)의 각 업무 영역에 대응되는 업무 계정을 이용하여 각 업무 영역에서 복수의 트랜잭션을 처리한다. 구체적으로, 제1 서버(200)는 복수의 트랜잭션을 커밋 준비 단계 및 커밋 실행 단계를 통해 처리하기 때문에 제1 데이터베이스(100)의 다른 업무 영역의 테이블 및 데이터베이스에 대한 접근을 제한할 수 있어 개발 과정 중 데이터베이스의 유지 및 보수가 용이해지고, 데이터베이스의 정합성을 보장할 수 있는 효과가 있다.According to an embodiment of the present invention, the
본 발명의 일 실시예에 따른 제2 데이터베이스(400)는 어플리케이션이 금융에 대한 비즈니스 로직을 포함하고 제2 데이터베이스(400)가 금융 관련 데이터를 포함하는 경우, 제2 데이터베이스(400)는, 복수의 테이블 및 데이터베이스를 포함한다. 예를 들어, 제2 데이터베이스(400)는, 도 4에 도시된 바와 같이, 계좌 테이블, 여신 테이블 및 카드 테이블을 포함할 수 있다.The
본 발명의 일 실시예에 따른 제2 데이터베이스(400)는 하나의 운영 계정을 포함하여, 이 운영 계정을 통해 모든 테이블 및 데이터베이스에 접근될 수 있다.The
본 발명의 일 실시예에 따른 제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
제2 트랜잭션 매니저는 제2 데이터베이스(400)에 대한 하나의 트랜잭션을 커밋 실행 단계를 통해 처리한다. 이에 대해서는 도 5 및 도 6b를 참조하여 상세히 후술한다. The second transaction manager processes one transaction for the
본 발명에 따르면, 제2 서버(500)는 하나의 운영 계정(To)을 이용하여 복수의 업무 범위에 대한 하나의 트랜잭션(To)을 처리한다. 구체적으로, 제2 서버(500)는 하나의 트랜잭션을 커밋 실행 단계를 통해 처리하기 때문에 신속하게 트랜잭션을 처리하고, 제2 데이터베이스(400)의 정합성을 보장할 수 있는 효과가 있다. According to the present invention, the
본 발명에 따르면, 제1 서버(200) 및 제2 서버(500)는 서로 다른 환경에서 구동되며, 이에 따라 서로 다른 과정을 통해 트랜잭션을 생성 및 처리하기 때문에, 데이터베이스의 제품 종류와 같은 환경에 무관하게 제1 데이터베이스(100) 및 제2 데이터베이스(400)의 정합성을 보장하고 신속하게 트랜잭션을 처리할 수 있다.According to the present invention, since the
도 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
개발 환경에서, 환경 설정 서버(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
제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
제1 서버(200) 및 제1 데이터베이스(100)는 커밋 준비 단계를 수행한다(S513). 구체적으로, 제1 서버(200)의 제1 트랜잭션 매니저 및 제1 데이터베이스(100)의 제1 데이터베이스 관리 시스템(DBMS1)은 커밋 준비 단계를 수행한다. 커밋 준비 단계에서, 제1 트랜잭션 매니저는 제1 데이터베이스 관리 시스템(DBMS1)에 커밋 준비 메시지를 전송하고, 이에 대한 답변 메시지를 제1 데이터베이스 관리 시스템으로부터 수신한다. 이때, 커밋 준비 메시지에 대한 답변 메시지는 커밋 준비 완료 메시지 또는 커밋 준비 실패 메시지일 수 있다. 특히, 본 발명의 일 실시예에 따르면, 제1 트랜잭션 매니저는 어플리케이션으로부터 수신한 요청에 대해 복수의 업무 영역에 각각 대응하는 복수의 트랜잭션을 생성하고, 모든 트랜잭션에 대해 제1 트랜잭션 매니저가 커밋 준비 메시지에 대한 답변 메시지로서 커밋 준비 완료 메시지를 수신하면, 제1 트랜잭션 매니저 및 제2 데이터베이스 관리 시스템은 커밋 단계를 진행한다(S514).The
제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
제2 트랜잭션 매니저는 하나의 운영 계정(To)을 통해 제2 데이터베이스(400)의 복수의 업무 범위에 접근한다(S522). 예를 들어, 제2 트랜잭션 매니저는 운영 계정(To)을 통해 복수의 업무 범위(계좌 테이블, 여신 테이블)에 접근할 수 있다.The second transaction manager accesses a plurality of business scopes of the
제2 서버(500) 및 제2 데이터베이스(400)는 커밋 실행 단계를 수행한다(S523). 구체적으로, 제2 서버(500)의 제2 트랜잭션 매니저 및 제2 데이터베이스(400)의 제2 데이터베이스 관리 시스템은 커밋 실행 단계를 수행한다. The
제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
도 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
제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 트랜잭션 매니저를 포함하는 것을 특징으로 하는 멀티 트랜잭션을 이용한 업무 컴포넌트 격리 개발 시스템.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.
상기 제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.
상기 제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 .
상기 제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.
상기 제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.
상기 제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.
상기 제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.
상기 취득하는 단계에서 취득한 응답 정보가, 상기 복수의 트랜잭션 트랜잭션에 대해 모두 커밋 준비 완료 메시지인 경우, 상기 제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.
상기 취득하는 단계에서 취득한 응답 정보 중, 적어도 하나가 커밋 준비 실패 메시지이면, 상기 복수의 트랜잭션에 대해 진행되는 단계가 모두 취소(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.
상기 프레임워크는, 개발 환경에 대응하는 환경 정보인 개발 환경 정보(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.
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)
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)
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 |
-
2021
- 2021-04-14 KR KR1020210048182A patent/KR102567658B1/en active IP Right Grant
Patent Citations (2)
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 |