KR100377189B1 - 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법 - Google Patents

워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법 Download PDF

Info

Publication number
KR100377189B1
KR100377189B1 KR10-1999-0061904A KR19990061904A KR100377189B1 KR 100377189 B1 KR100377189 B1 KR 100377189B1 KR 19990061904 A KR19990061904 A KR 19990061904A KR 100377189 B1 KR100377189 B1 KR 100377189B1
Authority
KR
South Korea
Prior art keywords
application
event
data
workflow
workflow system
Prior art date
Application number
KR10-1999-0061904A
Other languages
English (en)
Other versions
KR20010063810A (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 KR10-1999-0061904A priority Critical patent/KR100377189B1/ko
Publication of KR20010063810A publication Critical patent/KR20010063810A/ko
Application granted granted Critical
Publication of KR100377189B1 publication Critical patent/KR100377189B1/ko

Links

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis

Abstract

본 발명은 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템 및 그 방법과 기록매체에 관한 것으로, 컴포넌트 기술, 이벤트 처리 및 XML 기술을 활용하여 유연하고 범용적인 어플리케이션 간 데이터 교환을 실현하는 데이터 교환 시스템 및 그 방법과 기록매체를 제공하고자 한다.
본 발명은, 단위 업무와 업무 전달을 이용한 워크플로우 모델을 설정받고 각 단위 업무 별로 실행할 응용 프로그램과 관련 데이터를 정의받는 단계; 어플리케이션 어댑터와 워크플로우 시스템으로부터 이벤트 등록 및 구독 신청을 받아 데이터 전달을 위한 정보 관리를 수행하는 단계; 구동 이벤트를 받아 어플리케이션을 구동하고 구동된 어플리케이션으로 관련 데이터를 전달하여 어플리케이션으로의 데이터 전달을 처리하는 단계; 및 이벤트 관리 시스템이 어플리케이션으로부터 종료 정보와 관련 데이터 정보를 포함한 종료 이벤트를 전달받아 워크플로우 시스템으로 전달하는 단계를 포함하며, 본 발명은 워크플로우 시스템 등에 이용된다.

Description

워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템 및 그 방법{SYSTEM AND METHOD FOR DATA EXCHANGE BETWEEN WORKFLOW SYSTEM AND APPLICATIONS}
본 발명은 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 특히 워크플로우 시스템의 활용에 반드시 선결되어야 할 과제 중 하나인 워크플로우 시스템과 범용적인 어플리케이션 간 데이터 교환을 처리하는 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
워크플로우 시스템은 기업 내에서 일어나는 모든 업무 활동의 흐름을 자동화해 주는 소프트웨어 시스템이다. 여기서 자동화라 함은 하나의 업무가 완료되기까지 수행되어야 하는 단위 업무(Activity)들을 사전에 기록된 순서에 따라 사전에 기록된 담당자에게 전달해 주는 것을 의미한다. 따라서, 워크플로우 시스템이 동작하기 위해서는 업무 흐름 및 담당자 정보를 기술하는 워크플로우 설계기, 설계된 워크플로우 정보를 저장하는 저장소, 실제 업무 수행 시 저장된 워크플로우 정보에 따라 업무 흐름을 관리해 주는 워크플로우 관리기, 워크플로우 시스템 운영을 위한 네트워크 환경 등이 요구된다.
그러나, 이는 워크플로우 시스템의 가장 기본적인 기능인 업무 내용의 전달 기능만 수행할 뿐이다. 업무 흐름의 자동화에 있어 가장 중요한 것은 단위 업무를 수행할 때 사용되는 각종 어플리케이션들과 워크플로우 시스템 간의 연동이다.
워크플로우 시스템과 어플리케이션 간의 연동이라 함은 워크플로우 시스템이 업무 수행에 동원되는 어플리케이션들과 정보를 교환한다는 것을 의미한다. 예를 들어, 1번 단위 업무와 2번 단위 업무가 연속으로 이루어지는 경우, 워크플로우 시스템은 1번 업무가 종료될 때 1번 업무를 수행한 어플리케이션으로부터 결과 데이터를 받아 2번 업무를 수행하는 어플리케이션에게 전달해야 한다. 이래야만 업무의 연속성이 이루어지기 때문이다. 이것은 기능적으로 매우 간단하지만 실제 활용 가능한 시스템을 구축하기는 쉽지 않다.
왜냐하면, 두 시스템 간에 데이터 교환이 이루어지기 위해서는 데이터 교환을 위해 사용할 공통 인터페이스를 두 시스템이 공히 소유하고 있어야 하고, 공통으로 사용할 데이터 형식도 사전에 정의되어 있어야 하기 때문이다. 이미 업무에서 광범위하게 사용되는 어플리케이션들과 워크플로우 시스템들은 이러한 조건을 만족시키지 못한다. 이를 해결하기 위해 더블유에프엠씨(WfMC : Workflow Management Coalition)에서 워크플로우 시스템과 어플리케이션 간의 데이터 교환을 위한 표준 인터페이스를 제안하고 있지만 이 인터페이스는 개념적인 모델만 제공할 뿐 실제 구현을 위한 지침은 제공되지 못하고 있는 문제점이 있었다.
본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 컴포넌트 기술, 이벤트 처리 및 확장 마크업 언어(XML : eXtensible Markup Language) 기술을 활용하여 유연하고 범용적인 어플리케이션 간 데이터 교환을 실현하는 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템의 일실시예 구성도.
도 2 는 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템의 다른 실시예 구성도.
도 3 및 도 4 는 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 방법의 일실시예 흐름도.
도 5 는 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템 인터페이스의 일실시예 설명도.
* 도면의 주요 부분에 대한 부호의 설명
101 : 어플리케이션 102 : 어플리케이션 어댑터
103 : 이벤트 관리 시스템 104 : 워크플로우 시스템
상기 목적을 달성하기 위한 본 발명의 시스템은, 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템에 있어서, 주어진 작업을 처리하며 외부에 공개할 데이터를 확장 마크업 언어(XML : eXtensible Markup Language)의 데이터 타입 정의(DTD : Data Type Definition)에 따라 표현하고 리플렉션 인터페이스를 이용하여 제공하기 위한 어플리케이션 처리수단; 상기 어플리케이션 처리수단에서 발생하는 이벤트를 수신하기 위해 이벤트 구독을 신청하고, 상기 어플리케이션 처리수단에서의 작업 종료시 처리 결과 정보를 수신하며, 다음 어플리케이션을 처리하기 위한 어플리케이션 구동 이벤트를 발생시키는 워크플로우 관리수단; 상기 어플리케이션 구동 이벤트를 수신하여 상기 어플리케이션 처리수단을 구동하고 상기 어플리케이션이 요구하는 관련데이터를 전송하며 상기 어플리케이션 처리수단의 작업 종료시 관련 데이터를 담은 종료 이벤트를 발생시키기 위한 어플리케이션 조정수단; 및 상기 어플리케이션 처리수단, 상기 워크플로우 관리수단 및 상기 어플리케이션 조정수단을 이벤트 발생자와 이벤트 구독자로 하여 이벤트 발생 등록을 받고 이벤트 구독 신청도 받아 발생한 이벤트에 대해 이벤트 구독자에게 전달하기 위한 이벤트 관리수단을 포함하는 것을 특징으로 한다.
또한, 본 발명의 방법은, 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템에 적용되는 데이터 교환 방법에 있어서, 단위 업무(Activity)와 업무 전달(Transition)을 이용한 워크플로우 모델을 설정받고 각 단위 업무 별로 실행할 응용 프로그램과 관련 데이터를 정의받는 제 1 단계; 이벤트 관리 시스템이 어플리케이션을 관리하는 어플리케이션 어댑터와 워크플로우 시스템으로부터 이벤트 등록 및 이벤트 구독 신청을 받아 상기 워크플로우 시스템과 어플리케이션 간에 데이터 전달을 위한 정보 관리를 수행하는 제 2 단계; 상기 워크플로우 시스템로부터 어플리케이션 구동 이벤트를 받아 어플리케이션을 구동하고 구동된 상기 어플리케이션으로부터 관련 데이터를 요구받아 이를 전달하여 워크플로우 시스템으로부터 어플리케이션으로의 데이터 전달을 처리하는 제 3 단계; 및 상기 이벤트 관리 시스템이 실행 관련 데이터를 확장 마크업 언어(XML)화하여 데이터를 처리하는 어플리케이션으로부터 종료 정보와 관련 데이터 정보를 포함한 종료 이벤트를 전달받아 상기 워크플로우 시스템으로 전달하는 제 4 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은, 대용량 프로세서를 구비한 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템에, 단위 업무(Activity)와 업무 전달(Transition)을 이용한 워크플로우 모델을 설정받고 각 단위 업무 별로 실행할 응용 프로그램과 관련 데이터를 정의받는 제 1 기능; 이벤트 관리 시스템이 어플리케이션을 관리하는 어플리케이션 어댑터와 워크플로우 시스템으로부터 이벤트 등록 및 이벤트 구독 신청을 받아 상기 워크플로우 시스템과 어플리케이션 간에 데이터 전달을 위한 정보 관리를 수행하는 제 2 기능; 상기 워크플로우 시스템로부터 어플리케이션 구동 이벤트를 받아 어플리케이션을 구동하고 구동된 상기 어플리케이션으로부터 관련 데이터를 요구받아 이를 전달하여 워크플로우 시스템으로부터 어플리케이션으로의 데이터 전달을 처리하는 제 3 기능; 및 상기 이벤트 관리 시스템이 실행 관련 데이터를 확장 마크업 언어(XML)화하여 데이터를 처리하는 어플리케이션으로부터 종료 정보와 관련 데이터 정보를 포함한 종료 이벤트를 전달받아 상기 워크플로우 시스템으로 전달하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 워크플로우 시스템과 어플리케이션 간의 원활한 데이터 교환을 위한 소프트웨어 시스템과 지원 도구를 제시한다. 이 시스템은 이벤트 처리 기술과 XML기술을 기반으로 데이터 교환 기능을 구축한다. 이 데이터 교환 기반 시스템을 통해 어플리케이션들은 상호간에 필요한 정보를 자유롭게 주고 받을 수 있다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템의 일실시예 구성도이다.
본 발명에 따른 시스템의 구성은, 어플리케이션(101), 어플리케이션 어댑터(102), 이벤트 관리 시스템(103) 및 워크플로우 시스템(104)을 포함하여 이루어진다. 구성 서브 시스템을 상세히 살펴보면 다음과 같다.
우선, 어플리케이션(AP : Application, 101)은 단위 업무 수행을 위해 사용하는 응용 프로그램으로서, 담당 기능은 다음과 같다.
첫째, 실행하는 작업들에 대한 내용 중 외부에 공개할 데이터를 사전에 정의하고 표준 인터페이스를 이용하여 외부에 공개한다. 데이터 정의는 XML 디티디(DTD : Data Type Definition)로 하며, 공개 데이터는 XML 형태이어야 한다. 이와 함께, 실행 시 입력으로 받아들이는 데이터도 공개한다. 이는 간단한 리플렉션(Reflection) 인터페이스를 이용하여 구현한다. 여기서, 리플렉션 인터페이스는 해당 어플리케이션(101)에 대한 프로그램적인 정보를 제공해 주는 함수들의 집합이다.
둘째, 실행 시 작업을 수행하기 이전에 어플리케이션 어댑터(102)로부터 수신할 데이터가 있는지 점검한다. 수신할 데이터가 있으면 데이터를 수신하여 그 데이터를 기반으로 작업을 수행한다(이 데이터는 워크플로우 시스템(104)으로부터 전달된 데이터가 된다).
셋째, 종료 시 종료 이벤트를 이벤트 관리 시스템(103)으로 전달하며, 이때 첫째항에서 정의한 형식에 따라 외부 공개 데이터를 XML 형태로 함께 전달한다.
다음으로, 이벤트 관리 시스템(EMS : Event Management System, 103)에 대해 설명한다. 이벤트 관리 시스템(103)은 전체 시스템을 구성하는 각 서브 시스템들이 발생하는 이벤트들을 전달하고 관리하는 역할을 수행한다. "Microsoft COM", "Javabeans"와 같은 컴포넌트 기술을 이용하여 구현되며, 시스템 서비스의 형태로 항시 수행된다.
다음과 같은 기능을 담당한다.
첫째, 이벤트 발생자(Event Source)로부터 이벤트 발생 등록을 받는다.
둘째, 이벤트 수신자(Event Subscriber)로부터 이벤트 구독 신청을 받는다.
셋째, 이벤트 발생자가 전달한 이벤트를 이벤트 구독자들에게 전달한다.
어플리케이션 어댑터(AA : Application Adapter, 102)는 어플리케이션 운용 전반에 대한 사항을 관리하는 컴포넌트로서, 다음과 같은 기능을 담당한다.
첫째, 이벤트 관리 시스템(103)으로부터 어플리케이션 구동 이벤트를 수신한다.
둘째, 어플리케이션(101)을 구동한다.
셋째, 어플리케이션(101)이 관련 데이터를 요구하는 메시지를 보내면 해당 관련 데이터를 전송한다.
넷째, 어플리케이션 종료 시 이벤트 관리 시스템(103)으로 어플리케이션 종료 이벤트를 발생하며, 이때 관련 데이터를 이벤트에 실어 전달한다. 관련 데이터는 어플리케이션(101)으로부터 받는다.
워크플로우 시스템(WfS : Workflow System, 104)은 워크플로우 시스템의 서버와 클라이언트를 총칭하는 것으로서, 다음과 같은 기능을 담당한다.
첫째, 어플리케이션(101)이 발생하는 이벤트를 수신하기 위해 이벤트 관리 시스템(103)에 이벤트 구독 신청을 요구한다.
둘째, 어플리케이션 종료 시 어플리케이션 어댑터(102)가 발생한 이벤트를 수신한다. 이 이벤트에는 어플리케이션(101)의 작업 수행 결과에 대한 정보가 담겨 있다.
셋째, 다음 어플리케이션을 구동하기 위해 어플리케이션 구동 이벤트를 발생한다.
도 2 는 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템의 다른 실시예 구성도이다.
도 2 는 시스템의 배치 구조를 보여준다. 그림에서 제1 컴퓨터(201)와 제2 컴퓨터(202)는 클라이언트에 해당한다. 제3 컴퓨터(203)는 워크플로우 시스템의 운영을 책임지는 서버이다.상기 워크플로우 시스템과 어플리케이션관의 데이터 교환 시스템을 이용한 데이터 교환 방법에 대하여 도 3 내지 도 5를 이용하여 좀 더 상세히 설명한다.
도 3 및 도 4 는 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 방법의 일실시예 흐름도이다.
본 발명에 따라 워크플로우 시스템과 어플리케이션 간에 데이터 교환이 일어나는 시나리오는 도3과 도4에 표시하였다. 그림에서 보듯이 데이터 교환은 이벤트를 기반으로 이루어진다. 이러한 시나리오가 가능하려면 몇 가지 만족되어야 할 사항들이 있는데 다음과 같다.
어플리케이션(101)은 실행 최초의 작업시에 어플리케이션 어댑터(102)로부터 제공받을 데이터가 있는지 검사한다.
어플리케이션(101)은 실행 종료 시 공개할 관련 데이터를 어플리케이션 어댑터(102)로 전달해야 한다.
즉, 어플리케이션(101)은 어플리케이션 어댑터(102)와 연동될 수 있는 기능을 포함하고 있어야만 한다.
도 3 은 본 발명에 따른 어플리케이션으로부터 워크플로우 시스템으로 데이터가 전달되는 과정을 나타낸 일실시예 흐름도이다.먼저, 이하 표기되는 AP(31, 41)는 어플리케이션, AA(32, 42)는 어플리케이션 어댑터, EMS(33, 43)는 이벤트 관리 시스템, 그리고 WfS는 워크플로우 시스템을 각각 나타낸다.
AA(32)가 EMS(33)로 이벤트를 등록하고(301), WfS 클라이언트(34)가 이벤트 구독 신청을 EMS(34)로 보내어 이벤트 구독 처리가 이루어지게 된다.
AP(31)는 실행관련 데이터를 XML화하여 처리한다(303). AP(31)는 처리를 완료하고 종료 이벤트를 발생시켜 AA(32)로 전달하고(304), AA(32)는 이를 EMS(33)를 통해 WfS 클라이언트(34)로 보낸다(305, 306). WfS 클라이언트(34)에서는 AP 종료정보 및 관련 데이터를 WfS 서버(35)로 전송한다(307).
도 4 는 본 발명에 따른 워크플로우 시스템으로부터 어플리케이션으로 데이터가 전달되는 과정을 나타낸 일실시예 흐름도이다.
WfS 서버(45)는 WfS 클라이언트(44)로 구동될 AP(41) 정보 및 관련데이터 정보를 WfS 클라이언트(44)로 보내고(401), WfS 클라이언트(44)는 AP 구동 이벤트 정보를 EMS(43)를 거쳐 AA(42)로 보낸다(402, 403). AA(42)는 AP(41)를 구동시킨다(404).
AP(41)는 관련 데이터를 AA(42)로 요구하고(405), AA(42)는 그에 따른 데이터를 AP(41)로 전달한다.
도 5 는 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템 인터페이스의 일실시예 설명도이다.
도 5 는 서브 시스템들이 구현해야 하는 주요 인터페이스 및 각 인터페이스와 서브 시스템 간의 연관 관계를 보여준다.
어플리케이션 어댑터(52)에는 어플리케이션 매니저 인터페이스(IApplicationManager)가 있어 어플리케이션(51)과 연결되며, 이벤트 구독자 인터페이스(IEventSubscriber)가 있어 이벤트 관리 시스템(EMS, 53)으로부터 연결받는다.
이벤트 관리 시스템(EMS, 53)은 이벤트 발행자 인터페이스(IEventPublisher) 가 있어 어플리케이션 어댑터(52)와 워크플로우 시스템(WfS) 클라이언트(54)로부터 정보를 전달받는다.
워크플로우 시스템(WfS) 클라이언트(54)에는 이벤트 구독자 인터페이스(IEventSubscriber)가 있어 이벤트 관리 시스템(EMS, 53)으로부터 연결받는다.
본 발명에 따른 시스템에서 AP(101)와 WfS(104) 간 데이터 교환을 위해 사용하는 데이터 형식은 XML이다. AP(101)는 공개할 데이터에 대한 정보를 XML DTD 형태로 제공하고 종료 시 관련 데이터를 정의된 XML DTD에 따라 형식화하여 공개해야 한다. 또한, AP(101)는 공개하는 데이터에 대한 명세를 제공하여 그 의미를 파악할 수 있도록 해 줘야 한다. 이를 위해 AP(101)는 기초적인 수준의 리플렉션(Reflection) 기능을 제공한다. 외부 프로그램은 이 리플렉션(Reflection) 인터페이스를 통해 AP(101)가 제공하는 데이터를 XML DTD 형태로 제공받는다.
본 시스템의 운영을 위해서는 AP(101)가 제공하는 데이터들과 워크플로우 모델의 각 단위 업무가 필요로 하는 데이터들 간에 대응 관계가 사전에 정의되어 있어야만 한다. 이러한 사전 정의는 워크플로우 모델을 작성할 때 이루어지는데 그 과정은 다음과 같다.
1. 워크플로우 설계자는 단위 업무(Activity)와 업무 전달(Transition)을 이용하여 워크플로우 모델을 설계한다.
2. 각 단위 업무 별로 실행할 응용 프로그램과 관련 데이터를 정의한다.
A. 단위 업무 별로 실행할 응용 프로그램을 설정한다.
B. 단위 업무 별로 담당 어플리케이션의 리플렉션(Reflection) 인터페이스를 이용하여 입출력 데이터 정보를 추출한다.
C. 출력 데이터를 이용하여 다음 단위 업무를 실행하는 어플리케이션에서 필요로 하는 데이터 항목들을 골라서 관련 데이터(Relevant Data)로 정의한다(이 데이터들은 다음 단위 업무의 응용 프로그램에 입력으로 전달된다).
D. 입력 데이터를 이용하여 이전 단위 업무에서 정의한 관련 데이터 항목들을 어플리케이션의 입력 데이터 항목에 대입시킨다. 이 작업을 통해 WfS 서버(Server)는 이전 단위 업무 수행 결과로 넘겨 받은 데이터 항목들 중 어떤 항목을 현재 단위 업무를 담당한 어플리케이션에게 넘겨줄 지 알 수 있게 된다.상기한 바와 같은, 본 발명에 따른 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템 및 그 방법에 대한 구체적인 일실시예를 들어 좀 더 상세히 설명한다. 또한, 여기에 보이는 예는 본 발명에 의해 실시될 수 있는 시스템의 여러 형태 중 한 가지에 불과함을 밝힌다.먼저, 실시간으로 주어진 업체의 주식 시세를 수집하여 마이크로소프트사의 엑셀(Excel) 프로그램 파일 형식으로 보고서를 작성하는 업무를 수행한다고 가정한다. 그리고, 업무 처리 과정 중 첫번째 업무인 업무1은 주어진 업체의 주식 시세를 모집하는 것이고, 두번재 업무인 업무2는 수집된 주식 시세로 보고서를 작성하는 것으로 정의한다.1. 업무 처리 과정 정의(Defining a Business Process Template)본 과정은 워크플로우 시스템에 의해 그 과정이 자동으로 처리될 업무 처리 과정을 정의하는 과정이다. 본 과정에서 업무 처리 흐름과 단위 업무의 내용이 결정된다.본 발명에서 제안한 데이터 교환 방법에 관여되는 사항은 다음과 같다.가) 단위 업무 수행을 위해 실행할 어플리케이션을 선택나) 워크플로우 시스템과 어플리케이션이 주고 받을 데이터의 내용 정의상기 나)항의 작업 수행을 위해서 본 발명은 어플리케이션의 리플렉션 인터페이스를 제안하였다. 리플렉션 인터페이스는 해당 어플리케이션에 대한 프로그램적인 정보를 제공해 주는 함수들의 집합이다.상기 어플리케이션 리플렉션 인터페이스의 구현 예는 다음과 같다.Interface IAppReflection{// 어플리케이션 입력 데이터 정보 추출String getInputDataDefinition();// 어플리케이션 출력 데이터 정보 추출String getOutputDataDefinition();}상기 예에서, 의사 코드로 작성된 인터페이스 정의를 보면, 필수 함수 두 개를 볼 수 있다. 그 중 "getInputDataDefinition()"은 어플리케이션이 입력으로 받는 데이터의 구조 정보를 제공하는 함수이며, "getOutputDataDefinition()"은 어플리케이션이 출력으로 내주는 데이터의 구조 정보이다. 이 두 함수가 출력으로 내어주는 정보의 데이터 구조는 여러 형태가 될 수 있으나, 하기와 같이 XML DTD 형태로 데이터 형식을 정의할 수 있다.다음은 어플리케이션으로부터 입력되는 데이터의 형식 정의이다.<?xml version="1.0"?><!DOCTYPE in-data[<!ELEMENT in-data (code*)><!ELEMENT code (#PCDATA)>]>다음은 어플리케이션으로부터 출력되는 데이터의 형식 정의이다.<?xml version="1.0"?><!DOCTYPE out-data[<!ELEMENT out-data (param*)><!ELEMENT param (code,name,price)><!ELEMENT code (#PCDATA)><!ELEMENT name (#PCDATA)><!ELEMENT price (#PCDATA)>]>다음은 상기 정의한 업무 처리 과정 중 업무1을 수행할 때 사용할 어플리케이션의 기능과 입출력 데이터의 실제 예이다. 즉, 업무1을 담당하는 어플리케이션의 기능은 업체 코드를 입력으로 받아 실시간으로 주식시세를 조회한 다음 결과를 넘겨주는 것이다.따라서, 입력데이터의 예는 "<code>C0034</code>"와 같은 형태가 되고, 출력데이터의 예는 다음과 같다.<code>C0034</code><name>ABB Corp.</name><price>12000</price>다음은 상기 정의한 업무 처리 과정 중 업무2를 수행할 때 사용할 어플리케이션의 기능과 데이터 입출력 사양을 보여준다. 즉, 업무2를 담당하는 어플리케이션의 기능은 업체 이름과 주식 가격을 입력으로 받아 보고서를 작성하는 것이다.입력데이터 구조는 다음과 같다.<?xml version="1.0"?><!DOCTYPE out-data[<!ELEMENT out-data (name,price)><!ELEMENT name (#PCDATA)><!ELEMENT price (#PCDATA)>]>입력 데이터의 예는 다음과 같다.<name>ABB Corp.</name><price>12000</price>상기한 바와 같은 입력데이터의 구조와 입력데이터의 예에 따른 출력데이터는 "주식 시세 보고서"와 같은 문서의 형태로 출력된다.업무 처리 과정을 설계하는 도구는 사용자가 특정 단위 업무 수행에 사용되도록 지정한 어플리케이션의 리플렉션 인터페이스를 접근하여 해당 어플리케이션의 입출력 데이터 내용을 자동으로 읽어올 수 있다. 사용자는 어플리케이션의 입출력 데이터 내용을 반영하여 단위 업무 수행 방법 및 데이터 교환 내용을 정의한다.상기 과정으로부터 업무1과 업무2간의 데이터 연동 구조 모습을 알 수 있다.즉, 업무1의 출력 데이터 구조인 "code", "name", "price"에서 "name", "price"를 업무2의 입력데이터로 가져올 수 있다. 즉, 업무1의 출력데이터 항목 각각이 업무2의 입력데이터 항목에 어떻게 대응되는지 알 수 있으며, 이러한 대응 구조는 워크플로우 시스템의 업무 처리 과정 설계 단계에서 정의된다.이상에서 살펴본 바와 같이 워크플로우 시스템은 업무 처리를 위해 사용할 각 어플리케이션의 데이터 입출력 사양을 어플리케이션의 리플렉션 인터페이스를 통해 자동으로 알아냄으로써 워크플로우 시스템과 어플리케이션 간의 데이터 교환 구조를 통해 자동으로 알아냄으로써 워크플로우 시스템과 어플리케이션 간의 데이터 교환 구조를 설계할 수 있으며, 이를 통해 어플리케이션 간의 기능 및 데이터 연동도 가능하게 만든다.2. 업무 처리 과정 실행(Running a Business Process Instance)앞서 설명한 대로 업무 처리 과정이 정의되면 워크플로우 시스템을 이용하여 정의된 업무 처리 과정을 실행할 수 있다.도 2를 참조하면, 먼저 업무1 수행요청으로서 워크플로우 시스템 서버는 임의의 연동 수단을 이용하여 워크플로우 시스템 클라이언트로 업무1을 수행하도록 요청한다. 이때, 워크플로우 시스템 서버와 클라이언트 간 연동 수단은 본 발명의 범위에 포함되지 않는다. 단, 워크플로우 시스템 서버는 단위 업무 수행 요청 시 단위 업무 처리를 위해 필요한 정보를 워크플로우 시스템 클라이언트로 전달해 주어야 하는데, 이때 단위 업무 처리를 위해 실행할 어플리케이션을 구별할 수 있는 데이터와 어플리케이션과 어플리케이션으로 전달할 데이터를 포함하여 전달하여야 한다.다음으로, 어플리케이션 구동 이벤트의 발생 과정으로 워크플로우 시스템 클라이언트와 어플리케이션 간의 연동은 이벤트 관리 시스템을 경유하여 실행된다. 이벤트 관리 시스템은 마이크로소프트사의 윈도우 2000 운영체제에 적용되어 있는 COM+ 이벤트 관리 시스템과 유사한 기능을 수행하는데, 출판-구독(Publisher-Subscriber) 구조를 통해 어플리케이션 간에 정보를 통보하고 수신할 수 있도록 해준다. 이 단계에서 이벤트 출판자는 워크플로우 시스템 클라이언트이고, 구독자는 어플리케이션 구동을 맡은 어플리케이션 어댑터이다.3. 어플리케이션 구동워크플로우 시스템 클라이언트가 발생한 어플리케이션 구동 이벤트는 이벤트 관리 시스템을 거쳐 어플리케이션 어댑터로 전달된다.어플리케이션 어댑터는 어플리케이션의 구동, 입력 데이터 전달 및 출력 데이터 수신, 종료 이벤트 발생 기능을 수행한다. 어플리케이션 어댑터는 어플리케이션 별로 하나씩 존재한다. 어플리케이션 어댑터와 어플리케이션은 1:1의 관계를 갖는다. 어플리케이션 어댑터는 담당 어플리케이션을 구동하고, 데이터를 입력하고, 출력된 데이터를 추출하여 임의의 형태로 가공할 수 있는 등 담당 어플리케이션을 운용할 수 있는 기능을 자체 내에 지니고 있다. 자체 내에 지니고 있다고 하는 것은 어플리케이션을 운용하는 기능이 어댑터 내에 하드코딩되어 있음을 의미한다. 즉, 어플리케이션 어댑터는 어플리케이션에 매우 의존적이다. 임의의 어플리케이션용으로 개발된 어플리케이션 어댑터를 다른 어플리케이션용으로 사용하거나 변형하기는 매우 어렵다. 반면, 어플리케이션 어댑터는 표준 인터페이스와 이벤트 관리 시스템을 통해 워크플로우 시스템과 연동되므로 워크플로우 시스템 입장에서는 매우 개방적인 시스템처럼 다루어 질 수 있다는 장점이 있다.4. 어플리케이션 실행어플리케이션 어댑터로부터 전달받은 입력 데이터를 이용하여 어플리케이션은 고유의 기능을 수행한다. 예를 들면, AP1은 입력된 업체의 코드를 이용하여 온라인 주식 시가 조회 서비스로부터 해당 업체의 주가를 수집한다.5. 실행 종료 이벤트 발생어플리케이션은 고유의 기능 실행이 완료되면, 어플리케이션 어댑터로부터 종료 이벤트를 전송하고, 어플리케이션 실행 결과를 전달한다. 이때, 필요하면 실행 결과를 XML 또는 기타 형태의 데이터로 가공할 수 있다.6. 실행 종료 이벤트 전달어플리케이션 어댑터는 어플리케이션 종료 사실을 워크플로우 시스템에게 전달하기 위하여 이벤트 관리 시스템을 이용한다. 즉, 어플리케이션 구동 때와 반대로 워크플로우 시스템 클라이언트가 이벤트 구독자가 되며, 어플리케이션 어댑터가 이벤트 출판자가 된다.7. 어플리케이션 실행 결과 전달워크플로우 시스템 클라이언트는 이벤트 관리 시스템으로부터 어플리케이션 종료 이벤트를 전달 받음과 동시에 어플리케이션 실행 결과 데이터를 전달 받는다. 이제 워크플로우 시스템 클라이언트는 이 실행 결과 데이터를 워크플로우 시스템 서버로 전달하여, 다음 단위 업무가 수행될 수 있도록 한다.상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 워크플로우 시스템과 어플리케이션 간에 데이터를 교환할 수 있도록 함으로써, 워크플로우 시스템의 가장 기본적이지만 구현하기가 용이하지 않은 데이터 교환 시스템의 기능과 구조를 제시하고, 보다 실용적인 워크플로우 시스템을 구축할 수 있도록 하는 효과가 있다.

Claims (4)

  1. 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템에 있어서,
    주어진 작업을 처리하며 외부에 공개할 데이터를 확장 마크업 언어(XML : eXtensible Markup Language)의 데이터 타입 정의(DTD : Data Type Definition)에 따라 표현하고 리플렉션 인터페이스를 이용하여 이벤트를 제공하기 위한 어플리케이션 처리수단;
    상기 어플리케이션 처리수단에서 발생하는 이벤트를 수신하기 위해 이벤트 구독을 신청하고, 상기 어플리케이션 처리수단에서의 작업 종료시 처리 결과 정보를 수신하며, 다음 어플리케이션을 처리하기 위한 어플리케이션 구동 이벤트를 발생시키는 워크플로우 관리수단;
    상기 어플리케이션 구동 이벤트를 수신하여 상기 어플리케이션 처리수단을 구동하고 상기 어플리케이션이 요구하는 관련데이터를 전송하며 상기 어플리케이션 처리수단의 작업 종료시 관련 데이터를 담은 종료 이벤트를 발생시키기 위한 어플리케이션 조정수단; 및
    상기 어플리케이션 처리수단, 상기 워크플로우 관리수단 및 상기 어플리케이션 조정수단을 이벤트 발생자와 이벤트 구독자로 하여 이벤트 발생 등록을 받고 이벤트 구독 신청도 받아 발생한 이벤트에 대해 이벤트 구독자에게 전달하기 위한 이벤트 관리수단
    을 포함하는 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템.
  2. 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템에 적용되는 데이터 교환 방법에 있어서,
    단위 업무(Activity)와 업무 전달(Transition)을 이용한 워크플로우 모델을 설정받고 각 단위 업무 별로 실행할 응용 프로그램과 관련 데이터를 정의받는 제 1 단계;
    이벤트 관리 시스템이 어플리케이션을 관리하는 어플리케이션 어댑터와 워크플로우 시스템으로부터 이벤트 등록 및 이벤트 구독 신청을 받아 상기 워크플로우 시스템과 어플리케이션 간에 데이터 전달을 위한 정보 관리를 수행하는 제 2 단계;
    상기 워크플로우 시스템로부터 어플리케이션 구동 이벤트를 받아 어플리케이션을 구동하고 구동된 상기 어플리케이션으로부터 관련 데이터를 요구받아 이를 전달하여 워크플로우 시스템으로부터 어플리케이션으로의 데이터 전달을 처리하는 제 3 단계; 및
    상기 이벤트 관리 시스템이 실행 관련 데이터를 확장 마크업 언어(XML)화하여 데이터를 처리하는 어플리케이션으로부터 종료 정보와 관련 데이터 정보를 포함한 종료 이벤트를 전달받아 상기 워크플로우 시스템으로 전달하는 제 4 단계
    를 포함하는 워크플로우 시스템과 어플리케이션간의 데이터 교환 방법.
  3. 제 2 항에 있어서,
    상기 어플리케이션은,
    리플렉션 인터페이스를 통해 외부에 데이터를 공개하는 것을 특징으로 하는 워크플로우 시스템과 어플리케이션간의 데이터 교환 방법.
  4. 대용량 프로세서를 구비한 워크플로우 시스템과 어플리케이션간의 데이터 교환 시스템에,
    단위 업무(Activity)와 업무 전달(Transition)을 이용한 워크플로우 모델을 설정받고 각 단위 업무 별로 실행할 응용 프로그램과 관련 데이터를 정의받는 제 1 기능;
    이벤트 관리 시스템이 어플리케이션을 관리하는 어플리케이션 어댑터와 워크플로우 시스템으로부터 이벤트 등록 및 이벤트 구독 신청을 받아 상기 워크플로우 시스템과 어플리케이션 간에 데이터 전달을 위한 정보 관리를 수행하는 제 2 기능;
    상기 워크플로우 시스템로부터 어플리케이션 구동 이벤트를 받아 어플리케이션을 구동하고 구동된 상기 어플리케이션으로부터 관련 데이터를 요구받아 이를 전달하여 워크플로우 시스템으로부터 어플리케이션으로의 데이터 전달을 처리하는 제 3 기능; 및
    상기 이벤트 관리 시스템이 실행 관련 데이터를 확장 마크업 언어(XML)화하여 데이터를 처리하는 어플리케이션으로부터 종료 정보와 관련 데이터 정보를 포함한 종료 이벤트를 전달받아 상기 워크플로우 시스템으로 전달하는 제 4 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-1999-0061904A 1999-12-24 1999-12-24 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법 KR100377189B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-1999-0061904A KR100377189B1 (ko) 1999-12-24 1999-12-24 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-1999-0061904A KR100377189B1 (ko) 1999-12-24 1999-12-24 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20010063810A KR20010063810A (ko) 2001-07-09
KR100377189B1 true KR100377189B1 (ko) 2003-03-28

Family

ID=19629467

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1999-0061904A KR100377189B1 (ko) 1999-12-24 1999-12-24 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100377189B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180099815A (ko) * 2015-12-28 2018-09-05 알리바바 그룹 홀딩 리미티드 링크 요청 처리 방법 및 장치
US10949824B2 (en) 2017-05-11 2021-03-16 Advanced New Technologies Co., Ltd. Identity authentication method, device, and system

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100414406B1 (ko) * 2001-08-09 2004-01-14 주식회사 핸디소프트 문서 버전 관리가 가능한 워크플로우 시스템 및 이를이용한 문서 버전 관리 방법
US7680683B2 (en) 2005-12-29 2010-03-16 Microsoft Corporation Dynamically repositioning workflow by end users
US20070156487A1 (en) * 2005-12-29 2007-07-05 Microsoft Corporation Object model on workflow
US8849691B2 (en) 2005-12-29 2014-09-30 Microsoft Corporation Modeling user input and interaction in workflow based applications
US8326911B2 (en) * 2007-02-02 2012-12-04 Microsoft Corporation Request processing with mapping and repeatable processes
US9354847B2 (en) 2008-12-29 2016-05-31 Microsoft Technology Licensing, Llc Interface infrastructure for a continuation based runtime
US9536264B2 (en) 2011-11-14 2017-01-03 Microsoft Technology Licensing, Llc Host agnostic messaging in a continuation based runtime

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153068A (ja) * 1994-11-28 1996-06-11 Toshiba Corp ワークフローシステム
US5799297A (en) * 1995-12-15 1998-08-25 Ncr Corporation Task workflow management system and method including an external program execution feature
EP0919912A2 (en) * 1997-11-28 1999-06-02 Hitachi, Ltd. Multiserver workflow system
KR19990062598A (ko) * 1997-12-31 1999-07-26 포만 제프리 엘 무상태 환경(stateless environment)을 위한 워크플로우 메커니즘
KR20010055928A (ko) * 1999-12-13 2001-07-04 이계철 기업업무와 업무연계 지원을 위한 그룹웨어 어플리케이션제공방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153068A (ja) * 1994-11-28 1996-06-11 Toshiba Corp ワークフローシステム
US5799297A (en) * 1995-12-15 1998-08-25 Ncr Corporation Task workflow management system and method including an external program execution feature
EP0919912A2 (en) * 1997-11-28 1999-06-02 Hitachi, Ltd. Multiserver workflow system
KR19990062598A (ko) * 1997-12-31 1999-07-26 포만 제프리 엘 무상태 환경(stateless environment)을 위한 워크플로우 메커니즘
JPH11249983A (ja) * 1997-12-31 1999-09-17 Internatl Business Mach Corp <Ibm> ワークフロー・アイテム管理機構及び方法
KR20010055928A (ko) * 1999-12-13 2001-07-04 이계철 기업업무와 업무연계 지원을 위한 그룹웨어 어플리케이션제공방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180099815A (ko) * 2015-12-28 2018-09-05 알리바바 그룹 홀딩 리미티드 링크 요청 처리 방법 및 장치
KR102121679B1 (ko) * 2015-12-28 2020-06-11 알리바바 그룹 홀딩 리미티드 링크 요청 처리 방법 및 장치
US11188612B2 (en) 2015-12-28 2021-11-30 Advanced New Technologies Co., Ltd. Link request processing method and apparatus
US10949824B2 (en) 2017-05-11 2021-03-16 Advanced New Technologies Co., Ltd. Identity authentication method, device, and system
US11227271B2 (en) 2017-05-11 2022-01-18 Advanced New Technologies Co., Ltd. Identity authentication method, device, and system

Also Published As

Publication number Publication date
KR20010063810A (ko) 2001-07-09

Similar Documents

Publication Publication Date Title
US7120703B2 (en) Transforming data automatically between communications parties in a computing network
Benatallah et al. Towards patterns of web services composition
US7325027B2 (en) Software, method and system for data connectivity and integration having transformation and exchange infrastructure
WO2007077019A2 (en) Software model process interaction
WO2001037175A2 (en) Systems and methods for creating financial advice applications
Zhu Web services provide the power to integrate
Ortiz Getting on board the enterprise service bus
EP1387262A1 (en) Method to generate synchronization contracts for software components and web services
KR100377189B1 (ko) 워크플로우 시스템과 어플리케이션간의 데이터 교환시스템 및 그 방법
Kuno Surveying the e-services technical landscape
Strassburger et al. Distributed manufacturing simulation as an enabling technology for the digital factory
JP2002358290A (ja) 情報処理サービス提供方法及びプログラム並びにシステム
KR20010099511A (ko) 웹기반의 통합채널업무 및 전사금융업무 개발 시스템
Helal et al. The internet enterprise
Chen et al. eSCA: a thin-client/server/web-enabled system for distributed supply chain simulation
Chen et al. Jtang synergy: A service oriented architecture for enterprise application integration
Oladosu et al. ON THE USE OF WEB SERVICES TECHNOLOGY IN E-HEALTH APPLICATIONS.
Shan et al. Systematic interaction management in a workflow view based business-to-business process engine
US20040250176A1 (en) Generating a status report from source code
Van den Enden et al. A case study in application integration
Vaahedi et al. A future application environment for BC Hydro's EMS
CN111061789A (zh) 一种智能电网基建信息管理系统
Li et al. Decentralized execution of event-driven scientific workflows
Banerjee et al. SEAMLESS ENTERPRISE COMPUTING USING ENTERPRISE APPLICATION INTEGRATION (EAI).
Schroth Global industrialisation of information-intensive services: a reference architecture for electronic business media

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: 20090303

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee