KR100714693B1 - 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법 - Google Patents

소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법 Download PDF

Info

Publication number
KR100714693B1
KR100714693B1 KR1020050048470A KR20050048470A KR100714693B1 KR 100714693 B1 KR100714693 B1 KR 100714693B1 KR 1020050048470 A KR1020050048470 A KR 1020050048470A KR 20050048470 A KR20050048470 A KR 20050048470A KR 100714693 B1 KR100714693 B1 KR 100714693B1
Authority
KR
South Korea
Prior art keywords
sql statement
identification information
database
application
sql
Prior art date
Application number
KR1020050048470A
Other languages
English (en)
Other versions
KR20060127468A (ko
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 KR1020050048470A priority Critical patent/KR100714693B1/ko
Priority to JP2006145279A priority patent/JP2006344213A/ja
Priority to EP06252844A priority patent/EP1732003A2/en
Priority to CNB2006100885941A priority patent/CN100437584C/zh
Priority to US11/447,972 priority patent/US20060277158A1/en
Publication of KR20060127468A publication Critical patent/KR20060127468A/ko
Application granted granted Critical
Publication of KR100714693B1 publication Critical patent/KR100714693B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 시스템 및 방법에 관한 것이다.
본 발명의 일 실시예에 따른 시스템은 XML 파일의 각 구성요소를 분석하여 SQL문에 대한 식별 정보와 SQL문을 추출하는 XML 처리부, 상기 식별 정보와 상기 SQL문을 기억장치로 로딩하는 SQL 정보부, SQL문에 대한 식별 정보를 수신하여 상기 SQL문을 검색하고, 상기 검색된 SQL문을 데이터베이스에 송신하고, 상기 SQL문의 실행 결과를 상기 데이터베이스로부터 수신하여 상기 식별 정보를 송신한 어플리케이션에 상기 실행 결과를 송신하는 처리 객체부를 포함하는 객체 풀, 및 어플리케이션으로부터 SQL문에 대한 제 1 식별 정보를 수신하여, 상기 어플리케이션으로부터 이전에 SQL문에 대한 제 2 식별 정보를 수신하였던 처리 객체부를 상기 객체 풀에서 선택하여 상기 선택된 처리 객체부에 상기 SQL문에 대한 제 1 식별 정보를 전달하는 스케쥴러를 포함한다.
데이터베이스, XML 파일, SQL, 모듈간 독립성

Description

소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 시스템 및 방법{System and method for implementing database application which are guaranteeing independence of software module}
도 1은 데이터베이스를 구성하는 소프트웨어에서 데이터를 처리하는 모듈들의 구성을 보여주는 구성도이다.
도 2에서는 어플리케이션 코드내에 데이터 처리를 위해 JDBC를 사용하고 SQL문장이 하드 코딩되어 있는 경우를 보여주는 구성도이다.
도 3은 어플리케이션 코드 안에 데이터 처리를 위해 JDBC를 사용하지만 SQL문장은 별도로 분리된 경우를 보여주는 도면이다.
도 4는 별도의 데이터 처리 코드가 어플리케이션 코드와 분리되어 존재하는 경우의 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터 처리 시스템의 구성을 나타낸 구성도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 처리 시스템 내의 각 구성요소간의 상호작용을 보여주는 도면이다.
도 7은 본 발명의 일 실시예에 따른 스케쥴러가 처리 객체를 선택하여 어플리케이션의 데이터베이스 작업 요청을 처리하는 과정을 보여주는 예시도이다.
도 8은 본 발명의 일 실시예에 따른 XML 파일에 저장된 SQL문과 식별 정보를 사용하여 데이터베이스에 작업을 요청하는 과정을 보여주는 순서도이다.
도 9는 종래의 방법과 본 발명의 실시예를 적용한 경우의 성능 향상을 보여주는 도면이다.
도 10은 종래의 방법과 본 발명의 실시예를 적용한 경우의 성능 향상을 보여주는 또다른 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100, 101, 102, 103: 어플리케이션 200: 데이터 처리 시스템
220: SQL 처리 231: 처리 객체
240: 스케쥴러 251: XML 파일
본 발명은 소프트웨어 개발과 관련된 방법 및 장치에 관한 것으로, 보다 상세하게는 데이터베이스를 이용하는 소프트웨어를 구성하는 모듈들이 독립성을 가지도록 개발하는 방법 및 장치에 관한 것이다.
소프트웨어의 대형화, 네트워크화가 이루어지면서 데이터베이스는 소프트웨어를 구성하는 중요 요소가 되었다. 데이터베이스의 성능뿐만 아니라, 데이터베이스의 데이터를 소프트웨어가 데이터를 처리하는 방식과 처리하기 위한 모듈과 소프트웨어의 독립성이 중요한 관건이 되고 있다. 특히, 소프트웨어의 개발에 소요되는 업무량 외에도 유지, 보수에 있어서도 많은 시간이 소요되고, 이러한 사항들이 비용을 점차적으로 증가시키는 요인이 되어왔다.
도 1은 데이터베이스를 구성하는 소프트웨어에서 데이터를 처리하는 모듈들의 구성을 보여주는 구성도이다.
도 1에서 살펴보는 바와 같이 데이터를 처리하는 소프트웨어는 크게, 어플리케이션 코드(10), 데이터 처리 로직(20), 그리고 데이터베이스(30)로 이루어진다. 어플리케이션 코드(10)는 사용자 또는 외부로부터 데이터를 받거나 나타내는 기능을 수행한다. 데이터 처리 로직(20)은 어플리케이션이 데이터베이스에서 데이터를 찾거나 수정, 또는 입력하는 경우, 처리하는 루틴으로, SQL문과 같은 부분으로 이루어진다. 데이터베이스(30)는 데이터를 저장하고 관리하는 모듈로, 검색 시간, 저장 방법 등이 제품에 따라 달라진다. 데이터 처리 소프트웨어에 있어서 변경이 발생되는 원인은 크게 3가지이다. 먼저, 어플리케이션 코드(10)에서 프로토콜 메세지에 필드 추가, 로그 기록 필드 추가 등 의 원인으로 변경이 발생할 수 있다. 어플리케이션 코드(10)는 사용자 또는 외부 소프트웨어와 작업을 하는 부분으로, 외부의 요인에 따라 변경되는 경우가 많다. 다음으로 데이터베이스(30)의 구조(스키마, Schema)상에서 변경이 발생하는 경우로, 데이터베이스(30)를 구성하는 테이블이 변경되거나, 컬럼명이 바뀌는 경우 등을 들 수 있다. 다음으로, 데이터베이스 처리 로직(20)에 변경이 발생하는 경우, 또는 어플리케이션 코드(10)가 변경되거나 데이터베이스(30)가 변경되어서 처리 로직이 변경되는 경우가 있다. 데이터베이스의 필드가 바뀌거나, SQL문을 속도 향상을 위해 튜닝하는 경우이다. 그런데 어플리케이 션 코드(10), 데이터 처리 로직(20), 그리고 데이터베이스(30)가 서로 연관되어 있기 때문에, 어느 한 쪽의 변경이 다른 쪽의 변경을 가져올 수 있다.
종래의 시스템 또는 솔루션들은 도 2 내지 도 4에서 제시하는 방식으로 구성되어 있다.
도 2 내지 도 4는 종래에 데이터를 처리하기 위한 방식을 제공하는 도면이다. 도 2에서는 어플리케이션 코드(11) 내에 데이터 처리를 위해 JDBC(Java Database Connectivity)(21)를 사용하고 SQL(Structured Query Language)문장(22)도 하드 코딩되어 있다. 이는 특정 솔루션 전용 데이터베이스 처리 코드 개발에서 사용하는 방식으로, 실제 데이터 처리 프로그램 독립화가 달성되지 못하고 있다. 따라서, 데이터베이스(30)가 변경되어도 어플리케이션 코드(11) 내의 SQL문(22)이 변경되어야 한다. 이 경우 JDBC를 호출하는 데이터베이스 처리 코드들이 특정 어플리케이션에 종속되어 있어 성능상에는 이점이 있을 수 있다.
도 3은 어플리케이션 코드 안에 데이터 처리를 위해 JDBC를 사용하지만 SQL문장은 별도로 분리된 경우를 보여주는 도면이다. 상용 미들웨어 솔루션에서 사용하는 방식으로, SQL의 독립화만 달성되어 있다. 따라서 데이터베이스(30)에 변경이 발생할 경우 여전히 어플리케이션 코드(12)에 변경을 필요로 할 수 있다.
도 4는 별도의 데이터 처리 코드가 어플리케이션 코드와 분리되어 존재하는 경우의 도면이다. 데이터 처리 코드에 JDBC부분(22)과 SQL문(21)이 하드코딩 되어 있다. 오픈 소스 계열의 스프링 프레임워크(Springframework), TIBCO 소프트웨어사의 제품, 퓨전 프레임워크(FusionFramework)등의 상용 데이터 처리 SDK, 웹로직 (Weblogic), JRun 등의 상용 WAS(Web Application Server)의 DAO(DataAccessObject)모듈 등에 많이 나타나는 형태이다. 어플리케이션(10)은 데이터 처리 로직으로 입력 파라메터만 전달하고, 데이터 처리 로직은 데이터베이스에 SQL 문장(22)을 입력해 결과를 받아 그 결과를 SQLResultSet형태가 아니라 자바 Collection객체 형태로 넘겨준다. 이 방식은 어느 정도 독립화를 달성했으나 SQL은 독립화 되지 못하고 있다.
도 2 내지 도 4의 경우에 각 유형별로 변경 요인에 대한 영향을 정리하면 표 1과 같다.
어플리케이션 변경 데이터베이스 변경 데이터 처리 로직 변경
도 2 종속 종속 종속
도 3 종속 종속 독립
도 4 독립 독립 종속
어느 한 모듈이 독립화 되지 못한다는 것은, 어느 한 모듈의 변경이 다른 모듈의 변경을 가져오고, 그 결과 소프트웨어의 개발과 유지, 보수에 많은 비용이 들게 된다. 그러나, 이들을 독립적으로 구현할 경우, 성능의 저하를 가져올 수 있다. 따라서 성능의 향상과 소프트웨어 모듈의 독립성을 보장하는 방법 및 장치가 필요하다.
본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 본 발명은 데이터 베이스와 연동하는 소프트웨어를 개발시, 각 모듈의 독립성을 제공하는데 목적이 있다.
본 발명의 또다른 목적은 어플리케이션과 연결되는 처리 객체와 어플리케이션을 연동시킬 경우 컨텍스트 스위칭을 줄이도록 하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명은 소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 시스템 및 방법에 관한 것이다.
본 발명의 일 실시예에 따른 시스템은 XML 파일의 각 구성요소를 분석하여 SQL문에 대한 식별 정보와 SQL문을 추출하는 XML 처리부, 상기 식별 정보와 상기 SQL문을 기억장치로 로딩하는 SQL 정보부, SQL문에 대한 식별 정보를 수신하여 상기 SQL문을 검색하고, 상기 검색된 SQL문을 데이터베이스에 송신하고, 상기 SQL문의 실행 결과를 상기 데이터베이스로부터 수신하여 상기 식별 정보를 송신한 어플리케이션에 상기 실행 결과를 송신하는 처리 객체부를 포함하는 객체 풀, 및 어플리케이션으로부터 SQL문에 대한 제 1 식별 정보를 수신하여, 상기 어플리케이션으로부터 이전에 SQL문에 대한 제 2 식별 정보를 수신하였던 처리 객체부를 상기 객체 풀에서 선택하여 상기 선택된 처리 객체부에 상기 SQL문에 대한 제 1 식별 정보를 전달하는 스케쥴러를 포함한다.
본 발명의 일 실시예에 따른 소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 방법은 XML 파일의 각 구성요소를 분석하여 SQL문에 대한 식별 정보와 SQL문을 추출하는 단계, 상기 식별 정보와 상기 SQL문을 기억장치로 로딩하는 단계, 어플리케이션으로부터 제 1 SQL문에 대한 제 1 식별 정보를 수신하여, 상기 어플리케이션으로부터 이전에 제 2 SQL문에 대한 제 2 식별 정보를 수신하였던 처리 객체부를 선택하여 상기 선택된 처리 객체부에 상기 제 1 SQL문에 대한 제 1 식별 정보를 전달하는 단계, 및 상기 제 1 처리 객체부는 상기 제 1 식별 정보에 해당하는 SQL문을 검색하여, 상기 검색된 SQL문을 데이터베이스에 송신하고, 상기 SQL문의 실행 결과를 상기 데이터베이스로부터 수신하여 상기 어플리케이션에 상기 실행 결과를 송신하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 시스템 및 방법을 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 실시예에서 사용되는 '~부'라는 용어, 즉 '~모듈' 또는 '~테이블' 등은 소프트웨어, FPGA(Field Programmable Gate Array) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)와 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 기능들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 처리 시스템의 구성을 나타낸 구 성도이다.
데이터 처리 시스템(200)은 어플리케이션(100)이 요청하는 데이터베이스 작업을 처리한다.
별도의 데이터 처리 로직이 존재하고 SQL문장을 별도로 외부에 관리하면서 어플리케이션, 데이터베이스 스키마, 데이터 처리 로직(SQL)변경에 모두 독립적인 속성을 달성할 수 있도록 구성되어 있다.
도 5에서 알 수 있듯이, 데이터베이스를 처리하는 데이터 처리 코드(200)가 어플리케이션 코드(100)와 분리되어 있으므로, 서로 독립성을 유지할 수 있다. 한편, 데이터 처리 코드(200)와 데이터베이스(300)가 분리되어 있으며, 데이터 처리 코드(200)는 SQL(120)을 이용하며 연결 관리부(210)를 통해 데이터베이스와 연동하므로 서로 독립성을 유지할 수 있다.
도 6은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 구성을 보여주는 예시도이다. 설정 화면 인터페이스(400)는 SQL 문장과 이들에 대한 설정 내용을 XML 파일에 저장할 수 있도록 사용자 인터페이스를 제공한다. 자바 Swing, C++ 등으로 개발 가능하다. 인터페이스를 통해 관리자는 데이터를 연결하고 파라메터를 설정할 수 있다. 또한. 통계 생성 여부, 통계 생성 간격, 콘솔 메세지 출력과 같은 모니터링 관련 파라메터 설정할 수 있다. 또한, 일정 시간동안 활성화 될 수 있는 처리 객체의 개수와 같은 성능 관련 파라메터 설정도 설정할 수 있다. 처리할 SQL문장을 편집할 수 있다.
설정 XML파일은 외부에 존재하기 때문에 이에 대한 보안(security)방안이 필 요하다. 설정화면 인터페이스(400)내의 XML암복호 처리부(453)는 설정화면 인터페이스에서 설정한 정보를 XML로 저장하기 전에 암호화한다. XML 파일에 저장될 데이터가 상기 설정사항을 그대로 포함할 경우, 외부에서 데이터베이스에 대한 내용을 쉽게 알 수 있고, 또한 인증받지 않은 변조가 일어날 수 있기 때문에, 데이터베이스 처리에 있어서 오류를 막도록 암호화, 복호화를 수행한다. XML 암복호 처리부(453)이 없으면 XML 파일은 알 수 없는 파일로 출력되며, 변경할 경우에도, 실제 데이터 처리 시스템(200)이 인식할 수 있는 형식으로 저장되지 못하므로, 데이터베이스의 권한없는 접근을 막을 수 있다.
XML 암복호 처리부(453)을 구현하는 일 실시예로는 JCE(JavaCryptographyExtenstion1.2)를 사용하고 DESAlgorithm을 이용한 대칭키 암복호화 알고리즘을 이용할 수 있다. 그 결과 아래와 같다.
<bean id="configinfobean" class="com.url.infra.co.dao.ConfigBean">
<property name="jndi">
<value>hpZi83aRi4Sa=</value>
</property>
<property name="dbserver">
<value>OUgdi9gjdl2=</value>
</property>
<property name="audit">
<value>6Oam93g2HQ=</value>
</property>
<property name="auditInterval">
<value>UF9Q0o8gkfuP=</value>
</property>
<property name="print">
<value>6mOPH2kdg=</value>
</property>
<property name="numOfActiveObjects">
<value>1Yk9kldWThfi=</value>
</property>
설정값(value)들 모두 암호화되어 있다. 따라서 XML 암복호 처리부(453)을 이용하지 않고, 일반 일반 텍스트 에디터를 이용해 열어 볼 경우 설정값(value)들은 모두 암호화 되어 내용을 파악할 수 없도록 한다.
XML파일(251)은 상기 설정 사항들과 SQL문장을 파라메터화하고 있다. SQL 문장을 파라메터화 하기 위해서는 SQL 문 각각에 식별자(id)를 부여하고, 이에 대한 SQL문을 병기하는 것이 한 구현예가 될 수 있다. 예를 들어, 다음과 같이 구성할 수 있다. 아래의 예는 식별의 편의를 위해 암호화를 하지 않은 평문으로 된 XML 문이다.
<sqldata>
<sqlid>select_address_by_name</sqlid>
<sqltemplate>select address from personal_table where name =?</sqltemplate>
</sqldata>
상기와 같이 설정할 경우, 어플리케이션은 personal_table에서 특정인에 대한 주소(address)를 읽어오기 위해서는 select_address_by_name이라는 식별자로 SQL문을 호출할 수 있다. 이때, 특정인의 이름(name) 값을 넘겨주기 위해서는 JDBC의 Prepared Statement 형식을 따라 SQL문을 작성하고, 실제는 런타임에 어플리케이션에서 그 값을 지정할 수 있다.
이후, 데이터베이스에서 이름에 대한 컬럼 명을 'name'에서 'name_val'로 바꾸어도, XML 파일의 내용만 바꾸면, 어플리케이션을 바꿀 필요가 없게 된다. 따라서 어플리케이션의 독립이 유지된다.
데이터 처리 시스템(200)은 다음과 같이 세분화 된다. XML처리부(252)는 XML설정 파일 내용을 모두 서버로 로딩한다. 자바 시스템의 경우 스프링 프레임워크(SpringFramework)의 빈 팩토리(BeanFactory)라는 기능을 사용하여 자바 빈(Java Bean)화하여 서버로 로딩한다. 자바 빈화를 하면 하나의 클래스로 사용가능하게 된다. 그 결과 서버는 상기 XML 설정 정보을 객체로 이용할 수 있다.
XML암복호 처리부(253)은 전술한 바와 같이 설정 화면 인터페이스(400)에서 사용된 XML 암복호 처리부(453)와 같이, XML 파일의 설정 정보를 암호화 또는 복호화 하는 모듈이다. XML 파일이 암호화 되어 저장되어 있으므로, 이를 복호화 하여 실행할 수 있는 SQL 문을 얻도록 한다.
SQL정보부(260)는 SQL문장들로 구성되어 있으며 서버에 캐싱할 수 있다. 이 때, 모든 서버들에게 공통으로 사용되기 때문에, 메모리를 절약하기 위해 전역 정보(Global)로 캐싱할 수 있다.
객체 풀(230)은 어플리케이션들이 데이터베이스에 작업을 요청할 경우 이 작업을 처리해주는 처리 객체(Processing Object)부들을 포함한다
처리 객체(231)는 SQL처리부(220)를 이용하여 데이터베이스(300)와 연결해 작업을 하고 결과를 얻어 온다.
스케쥴러(240)는 외부 시스템이 데이터 처리 시스템으로 처리 객체를 요구할 때 이를 지능적으로 스케쥴링해 할당하는 부분이다.
스케쥴러(240)와 객체 풀(230)의 처리 객체(231)의 상호 동작에 대해서는 후술하고자 한다.
연결 관리부(210)는 JDBC 등과 같이 데이터베이스와 연결을 제공하는 모듈이다. 데이터베이스 연동을 위한 API(Application Programming Interface)를 제공한다.
SQL처리부(220)는 쿼리(query)를 처리하기 위한 인터페이스와 구현 메소드가 들어 있는 부분이다.
도 6에 예시된 데이터 처리 시스템(200)을 통해 작업이 이루어지는 과정은 다음과 같다.
설정 화면 인터페이스(400)를 통해 데이터베이스의 종류, 연결 방식, 예를 들어서 직접 연결 또는 JNDI(Java Naming and Directory Interface)등을 설정할 수 있다. 그리고 데이터베이스와 연동하기 위한 파라메터인 드라이브 명, URL, ID, 패스워드 등을 설정할 수 있다. 이외에도, 모니터링을 위해 통계 출력 여부, 통계 출력 간격, 콘솔 메세지 출력 여부를 설정할 수 있다. 전술한 바와 같이 객체 풀(230)에서 생성될 처리 객체의 개수를 설정할 수 있으며, 어플리케이션에서 사용할 수 있는 쿼리 문장(SQL 문장)을 XML 내의 파라메터로 하여 저장할 수 있다. 설정된 사항들은 XML 암복호 처리부(453)을 통해 XML 파일(251)에 저장된다.
데이터 처리 시스템(200)는 처리 객체(231)를 생성하여 외부 어플리케이션의 데이터베이스 작업 요청을 처리한다. 이때, 본 발명의 일 실시예에 의할 경우, 처리 객체는 시스템 전체에서 하나만 생성하여 여러 어플리케이션이 공유하도록 동작을 시작할 수 있다. 이들 처리 객체에 대해서는 도 7에서 후술하고자 한다. 처리 객체(231)가 XML 파일을 읽어 올 수 있도록, XML 처리부(252)는 XML 파일(251)을 오픈하여 읽어 들인다. 이때 SQL문장을 포함하여 XML의 모든 설정 내용을 자바 빈 으로 변환할 수 있다. 이를 위해 오픈 소스 프레임워크인 스프링 프레임워크의 빈 팩토리(BeanFactory)를 일 실시예로 적용할 수 있다. 일반 파라메터 내용으로 로드하는 방식보다 빈(bean)으로 로딩할 경우, 재사용성을 향상시킬 수 있다.
XML 암복호 처리부(253)는 XML에 암호화되어 있는 내용들을 복호화해 원래의 설정 내용을 읽어 들인다. 그리고 SQL 정보부(260)는 SQL관련 정보를 추출하여 서버에 로딩한다. 이때, 자바 콜렉션(Collection) 객체인 맵(Map)을 구축할 수 있다.
데이터 처리 시스템(200)는 쿼리에 대한 식별자를 가지고 SQL문을 찾을 수 있다.
어플리케이션(100)은 데이터 처리를 위해 데이터 처리 시스템(200)로 처리 객체를 요구한다. 스케쥴링부(240)에서는 가용한 처리 객체에 대한 정보를 어플리케이션(100)에 전달한다. 어플리케이션(100)은 소정의 작업을 완수하기 위해 데이터 처리를 요청한다. 이때 어플리케이션(100)은 SQL문장을 직접 입력하는 것이 아니라, 실행하고자, 또는 처리하고자 하는 쿼리 아이디(식별자)를 처리 객체(231)에게 전달한다. 예를 들어, 주소 테이블에서 특정인의 주소를 찾기 위해, select_address_by_name과 특정인의 이름을 전달할 수 있다. 데이터 처리 시스템(200)는 해당 쿼리 식별자가 어떤 쿼리 문장인지에 대한 정보를 관리하므로, 해당하는 SQL문장을 찾아 실행할 수 있다. 따라서 어플리케이션(100)은 SQL 문장이 바뀌더라도 코드를 바꿀 필요가 없다. 해당 쿼리 아이디(식별자)가 동일한 경우에는 그 코드를 그대로 사용할 수 있다. 따라서 어플리케이션(100)이 SQL 문장 변환에 독립적으로 존재한다.
부수적으로, 쿼리를 찾는 경우, 해당 쿼리에 대한 통계를 생성할 수 있다. 어플리케이션이 요청한 쿼리(Query)는 처리 객체(231)가 연결 관리부(210)를 통해 SQL처리부(220)가 처리한다.
연결 관리부(210)는 JDBC표준 인터페이스와 같은 인터페이스를 이용해 데이터 베이스 처리를 담당한다. 그리고 처리된 결과를 처리 객체(231)에 전달하고, 어플리케이션(100)은 처리 객체(231)로부터 결과를 전달받는다.
처리 객체는 데이터베이스에 쿼리를 전달하고, 그 쿼리의 결과를 수신한다. 따라서 데이터베이스와 연결이 되어야 한다. 그런데, 실제 데이터베이스와 연결을 맺는데 소요되는 시간이, 쿼리를 전달하고 그 쿼리의 결과를 수신하는데 소요되는 시간보다 크다. 따라서, 커넥션을 유지하도록 처리 객체를 구성하는 것이 필요하다. 따라서 커넥션 보다 풀링의 단위를 높인 오브젝트 풀 방식(Object pooling)을 사용하여, 미리 커넥션과 처리 객체를 확보한 상태에서, 어플리케이션에 처리 객체를 할당하는 방식을 제공할 수 있다.
한편 데이터베이스와 커넥션을 맺는 시간외에도, 컨텍스트 스위칭(Context Switching)하는 시간도 많이 소요된다. 따라서, 컨텍스트 스위칭을 줄이기 위해 이전 요청자에게 다시 작업 쓰레드를 할당하도록 한다. 스케쥴러(240)는 이전 요청자에 대한 정보를 유지하여, 해당 요청자가 가장 최근에 사용한 객체를 할당하도록 할 수 있다. 도 6에서는 SQL 처리부(220)가 데이터 처리 시스템(200) 외부에 두고 있으나, 이는 일 실시예이며, SQL 처리부(220)는 구현에 따라 데이터 처리 시스템(200) 내부에 둘 수 있다.
도 7은 본 발명의 일 실시예에 따른 스케쥴러가 처리 객체를 선택하여 어플리케이션의 데이터베이스 작업 요청을 처리하는 과정을 보여주는 예시도이다.
어플리케이션(101)이 스케쥴러(240)에 데이터베이스 작업을 처리할 수 있도록 처리 객체를 할당해 줄 것을 요청한다. 스케쥴러(240)는 어플리케이션(101)의 데이터베이스 작업을 이전에 수행했던 처리 객체를 어플리케이션에 할당한다. 이는 컨텍스트 스위칭을 막을 수 있도록 하기 위함이다. 이를 위한 실시예로는, 처리 객체를 하나만 생성하여, 이 처리 객체가 N개의 어플리케이션의 데이터베이스 작업 처리를 수행하도록 한다. 그리고 처리 객체가 처리할 수 있는 한계에 도달하면, 새 로운 처리 객체를 생성하여 다른 어플리케이션의 작업 처리는 새로운 처리 객체에 할당하도록 설정할 수 있다.
예를 들어, 처리 객체(232)가 2개의 어플리케이션(101, 102)의 데이터베이스 처리 작업을 수행 중에 제 3의 어플리케이션(103)이 데이터베이스 작업의 처리를 요청할 경우, 스케쥴러(240)는 다른 처리 객체(233)을 할당할 수 있다. 그리고 이후 어플리케이션(103)의 데이터베이스 처리 요청은 처리 객체(233)이 작업할 수 있도록 스케쥴러(240)는 할당한다.
도 8은 본 발명의 일 실시예에 따른 XML 파일에 저장된 SQL문과 식별 정보를 사용하여 데이터베이스에 작업을 요청하는 과정을 보여주는 순서도이다.
시스템은 XML 파일의 각 구성요소를 분석하여 SQL문에 대한 식별 정보와 SQL문을 추출한다(S401). 이 경우, 구성 요소가 암호화 되어 있거나, 또는 XML 파일 자체가 암호화 되어 있는 경우, 이를 복호화할 수 있다(S402). 그리고 추출한 SQL문에 대한 식별 정보와 SQL문을 기억장치로 로딩한다(S403). 이 과정에서 자바 시스템을 사용할 경우, 자바 빈으로 변경하여 기억장치로 로딩할 수 있다. 로딩한 후에는 처리 객체부를 생성하여 어플리케이션으로부터 데이터베이스에 대한 작업 요청을 처리하도록 한다.
어플리케이션으로부터 작업 요청이 있을 때까지, 시스템은 대기 상태에 존재할 수 있다(S410). 대기 중, 어플리케이션으로부터 SQL문에 대한 식별 정보를 수신하면 이를 처리 객체부로 전달한다(S411). 전술한 바와 같이, 스케쥴러가 어플리케이션에 대한 정보를 유지하여, 예전에 어느 처리 객체부가 해당 어플리케이션의 데 이터베이스 작업 요청을 처리했는지 검색한다. 검색 결과 해당 처리 객체부로 식별 정보를 전달한다. 이는 전술한 컨텍스트 스위칭에 따른 시간 소요를 줄이기 위함이다. 처리 객체부는 S403 단계에서 로딩한 정보를 토대로 어떤 SQL문을 요청하는 것인지 검색한다. 그리고, 해당 SQL문을 데이터베이스로 송신하여 데이터베이스 작업을 처리해줄 것을 요청한다(S412). 그리고 처리 객체부는 데이터베이스로부터 처리 결과를 수신한다(S420). 이때 처리 결과로는 테이블의 레코드들로 구성되거나, 또는 데이터베이스에 대해 처리한 결과, 성공인지 실패인지 여부 등, 다양할 수 있다. 처리 객체부는 수신한 처리 결과를 어플리케이션에 송신한다(S421). 추후 해당 어플리케이션에서 데이터베이스에 대한 작업을 요청하면, 스케쥴러는 해당 처리 객체부로 SQL문의 식별 정보를 전달할 수 있다.
도 9는 종래의 방법과 본 발명의 실시예를 적용한 경우의 성능 향상을 보여주는 도면이다. 성능 테스트를 위해 데이터베이스 벤치마크 프로그램인 AS3AP(ANSI SQL Standard Scalable and Portable Benchmark)를 적용하였다. 본 발명을 이용하면 소프트웨어의 독립성은 향상되는 반면 성능 저하가 발생할 수 있다. 하지만, 커넥션보다 풀의 단위를 높인 오브젝트 풀 방식과 앞서 컨텍스트 스위칭을 줄이도록 처리 객체를 스케쥴링하는 방식, SQL Result Set의 Row와 Column을 각각 처리 속도가 빠르고 가벼운 자바의 ArrayList와 Object[]로 선택함으로써 성능 저하를 만회할 수 있다.
도 9에 나타난 바와 같이 S0의 경우 응답 시간이 종래의 방식보다 짧아 성능이 향상됨을 알 수 있다. 그 외의 경우는 응답 시간이 종래의 방식과 비교하여 짧 거나 비슷한 수준이다. 그러나 그 외의 경우는 응답 시간 자체가 종래의 경우에도 짧기 때문에, 가장 응답시간이 많이 소요되는 S0을 중점으로 비교할 때, 성능이 오히려 향상됨을 알 수 있다.
도 10은 종래의 방법과 본 발명의 실시예를 적용한 경우의 성능 향상을 보여주는 또다른 도면이다. 쓰레드(Thread)의 개수가 증가하는 경우, 처리 속도를 살펴보면, 본 발명을 선택적으로 적용한 경우, 쓰레드가 증가하여도 초당 처리하는 작업 수가 크게 감소하지 않음을 알 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명을 구현함으로써 소프트웨어를 개발하는 경우 특정 모듈의 변경이 다른 모듈의 변경으로 연결되지 않도록 할 수 있다. 이를 통해, 모듈의 독립화와 개발의 유연성을 확보할 수 있다. 또한 소프트웨어의 개발 및 유지, 보수에 소요되는 비용을 절감하고, 소프트웨어의 독립성을 보장할 수 있다.

Claims (8)

  1. XML 파일의 각 구성요소를 분석하여 SQL문에 대한 식별 정보와 SQL문을 추출하는 XML 처리부;
    상기 식별 정보와 상기 SQL문을 기억장치로 로딩하는 SQL 정보부;
    SQL문에 대한 식별 정보를 수신하여 상기 SQL문을 검색하고, 상기 검색된 SQL문을 데이터베이스에 송신하고, 상기 SQL문의 실행 결과를 상기 데이터베이스로부터 수신하여 상기 식별 정보를 송신한 어플리케이션에 상기 실행 결과를 송신하는 처리 객체부를 포함하는 객체 풀; 및
    어플리케이션으로부터 SQL문에 대한 제 1 식별 정보를 수신하여, 상기 어플리케이션으로부터 이전에 SQL문에 대한 제 2 식별 정보를 수신하였던 처리 객체부를 상기 객체 풀에서 선택하여 상기 선택된 처리 객체부에 상기 SQL문에 대한 제 1 식별 정보를 전달하는 스케쥴러를 포함하고, 상기 XML 파일 또는 XML 파일의 구성 요소는 암호화되어 저장되며, 상기 XML 처리부는 상기 암호화된 XML 파일 또는 구성 요소를 복호화하는 XML 암복호화 처리부를 포함하는 시스템.
  2. 제 1 항에 있어서,
    상기 XML 파일은 상기 SQL문을 실행하기 위한 데이터베이스의 정보를 포함하는 시스템.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 처리 객체부는 상기 SQL문에 대한 제 1 식별 정보외에 상기 SQL문을 실행하는데 필요한 파라메터를 더 수신하는 시스템.
  5. XML 파일의 각 구성요소를 분석하여 SQL문에 대한 식별 정보와 SQL문을 추출하는 단계;
    상기 식별 정보와 상기 SQL문을 기억장치로 로딩하는 단계;
    어플리케이션으로부터 제 1 SQL문에 대한 제 1 식별 정보를 수신하여, 상기 어플리케이션으로부터 이전에 제 2 SQL문에 대한 제 2 식별 정보를 수신하였던 처리 객체부를 선택하여 상기 선택된 처리 객체부에 상기 제 1 SQL문에 대한 제 1 식별 정보를 전달하는 단계; 및
    상기 제 1 처리 객체부는 상기 제 1 식별 정보에 해당하는 SQL문을 검색하여, 상기 검색된 SQL문을 데이터베이스에 송신하고, 상기 SQL문의 실행 결과를 상기 데이터베이스로부터 수신하여 상기 어플리케이션에 상기 실행 결과를 송신하는 단계를 포함하고, 상기 추출하는 단계는 상기 XML 파일 또는 XML 파일의 구성 요소가 암호화되어 저장된 경우, 상기 암호화된 XML 파일 또는 구성 요소를 복호화하는 단계를 포함하는, 소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 방법.
  6. 제 5 항에 있어서,
    상기 XML 파일은 상기 SQL문을 실행하기 위한 데이터베이스의 정보를 포함하는, 소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 방법.
  7. 삭제
  8. 제 5 항에 있어서,
    상기 전달하는 단계는 상기 SQL문에 대한 제 1 식별 정보와 상기 SQL문을 실행하는데 필요한 파라메터를 전달하는 단계인, 소프트웨어 모듈의 독립성을 보장하는 데이터베이스 어플리케이션을 구현하는 방법.
KR1020050048470A 2005-06-07 2005-06-07 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법 KR100714693B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020050048470A KR100714693B1 (ko) 2005-06-07 2005-06-07 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법
JP2006145279A JP2006344213A (ja) 2005-06-07 2006-05-25 ソフトウェアモジュールの独立性を保障するデータベースアプリケーションを具現するシステム及び方法
EP06252844A EP1732003A2 (en) 2005-06-07 2006-06-01 System and method for implementing database application while guaranteeing independence of software modules
CNB2006100885941A CN100437584C (zh) 2005-06-07 2006-06-06 在确保软件模块独立的同时实现数据库应用的系统和方法
US11/447,972 US20060277158A1 (en) 2005-06-07 2006-06-07 System and method for implementing database application while guaranteeing independence of software modules

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050048470A KR100714693B1 (ko) 2005-06-07 2005-06-07 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20060127468A KR20060127468A (ko) 2006-12-13
KR100714693B1 true KR100714693B1 (ko) 2007-05-04

Family

ID=36950118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050048470A KR100714693B1 (ko) 2005-06-07 2005-06-07 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법

Country Status (5)

Country Link
US (1) US20060277158A1 (ko)
EP (1) EP1732003A2 (ko)
JP (1) JP2006344213A (ko)
KR (1) KR100714693B1 (ko)
CN (1) CN100437584C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564639B1 (ko) 2013-05-03 2015-10-30 주식회사 엘지유플러스 데이터 처리 방법 및 장치

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361400B2 (en) * 2007-10-12 2016-06-07 Asml Netherlands B.V. Method of improved hierarchical XML databases
WO2012011915A1 (en) * 2010-07-22 2012-01-26 Hewlett-Packard Development Company, L.P. Sql enumerator
US9449030B2 (en) * 2011-06-30 2016-09-20 International Business Machines Corporation Method for native program to inherit same transaction content when invoked by primary program running in separate environment
US9164740B2 (en) 2013-05-16 2015-10-20 Toshiba Global Commerce Solutions Holdings Corporation System and method for replacing java beans
KR102243793B1 (ko) 2013-06-18 2021-04-26 시암벨라 리미티드 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
CN103677975A (zh) * 2013-12-09 2014-03-26 北京恒华伟业科技股份有限公司 一种访问应用系统内部对象的系统和方法
US9619122B2 (en) 2014-01-10 2017-04-11 Ciambella Ltd. Method and apparatus for automatic device program generation
SG11201708743UA (en) 2015-05-08 2017-11-29 Ciambella Ltd Method and apparatus for automatic software development for a group of controller-based devices
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
CN110419024A (zh) 2017-03-14 2019-11-05 西安姆贝拉有限公司 用于在开发环境中自动生成和合并代码的方法和设备
US10289409B2 (en) 2017-03-29 2019-05-14 The Travelers Indemnity Company Systems, methods, and apparatus for migrating code to a target environment
US10592391B1 (en) 2017-10-13 2020-03-17 State Farm Mutual Automobile Insurance Company Automated transaction and datasource configuration source code review
US10585663B1 (en) 2017-10-13 2020-03-10 State Farm Mutual Automobile Insurance Company Automated data store access source code review
JP6866270B2 (ja) * 2017-10-17 2021-04-28 株式会社日立システムズ Sql文抽出装置、sql文抽出方法及びプログラム
US10318412B1 (en) * 2018-06-29 2019-06-11 The Travelers Indemnity Company Systems, methods, and apparatus for dynamic software generation and testing
CN110471763B (zh) * 2019-07-29 2023-07-25 平安科技(深圳)有限公司 基于共享对象池的调度方法、系统、介质及电子设备
CN110609782B (zh) * 2019-09-19 2022-07-12 四川长虹电器股份有限公司 基于大数据的微服务优化系统及方法
CN111274269B (zh) * 2020-01-17 2023-07-07 广州至真信息科技有限公司 一种数据处理的方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132551A (ja) 2000-10-18 2002-05-10 Nec Corp データベースシステム
KR20030024762A (ko) * 2003-03-06 2003-03-26 박승범 산업폐기물 및 폴리머를 이용한 상호연결 복층형 고기능포러스 식생블록의 제조방법
KR20030063922A (ko) * 2002-01-24 2003-07-31 (주) 자이오넥스 엑스엠엘 기반의 웹 어플리케이션 구현 시스템 및 방법
KR20030087370A (ko) * 2002-05-08 2003-11-14 삼성전자주식회사 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조
JP2004348485A (ja) 2003-05-22 2004-12-09 Nippon Telegr & Teleph Corp <Ntt> 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5687362A (en) * 1995-01-30 1997-11-11 International Business Machines Corporation Enumerating projections in SQL queries containing outer and full outer joins in the presence of inner joins
US6237003B1 (en) * 1998-11-30 2001-05-22 Platinum Technology Ip, Inc. Method and apparatus for supporting dynamic run-time object definition in a relational database management system
US7107255B2 (en) * 2001-06-21 2006-09-12 International Business Machines Corporation Self join elimination through union
US7133864B2 (en) * 2001-08-23 2006-11-07 Syngenta Participations Ag System and method for accessing biological data
US20030140068A1 (en) * 2001-11-26 2003-07-24 Peter Yeung Arrangement, system and method relating to exchange of information
US7058890B2 (en) * 2002-02-13 2006-06-06 Siebel Systems, Inc. Method and system for enabling connectivity to a data system
US6917935B2 (en) * 2002-06-26 2005-07-12 Microsoft Corporation Manipulating schematized data in a database
EP1467289A1 (en) * 2003-04-07 2004-10-13 Deutsche Thomson-Brandt Gmbh database model for hierarchical data formats
US20050015368A1 (en) * 2003-07-15 2005-01-20 International Business Machines Corporation Query modelling tool having a dynamically adaptive interface
US20050097128A1 (en) * 2003-10-31 2005-05-05 Ryan Joseph D. Method for scalable, fast normalization of XML documents for insertion of data into a relational database

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132551A (ja) 2000-10-18 2002-05-10 Nec Corp データベースシステム
KR20030063922A (ko) * 2002-01-24 2003-07-31 (주) 자이오넥스 엑스엠엘 기반의 웹 어플리케이션 구현 시스템 및 방법
KR20030087370A (ko) * 2002-05-08 2003-11-14 삼성전자주식회사 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조
KR20030024762A (ko) * 2003-03-06 2003-03-26 박승범 산업폐기물 및 폴리머를 이용한 상호연결 복층형 고기능포러스 식생블록의 제조방법
JP2004348485A (ja) 2003-05-22 2004-12-09 Nippon Telegr & Teleph Corp <Ntt> 構造化文書処理方法及び装置及び構造化文書処理プログラム及び構造化文書処理プログラムを格納した記憶媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101564639B1 (ko) 2013-05-03 2015-10-30 주식회사 엘지유플러스 데이터 처리 방법 및 장치

Also Published As

Publication number Publication date
CN100437584C (zh) 2008-11-26
JP2006344213A (ja) 2006-12-21
CN1877579A (zh) 2006-12-13
EP1732003A2 (en) 2006-12-13
KR20060127468A (ko) 2006-12-13
US20060277158A1 (en) 2006-12-07

Similar Documents

Publication Publication Date Title
KR100714693B1 (ko) 소프트웨어 모듈의 독립성을 보장하는 데이터베이스어플리케이션을 구현하는 시스템 및 방법
US10558671B2 (en) Modified representational state transfer (REST) application programming interface (API) including a customized GraphQL framework
CN111930355B (zh) 一种web后端开发框架及其构建方法
US11163791B2 (en) Transformation configuration in instance data replication with bi-directional replication support
CN103559118B (zh) 一种基于aop与注解信息系统的安全审计方法
CN116737775A (zh) 分布式事件处理系统中的数据序列化
US20050076265A1 (en) Method and apparatus for supporting error handling in a web presentation architecture
US20080034199A1 (en) High performance data encryption server and method for transparently encrypting/decrypting data
WO2016123921A1 (zh) 基于Http协议的多数据源的数据处理方法及系统
US20030069969A1 (en) Method and apparatus for using java dynamic proxies to interface to generic, bean-like management entities
CN111949693A (zh) 一种数据处理装置、数据处理方法、存储介质及电子设备
CN115905740A (zh) 一种多数据源服务引擎接口互联方法
US7962922B2 (en) Delivering callbacks into secure application areas
Ahmad et al. Parallel query execution over encrypted data in database-as-a-service (DaaS)
CN113342399A (zh) 应用项目的结构配置方法、装置及可读存储介质
CN113204776A (zh) 实现列加密的方法、装置、设备及存储介质
CN111459583A (zh) 一种菜单创建方法及装置
US11983190B2 (en) System and method for configurable and automated data extraction, formatting and distribution
US20240176593A1 (en) System and method for API driven rapid application development and execution
CN113986342A (zh) 数据处理方法、装置和电子设备
CN116226906A (zh) 一种多服务细颗粒度数据域控制方法、系统、设备及介质
CN117931906A (zh) 多数据源连接的方法及装置、计算机设备、存储介质
JP5007041B2 (ja) ジョブ管理装置およびジョブ管理方法
Εμμανουήλ IoT platform and data management using microservices
CN115510154A (zh) 基于区块链的存证数据生成方法、装置和计算机设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee