KR20000022724A - 객체 지향 컴퓨터 환경 및 대화 방법 - Google Patents

객체 지향 컴퓨터 환경 및 대화 방법 Download PDF

Info

Publication number
KR20000022724A
KR20000022724A KR1019990033499A KR19990033499A KR20000022724A KR 20000022724 A KR20000022724 A KR 20000022724A KR 1019990033499 A KR1019990033499 A KR 1019990033499A KR 19990033499 A KR19990033499 A KR 19990033499A KR 20000022724 A KR20000022724 A KR 20000022724A
Authority
KR
South Korea
Prior art keywords
navigator
backend system
command
client
backend
Prior art date
Application number
KR1019990033499A
Other languages
English (en)
Other versions
KR100314775B1 (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 포만 제프리 엘
Publication of KR20000022724A publication Critical patent/KR20000022724A/ko
Application granted granted Critical
Publication of KR100314775B1 publication Critical patent/KR100314775B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

클라이언트와 백엔드 시스템 내의 구성 요소 간의 대화를 허용하기 위한 커맨드를 포함하는 컴퓨터 시스템 및 방법이 제공된다. 이 커맨드는, 백엔드 시스템에 의한 변환을 하기 위한 입력 객체를 포함하며, 백엔드 시스템에 의한 변환을 행한 후의 입력 객체를 나타내는 하나 이상의 출력 객체를 정의한다. 이 커맨드는, 클라이언트와 대화할 백엔드 시스템의 식별을 위한 접속 사양과, 클라이언트와 대화할 백엔드 시스템 내의 구성 요소의 식별을 위한 대화 사양을 포함한다. 이 커맨드는 또한, 클라이언트와 백엔드 시스템의 구성 요소 간의 접속을 수행하는 통신 객체도 포함한다. 입력 객체는 대화 사양 및 접속 사양에 따라 백엔드 시스템의 구성 요소에 제공된다. 커맨드는 실행 방법에 의해 구동되며, 또한 입력 객체를 처리하고 있는 백엔드 시스템의 구성 요소에 예외가 발생하는지 여부에 따라 성공 또는 실패 이벤트임을 신호한다. 네비게이터는 대화 흐름을 구성하기 위해 구축된다. 네비게이터는 연쇄 커맨드(chained commands) 및 그 밖의 다른 네비게이터를 포함한다.

Description

객체 지향 컴퓨터 환경 및 대화 방법{PATTERNS FOR MODELING COMPUTER COMPONENT INTERACTIONS}
본 발명은 컴퓨팅 시스템의 개선에 관한 것으로, 특히 컴퓨터 시스템 또는 구성 요소 간의 대화(interactions)를 모델링하는 패턴에 관한 것이다.
애플리케이션 시스템으로 알려진 많은 유형의 컴퓨터 시스템이 있다. 그 예로서, 데이타베이스 관리 시스템(DBMS) 또는 트랜잭션 처리 시스템을 들 수 있다. 이러한 시스템은 종종 "백엔드(backend)" 시스템이라 불리우는데, 이는 소정의 사용자가 그 시스템에 직접 액세스하는 것이 아니라, 특정 "프론트엔드(frontend)" 또는 사용자 인터페이스를 통해 액세스한 후 그 애플리케이션 시스템과 통신하여 사용자에 의해 요구되는 기능을 수행하기 때문이다. 전형적으로 백엔드 시스템은, 백엔드 시스템의 원격 사용 및 분산 사용을 가능하게 해주는 통신 인터페이스에 의해 백엔드 시스템의 기능에 액세스할 수 있게 해준다.
백엔드 시스템은 상이한 회사 또는 그룹에 의해 개발되었기 때문에, 상이한 액세스 방법, 예를 들면 상이한 API 세트를 제공하여 자신의 서비스를 사용하게 한다. 이로 인해 애플리케이션 개발자가 다양한 백엔드 시스템을 지원하기 위해 상이한 API 사용법을 배우거나 혹은 심지어 동일한 시스템에서도 여러 통신 방법을 배워야 하는 심각한 문제가 발생하게 된다. 또한, 이러한 액세스의 일반적인 툴링(general tooling) 또는 자동화를 제공하는 것은 매우 어려운데, 예를 들어 코드 생성에는 재사용할 수 없을 뿐만 아니라 각종 타겟을 지원할 수도 없는 주문형 툴(customized tools)이 요구된다. 게다가, 이러한 툴은 역시 재사용될 수 없는 특정 실행 시간 지원(run-time support)을 요구한다. 이는, 각종 백엔드 시스템의 기능에 대한 액세스의 요체(abstraction)는 매우 유사하기 때문에 특히 성나게 하는 사실이다.
따라서, 이러한 시스템을 접속하며, 일반적인 패턴으로 컴퓨터 시스템 또는 구성 요소 간의 대화를 모델링할 수 있는, 상위 레벨의 표준 인터페이스 세트를 구비할 것이 요망된다.
도 1은 본 발명의 바람직한 실시예에 따른 커맨드의 아키텍처를 나타내는 블럭도,
도 2는 본 발명의 바람직한 실시예에 따른 네비게이터의 아키텍처를 나타내는 블럭도.
도면의 주요 부분에 대한 부호의 설명
10 : 커맨드 12 : 입력 특성
14 : 출력 특성 16 : 입력 객체
18, 20 : 출력 객체 24 : 접속 사양
26 : 대화 사양
본 발명의 하나의 특징에 따르면, 개선된 컴퓨터 시스템 및 방법이 제공된다.
본 발명의 다른 특징에 따르면, 클라이언트와 백엔드 시스템 내의 구성 요소 간의 대화 또는 통신을 위한 개선된 컴퓨터 시스템 및 방법이 제공된다.
본 발명의 또다른 특징에 따르면, 클라이언트와, 백엔드 시스템 내의 구성 요소간의 대화를 위한 커맨드를 포함하는 컴퓨터 시스템이 제공되는데, 커맨드는 백엔드 시스템에 의한 변환을 위한 입력 객체(input object)와, 백엔드 시스템에 의한 변환을 행한 후의 입력 객체를 나타내는 하나 이상의 출력 객체(one or more output objects)와, 클라이언트와 대화할 백엔드 시스템의 식별을 위한 접속 사양(connection specification)과, 클라이언트와 대화할 백엔드 시스템 내의 구성 요소의 식별을 위한 대화 사양(interaction specification)과, 클라이언트와 백엔드 시스템의 구성 요소 간의 접속을 행하기 위한 통신 객체를 포함한다. 입력 객체는 대화 사양 및 접속 사양에 따라 백엔드 시스템의 구성 요소에 제공되며, 하나 이상의 출력 객체는 백엔드 시스템의 구성 요소에 의한 프로세싱을 행한 후 변환된 입력 객체를 수신한다. 커맨드는 실행 방법(execute method)에 의해 구동되고, 입력 객체를 처리하고 있는 백엔드 시스템의 구성 요소에 예외가 발생되지 않을 경우 성공 이벤트임을 신호하며, 입력 객체를 처리하고 있는 백엔드 시스템의 구성 요소에 예외가 발생될 경우 실패 이벤트임을 신호한다.
본 발명의 또다른 특징에 따르면, 커맨드가 객체 지향 클래스인 전술한 컴퓨터 시스템이 제공된다.
본 발명의 또다른 특징에 따르면, 입력 객체 및 하나 이상의 출력 객체는 각각 정의된 자바 틀(a defined Java framework) 내의 기록 빈(record bean)인 전술한 컴퓨터 시스템이 제공된다.
본 발명의 또다른 특징에 따르면, 백엔드 시스템과의 대화 흐름을 형성하는 네비게이터를 포함하는 컴퓨터 시스템이 제공되는데, 네비게이터는 서브커맨드(subcommands) 및 서브네비게이터(subnavigators)를 선택적으로 포함하는 세트를 포함하고, 세트 내의 서브커맨드 및 서브네비게이터 각각에 대한 실행 방법은 네비게이터에 대한 실행 방법으로부터 도출되는 네비게이터 내의 내부 이벤트, 또는 서브커맨드 및 서브네비게이터의 세트중 다른 선택된 하나로부터의 성공 이벤트 중 하나에 의해 유발되며, 이에 따라, 세트 내의 서브커맨드 및 서브네비게이터의 연속적인 실행은 백엔드 시스템과의 대화 흐름을 정의한다. 네비게이터는 실행 방법에 의해 구동되고, 세트 내의 서브커맨드 및 서브네비게이터의 연속적인 실행에 의해 실패 이벤트가 없음이 신호될 때 성공 이벤트임을 신호하며, 세트 내의 서브커맨드 및 서브네비게이터의 연속적인 실행중 임의의 하나에 의해 실패 이벤트가 신호될 때 실패 이벤트임을 신호한다. 서브커맨드는 커맨드와 동일한 특성을 가지며, 서브네비게이터는 네비게이터와 동일한 특성을 가진다.
본 발명의 또다른 특징에 따르면, 클라이언트와 백엔드 시스템 내의 구성 요소 간의 인터페이싱을 위한 커맨드 클래스(command class)를 포함하는 객체 지향 컴퓨터 환경(object oriented computer environment)이 제공된다. 커맨드 클래스는 백엔드 시스템중 선택된 하나에 의한 변환을 위한 입력 객체와, 백엔드 시스템중 선택된 하나에 의한 변환을 행한 후의 입력 객체를 나타내는 하나 이상의 출력 객체와, 클라이언트와 대화할 백엔드 시스템중 선택된 하나의 식별을 위한 접속 사양과, 클라이언트와 대화할 백엔드 시스템중 선택된 하나의 시스템 내에 있는 구성 요소중 선택된 하나의 식별을 위한 대화 사양과, 클라이언트와 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나 사이의 접속을 수행하는 통신 객체를 포함한다. 입력 객체는 대화 사양 및 접속 사양에 따라 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나에 제공된다. 하나 이상의 출력 객체는 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나에 의한 처리를 행한 후의 변환된 입력 객체를 수신한다. 커맨드 클래스의 한 사례(an instance)는 클라이언트에 의해 호출되는 실행 방법에 의해 구동되고, 입력 객체를 처리하고 있는 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나에 예외가 발생되지 않을 때 성공 이벤트임을 신호하며, 입력 객체를 처리하고 있는 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나에 예외가 발생될 때 실패 이벤트임을 신호한다.
본 발명의 또다른 특징에 따르면, 환경이 자바 프로그래밍 언어 환경이며, 입력 객체 및 하나 이상의 출력 객체는 각각 정의된 자바 틀 내의 기록 빈이며 전술한 네비게이터는 클래스로서 정의되는 객체 지향 컴퓨터 환경이 제공된다.
본 발명의 이점은, 상이한 통신을 이용하는 상이한 백엔드 시스템과의 대화를 지원하는 일반적인 실행 시간(run time)을 제공함으로써 앞의 상술한 문제를 해결하는 것이다.
전술한 시스템 또는 프로세스를 처리하기 위한 프로그램 코드로 인코딩되는 매체가 또한 본 발명에서 제공된다.
도면에서, 본 발명의 바람직한 실시예는 단지 예시로서 나타내는 것이다. 본 발명의 상세한 설명 및 도면은 단지 예시용으로서 이해를 돕기 위한 것이며 본 발명을 한정하는 것이 아님을 특히 알아야 한다.
도 1에, 본 발명의 바람직한 실시예에 따른 커맨드(Command)의 구조를 블럭도로 나타낸다. 바람직한 실시예에서, 커맨드는 객체 지향 프로그래밍 언어에서 정의된 바와 같은 클래스이다. 자바(Java) 프로그래밍 언어를 참조하여 바람직한 실시예를 기술하기로 한다. 본 기술 분야에 통상의 지식을 가진 자라면, 본 발명의 바람직한 실시예를 수행하는 데에 객체 지향 구조체(constructs)를 지원하는 그 밖의 다른 프로그래밍 언어가 사용될 수 있음을 알 것이다.
도 1에서 커맨드(10)는 백엔드 시스템을 액세스하는데 사용되는 클래스이다. 커맨드(10)는 박스(12)(입력 특성 박스 세트)에 도시한 입력 특성(input properties)과, 박스(14)에 도시한 출력 특성을 갖는다. 입력 특성(12)은 입력 객체(16) 내에 포함되며, 마찬가지로 출력 특성(output properties)(14)은 출력 객체(18), 혹은 선택적으로 부가적인 출력 객체(도 1에 출력 객체(20)로 나타냄) 내에 포함된다. 커맨드(10)는 객체 통신(object communication)(22)을 포함한다. 커맨드(10)에는 객체 접속 사양(Connection Spec)(24) 및 대화 사양(Interaction Spec)(26)도 또한 포함된다. 커맨드(10)는, 방법 실행(28)에 의해 구동되며, 방법 실행(28)에 의한 수행에서 예외를 생성하는지(실패 이벤트(unsuccessful event)(32)임을 신호함) 혹은 생성하지 않는지(성공 이벤트(successful event)(34)임을 신호함)에 따라, 성공 이벤트(30) 또는 실패 이벤트(32)를 신호한다.
도 1에 도시한 바와 같이, 백엔드 시스템과 통신하는 요소는, 접속 사양(24)과, 대화 사양(26)과, 입력 및 출력 기록 빈(beans)(도 1에 입력 객체(16) 및 출력 객체(18, 20)로 도시함)이다. 바람직한 실시예에서의 이러한 임의의 커맨드(10)에서, 이들 요소는 항상 존재하며 동일한 로직을 수행한다. 즉, 입력은 통신을 통해 출력으로 변환된다. 이러한 방식으로, 커맨드 로직은 임의의 백엔드 시스템에 대해서도 재사용될 수 있다.
바람직한 실시예에서는, 상이한 백엔드 시스템과의 대화를 지원하는 실행 시간의 구현에 대해 기술한다. 바람직한 실시예에서 실행 시간은, 일반적이면서도 또한 타겟 시스템의 상이한 요건 및 이들의 통신상의 상이한 요건을 만족시키기에 충분하게 유연성이 있는 대화 모델링 방법을 제공한다. 이는 이러한 대화의 구성을 자동화하기 위한 개선된 툴을 구축할 수 있게 해준다. 바람직한 실시예에서는 상이한 시스템에 액세스하는 균일화된 방법을 제공하기 때문에, 상이한 백엔드에 액세스하는데 필요한 툴을 생성해야 하는 프로그래머의 수고를 덜어주게 된다. 바람직한 실시예의 일반적인 패턴을 사용하는 애플리케이션 및 툴은 용이하게 재사용될 수 있다.
커맨드(10)는 백엔드 시스템과의 단일 통신(또는 대화)을 구성하는데 사용되는 기본적인 구축 블럭이다. 즉, 커맨드(10)는 시스템과의 단일 대화를 랩핑(wrapping)한다. 실행할 때, 커맨드는 입력 데이터를 취하여, 커넥터(도 1에서는 객체 통신(22))를 통해 백엔드 시스템에 데이터를 전송하며, 백엔드 시스템에 의해 복귀되는 데이터를 출력으로서 설정한다. 이 기술(description) 레벨에서, 커맨드(10)는 다수의 컴퓨터 언어에서의 절차 또는 서브루틴 호출과 기능을 공유한다.
그러나, 커맨드(10) 자신은, 특정 구성 패턴(construction pattern)을 따르는 복합물이다. 백엔드 시스템과의 통신을 허용하는데 있어서 커맨드(10)를 가치있게 만드는 것이 이 구성 패턴이다.
커맨드(10)의 입력은 입력 객체(16)에 의해 정의된다. 이러한 입력 객체(16)의 하나의 예로서 자바 빈을 들 수 있다. 빈은, 클래스(class)와 동급이지만 가시적인 에디터로 에디팅될 수 있는 자바 언어 구조이다. 커맨드(10)의 출력은 출력 객체(18)이다. 출력에 대해, 후보(도 1의 예에서 출력 객체(18, 20))로 정의되는 다수의 출력 객체가 존재할 가능성이 있다. 또한, 자바 빈이 출력 객체로서 사용될 수도 있다. 커맨드는 자신의 인터페이스 내의 전체 객체를 보여주거나, 혹은 특성(12, 14)에 의해 예시된 바와 같이 단지 선택된 객체 특성만을 보여줄 수 있다.
입력 및 출력 객체는 상이한 형태를 가질 수도 있다. 바람직한 실시예에서는, 두 가지 유형의 입력 및 출력 객체를 구별하는 것이 가능하다. 입력 또는 출력 객체의 첫 번째 유형은 RecordJava 기록 빈이다. 이 유형의 빈은 IByteBuffer 인터페이스를 구현하는데, 이는 정의된 자바 구조의 일부이다. 입력 또는 출력 객체의 두 번째 유형은 백엔드 시스템에 대한 커넥터(도 1에서, 통신(22))에 특유한 특성에 의해 정의된 유형이다. 따라서, 커넥터 그 자체는 이하의 세 개의 카테고리중 하나에 해당되는 것으로 간주될 수 있는데, 즉 RecordJava 기록 빈을 지원하는 것과, 커넥터에 특유한 입력 및 출력 객체와 RecordJava 기록 빈 양쪽 모두를 지원하는 것과, 커넥터에 특정한 입력 및 출력 객체만 지원하는 것중 하나에 해당될 수 있다.
커맨드(10)가 백엔드 시스템과 통신하는 방법은 접속 사양(24) 및 대화 사양(26)에 의해 정의된다. 접속 사양(24)은 구체적인 커넥터 통신(10)의 팩토리(factory)이다.
접속 사양(24)의 특성은 커넥터가 접속되는 백엔드 시스템을 정의한다(예를 들어, 호스트 명칭 및 포트 넘버가 접속 사양(24)의 특성이 될 수 있다). 접속 사양(24)은 시스템간의 통신에 관련되는 세션(session)을 정의하는 객체로서 간주될 수 있다. 통신을 정의하는 그 밖의 다른 객체는 대화 사양(26)이다. 이 객체는 대화에 관련된 모든 특성을 보유한다(예를 들어, 통신(22)을 통해 호출되는 프로그램의 명칭이 대화 사양(26)의 특성일 수 있다). 대화 사양(24)은 한 세션 내에서의 특정 대화를 정의하는 객체로서 간주될 수도 있다.
커맨드 실행을 구동하는 방법은 실행(도 1에서 화살표(28)로 나타냄)이다. 이 방법은,
1. 접속 사양(24)을 취하고, 이로부터 통신을 팩토링(factoring)하는 단계와,
2. 통신(10)을 백엔드 시스템에 접속하는 단계와,
3. 통신(22)을 통해 입력 객체(16)의 데이터를 전송하는 단계와,
4. 출력 객체(18)(또는 선택적으로 출력 객체(20)로 표현되는 다른 출력 객체)에 대한 데이터를 수신하는 단계와,
5. 예외가 발생하지 않을 경우 실행 성공 이벤트임을 신호(도 1에서 화살표(30))하고, 예외가 발생할 경우 실행 실패 이벤트임을 신호(화살표(32))하는 단계를 포함한다. 실행 실패 이벤트의 수신기에 의해 핸들링되지 않는 예외는 되돌려지며(rethrown), 이에 의해 실행 방법의 클라이언트에 의해 캐치가능한 상태가 된다.
이후 알게 되는 바와 같이, 커맨드(10)는 상이한 백엔드 시스템과의 대화를 생성하는데 사용될 수도 있다. 따라서, 통신(22)의 복잡도는 가변적이며, 대화하는 백엔드 시스템에 따라 실질적으로 복잡도가 없는 것으로부터 매우 높은 복잡도를 갖는 것에 이르기까지의 범위를 가질 수 있다. 통신(22)은 단순한 자바 클래스일 수 있으며, 혹은 RPC, 또는 IBM 공통 커넥터 틀(IBM Common Connector Framework)로부터의 통신 인터페이스일 수도 있다.
전술한 바와 같이, 커맨드(10)는 백엔드 시스템과의 단일 대화를 랩핑한다. 바람직한 실시예에 따르면, 네비게이터(Navigator)로 알려진 다른 클래스가 제공된다. 네비게이터는 백엔드 시스템과의 다중 대화를 랩핑한다.
도 2는 네비게이터(40)의 구조를 나타내는 블럭도이다. 네비게이터(40)는 복합 커맨드이다. 네비게이터(40)는 커맨드와 유사한 방식으로 외부 객체와 인터페이싱한다. 네비게이터(40) 복합체는 커맨드와, 어쩌면 백엔드 시스템과의 대화 흐름을 형성하는 네비게이터도 포함한다.
도 2에서, 네비게이터(40)는 커맨드 Cmd.1(42), Cmd.2(44), Cmd.3(46) 및 Navi.1(48)을 갖는 것으로 도시된다. 실행시, 네비게이터(40)는 입력(입력 특성(50))을 취하여, 이를 네비게이터(40)가 포함하는 커맨드 및 네비게이터에 제공한다. 그 후, 도 2에서 흐름선으로 도시한 바와 같이 대화가 순차적으로 실행된다. 최종적인 대화를 행한 후, 개별적인 커맨드(42, 44, 46) 및 네비게이터(48)의 출력이 네비게이터의 출력(출력 특성(52))으로서 사용될 수 있다. 도 2에 예시한 바와 같이, Cmd.1(42)에 대한 실행 방법은 네비게이터(40) 실행 이벤트(화살표(54))에 의해 개시된다. Cmd.2(44)에 대한 실행 방법은 Cmd.1(42)로부터의 성공 이벤트에 의해 개시되며, 네비게이터(40) 내의 그 밖의 다른 커맨드 및 네비게이터의 경우도 이와 같은 방식으로 개시된다.
네비게이터(40)가 백엔드 시스템과 통신하는 방법은, 선택적으로 복합체 내의 각 커맨드에 대해 정의하는 대신에, 네비게이터(40) 레벨에서의 접속 사양에 의해 정의될 수 있다. 접속 사양은, 네비게이터가 사용하고 있는 구체적인 커넥터 통신의 팩토리(factory)(이는 복합체 내의 모든 커맨드에 의해 사용되는 통신)이다.
네비게이터(40)는 커맨드(42, 44, 46) 또는 네비게이터(48)중 하나에 예외가 있는 경우 실패 실행 상태에 도달한다. 네비게이터(40)는 실행 실패 이벤트(화살표(56))를 신호함으로써 이를 나타낸다. 실행 실패 이벤트의 수신기에 의해 핸들링되지 않는 예외는 되돌려지며, 이에 의해 실행 방법의 클라이언트에 의해 캐치가능한 상태가 된다.
전술한 바와 같이, 커맨드 클래스는, 명확하고 잘 정의된 방식으로 백엔드 시스템과의 대화를 허용하는 실행 시간을 정의한다. 커맨드 클래스는, 정의될 백엔드 시스템, 또는 시스템들과의 대화 흐름을 허용하는 네비게이터 클래스를 생성하는데 사용될 수도 있다.
전술한 커맨드 및 네비게이터 클래스는 시각적 프로그래밍 시스템에 제공된다. 이러한 이유로 인해, 자바 빈(시각적 프로그래밍을 위한 클래스)을 사용하는 것이 바람직한 실시예의 클래스를 생성하는 데 있어 효과적이다. 도 2로부터 알 수 있는 바와 같이, 시각적인 프로그래밍 환경은, 커맨드 및 네비게이터 클래스로 프로그래밍하기가 비교적 단순하고 효과적이도록 하는 방식으로 바람직한 실시예의 객체들 간의 관계를 표현할 수 있다.
본 발명의 바람직한 실시예를 상세히 기술하였지만, 본 기술 분야에 통상의 지식을 가진 자라면, 본 발명의 정신 또는 첨부된 특허청구범위의 범주로부터 벗어나지 않고 여러 변경이 행해질 수도 있음을 알 것이다.
본 발명은 일반적인 패턴으로 컴퓨터 시스템 또는 구성 요소 간의 대화를 모델링할 수 있는 상위 레벨의 표준 인터페이스 세트를 제공한다.

Claims (9)

  1. 클라이언트(a client)와, 백엔드 시스템(a backend system) 내의 구성 요소(a compnent)간의 대화(interacting)를 위한 커맨드(a command)를 포함하는 컴퓨터 시스템에서,
    상기 커맨드는,
    ① 상기 백엔드 시스템에 의한 변환을 위한 입력 객체(an input object)와,
    ② 상기 백엔드 시스템에 의한 변환을 행한 후의 상기 입력 객체를 나타내는 하나 이상의 출력 객체(one or more output objects)와,
    ③ 상기 클라이언트와 대화할 상기 백엔드 시스템의 식별을 위한 접속 사양(a connection specification)과,
    ④ 상기 클라이언트와 대화할 상기 백엔드 시스템 내의 상기 구성 요소의 식별을 위한 대화 사양(an interaction specification)과,
    ⑤ 상기 클라이언트와 상기 백엔드 시스템의 구성 요소 간의 접속을 행하기 위한 통신 객체 ― 상기 입력 객체는 상기 대화 사양 및 상기 접속 사양에 따라 상기 백엔드 시스템의 구성 요소에 제공되며, 상기 하나 이상의 출력 객체는, 상기 백엔드 시스템의 구성 요소에 의한 프로세싱을 행한 후 변환된 입력 객체를 수신함 ― 를 포함하고,
    상기 커맨드는 실행 방법(an execute method)에 의해 구동되고, 상기 커맨드는 상기 입력 객체를 처리함에 있어 상기 백엔드 시스템의 구성 요소가 예외(exception)를 만나지(encounter) 않을 때 성공 이벤트(a successful event)를 신호하며, 상기 입력 객체를 처리함에 있어 상기 백엔드 시스템의 구성 요소가 예외와 마주칠 경우 실패 이벤트(an unsuccessful event)를 신호하는
    컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 커맨드는 객체 지향 클래스(an object oriented class)인 컴퓨터 시스템.
  3. 제 2 항에 있어서,
    상기 입력 객체 및 상기 하나 이상의 출력 객체는 제각기 정의된 자바 틀(a defined Java framework) 내의 기록 빈(a record bean)인 컴퓨터 시스템.
  4. 제 1 항에 있어서,
    상기 백엔드 시스템과의 대화 흐름을 형성하는 네비게이터(a navigator)를 더 포함하며,
    상기 네비게이터는 서브커맨드(subcommands) 및 서브네비게이터(subnavigators)를 선택적으로(selectively) 포함하는 세트를 포함하고, 상기 세트 내의 상기 서브커맨드 및 서브네비게이터 각각에 대한 실행 방법은,
    상기 네비게이터에 대한 실행 방법으로부터 도출되는 상기 네비게이터 내의 내부 이벤트, 또는
    상기 서브커맨드 및 서브네비게이터의 세트중 다른 선택된 하나로부터의 성공 이벤트 중 하나에 의해 유발되며,
    이에 따라, 상기 세트 내의 서브커맨드 및 서브네비게이터의 연속적인 실행은 상기 백엔드 시스템과의 대화 흐름을 정의하며,
    상기 네비게이터는 실행 방법에 의해 구동되며, 상기 네비게이터는 상기 세트 내의 상기 서브커맨드 및 서브네비게이터의 연속적인 실행에 의해 실패 이벤트가 없음이 신호될 때 성공 이벤트임을 신호하며, 상기 세트 내의 상기 서브커맨드 및 서브네비게이터의 연속적인 실행중 임의의 하나에 의해 실패 이벤트가 신호될 때 실패 이벤트임을 신호하며,
    상기 서브커맨드는 커맨드(commands)와 동일한 특징(characteristics)을 가지며, 상기 서브네비게이터는 네비게이터(navigators)와 동일한 특징을 가지는 컴퓨터 시스템.
  5. 클라이언트와, 백엔드 시스템 내의 구성 요소 간의 인터페이싱을 위한 커맨드 클래스(a command class)를 포함하는 객체 지향 컴퓨터 환경(an object oriented computer environment)에 있어서,
    상기 커맨드 클래스는,
    ① 상기 백엔드 시스템중 선택된 하나에 의한 변환을 위한 입력 객체와,
    ② 상기 백엔드 시스템중 선택된 하나에 의한 변환을 행한 후의 상기 입력 객체를 나타내는 하나 이상의 출력 객체와,
    ③ 상기 클라이언트와 대화할 상기 백엔드 시스템중 선택된 하나의 식별을 위한 접속 사양과,
    ④ 상기 클라이언트와 대화할, 상기 백엔드 시스템중 선택된 하나의 시스템 내에 있는 구성 요소중 선택된 하나의 식별을 위한 대화 사양과,
    ⑤ 상기 클라이언트와 상기 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나 사이의 접속을 수행하는 통신 객체 ― 상기 입력 객체는 상기 대화 사양 및 접속 사양에 따라 상기 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나에 제공되며, 상기 하나 이상의 출력 객체는 상기 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나에 의한 처리를 행한 후의 변환된 입력 객체를 수신함 ― 를 포함하며,
    커맨드 클래스의 사례(an instance)는 상기 클라이언트에 의해 호출되는 실행 방법에 의해 구동되며,
    상기 커맨드 클래스의 사례는, 상기 입력 객체를 처리함에 있어 상기 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나가 예외를 만나지 않을 때 성공 이벤트임을 신호하며, 상기 입력 객체를 처리함에 있어 상기 백엔드 시스템중 선택된 하나의 시스템의 구성 요소중 선택된 하나가 예외를 만날 때 실패 이벤트임을 신호하는
    객체 지향 컴퓨터 환경.
  6. 제 5 항에 있어서,
    상기 환경은 자바 프로그래밍 언어 환경이며, 상기 입력 객체 및 상기 하나 이상의 출력 객체는 제각기 정의된 자바 구조 내의 기록 빈인 객체 지향 컴퓨터 환경.
  7. 제 5 항에 있어서,
    상기 백엔드 시스템과의 대화 흐름을 형성하는 네비게이터 클래스를 더 포함하며,
    상기 네비게이터는 서브커맨드 및 서브네비게이터를 선택적으로 포함하는 세트를 포함하고, 상기 세트 내의 상기 서브커맨드 및 서브네비게이터 각각에 대한 실행 방법은,
    상기 네비게이터에 대한 실행 방법으로부터 도출되는 상기 네비게이터 내의 내부 이벤트, 또는
    상기 서브커맨드 및 서브네비게이터의 세트중 다른 선택된 하나로부터의 성공 이벤트 중 하나에 의해 유발되며,
    이에 따라, 상기 세트 내의 서브커맨드 및 서브네비게이터의 연속적인 실행은 상기 하나 이상의 백엔드 시스템과의 대화 흐름을 정의하며,
    상기 네비게이터는 실행 방법에 의해 구동되며, 상기 네비게이터는 상기 세트 내의 상기 서브커맨드 및 서브네비게이터의 연속적인 실행에 의해 실패 이벤트가 없음이 신호될 때 성공 이벤트임을 신호하며, 상기 세트 내의 상기 서브커맨드 및 서브네비게이터의 연속적인 실행중 임의의 하나에 의해 실패 이벤트가 신호될 때 실패 이벤트임을 신호하며,
    상기 서브커맨드는 커맨드와 동일한 특징을 가지며, 상기 서브네비게이터는 네비게이터와 동일한 특징을 가지는 객체 지향 컴퓨터 환경.
  8. 클라이언트와 백엔드 시스템 내의 구성 요소 사이의 대화 방법에 있어서,
    실행 방법에 의해 커맨드를 구동하고, 상기 커맨드로부터 상기 클라이언트와 상기 백엔드 시스템 간의 대화의 성공적 혹은 실패한 실행을 신호하는 이벤트(events)를 수신하는 단계를 포함하며,
    상기 실행 방법은,
    접속 사양 및 대화 사양으로부터 통신(a communication)을 팩토링(factoring)하는 단계 ― 상기 접속 사양은 상기 클라이언트와 대화할 상기 백엔드 시스템을 식별하는 객체이며, 상기 대화 사양은 상기 통신에 대한 대화 관련 특성(interaction relevant properties)을 식별하는 객체임 ― 와,
    상기 팩토링된 통신을 이용하여 상기 클라이언트와 상기 백엔드 시스템을 접속하는 단계와,
    상기 팩토링된 통신을 통해 입력 객체의 데이터를 전송하는 단계와,
    상기 팩토링된 통신을 통해 하나 이상의 출력 객체의 데이터를 수신하는 단계와,
    예외가 발생하지 않을 경우 실행 성공 이벤트임을 신호하고, 예외가 발생할 경우 실행 실패 이벤트임을 신호하는 단계를 포함하는
    대화 방법.
  9. 청구항 8의 프로세스에서의 컴퓨터의 실행에 사용하기 위한 인스트럭션(instructions)을 저장하는 컴퓨터 판독가능한 메모리.
KR1019990033499A 1998-09-24 1999-08-14 객체 지향 컴퓨터 환경 및 대화 방법 KR100314775B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002248404A CA2248404C (en) 1998-09-24 1998-09-24 Patterns for modeling computer component interactions
CA2,248,404 1998-09-24

Publications (2)

Publication Number Publication Date
KR20000022724A true KR20000022724A (ko) 2000-04-25
KR100314775B1 KR100314775B1 (ko) 2001-11-23

Family

ID=4162848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990033499A KR100314775B1 (ko) 1998-09-24 1999-08-14 객체 지향 컴퓨터 환경 및 대화 방법

Country Status (7)

Country Link
US (1) US6484310B1 (ko)
JP (1) JP2000137614A (ko)
KR (1) KR100314775B1 (ko)
CN (1) CN1157670C (ko)
CA (1) CA2248404C (ko)
GB (1) GB2345357A (ko)
IL (1) IL130926A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671353B2 (en) 2018-01-31 2020-06-02 Microsoft Technology Licensing, Llc Programming-by-example using disjunctive programs
KR20200140078A (ko) * 2019-06-05 2020-12-15 주식회사 티맥스티베로 데이터베이스 관리 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993743B2 (en) * 2000-06-03 2006-01-31 Sun Microsystems, Inc. Method and apparatus for developing enterprise applications using design patterns
US7149752B2 (en) 2002-12-03 2006-12-12 Jp Morgan Chase Bank Method for simplifying databinding in application programs
US7085759B2 (en) 2002-12-06 2006-08-01 Jpmorgan Chase Bank System and method for communicating data to a process
US8032439B2 (en) 2003-01-07 2011-10-04 Jpmorgan Chase Bank, N.A. System and method for process scheduling
US7379998B2 (en) 2003-03-31 2008-05-27 Jp Morgan Chase Bank System and method for multi-platform queue queries
US7366722B2 (en) 2003-05-15 2008-04-29 Jp Morgan Chase Bank System and method for specifying application services and distributing them across multiple processors using XML
US8095659B2 (en) 2003-05-16 2012-01-10 Jp Morgan Chase Bank Service interface
US8051144B2 (en) * 2003-07-29 2011-11-01 At&T Intellectual Property I, L.P. J2EE enterprise information system (EIS) common object request broker architecture (CORBA) connector
US9734222B1 (en) 2004-04-06 2017-08-15 Jpmorgan Chase Bank, N.A. Methods and systems for using script files to obtain, format and transport data
GB2429371B (en) 2004-04-26 2008-03-26 J P Morgan Chase Bank System and method for routing messages
US7392471B1 (en) 2004-07-28 2008-06-24 Jp Morgan Chase Bank System and method for comparing extensible markup language (XML) documents
US7499933B1 (en) 2005-11-12 2009-03-03 Jpmorgan Chase Bank, N.A. System and method for managing enterprise application configuration
US7610172B2 (en) 2006-06-16 2009-10-27 Jpmorgan Chase Bank, N.A. Method and system for monitoring non-occurring events
US8910112B2 (en) * 2008-07-30 2014-12-09 Sap Ag Extended enterprise connector framework using direct web remoting (DWR)
US8972930B2 (en) * 2010-06-04 2015-03-03 Microsoft Corporation Generating text manipulation programs using input-output examples
US9613115B2 (en) 2010-07-12 2017-04-04 Microsoft Technology Licensing, Llc Generating programs based on input-output examples using converter modules
US9552335B2 (en) 2012-06-04 2017-01-24 Microsoft Technology Licensing, Llc Expedited techniques for generating string manipulation programs
US11256710B2 (en) 2016-10-20 2022-02-22 Microsoft Technology Licensing, Llc String transformation sub-program suggestion
US11620304B2 (en) 2016-10-20 2023-04-04 Microsoft Technology Licensing, Llc Example management for string transformation
US10846298B2 (en) 2016-10-28 2020-11-24 Microsoft Technology Licensing, Llc Record profiling for dataset sampling

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5568616A (en) * 1993-09-14 1996-10-22 International Business Machines Corporation System and method for dynamic scheduling of 3D graphics rendering using virtual packet length reduction
WO1996017306A2 (en) * 1994-11-21 1996-06-06 Oracle Corporation Media server
US6233543B1 (en) * 1996-04-01 2001-05-15 Openconnect Systems Incorporated Server and terminal emulator for persistent connection to a legacy host system with printer emulation
US6179489B1 (en) * 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
US6272556B1 (en) * 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for migrating a client-server application (#5)
US6038562A (en) * 1996-09-05 2000-03-14 International Business Machines Corporation Interface to support state-dependent web applications accessing a relational database
US6044218A (en) * 1997-01-31 2000-03-28 Sun Microsystems, Inc. System, method and article of manufacture for creating a live application or applet development environment
US6158044A (en) * 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
US6119126A (en) * 1998-05-29 2000-09-12 Oracle Corporation Object-relational query builder which determines existence of structures from information loaded from the server and cached locally on the client computing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671353B2 (en) 2018-01-31 2020-06-02 Microsoft Technology Licensing, Llc Programming-by-example using disjunctive programs
KR20200140078A (ko) * 2019-06-05 2020-12-15 주식회사 티맥스티베로 데이터베이스 관리 방법

Also Published As

Publication number Publication date
GB2345357A (en) 2000-07-05
US6484310B1 (en) 2002-11-19
CN1157670C (zh) 2004-07-14
CA2248404A1 (en) 2000-03-24
JP2000137614A (ja) 2000-05-16
IL130926A (en) 2003-12-10
GB9921268D0 (en) 1999-11-10
CA2248404C (en) 2002-06-25
CN1249471A (zh) 2000-04-05
IL130926A0 (en) 2001-01-28
KR100314775B1 (ko) 2001-11-23

Similar Documents

Publication Publication Date Title
KR100314775B1 (ko) 객체 지향 컴퓨터 환경 및 대화 방법
US6226692B1 (en) Method and system for constructing software components and systems as assemblies of independent parts
US6282699B1 (en) Code node for a graphical programming system which invokes execution of textual code
CN109254905B (zh) 基于工作流的分布式并行自动化测试系统
EP0730227A1 (en) System and method for a distributed debugger for debugging distributed application programs
US6032152A (en) Object factory template
CN110502211B (zh) 一种基于SysML模块图的AADL模型构造方法
JP2003535383A (ja) レガシーデータストラクチャ用オブジェクト特性メタモデルエミュレータ
CN111507020A (zh) 面向多电飞机机电系统分布式仿真结果的图形化显示方法
JP2020177672A (ja) デジタルツインによるプロセス制御
Bergner et al. A Formal Model for Componentware.
US7594217B2 (en) Matching client interfaces with service interfaces
CN102750177B (zh) 一种使用编译器的脚本实现方法
US5838971A (en) Process for implementing dynamic data types in distributed computing networks using an OSF/DCE platform
CN114416202B (zh) 一种移动端sdk调用方法及系统
Welsh et al. Integration of semantic tools into document editors
US20060198501A1 (en) Method and device for constructing a voice dialog
EP1785852A2 (en) Supporting method references in the java language
Bardaro et al. From models to software through automatic transformations: An AADL to ROS end-to-end toolchain
CN114647451A (zh) 测试设备驱动器及驱动方法
Din et al. An approach to compositional reasoning about concurrent objects and futures
Teiniker et al. A test-driven component development framework based on the CORBA component model
Rodríguez et al. GCS component development cycle
Kozaczynski et al. Architecture specification support for component integration
Hermsen et al. Application of the object-oriented modeling concept OMOS for signal conditioning of vehicle control units

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20040916

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee