KR20010057779A - 분산시스템 응용의 계층별 확장성 제공방법 - Google Patents

분산시스템 응용의 계층별 확장성 제공방법 Download PDF

Info

Publication number
KR20010057779A
KR20010057779A KR1019990061186A KR19990061186A KR20010057779A KR 20010057779 A KR20010057779 A KR 20010057779A KR 1019990061186 A KR1019990061186 A KR 1019990061186A KR 19990061186 A KR19990061186 A KR 19990061186A KR 20010057779 A KR20010057779 A KR 20010057779A
Authority
KR
South Korea
Prior art keywords
class
mapper
layer
user
change
Prior art date
Application number
KR1019990061186A
Other languages
English (en)
Inventor
오영배
김강호
이상덕
김정아
Original Assignee
오길록
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오길록, 한국전자통신연구원 filed Critical 오길록
Priority to KR1019990061186A priority Critical patent/KR20010057779A/ko
Publication of KR20010057779A publication Critical patent/KR20010057779A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/213Schema design and management with details for schema evolution support

Abstract

본 발명은 분산시스템 응용의 계층별 확장성 제공방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 매퍼 패턴을 서비스 객체로 개발하여 계층적 클라이언트/서버 응용의 각 계층간의 물리적 및 논리적인 독립성을 보장함으로써, 다른 계층의 변화없는 확장성을 제공하기 위한 분산시스템 응용의 계층별 확장성 제공방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하기 위하여, 각 계층별 연결정보를 가지는 적어도 하나 이상의 매퍼를 구성하는 제 1 단계; 상기 적어도 하나 이상의 매퍼를 상속받아 각 계층의 클래스를 생성하는 제 2 단계; 사용자의 요청을 상기 각 계층의 클래스가 수행하여, 그 결과를 사용자에게 전송하는 제 3 단계; 및 상기 각 계층의 변경, 새로운 객체의 추가, 개념의 변경 또는 데이터베이스 스키마의 변경 시에 상기 적어도 하나 이상의 매퍼를 재정의하는 제 4 단계를 포함하며, 분산시스템 등에 이용됨.

Description

분산시스템 응용의 계층별 확장성 제공방법{METHOD FOR PROVIDING EXTENDABILITY OF EACH LAYER IN DISTRIBUTED CLIENT-SERVER APPLICATION}
본 발명은 분산시스템 응용의 계층별 확장성 제공방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
일반적으로, 계층적 구조 기반 프로그램은 모델로 2계층(2-tier)구조에서 3계층(3-tier)구조 및 n계층(n-tier)구조로 발전되어 왔고, 최근에는 n계층 구조로 확장하여 그중에서, 응용계층을 다시 서비스 응용과 비지니스 응용으로 구분하는 추세이며, 이는 물리적인 구조개념의 계층간의 독립성을 보장하는 방법이다.
종래의 분산시스템 응용의 계층별 확장성 제공방법은, 클라이언트/서버간의 메세지 전송방식의 개선을 통해 물리적 독립성을 추구한 것이고, 클라이언트가 직접 서버와 바인딩(binding)한 후, 서버에게 메세지를 보내는 방식보다는 게이트웨이(gateway) 또는 브리지(bridge)방식으로 간접적인 메세지 전송 방식을 채용하여, 서버의 물리적 위치가 변하더라도 클라이언트에 영향을 주지 않도록 하는 방법이다.
그러나, 상기한 바와 같은 종래의 분산시스템 응용의 계층별 확장성 제공방법은, 물리적인 독립성 및 확장성은 보장하지만, 클라이언트 객체와 서버 객체간의 논리적 연결을 위한 하드 와이어드 프로그래밍(hard wired programming)방식의 채용으로 인한 계층별 응용간의 코드적 운영에 있어서 논리적인 종속성이 존재함으로써, 표현(presentation)방식의 변경 또는 비지니스 로직(business logic)의 변경으로 인한 프로그램의 변화가 다른 계층의 변화로 이어지는 문제가 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 매퍼 패턴을 서비스 객체로 개발하여 계층적 클라이언트/서버 응용의 각 계층간의 물리적 및 논리적인 독립성을 보장함으로써, 다른 계층의 변화없는 확장성을 제공하기 위한 분산시스템 응용의 계층별 확장성 제공방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는 분산시스템 응용의 계층별 확장성 제공시스템의 일실시예 구성도.
도 2 는 본 발명에 따른 분산시스템 응용의 계층별 확장성을 제공하기 위한 매퍼의 일실시예 구성도.
도 3 은 본 발명에 따른 분산시스템 응용의 계층별 확장성 제공방법에 대한 일실시예 설명도.
* 도면의 주요 부분에 대한 부호의 설명
11 : 중앙처리장치 12 : 주기억장치
13 : 보조기억장치 14 : 입출력장치
상기 목적을 달성하기 위한 본 발명의 방법은, 분산시스템에 적용되는 응용의 계층별 확장성 제공방법에 있어서, 각 계층별 연결정보를 가지는 적어도 하나 이상의 매퍼를 구성하는 제 1 단계; 상기 적어도 하나 이상의 매퍼를 상속받아 각 계층의 클래스를 생성하는 제 2 단계; 사용자의 요청을 상기 각 계층의 클래스가 수행하여, 그 결과를 사용자에게 전송하는 제 3 단계; 및 상기 각 계층의 변경, 새로운 객체의 추가, 개념의 변경 또는 데이터베이스 스키마의 변경 시에 상기 적어도 하나 이상의 매퍼를 재정의하는 제 4 단계를 포함한다.
또한, 본 발명은, 마이크로 프로세서를 구비한 분산시스템에, 각 계층별 연결정보를 가지는 적어도 하나 이상의 매퍼를 구성하는 제 1 기능; 상기 적어도 하나 이상의 매퍼를 상속받아 각 계층의 클래스를 생성하는 제 2 기능; 사용자의 요청을 상기 각 계층의 클래스가 수행하여, 그 결과를 사용자에게 전송하는 제 3 기능; 및 상기 각 계층의 변경, 새로운 객체의 추가, 개념의 변경 또는 데이터베이스 스키마의 변경 시에 상기 적어도 하나 이상의 매퍼를 재정의하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는 분산시스템 응용의 계층별 확장성 제공시스템의 일실시예 구성도이다.
도면에 도시된 바와 같이, 본 발명이 적용되는 분산시스템 응용의 계층별 확장성 제공시스템은, 전체적인 동작을 제어하고 관리하는 중앙처리장치(11)와, 상기 중앙처리장치(11)에서 수행되는 프로그램을 저장하고 작업 수행중 이용되는 또는 작업 수행중에 발생되는 각종 데이터를 저장하는 주기억장치(12)와 보조기억장치(13) 및 사용자와의 데이터 입출력을 위한 입출력장치(14)를 포함한다.
그리고, 상기 보조기억장치(13)는 대량의 데이터를 저장하는 역할을 하며, 상기 입출력장치(14)는 일반적인 키보드, 디스플레이 장치 및 프린터 등을 포함한다.
그러나, 상기한 바와 같은 구성을 갖는 컴퓨터 하드웨어 환경을 당해 분야에서 이미 주지된 기술에 지나지 아니하므로 여기에서는 그에 관한 자세한 설명은 생략하기로 한다.
이제, 상기 주기억장치(12)에 탑재되어 분산시스템 응용의 계층별 확장성 제공하는 과정에 대해 보다 상세히 설명한다.
첨부된 도 2 는 본 발명에 따른 분산시스템 응용의 계층별 확장성을 제공하기 위한 매퍼의 일실시예 구성도이다.
클라이언트/서버 비지니스 계층간의 독립적 확장을 보장하기 위하여, 각 계층간의 대응관계는 별도로 구분하고, 매퍼(mapper) 계층을 정의한다.
사용자와의 인터페이스를 수행하는 뷰 클래스(view class)(110)와 비지니스 클래스(130)간의 연결성을 정의하는 뷰 매퍼(view mapper)(100)와, 상기 비지니스 클래스(130)와 저장소 클래스(persistent class)(150)간의 대응성을 정의하는 저장소 매퍼(140)와, 상기 비지니스 클래스(130)를 구성하는 로직매퍼(120)와, 상기 클래스 및 모델에 대한 정보 및 모델간의 대응관계를 정의하고 있는 데이터베이스(160)를 포함한다. 여기서, 각 요소의 변경은 모델의 변경을 통해 가능하도록 하며, 하나의 모델 변경이 필요해도 대응관계를 정의하는 매퍼를 이용하여 기존 클래스의 대치 및 수정을 용이하게 한다.
그리고, 실질적 프로그램의 확장성과 각 모듈의 독립적 재사용성을 보장하기 위한 프로그래밍 추상화 기법을 적용한다.
첨부된 도 3 은 본 발명에 따른 분산시스템 응용의 계층별 확장성 제공방법에 대한 일실시예 설명도이다.
먼저, 뷰 매퍼(100)로부터 상속받은 뷰 클래스(110)를 통해 사용자와 인터페이스를 수행하고, 상기 뷰 클래스(110)는 상기 사용자로부터 수신한 사용자의 메세지를 로직 매퍼로부터 상속받아 구성된 비지니스 클래스(130)로 전송하고, 상기 비지니스 클래스(130)는 상기 뷰 클래스(110)로부터 전달된 사용자의 메세지를 저장소 매퍼(140)로부터 상속받아 구성된 저장소 클래스(150)로 전송한다.
상기 저장소 클래스(150)는 상기 비지니스 클래스(130)로부터 수신한 메세지를 데이터베이스(160)의 트랜잭션으로 처리하여 그 결과를 상기 비지니스 클래스(130) 및 뷰 클래스(110)를 이용하여 사용자에게 전송한다.
여기서, 사용자 인터페이스에 대한 메타 모델(meta model)을 저장하고 있는 상기 데이터베이스(160)로부터 사용자 인터페이스를 실행시에 상기 뷰 매퍼(100)의 클래스(110)를 생성할 수 있도록 프로그래밍 한다. 상기 뷰 클래스(110)의 정의형식은 다음과 같다.
(뷰 클래스 정의형)
#include "TKUIClassFig.h" // 프레임워크내에 정의된 뷰 매퍼 클래스
class CDefaultView : Public CViewMapper // 프레임워크에 추가될 새로운 뷰 클래스
public : CString m_szViewName;
TKUIClassFig*m_pUIClassFig; // 사용자 인터페이스 모델에 대한 포인터
public : BOOL QueryForm(); // 모델을 번역하는 오퍼레이션
BOOL CreateControls(); // 모델에 따라 콘트롤을 생성하는 오퍼레이션
상기한 바와 같은 뷰 클래스 정의형을 이용함으로써, 사용자 인터페이스의 변경은 상기 뷰 클래스(110)의 상속을 통한 재정의를 통해서 가능하다. 그리고, 새로운 사용자 인터페이스의 생성은 모델의 변경을 통해서 실행시에 이루어진다.
매퍼(mapper)를 이용한 프레임워크(framework) 개발의 예는 다음과 같다.
(매퍼를 이용한 저장소 클래스의 구현)
UfObjectFactory::Create
(const char* businessObject, UfNVList nvlist)
비즈니스모델/저장소 매퍼로부터 businessObject에 대응하는 테이블명 획득;
RWDBTable aTable = 획득된 테이블명을 이용하여 RWDBDatabase로부터 실제 테이블을 획득;
c. RWDBInserter anInserter = aTable.inserter();
d. for (nIndex = 0; nIndex < nvlist의 length; nIndex++)
NamedValue namedValue = nvlist[nIndex];
anInserter[namedValue.name] << namedValue.value // 저장소 모델과 매퍼로부터 얻어온 정보로 테이블 생성
e businessObject에 해당하는 객체 생성
obj->setInfo(nvlist)
return obj;
상기한 매퍼(mapper)를 이용한 프레임워크(framework) 개발의 예는, 상기 저장소 클래스(150)를 구현하기 위한 기본 규칙을 담고 있다.
상기 저장소 클래스(150)는 상기 데이터베이스(160)를 다루는 논리를 담당하는 코드를 구현한 클래스이다. 기본적으로 비즈니스 도메인 클래스 하나에 저장소 클래스 하나가 대응되기는 하지만, 저장소를 생성, 삭제, 수정, 레코드의 삽입, 수정 및 질의를 처리하는 특징은 동일하다.
단, 비즈니스 개념에 따라 테이블에 정의된 필드의 구조만이 달라질 뿐이다. 즉, 다양한 비즈니스 개념을 처리하고 앞으로 정의될 새로운 비즈니스 객체에 대한 저장소 관리를 위해 매퍼를 통한 프로그래밍이 되도록 한다.
상기한 바와 같이 본 발명은, 기존의 객체들과의 연결정보가 정의된 매퍼를 이용한 프로그래밍 패턴을 제공하고, 계층의 개념의 변경, 화면변경, 새로운 객체의 추가 또는 데이터베이스의 스키마(schema)변경 시에도, 기존의 수행중인 응용을 변경하지 않고, 매퍼의 재정의를 통해 확장성 및 독립성을 제공할 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상기와 같은 본 발명은, 기존의 객체들과의 연결정보가 정의된 매퍼를 이용한 프로그래밍 패턴을 제공하고, 계층의 개념의 변경, 화면변경, 새로운 객체의 추가 또는 데이터베이스의 스키마(schema)변경 시에도, 기존의 수행중인 응용을 변경하지 않고, 매퍼를 통해 재정의함으로써, 각 계층의 독립성 및 확정성을 제공할 수 있는 효과가 있다.

Claims (2)

  1. 분산시스템에 적용되는 응용의 계층별 확장성 제공방법에 있어서,
    각 계층별 연결정보를 가지는 적어도 하나 이상의 매퍼를 구성하는 제 1 단계;
    상기 적어도 하나 이상의 매퍼를 상속받아 각 계층의 클래스를 생성하는 제 2 단계;
    사용자의 요청을 상기 각 계층의 클래스가 수행하여, 그 결과를 사용자에게 전송하는 제 3 단계; 및
    상기 각 계층의 변경, 새로운 객체의 추가, 개념의 변경 또는 데이터베이스 스키마의 변경 시에 상기 적어도 하나 이상의 매퍼를 재정의하는 제 4 단계
    를 포함하는 분산시스템 응용의 계층별 확장성 제공방법.
  2. 마이크로 프로세서를 구비한 분산시스템에,
    각 계층별 연결정보를 가지는 적어도 하나 이상의 매퍼를 구성하는 제 1 기능;
    상기 적어도 하나 이상의 매퍼를 상속받아 각 계층의 클래스를 생성하는 제 2 기능;
    사용자의 요청을 상기 각 계층의 클래스가 수행하여, 그 결과를 사용자에게전송하는 제 3 기능; 및
    상기 각 계층의 변경, 새로운 객체의 추가, 개념의 변경 또는 데이터베이스 스키마의 변경 시에 상기 적어도 하나 이상의 매퍼를 재정의하는 제 4 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1019990061186A 1999-12-23 1999-12-23 분산시스템 응용의 계층별 확장성 제공방법 KR20010057779A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990061186A KR20010057779A (ko) 1999-12-23 1999-12-23 분산시스템 응용의 계층별 확장성 제공방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990061186A KR20010057779A (ko) 1999-12-23 1999-12-23 분산시스템 응용의 계층별 확장성 제공방법

Publications (1)

Publication Number Publication Date
KR20010057779A true KR20010057779A (ko) 2001-07-05

Family

ID=19628837

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990061186A KR20010057779A (ko) 1999-12-23 1999-12-23 분산시스템 응용의 계층별 확장성 제공방법

Country Status (1)

Country Link
KR (1) KR20010057779A (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06314262A (ja) * 1993-04-28 1994-11-08 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム
KR980004089A (ko) * 1997-12-19 1998-03-30 양승택 객체지향 웹 어플리케이션 모델링 방법
KR0164940B1 (ko) * 1995-07-04 1999-01-15 전주식 원격 접근 제어기 및 이것을 포함하는 분산된 공유 메모리 다중 프로세서
KR100245972B1 (ko) * 1996-10-01 2000-03-02 포만 제프리 엘 데이터리스 엔드포인트를 가진 스케일가능하고 확장가능한시스템 관리 아키텍춰

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06314262A (ja) * 1993-04-28 1994-11-08 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム
KR0164940B1 (ko) * 1995-07-04 1999-01-15 전주식 원격 접근 제어기 및 이것을 포함하는 분산된 공유 메모리 다중 프로세서
KR100245972B1 (ko) * 1996-10-01 2000-03-02 포만 제프리 엘 데이터리스 엔드포인트를 가진 스케일가능하고 확장가능한시스템 관리 아키텍춰
KR980004089A (ko) * 1997-12-19 1998-03-30 양승택 객체지향 웹 어플리케이션 모델링 방법

Similar Documents

Publication Publication Date Title
US6564377B1 (en) Self-describing components within a software catalog
CN1318956C (zh) 软件构件插件程序结构的系统和方法
US6061689A (en) Object aggregation representation of relational database rows having nontraditional datatypes
US6957228B1 (en) Object oriented apparatus and method for providing context-based class replacement in an object oriented system
US5857197A (en) System and method for accessing data stores as objects
US6289375B1 (en) Method and apparatus for invoking network agent functions using a hash table
US5864866A (en) Apparatus and method for providing externalization in an object-oriented environment
US7487191B2 (en) Method and system for model-based replication of data
JP3566550B2 (ja) ソフトウェア・システムを開発するためのコンピュータ・システムおよびコンピュータ可読な記憶媒体
US20070233722A1 (en) Method, system, and program product for managing adapter association for a data graph of data objects
US8949780B2 (en) System and method for generating web sites in an arbitrary object framework
US20030163598A1 (en) Method and system for distributing data events over an information bus
US7269823B2 (en) System and method for identifying namespaces
JPH10505693A (ja) 異種オブジェクトシステム相互間にインタオペラビリティを提供するシステム及び方法
Martí et al. Dataclay: A distributed data store for effective inter-player data sharing
Schill et al. DC++: distributed object-oriented system support on top of OSF DCE
CN101137959A (zh) 用于跨越远程边界传送计算机可读对象的系统和方法
US20030236925A1 (en) Interactive portable object adapters support in an integrated development environment
US5890160A (en) Object representation of relational database cells having nontraditional large object datatypes
US8001526B2 (en) Hierarchical property storage
JP4695903B2 (ja) Webアプリケーションシステム、そのプログラム
US5924100A (en) Flexible object representation of relational database cells having nontraditional datatypes
KR20010057779A (ko) 분산시스템 응용의 계층별 확장성 제공방법
WO2001008007A9 (en) Method and system of automated generation of program code from an object oriented model
Anderson et al. Structural templates and transformations: the Themis structural computing environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application