KR100748697B1 - 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템 - Google Patents
응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템 Download PDFInfo
- Publication number
- KR100748697B1 KR100748697B1 KR1020060024591A KR20060024591A KR100748697B1 KR 100748697 B1 KR100748697 B1 KR 100748697B1 KR 1020060024591 A KR1020060024591 A KR 1020060024591A KR 20060024591 A KR20060024591 A KR 20060024591A KR 100748697 B1 KR100748697 B1 KR 100748697B1
- Authority
- KR
- South Korea
- Prior art keywords
- database
- connection
- application
- information
- application program
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그 시스템에 관한 것으로, 응용 프로그램 기동시 등록된 데이터베이스 연결정보를 초기화하는 단계와, 상기 응용 프로그램의 제1 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계와, 상기 응용 프로그램의 호출에 따라 연결하고자 하는 데이터베이스에 대한 인스턴스(instance) 정보를 획득하는 단계와, 상기 획득된 인스턴스 정보에 따라 해당 데이터베이스와 연결되어 데이타를 처리하는 단계 및 상기 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계로 이루어지는 것을 특징으로 한다.
Description
도 1은 일반적인 데이터베이스 응용 프로그램의 계층구조를 나타내는 도면.
도 2는 본 발명에 따른 분산 데이터베이스 연결 구성 예를 나타내는 도면.
도 3은 본 발명에 따른 분산 데이터베이스 연결을 지원하는 응용 프로그램의 계층구조를 나타내는 도면.
도 4는 본 발명에 따른 DB Connection Manager의 구현 개념도.
도 5는 본 발명에 따른 "Connection Repository"의 Oracle 데이터베이스 Connection 정의 예를 나타내는 도면.
도 6은 본 발명에 따른 DbConnManager Class 구성을 나타내는 도면.
도 7은 본 발명에 따른 DbConnManager Class Sequence Flow를 나타내는 도면.
도 8은 본 발명에 따른 DbConnManager Class를 이용하는 DB API Prototype을 나타내는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 응용 프로그램 20 : DB API
30 : DbConnManager 40 : Connection Repository
50 : 데이터베이스
본 발명은 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그 시스템에 관한 것으로, 특히 분산 데이터베이스 환경에서 응용 프로그램의 데이터베이스 연결을 지원하는 데이터베이스 응용 구조(Database Application Framework)에 관한 것이다.
초창기의 컴퓨터에서는 운영체제가 제공하는 파일 시스템을 이용하여 데이터를 단순히 저장하고 읽기만 했는데, 그러한 데이터를 보다 효율적으로 관리하거나 접근하기 위해서는 응용 프로그래머가 직접 파일 시스템 상에서 필요한 응용 프로그램을 개발해야만 했다.
그러나, 사용자의 요구가 바뀔 때마다 계속 응용 프로그램을 변경하거나 심지어는 다시 개발해야 했으며, 그 기능 또한 동시에 많은 사용자가 사용하기에는 극히 제한적이었다.
1960년대 초에 이르러 처음으로 "데이터베이스"란 용어가 "한 조직의 응용 시스템들이 공용(shared)하기 위해 통합(integrated), 저장(stored)한 운영 (operational) 데이터의 집합"이란 개념으로 정의되고 곧이어 데이터베이스를 관리하기 위한 시스템인 DBMS(Database Management System)가 소개되었다.
그 이후 계층적 데이터 모델과 네트워크 데이터 모델에 기반을 둔 IMS, Total 등의 DBMS들이 개발되어 영업망 정보, 부서 조직 정보 등 계층적 구조를 갖는 비즈니스 영역에서 우수한 성능을 발휘하였지만, 이러한 DBMS들은 결정적인 단점을 하나 가지고 있었는데, 그것은 바로 데이터들이 포인터로 연결되어 있고 그러한 포인터들을 최대한 효율적으로 이용하도록 응용 프로그램들을 개발하였기 때문에 데이터베이스의 변경이 응용 프로그램의 성능에 큰 영향을 미친다는 것이다. 더구나 그러한 데이터베이스의 일관성을 유지하기란 여간 어려운 것이 아니었다.
이러한 문제점들을 해결할 수 있는 관계형(Relational) 데이터 모델이 1970년대 초에 E.F. Codd에 의해 제안되었다. 관계형 데이터 모델은 개념적으로 project, restrict, join의 세가지 대표적인 관계 대수 연산을 제안하는데, 이러한 연산들을 기반으로 구축된 관계형 데이터베이스는 이전 데이터 모델들에서의 단점이었던 응용 프로그램에 특징적인 최적화 문제, 데이터 저장 구조 노출 문제, 포인터를 일일이 따라가야 하는 코드 작성 문제 등을 해소할 수 있었다. 그 결과로 데이터베이스 설계는 응용 프로그램과 독립적으로 유지되어 그 데이터베이스를 위한 여러 개의 응용 프로그램들이 개발 가능하게 되었다.
관계형 데이터베이스의 기본적인 구성 요소는 이차원 테이블(또는 릴레이션)이다. 하나의 테이블은 데이터 행(튜플)들의 집합으로 구성되는데, 각 튜플은 다시 여러 데이터 원소(속성이라고 함)들로 구성된다. 이 때, 각 속성은 STRING, NUMBER, DATE 등과 같은 기본적인 데이터 타입을 갖도록 고정된다.
RDBMS 제품으로는 1970년대 중반의 IBM San Jose 연구소의 System R을 시작으로 U.C. Berkeley의 Ingres를 거쳐 오늘날의 오라클(Oracle), 인포믹스(Informix), Sybase, DB2 등 많은 시스템들이 개발되어 널리 사용되고 있다.
1980년대에 들어 관계형 데이터베이스는 많은 기술적 발전을 이루어 DBMS 분야에 일대 변혁을 일으키며 문자, 숫자 등의 기본 타입을 갖는 대용량의 데이터 관리에 뛰어난 성능과 우수한 안정성을 보여 왔다. 현재까지도 대부분의 기업체의 주요 데이터가 숫자, 날짜, 그리고 짧은 문자열 등의 기본적인 타입의 데이터로 구성되어 있다.
하지만, 인터넷의 등장으로 세상은 급속하게 변화하고 있으며 보다 복잡한 데이터 분석 작업에 대한 필요성이 증대되고 있다. 또한 일반 사용자들은 이미지, 오디오, 그리고 비디오 등과 같은 멀티미디어 데이터 지원을 요구하고 있다. 이러한 이유로 관계형 데이터베이스에 대한 문제점들이 나타나기 시작하였다.
그것은, SQL에서의 데이터 타입은 제한적이며 확장이 불가능하고, 테이블을 이용하여 복합 객체(complex object)를 표현하기가 어려우며, SQL에서는 값에 의해 데이터의 관계가 표현되기 때문에 설령 복합 객체를 표현한다고 하더라도 관련 객체들을 찾기도 어렵다는 점이다. 임피던스 불일치(Impedence Mismatch) 문제로 인해서 응용 개발 및 유지가 어려운 점 또한 큰 문제점이라 할 수 있다.
이와 같은 문제점들을 해결할 수 있는 한 방안으로 1980년대 중반이후부터 그 당시 주목받기 시작한 객체 지향 기술을 데이터베이스에 접목하는 것을 연구하 기 시작했다. 1990년대에 들어서 객체 지향 기술은 소프트웨어 산업에 가장 중요한 개념들 중의 하나로 자리 잡았으며, 데이터베이스 분야에서도 객체 지향 기술을 받아들이는 것이 자연스러운 추세이다.
관계형 데이터베이스는 대용량의 기본 타입의 데이터를 효율적으로 저장 관리 및 검색하는데 탁월한 성능을 발휘하는 것에 비해서, 객체 지향 프로그래밍 언어(OOPL)가 기반으로 하는 객체 지향 모델은 실세계를 아주 훌륭하게 모델링 할 수 있으므로, 실세계 데이터를 효율적으로 표현하고 조작할 수 있다는 장점을 갖는다.
하지만, 관계형 모델과 객체 지향 모델이 근본적으로 다르기 때문에 그것들을 통합하는 것은 그리 간단하지가 않다. 관계형 데이터베이스는 이차원 테이블에 기반을 두며 데이터 사이의 관계는 각 테이블에 저장된 값들을 비교함으로써 표현되는데, SQL 언어를 이용하여 해당 테이블들을 연결(join)함으로써 그러한 관계를 실제로 이용할 수 있다. 그에 비해서 객체 모델은 코드와 데이터의 밀접한 통합, 유연한 데이터 타입, 데이터 타입들 간의 계층적 관계(상속성), 그리고 객체 참조 등의 구조에 기반을 두고 있다.
이러한 기본적인 구조를 관계형 데이터베이스 시스템의 이차원 테이블에 표현하는 것은 아주 어려운 일이며, 그 외에도 데이터 조작과 검색을 정확하게 다룰 수 있도록 두 시스템 사이의 인터페이스를 구현해야 하는 등 해결해야 할 문제들이 많이 존재한다. 결국 이와 같은 OOPL과 관계형 데이터베이스 사이의 의미적 불일치로 말미암아 관계형 데이터베이스를 통하지 않고 객체 지향 모델을 직접적으로 제공하는 객체 지향 데이터베이스 시스템이 나타나게 되었다.
OODBMS(Object Oriented DBMS : 객체 지향 DBMS)는 데이터와 관련 코드를 결합한 구조의 객체에 기반하는 것으로서, 객체에 대한 정의는 클래스에 포함되며 각 객체는 해당 클래스의 인스턴스(instance)로서 생성된다.
이와 같은 객체 지향 모델에 기반을 둔 OODBMS는 기본적으로 캡슐화(encapsulation), 상속성(inheritance), 다형성(polymorphism), 객체 식별자, 객체들 간의 참조와 같은 객체의 특징들을 제공한다.
OODBMS에서는 올바른 관계 유지를 위해 필요한 여러 고려사항들이 사라진다. OODBMS 제품으로는 1987년의 G-Base를 시작으로 GemStone, Orion, O2, ObjectStore, Versant, Objectivity 등 여러 제품들이 연구 개발되어 오늘날에 이르고 있다.
한편, 1996년 W3C(World Wide Web Consortium)에서 제안된 XML(eXtensible Markup Language)은 최근 인터넷상의 정보 교환의 새로운 표준으로 채택되면서 그 활용 분야가 급격히 증가하고 있다. XML에 포함된 정보는 스스로 자신을 묘사하는 (self-describing) 성격을 가지기 때문에 비정규 데이터의 특징으로 가지며, 또한 계층화되는 객체 지향적(Object Oriented) 성격을 가지고 있다. 이러한 XML 데이터의 특징으로 인해, RDBMS 테이블 기반으로 XML 데이터를 관리하는 데 많은 제약이 따르게 된다.
일반적으로 데이터베이스를 이용하는 응용 프로그램 개발시 데이터베이스 데이터 처리부분을 응용 프로그램과 분리된 Library(API : Application Programming Interface)로 구성하여 사용한다.
특히, Java 환경에서 데이터베이스를 사용하는 응용 프로그램 개발시 데이터베이스 Library(API : Application Programming Interface)를 Application 계층과 분리하여 개발하면, 데이터베이스 처리관련 Code를 Application과 분리할 수 있어 프로그램 개발자간 업무의 전문성 및 효율성을 증대시킬 수 있으며, Application Code의 변경으로 인한 데이터베이스 Code의 변경을 최소화 할 수 있게 된다.
또한, 데이터베이스 Library(API : Application Programming Interface)를 Component(Module)화함으로 해서 유사한 데이터베이스 처리 Code를 재사용하여 데이터베이스 응용 프로그램의 개발기간을 단축할 수 있게 된다.
그러나, 종래 사용된 데이터베이스 Library(API : Application Programming Interface)는 응용 프로그램의 단일(Single)-데이터베이스 연결만을 고려하여 분산된 데이터베이스 환경에서 응응 프로그램의 복수(Multiple)-데이터베이스 연결을 지원하지 못한다는 단점이 있다.
이에 따라, 기존 데이터베이스 Library(API : Application Programming Interface)를 이용하는 응용 프로그램에서는 시스템의 확장성에 문제가 생길 수 있으며, 관리 시스템의 용량 부족으로 관리 시스템을 확장하고자 하는 경우 응용 프로그램에서 분산된 데이터베이스 연결을 지원하지 못하는 경우에는 관리 용량 증설에 큰 장애 요인이 될 수 있다는 문제점이 있었다.
따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로서, 분산 데이터베이스 환경에서 응응 프로그램이 분산된 데이터베이스와 유연하게 단일 또는 다중 연결을 지원할 수 있도록 한 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그 시스템을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 응용 프로그램의 분산 데이터베이스 다중 연결 방법의 일 측면에 따르면, 응용 프로그램 기동시 등록된 데이터베이스 연결정보를 초기화하는 단계와, 상기 응용 프로그램의 제1 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계와, 상기 응용 프로그램의 호출에 따라 연결하고자 하는 데이터베이스에 대한 인스턴스(instance) 정보를 획득하는 단계와, 상기 획득된 인스턴스 정보에 따라 해당 데이터베이스와 연결되어 데이타를 처리하는 단계 및 상기 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계로 이루어지는 것을 특징으로 한다.
또한, 상기 연결된 제2 데이터베이스의 인스턴스(instance) 정보를 추가하여 데이터베이스 연결정보를 갱신하는 단계를 더 포함한다.
상기 응용 프로그램은, APPLICATION 계층과, DB API 계층과, DB Connection Manager 계층과, DB Connection(JDBC/ODBC) 계층과, DATABASE 계층 구조로 이루어진다.
상기 응용 프로그램의 호출에 따라 연결하고자 하는 데이터베이스에 대한 인 스턴스(instance) 정보를 획득하는 단계에서, 상기 인스턴스(instance) 정보는 연결하고자 하는 데이터베이스의 연결정보이다.
상기 데이터베이스 연결정보는, XML 메타언어(Mtea-Language)를 이용하여 정의한다.
상기 데이터베이스 연결정보는, 상기 연결하고자 하는 데이터베이스의 이름(Alias) 정보와, 연결 타입(Type) 정보와, IP 주소 정보와, Port 정보와, 사용자 인증정보를 포함한다.
상기 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계에서, 상기 응용 프로그램의 연결 요청에 따라 상기 제2 데이터베이스와 single_connection 또는 connection_pool 로 연결한다.
그리고, 상기 실행중인 응용 프로그램이 등록된 모든 데이터베이스 연결 등록정보 리스트를 조회하는 단계를 더 포함한다.
그리고, 상기 실행중인 응용 프로그램의 요청에 따라 데이터 처리가 필요하지 않은 데이터베이스에 대한 연결을 해제하는 단계를 더 포함한다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 응용 프로그램의 분산 데이터베이스 다중 연결 시스템의 일 측면에 따르면, 응용 프로그램의 제1 데이터베이스 연결 요청에 따라 제1 데이터베이스로 연결하고, 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 제2 데이터베이스로 연결하는 DB 연결 제어부와, 상기 응용 프로그램의 호출에 따라 상기 데이터베이스 연결 제어부로부터 연결 하고자 하는 데이터베이스에 대한 인스턴스(instance) 정보를 획득하여 해당 데이터베이스와 연결되어 데이타를 처리하는 DB 응용프로그램 인터페이스부 및 상기 DB 연결 제어부의 제어에 따라 적어도 하나 이상의 데이터베이스 연결정보를 저장하고 갱신하기 위한 DB 연결정보 저장부를 포함하는 것을 특징으로 한다.
상기 인스턴스(instance) 정보는 연결하고자 하는 데이터베이스의 연결정보이다.
상기 데이터베이스 연결정보는, XML 메타언어(Mtea-Language)를 이용하여 정의한다.
상기 데이터베이스 연결정보는, 상기 연결하고자 하는 데이터베이스의 이름(Alias) 정보와, 연결 타입(Type) 정보와, IP 주소 정보와, Port 정보와, 사용자 인증정보를 포함한다.
상기 DB 연결 제어부는, 상기 실행중인 응용 프로그램의 연결 요청에 따라 상기 제2 데이터베이스와 single_connection 또는 connection_pool 로 연결하게 된다.
상기 DB 연결 제어부는, 상기 실행중인 응용 프로그램의 조회 요청에 따라 등록된 모든 데이터베이스 연결 등록정보 리스트를 제공하게 된다.
상기 DB 연결 제어부는, 상기 실행중인 응용 프로그램의 요청에 따라 데이터 처리가 필요하지 않은 데이터베이스에 대한 연결을 해제하게 된다.
상기 DB 응용프로그램 인터페이스의 프로토타입(Prototype)은 DbConnManager Class를 이용하는 자바(Java) 언어로 정의된다.
상기 DB 응용프로그램 인터페이스의 첫번째 인자는 연결하여 실행하고자 하는 데이터베이스의 이름(Alias)이다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 1은 일반적인 데이터베이스 응용 프로그램의 계층구조를 나타내는 도면이다.
도 1에 도시된 바와 같이, Java 환경에서 데이터베이스를 사용하는 응용 프로그램 개발시 고려되는 일반적인 프로그램의 계층구조는 APPLICATION 계층과, DB API 계층과, DB Connection(JDBC/ODBC) 계층과, DATABASE 계층으로 이루어진다.
즉, 데이터베이스 Library(API : Application Programming Interface)를 Application 계층과 분리하여 개발하면, 데이터베이스 처리관련 Code를 Application과 분리할 수 있어 프로그램 개발자간 업무의 전문성 및 효율성을 증대시킬 수 있으며, Application Code의 변경으로 인한 데이터베이스 Code의 변경을 최소화 할 수 있게 된다.
또한, 데이터베이스 Library(API : Application Programming Interface)를 Component(Module)화함으로 해서 유사한 데이터베이스 처리 Code를 재사용하여 데이터베이스 응용 프로그램의 개발기간을 단축할 수 있게 된다.
그러나, 종래 사용된 데이터베이스 Library(API : Application Programming Interface)는 응용 프로그램의 단일(Single)-데이터베이스 연결만을 고려하여 분산된 데이터베이스 환경에서 응응 프로그램의 복수(Multiple)-데이터베이스 연결을 지원하지 못한다.
도 2는 본 발명에 따른 분산 데이터베이스 연결 구성 예를 나타내는 도면이다.
도 2에 도시된 바와 같이, 예를 들어 4개의 서버(SVR-1, SVR-2, SVR-3, SVR-4)가 존재하는 분산 데이터베이스 환경에서, [Case 1]의 경우에는 SVR-3 응용 프로그램의 SVR-1 데이터베이스로의 단일 연결로 기존 데이터베이스 Library(API : Application Programming Interface)로 지원 가능하다.
한편, [Case 2]의 경우, SVR-2, SVR-4 응용 프로그램의 다중 데이터베이스 연결로 기존 데이터베이스 Library(API : Application Programming Interface)로는 지원되지 못한다.
이에 따라, 본 발명에서는 하기의 도 3에서 설명되는 분산 데이터베이스 연결을 지원하기 위한 "DB Connection Manager" 계층을 구현함으로써 응용 프로그램은 "DB Connection Manager" 계층을 통해 분산된 데이터베이스에 대한 다중 연결을 만들 수 있게 된다.
예를 들어, 도 2에서와 같이 SVR-2 응용 프로그램의 경우, SVR-2 데이터베이스로의 Local DB Connection과, SVR-1의 데이터베이스로의 Remote DB Connection이 가능하다.
또한, SVR-4 응용 프로그램의 경우, SVR-4 데이터베이스로의 Local DB Connection과, SVR-1의 데이터베이스로의 Remote DB Connection 및 SVR-2의 데이터베이스로의 Remote DB Connection이 가능하다.
도 3은 본 발명에 따른 분산 데이터베이스 연결을 지원하는 응용 프로그램의 계층구조를 나타내는 도면이고, 도 4는 본 발명에 따른 DB Connection Manager의 구현 개념도이다.
도 3에 도시된 바와 같이, 본 발명에서 제시하고자 하는 분산 데이터베이스 연결을 지원하는 응용 프로그램의 계층구조는 APPLICATION 계층과, DB API 계층과, DB Connection Manager 계층과, DB Connection(JDBC/ODBC) 계층과, DATABASE 계층으로 이루어진다.
즉, 분산 데이터베이스 연결을 지원하기 위해 "DB Connection Manager" 계층을 구현함으로써, 응용 프로그램은 "DB Connection Manager" 계층을 통해 분산된 데이터베이스에 대한 다중 연결을 만들 수 있게 된다.
이와 같은 "DB Connection Manager" 계층은 도 6에서와 같이, DbConnManager Class로 구체화되며, DbConnManager Class는 데이터베이스와의 연결정보를 생성/삭 제/변경하는 기능을 수행하게 된다.
또한, 응용 프로그램의 데이터베이스 연결에 대한 위치 무관성(Location Transparency) 기능을 제공하기 위해 "Connection Repository"를 정의하며, 이와 같이 정의된 "Connection Repository"는 데이터베이스 연결에 대한 메타(Meta)-정보를 포함하게 된다.
즉, 응용 프로그램은 "Connection Repository"를 이용함으로 해서 데이터베이스의 위치에 상관없이 연결하고자 하는 데이터베이스의 이름(Alias)을 호출하여 데이터베이스와 연결된다.
예를 들어, 도 4에서와 같이 응용 프로그램(application)은 DbConnManager 로 임의의 데이터베이스로의 연결 요구를 하게 된다. 이때, 데이터베이스의 이름(Alias)를 통해 해당 DB로의 연결을 요구하게 된다.
이에 따라, DbConnManager는 응용 프로그램(application)으로부터 연결 요구된 해당 데이터베이스의 이름(Alias)을 내부 메모리에 로딩된 데이터베이스 연결정보인 "Connection Repository"를 통해 확인하게 된다.
여기서, 상기 데이터베이스 연결정보인 "Connection Repository" 는 예를 들어, 도 4에서와 같이 데이터베이스의 이름(Alias) 항목과, Type 항목, IP 항목, Port 항목, User 항목 및 Passwd 항목을 갖는 테이블로 구성되어진다.
즉, 데이터베이스의 이름(Alias)이 "Sconn1, Sconn2, Pconn1, Pconn2... " 인 경우, 데이터베이스 "Sconn1" 은 Single Type의 데이터베이스이고, IP 주소는 10.1.1.1 이며, Port는 5100, 데이터베이스에 연결할 수 있는 User는 ngn1, Passwd 는 ngn1 와 같은 정보를 갖게 된다.
또한, 데이터베이스 "Sconn2" 역시 Single Type의 데이터베이스이고, IP 주소는 10.1.1.2 이며, Port는 5101, 데이터베이스에 연결할 수 있는 User는 ngn2, Passwd는 ngn2 와 같은 정보를 갖게 된다.
또한, 데이터베이스 "Pconn1" 은 Pooled Type의 데이터베이스이고, IP 주소는 10.1.1.3 이며, Port는 5100, 데이터베이스에 연결할 수 있는 User는 ngn3, Passwd는 ngn3 와 같은 정보를 갖게 된다.
또한, 데이터베이스 "Pconn2" 역시 Pooled Type의 데이터베이스이고, IP 주소는 10.1.1.4 이며, Port는 5101, 데이터베이스에 연결할 수 있는 User는 ngn4, Passwd는 ngn4 와 같은 정보를 갖게 된다.
이와 같이, DbConnManager는 응용 프로그램(application)으로부터 연결 요구된 해당 데이터베이스의 이름(Alias)을 내부 메모리에 로딩된 데이터베이스 연결정보인 "Connection Repository"를 통해 확인하게 됨으로써, 예를 들어, Server-1의 응용 프로그램(application)은 DbConnManager의 제어에 따라 다수개의 DB Connection instance를 통해 Server-1의 데이터베이스(DB A)로 연결하거나, Server-2의 데이터베이스(DB B)로 연결할 수 있게 된다.
이와 같이, 본 발명에서 응용 프로그램(application)은 연결하고자 하는 데이터베이스의 이름(Alias)만 DbConnManager에게 알려주게 되면, DbConnManager의 제어에 따라 해당 데이터베이스로 연결할 수 있게 된다.
특히, 상기 데이터베이스 연결정보인 "Connection Repository" 정보는 XML 메타언어(Meta-Language)를 이용하여 정의하게 되는데 이에 대해 첨부된 도 5를 참조하여 보다 구체적으로 설명하기로 한다.
도 5는 본 발명에 따른 "Connection Repository"의 Oracle 데이터베이스 Connection 정의 예를 나타내는 도면이다.
도 5에 도시된 바와 같이, Connection 정보는 크게 single_connection 또는 connection_pool로 구분되어진다.
single_connection 의 경우, connection name "sconn1"에 대한 데이터베이스 연결 등록정보는 type value는 "single", ip value는 "165.213.119.77", user value는 "sstest", passwd value는 "sstest", sid value는 "ORA920", port value는 "1521" 임을 나타내고 있다.
한편, connection_pool 의 경우, connection name "pconn1"에 대한 데이터베이스 연결 등록정보는 type value는 "pooled", ip value는 "165.213.119.77", user value는 "sstest", passwd value는 "sstest", sid value는 "ORA920", port value는 "1521", min_limit value는 "3", max_limit value는 "5", timeout value는 "300" 임을 나타내고 있다.
여기서, connection_pool 이란 제한적인 데이터베이스 Connection 자원을 다수의 사용자가 효율적으로 사용하는 방법으로서, 미리 데이터베이스 Connection을 여러 개 만들어서 저장해 놓고, 다수의 사용자가 필요할 때 마다 하나씩 꺼내서 사용하고 다시 집어넣는 방식으로 제한적인 데이터베이스 Connection 자원을 공유하 는 방식이다.
도 6은 본 발명에 따른 DbConnManager Class 구성을 나타내는 도면이다.
도 6에 도시된 바와 같이, DbConnManager Class는 initConnManager()와, createConnection(String alias)와, createSingleConnection(String alias, String arg1, String arg2,...)와, createPooledConnection(String alias, String arg1, String arg2,...)와, deleteConnection(String alias)와, getConnection(String alias)와, listAllConnection()으로 구성되며, 이러한 구성에 대해 DbConnManager Class가 제공하는 기능은 각각 다음과 같다.
initConnManager() : connection repository에 정의된 connection 정보를 DbConnManager에 초기화한다.
createConnection() : 등록된 connection 중 요청된 connection을 데이터베이스와 연결한다.
createSingleConnection() : 응용 프로그램이 실행중 임의의 데이터베이스와 single_connection을 연결한다.
createPooledConnection() : 응용 프로그램이 실행중 임의의 데이터베이스와 connection_pool을 연결한다.
deleteConnection() : 응용 프로그램이 실행중 데이터베이스와 연결을 해제한다.
getConnection() : 연결된 데이터베이스의 connection instance 정보를 반환 한다.
listAllConnection() : DbConnManager에 등록된 모든 Connection 정보를 조회한다.
도 7은 본 발명에 따른 DbConnManager Class Sequence Flow Diagram으로서, DbConnManager Class의 Connection 초기화/생성/검색/삭제 작업에 대한 Sequence Flow를 나타내고 있다.
도 7에 도시된 바와 같이, 응용 프로그램 기동시 DbConnManager(30)는 Connection Repository(40)에 등록된 connection 정보를 초기화(//initConnManager())(S10)한다.
이어서, DbConnManager(30)는 응용 프로그램(10)으로부터 임의의 데이터베이스에 대한 연결 요청(//createConnection(alias))(S20)이 있는 경우, 응용 프로그램(10)에서 요청된 connection을 해당 데이터베이스(50)와 연결(//create Connection with alias)(S30)하게 된다.
이어서, 응용 프로그램(10)은 연결하고자 하는 데이터베이스의 위치에 관계없이 DB API(Application Programming Interface)(20)를 호출(S40)하게 된다.
이에 따라, DB API(20)는 응용 프로그램(10) 호출에 따라 DbConnManager(30)로 연결하고자 하는 데이터베이스에 대한 getConnection()을 요청(S50)하게 됨으로써 DbConnManager(30)는 해당 instance 정보 즉, DB 연결정보를 반환해 주게 된다.
이어서, DB API(20)는 DbConnManager Class를 통해 연결하고자 하는 데이터 베이스와 연결되어 실제로 해당 데이타를 처리(//excute SQL statement)(S60)하게 된다.
이어서, 응용 프로그램(10)은 실행(runtime)중에 DbConnManager(30)로 임의의 데이터베이스와의 연결을 위한 createSingleConnection(alias, arg1, arg2,..) 기능 수행을 요청(S70)하게 된다.
이에 따라, DbConnManager(30)는 응용 프로그램(10)의 createSingleConnection(alias, arg1, arg2,..) 기능 수행 요청에 따라 연결하고자 하는 데이터베이스와의 single_connection을 연결(create single connection with alias)(S80)하게 된다.
이어서, DbConnManager(30)는 연결하고자 하는 데이터베이스와의 single_connection이 연결되면, 연결된 데이터베이스의 instance 정보 즉, 데이터베이스 연결정보를 Connection Repository(40)에 추가하여 갱신(update repository)(S90)하게 된다.
또한, 응용 프로그램(10)은 실행(runtime)중에 DbConnManager(30)로 임의의 데이터베이스와의 연결을 위한 createConnectionPool(alias, arg1, arg2,..) 기능 수행을 요청(S100)하게 된다.
이에 따라, DbConnManager(30)는 응용 프로그램(10)의 createConnectionPool(alias, arg1, arg2,..) 기능 수행 요청에 따라 연결하고자 하는 데이터베이스와의 connection_pool을 연결(create connection pool with alias)(S110)하게 된다.
이어서, DbConnManager(30)는 연결하고자 하는 데이터베이스와의 connection_pool이 연결되면, 연결된 데이터베이스의 instance 정보 즉, 데이터베이스 연결정보를 Connection Repository(40)에 추가하여 갱신(update repository)(S120)하게 된다.
이어서, 응용 프로그램(10)은 실행(runtime)중에 DbConnManager(30)에게 요청하여 등록된 모든 데이터베이스 연결 등록정보 리스트를 조회(S130)하게 된다.
이어서, 응용 프로그램(10)은 실행(runtime)중에 현재 연결되어 있는 데이터베이스 중에서 더 이상 데이터 처리가 필요하지 않은 임의의 데이터베이스에 대한 연결 해제 요구를 DbConnManager(30)에게 요청(deleteConnection(alias))(S140)하게 되면 DbConnManager(30)는 요청된 해당 데이터베이스와의 연결을 해제시키게 된다.
이와 같이, 본 발명에서 응용 프로그램은 실행중에 임의의 데이터베이스와 연결을 생성/삭제 할 수 있게 된다.
도 8은 본 발명에 따른 DbConnManager Class를 이용하는 DB API(Application Programming Interface) Prototype을 나타내는 도면이다.
도 8에 도시된 바와 같이, 데이터베이스 다중 연결을 지원하는 DB API(Application Programming Interface) Prototype은 DbConnManager Class를 이용하는 java 언어로 정의된다.
DB API(Application Programming Interface)의 첫번째 인자는 연결하여 실행 하고자 하는 데이터베이스의 이름(Alias)이다.
즉, 응용 프로그램은 연결하고자 하는 데이터베이스의 위치에 관계없이 DB API(Application Programming Interface)를 호출하게 되면, DB API(Application Programming Interface)내에서 DbConnManager Class를 통해 연결하고자 하는 데이터베이스와 연결하여 데이타를 처리하게 된다.
이상에서는 본 발명에서 특정의 바람직한 실시예에 대하여 도시하고 또한 설명하였다. 그러나, 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
본 발명에 따르면, DbConnManager Class 및 "Connection Repository" 개념을 적용함으로써, 분산 데이터베이스 환경에서 응용 프로그램은 데이터베이스의 위치에 관계없이 데이터베이스와 연결할 수 있으며, 데이터베이스 Connection 정보를 손쉽게 관리 할 수 있게 되는 효과가 있게 된다.
Claims (18)
- 응용 프로그램 기동시 등록된 데이터베이스 연결정보를 초기화하는 단계;상기 응용 프로그램의 제1 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계;상기 응용 프로그램의 호출에 따라 연결하고자 하는 데이터베이스에 대한 인스턴스(instance) 정보를 획득하는 단계;상기 획득된 인스턴스 정보에 따라 해당 데이터베이스와 연결되어 데이타를 처리하는 단계; 및상기 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계로 이루어지는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 1항에 있어서,상기 연결된 제2 데이터베이스의 인스턴스(instance) 정보를 추가하여 데이터베이스 연결정보를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 1항에 있어서,상기 응용 프로그램은,APPLICATION 계층과, DB API 계층과, DB Connection Manager 계층과, DB Connection(JDBC/ODBC) 계층과, DATABASE 계층 구조로 이루어지는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 1항에 있어서,상기 응용 프로그램의 호출에 따라 연결하고자 하는 데이터베이스에 대한 인스턴스(instance) 정보를 획득하는 단계에서,상기 인스턴스(instance) 정보는 연결하고자 하는 데이터베이스의 연결정보인 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 4항에 있어서,상기 데이터베이스 연결정보는,XML 메타언어(Mtea-Language)를 이용하여 정의하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 4항에 있어서,상기 데이터베이스 연결정보는,상기 연결하고자 하는 데이터베이스의 이름(Alias) 정보와, 연결 타입(Type) 정보와, IP 주소 정보와, Port 정보와, 사용자 인증정보를 포함하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 1항에 있어서,상기 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결하는 단계에서,상기 응용 프로그램의 연결 요청에 따라 상기 제2 데이터베이스와 single_connection 또는 connection_pool 로 연결하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 1항에 있어서,상기 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 요청된 데이터베이스로 연결한 후 상기 실행중인 응용 프로그램이 등록된 모든 데이터베이스 연결 등록정보 리스트를 조회하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 제 8항에 있어서,상기 등록된 모든 데이터베이스 연결 등록정보 리스트를 조회한 후 상기 실행중인 응용 프로그램의 요청에 따라 데이터 처리가 필요하지 않은 데이터베이스에 대한 연결을 해제하는 단계를 더 포함하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 방법.
- 응용 프로그램의 제1 데이터베이스 연결 요청에 따라 제1 데이터베이스로 연결하고, 실행중인 응용 프로그램의 제2 데이터베이스 연결 요청에 따라 제2 데이터베이스로 연결하는 DB 연결 제어부;상기 응용 프로그램의 호출에 따라 상기 데이터베이스 연결 제어부로부터 연결하고자 하는 데이터베이스에 대한 인스턴스(instance) 정보를 획득하여 해당 데이터베이스와 연결되어 데이타를 처리하는 DB 응용프로그램 인터페이스부; 및상기 DB 연결 제어부의 제어에 따라 적어도 하나 이상의 데이터베이스 연결정보를 저장하고 갱신하기 위한 DB 연결정보 저장부를 포함하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 시스템.
- 제 10항에 있어서,상기 인스턴스(instance) 정보는 연결하고자 하는 데이터베이스의 연결정보 인 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 시스템.
- 제 11항에 있어서,상기 데이터베이스 연결정보는,XML 메타언어(Mtea-Language)를 이용하여 정의하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 시스템.
- 제 11항에 있어서,상기 데이터베이스 연결정보는,상기 연결하고자 하는 데이터베이스의 이름(Alias) 정보와, 연결 타입(Type) 정보와, IP 주소 정보와, Port 정보와, 사용자 인증정보를 포함하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 시스템.
- 제 10항에 있어서,상기 DB 연결 제어부는,상기 실행중인 응용 프로그램의 연결 요청에 따라 상기 제2 데이터베이스와 single_connection 또는 connection_pool 로 연결하는 것을 특징으로 하는 응용 프 로그램의 분산 데이터베이스 다중 연결 시스템.
- 제 10항에 있어서,상기 DB 연결 제어부는,상기 실행중인 응용 프로그램의 조회 요청에 따라 등록된 모든 데이터베이스 연결 등록정보 리스트를 제공하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 시스템.
- 제 10항에 있어서,상기 DB 연결 제어부는,상기 실행중인 응용 프로그램의 요청에 따라 데이터 처리가 필요하지 않은 데이터베이스에 대한 연결을 해제하는 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 시스템.
- 제 10항에 있어서,상기 DB 응용프로그램 인터페이스의 프로토타입(Prototype)은 DbConnManager Class를 이용하는 자바(Java) 언어로 정의되는 것을 특징으로 하는 응용 프로그램 의 분산 데이터베이스 다중 연결 시스템.
- 제 10항에 있어서,상기 DB 응용프로그램 인터페이스의 첫번째 인자는 연결하여 실행하고자 하는 데이터베이스의 이름(Alias)인 것을 특징으로 하는 응용 프로그램의 분산 데이터베이스 다중 연결 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060024591A KR100748697B1 (ko) | 2006-03-17 | 2006-03-17 | 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060024591A KR100748697B1 (ko) | 2006-03-17 | 2006-03-17 | 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100748697B1 true KR100748697B1 (ko) | 2007-08-13 |
Family
ID=38602690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060024591A KR100748697B1 (ko) | 2006-03-17 | 2006-03-17 | 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100748697B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110034622A (ko) * | 2008-05-30 | 2011-04-05 | 어데토 캐나다 코포레이션 | 자동설치(무인) 어플리케이션들을 위한 인증 데이터베이스 커넥티비티 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010019640A (ko) * | 1999-08-28 | 2001-03-15 | 윤종용 | 통신시스템 내 실시간 분산 객체 지향 데이터베이스 관리 시스템을 위한 분산 데이터베이스 관리 시스템 캐쉬 관리 방법 및장치 |
KR20040028406A (ko) * | 2002-09-30 | 2004-04-03 | 주식회사 케이티 | 운용시스템간 공유정보 관리방법 |
WO2004114152A2 (en) | 2003-06-20 | 2004-12-29 | Axalto Sa | Databases synchronization |
-
2006
- 2006-03-17 KR KR1020060024591A patent/KR100748697B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010019640A (ko) * | 1999-08-28 | 2001-03-15 | 윤종용 | 통신시스템 내 실시간 분산 객체 지향 데이터베이스 관리 시스템을 위한 분산 데이터베이스 관리 시스템 캐쉬 관리 방법 및장치 |
KR20040028406A (ko) * | 2002-09-30 | 2004-04-03 | 주식회사 케이티 | 운용시스템간 공유정보 관리방법 |
WO2004114152A2 (en) | 2003-06-20 | 2004-12-29 | Axalto Sa | Databases synchronization |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110034622A (ko) * | 2008-05-30 | 2011-04-05 | 어데토 캐나다 코포레이션 | 자동설치(무인) 어플리케이션들을 위한 인증 데이터베이스 커넥티비티 |
KR101720160B1 (ko) * | 2008-05-30 | 2017-04-10 | 이르데토 비.브이. | 인간의 개입이 없는 어플리케이션들을 위한 인증 데이터베이스 커넥티비티 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101224670B1 (ko) | 데이터 관리를 용이하게 해주는 시스템 및 방법 | |
CA2534257C (en) | Storage api for a common data platform | |
US8005866B2 (en) | Database | |
RU2441273C2 (ru) | Архитектура отображения с поддержанием инкрементного представления | |
US7739223B2 (en) | Mapping architecture for arbitrary data models | |
US8341120B2 (en) | Apparatus and methods for transferring database objects into and out of database systems | |
US7089566B1 (en) | Method for accessing object linking-embedding database data via JAVA database connectivity | |
US7289997B1 (en) | System and method for an extensible metadata driven application framework | |
US20070027849A1 (en) | Integrating query-related operators in a programming language | |
US20040260715A1 (en) | Object mapping across multiple different data stores | |
US20030208493A1 (en) | Object relational database management system | |
US7539672B2 (en) | Apparatus, system, and method for direct retrieval of hierarchical data from SAP using dynamic queries | |
US20070055692A1 (en) | Incremental approach to an object-relational solution | |
US8122044B2 (en) | Generation of business intelligence entities from a dimensional model | |
KR20060095452A (ko) | 이질적인 애플리케이션들에 걸쳐 공통적인 데이터 액세스를제공하는 방법 및 시스템 | |
KR20070001781A (ko) | 데이터에 대한 함수 적용의 결과에 대한 구조화된 인덱스 | |
US20080005062A1 (en) | Component for extracting content-index data and properties from a rich structured type | |
JP2006012155A (ja) | ユーザ定義型の指定されたメンバを遅延フェッチするシステムおよび方法 | |
US6571252B1 (en) | System and method for managing persistent objects using a database system | |
US7467373B2 (en) | Global object system | |
US6845376B1 (en) | Method for accessing hierarchical data via JDBC | |
US7313570B2 (en) | Mapping Enterprise Java Bean attributes to database schema | |
KR100748697B1 (ko) | 응용 프로그램의 분산 데이터베이스 다중 연결 방법 및 그시스템 | |
US20060143224A1 (en) | System and method for mapping container managed persistence persistent object states to java data object states | |
Arlein et al. | Making LDAP active with the LTAP gateway: Case study in providing telecom integration and enhanced services |
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 |
Payment date: 20120730 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130730 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140730 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150730 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |