KR20120067889A - 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법 - Google Patents

멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법 Download PDF

Info

Publication number
KR20120067889A
KR20120067889A KR1020100129530A KR20100129530A KR20120067889A KR 20120067889 A KR20120067889 A KR 20120067889A KR 1020100129530 A KR1020100129530 A KR 1020100129530A KR 20100129530 A KR20100129530 A KR 20100129530A KR 20120067889 A KR20120067889 A KR 20120067889A
Authority
KR
South Korea
Prior art keywords
workflow
activity
tenant
metadata
unit
Prior art date
Application number
KR1020100129530A
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 KR1020100129530A priority Critical patent/KR20120067889A/ko
Priority to US13/308,732 priority patent/US20120158453A1/en
Publication of KR20120067889A publication Critical patent/KR20120067889A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • 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/10Office automation; Time management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 SaaS 환경에서 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 방법에 관한 것이다. 본 발명에서는 다중 테넌트 지원 환경에서 하나의 워크플로우 인스턴스를 공유할 수 있게 액티비티 기반으로 정의된 워크플로우를 테넌트별로 컨피규레이션하는 방법을 제안한다. 특히, 워크플로우 편집기를 통해 워크플로우를 테넌트별로 편집하며 워크플로우를 구성하는 액티비티별로 컨피규레이션을 구현하는 방법을 제안한다. 또한, 본 발명에서는 컨피규레이션된 액티비티를 메타데이터로 저장하여 관리하는 방법을 제안한다. 특히, 워크플로우 편집기를 통해 액티비티를 저장할 때 액티비티별로 메타데이터를 저장하는 방법을 제안한다. 본 발명에 따르면, 각각의 테넌트들에게 전용으로 할당된 것과 같이 하나의 워크플로우 인스턴스를 다중 테넌트에게 지원할 수 있으며, 기존 지원 방법보다 저비용 고효율로 리소스 공유/관리가 가능해진다.

Description

멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법 {Workflow processing system for supporting multi tenant, and method thereof}
본 발명은 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 방법에 관한 것이다. 보다 상세하게는, SaaS(Software as a Service) 환경에서 멀티 테넌트(multi tenant)를 지원하는 워크플로우 처리 시스템 및 방법에 관한 것이다.
신뢰성 있는 대용량 인터넷 액세스 기술의 발전과 서비스 지향 아키텍처 기술, 패키지 소프트웨어의 유지보수 비용이 높아짐에 따라, SaaS라는 새로운 방식의 웹기반 서비스가 빠르게 성장하고 있다. 종래에는 같은 서비스를 여러 테넌트의 사용자에게 제공하는 데에 많은 비용을 들이고 있는데, 이를 줄이기 위해서 SaaS 환경에서는 하나의 서비스를 웹기반 다중 테넌트 지원 방식으로 제공하고 있다. 또한, 기존에는 한 테넌트에게 서비스를 제공하기 위해서는 소프트웨어, 하드웨어 등을 포함하여 전용 리소스를 그 테넌트에 할당하였으나, SaaS 환경에서는 하나의 소프트웨어 인스턴스만 관리하며 여러 테넌트가 이를 공유하여 사용할 수 있게 하여 관리 비용 감소, 리소스 구축 비용 감소 등 막대한 경제적인 효과를 얻을 수 있다.
다중 테넌트가 하나의 소프트웨어 인스턴스를 공유해서 사용하면서도 마치 한 그룹당 할당된 리소스를 사용하는 것처럼 제공하기 위해서 많은 기술들이 제안되고 있는데, 그 예로 다중 테넌트 지원 메타데이터 기술, 워크플로우 승인 기술 등이 있다. 그 중 하나의 소프트웨어 인스턴스를 공유하면서도 각 테넌트가 그 테넌트에 할당되고 컨피규레이션된 고유의 서비스를 사용하는 것처럼 서비스를 제공하는 기술이 매우 중요하여 다중 테넌트 메타데이터 연구에서 스키마 매핑, 공유 스키마 등 다수의 기술이 제안되고 있다.
그러나, 다중 테넌트 지원 워크플로우 관련 기술에서는 워크플로우 승인 기술 등 제한된 영역에서만 컨피규레이션 방법이 제공되고 있다. 워크플로우를 지원하는 기존의 SaaS 환경에서는 단순히 다중 테넌트가 워크플로우 엔진을 온라인 방식으로 이용할 수 있도록 하고 있으며, 정의된 하나의 워크플로우 인스턴스를 컨피규레이션하여 사용할 수 있는 기능을 지원하지 않는다. 따라서, 정의된 워크플로우를 그대로 사용하거나, 새로운 워크플로우를 정의하여 사용하여야 한다. 이 경우, 하나의 워크플로우 인스턴스를 다중 테넌트에게 제공하는 것에 비해 리소스 공유나 리소스 관리 측면에서 고비용, 저효율이 될 수밖에 없다.
본 발명은 상기한 문제점을 해결하기 위해 안출된 것으로서, 다중 테넌트 지원 환경에서 워크플로우를 테넌트 환경에 맞게 컨피규레이션하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법을 제공함을 목적으로 한다.
본 발명은 상기한 목적을 달성하기 위해 안출된 것으로서, 소프트웨어 서비스를 제공하기 위한 워크플로우(workflow)와 관련된 적어도 하나의 액티비티(activity)를 추출하는 액티비티 추출부; 선택된 테넌트(tenant)에 맞춤된 스키마(schema)를 고려하여 추출된 액티비티를 컨피규레이션(configuration)하는 액티비티 컨피규레이션부; 및 액티비티 추출 대상이 된 워크플로우 및 컨피규레이션된 액티비티를 저장시키는 저장 처리부를 포함하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템을 제공한다.
바람직하게는, 워크플로우 처리 시스템은 선택된 테넌트마다 미리 정해진 제1 액티비티를 편집 요청된 워크플로우의 제2 액티비티 위치에 오버라이딩시켜 편집 요청된 워크플로우를 편집하는 워크플로우 편집부; 및 편집된 워크플로우를 테넌트별로 실행시키는 워크플로우 실행부를 더욱 포함한다.
바람직하게는, 워크플로우 편집부는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 기초로 선택된 테넌트마다 제1 액티비티를 정한다. 또는, 워크플로우 편집부는 식별자에 대한 정보를 기초로 제1 액티비티와 관련된 제2 액티비티를 결정한다.
바람직하게는, 워크플로우 처리 시스템은 실행 요청된 워크플로우를 오브젝트화시키는 워크플로우 처리부를 더욱 포함하며, 워크플로우 편집부는 오버라이딩 뒤 액티비티 직렬화(serialization)를 수행하여 실행 요청된 워크플로우를 편집하고, 메타데이터가 없으면 워크플로우 실행부는 편집되지 않은 워크플로우를 메타데이터가 없는 모든 테넌트들을 대상으로 공통 실행시킨다.
바람직하게는, 저장 처리부는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 더욱 저장시키고, 액티비티 추출 대상이 된 워크플로우, 컨피규레이션된 액티비티, 및 메타데이터를 구분하여 각각 저장시킨다.
바람직하게는, 워크플로우 처리 시스템은 테넌트들이 하나의 워크플로우를 공유하려고 할 때 구동한다.
바람직하게는, 액티비티 추출부는 제어 기능 액티비티, 할당 기능 액티비티, 및 시스템 연동 기능 액티비티 중에서 선택된 적어도 하나의 액티비티를 추출한다.
또한, 본 발명은 소프트웨어 서비스를 제공하기 위한 워크플로우(workflow)와 관련된 적어도 하나의 액티비티(activity)를 추출하는 액티비티 추출 단계; 선택된 테넌트(tenant)에 맞춤된 스키마(schema)를 고려하여 추출된 액티비티를 컨피규레이션(configuration)하는 액티비티 컨피규레이션 단계; 및 액티비티 추출 대상이 된 워크플로우 및 컨피규레이션된 액티비티를 저장시키는 저장 처리 단계를 포함하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법을 제공한다.
바람직하게는, 저장 처리 단계 이후, 선택된 테넌트마다 미리 정해진 제1 액티비티를 편집 요청된 워크플로우의 제2 액티비티 위치에 오버라이딩시켜 편집 요청된 워크플로우를 편집하는 워크플로우 편집 단계; 및 편집된 워크플로우를 테넌트별로 실행시키는 워크플로우 실행 단계를 포함한다.
바람직하게는, 워크플로우 편집 단계는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 기초로 선택된 테넌트마다 제1 액티비티를 정한다. 또는, 워크플로우 편집 단계는 식별자에 대한 정보를 기초로 제1 액티비티와 관련된 제2 액티비티를 결정한다.
바람직하게는, 워크플로우 편집 단계 이전에, 실행 요청된 워크플로우를 오브젝트화시키는 워크플로우 처리 단계를 포함하며, 워크플로우 편집 단계는 오버라이딩 뒤 액티비티 직렬화(serialization)를 수행하여 실행 요청된 워크플로우를 편집하고, 메타데이터가 없으면, 워크플로우 실행 단계는 편집되지 않은 워크플로우를 메타데이터가 없는 모든 테넌트들을 대상으로 공통 실행시킨다.
바람직하게는, 저장 처리 단계는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 더욱 저장시키고, 액티비티 추출 대상이 된 워크플로우, 컨피규레이션된 액티비티, 및 메타데이터를 구분하여 각각 저장시킨다.
바람직하게는, 워크플로우 처리 방법은 테넌트들이 하나의 워크플로우를 공유하려고 할 때 수행된다.
바람직하게는, 액티비티 추출 단계는 제어 기능 액티비티, 할당 기능 액티비티, 및 시스템 연동 기능 액티비티 중에서 선택된 적어도 하나의 액티비티를 추출한다.
본 발명은 다중 테넌트 지원 환경에서 워크플로우를 테넌트 환경에 맞게 컨피규레이션함으로써 다음과 같은 효과를 얻을 수 있다. 첫째, 각각의 테넌트들에게 전용으로 할당된 것과 같이 하나의 워크플로우 인스턴스를 다중 테넌트에게 지원할 수 있다. 둘째, 기존 지원 방법보다 저비용 고효율로 리소스 공유/관리가 가능해진다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티 테넌트를 지원하는 워크플로우 처리 시스템을 개략적으로 도시한 블록도이다.
도 2는 워크플로우 컨피규레이션 방법을 적용한 시스템의 예시도이다.
도 3은 일반적으로 실행될 수 있는 워크플로우의 예시도이다.
도 4는 액티비티 메타데이터 테이블의 예시도이다.
도 5는 워크플로우의 액티비티 컨피규레이션 방법에 대한 이해를 돕기 위한 제1 예시도이다.
도 6은 워크플로우의 액티비티 컨피규레이션 방법에 대한 이해를 돕기 위한 제2 예시도이다.
도 7은 사용자가 워크플로우 실행 요청을 할 때 액티비티를 대체하여 테넌트별 컨피규레이션된 워크플로우를 실행해주는 것과 관련한 예시도이다.
도 8은 기본 액티비티를 오버라이딩하여 직렬화한 워크플로우 스크립트의 예시도이다.
도 9는 본 발명의 바람직한 실시예에 따른 워크플로우 처리 방법을 도시한 순서도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 또한, 이하에서 본 발명의 바람직한 실시예를 설명할 것이나, 본 발명의 기술적 사상은 이에 한정하거나 제한되지 않고 당업자에 의해 변형되어 다양하게 실시될 수 있음은 물론이다.
도 1은 본 발명의 바람직한 실시예에 따른 멀티 테넌트를 지원하는 워크플로우 처리 시스템을 개략적으로 도시한 블록도이다. 도 1에 따르면, 워크플로우 처리 시스템(100)은 액티비티 추출부(110), 액티비티 컨피규레이션부(120), 저장 처리부(130) 및 주제어부(140)를 포함한다.
워크플로우 처리 시스템(100)은 멀티 테넌트(multi tenant)를 지원하기 위한 시스템으로서, 액티비티(activity) 기반의 워크플로우(workflow)를 컨피규레이션(configuration)하고 액티비티에 관련된 메타데이터를 관리하는 시스템이다. 특히, 워크플로우 처리 시스템(100)은 온라인 상에서 다중 테넌트(multi tenant)에게 소프트웨어 서비스를 제공하는 SaaS(Software as a Service) 환경에서 워크플로우를 컨피규레이션하고 메타데이터를 관리하는 시스템이다.
본 실시예에서 워크플로우 처리 시스템(100)은 테넌트들이 하나의 워크플로우를 공유하려고 할 때 구동한다.
액티비티 추출부(110)는 소프트웨어 서비스를 제공하기 위한 워크플로우(workflow)와 관련된 적어도 하나의 액티비티(activity)를 추출하는 기능을 수행한다. 액티비티 추출부(110)는 제어 기능 액티비티, 할당 기능 액티비티, 및 시스템 연동 기능 액티비티 중에서 선택된 적어도 하나의 액티비티를 추출한다.
액티비티 컨피규레이션부(120)는 선택된 테넌트(tenant)에 맞춤된 스키마(schema)를 고려하여 추출된 액티비티를 컨피규레이션(configuration)하는 기능을 수행한다.
저장 처리부(130)는 액티비티 추출 대상이 된 워크플로우 및 컨피규레이션된 액티비티를 저장시키는 기능을 수행한다. 저장 처리부(130)는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 더욱 저장시킬 수 있다. 저장 처리부(130)는 액티비티 추출 대상이 된 워크플로우, 컨피규레이션된 액티비티, 및 메타데이터를 구분하여 각각 저장시키는 것도 가능하다.
주제어부(140)는 워크플로우 처리 시스템(100)을 구성하는 각 부의 전체 작동을 제어하는 기능을 수행한다.
하나의 워크플로우 인스턴스(workflow instance)를 멀티 테넌트에게 지원하기 위해, 워크플로우 처리 시스템(100)은 워크플로우 편집부(150)와 워크플로우 실행부(160)를 더욱 포함할 수 있다.
워크플로우 편집부(150)는 테넌트들에 의해 워크플로우의 편집이 요청되면, 선택된 테넌트마다 미리 정해진 제1 액티비티를 편집 요청된 워크플로우의 제2 액티비티 위치에 오버라이딩시켜 편집 요청된 워크플로우를 편집하는 기능을 수행한다. 본 실시예에서 워크플로우 편집부(150)는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 기초로 선택된 테넌트마다 제1 액티비티를 정한다. 또한, 워크플로우 편집부(150)는 식별자에 대한 정보를 기초로 제1 액티비티와 관련된 제2 액티비티를 결정한다. 워크플로우 편집부(150)는 워크플로우 편집을 완료하기 전에 오버라이딩 뒤 액티비티 직렬화(serialization)를 수행할 수 있다.
워크플로우 실행부(160)는 편집된 워크플로우를 테넌트별로 실행시키는 기능을 수행한다. 그런데, 이 기능은 메타데이터가 있는 경우를 가정한 것이다. 메타데이터가 없는 경우, 워크플로우 실행부(160)는 편집되지 않은 워크플로우를 메타데이터가 없는 모든 테넌트들을 대상으로 공통 실행시키는 기능을 수행한다.
한편, 워크플로우 처리 시스템(100)은 워크플로우 처리부를 더욱 포함할 수 있다. 워크플로우 처리부는 실행 요청된 워크플로우를 오브젝트화시키는 기능을 수행한다.
본 실시예에서는 다중 테넌트 지원 환경에서 워크플로우를 테넌트 환경에 맞게 컨피규레이션하는 방법, 다중 테넌트가 하나의 워크플로우 인스턴스를 사용할 때 워크플로우의 액티비티들을 테넌트에 맞게 컨피규레이션할 수 있도록 워크플로우 액티비티를 별도의 메타데이터로 관리하는 방법 등을 제안한다. 하나의 SaaS 기반 서비스를 사용하는 서로 다른 테넌트가 서로 공유하지만 테넌트에 맞춤된 서로 다른 스키마(데이터베이스 테이블)를 사용하고 있을 때, 그 공유된 테이블을 사용하고자 하면 워크플로우 역시 각 테넌트의 스키마에 맞도록 컨피규레이션이 필요하다. 본 실시예에서는 이 점을 고려하여 하나의 워크플로우 인스턴스를 공유할 때 이를 컨피규레이션하는 방법을 제안한다. 이하에서는 워크플로우 처리 시스템(100)의 일실시예에 대해서 설명한다.
도 2는 워크플로우 컨피규레이션 방법을 적용한 시스템의 예시도이다. 도 2의 워크플로우 시스템(200)은 사용자 브라우저와 같은 UI(User Interface: 210)를 통해 온라인으로 워크플로우를 생성/관리/실행하는 방법을 제공한다. 또한, 워크플로우 시스템(200)은 워크플로우 편집기(220)를 통해 정의된 워크플로우를 테넌트별로 편집하는 방법과 워크플로우를 구성하는 액티비티별로 컨피규레이션을 수행하는 방법도 제공한다. 액티비티별 컨피규레이션된 내용은 액티비티에 대한 메타데이터로써 메타데이터 관리기(230)를 통해 메타데이터 저장소(231)에 저장된다. 메타데이터 관리기(230)는 액티비티 관리기(240)와 연동하여 액티비티 자체를 액티비티 저장소(241)에 저장시킨다. 사용자가 워크플로우 실행기(250)를 통해 테넌트별 워크플로우를 실행하려고 할 때, 워크플로우 관리기(260)를 통해 워크플로우 저장소(261)에서 기본 워크플로우를 불러오고, 해당 테넌트 컨피규레이션 정보가 있으면 메타데이터 관리기(230)를 통해 불러와서 테넌트별 워크플로우를 온라인으로 구성하여 제공해 준다. 한편, 워크플로우 편집기(220)를 통해 액티비티를 저장할 때 액티비티별로 메타데이터를 저장한다. 워크플로우 실행 요청시에는 테넌트별 액티비티를 찾아서 이를 기본 워크플로우의 해당 식별자를 가지는 액티비티로 오버라이딩한다.
이상 설명한 바와 같이, 워크플로우 시스템(200)은 액티비티 기반으로 정의된 워크플로우를 테넌트별로 컨피규레이션하는 방법을 제공하고, 컨피규레이션된 액티비티를 메타데이터로 저장하여 관리하는 방법도 제공한다. 테넌트에 속한 사용자가 워크플로우를 사용하려고 할 때, 그 테넌트에 정해진 메타데이터를 이용해 컨피규레이션된 워크플로우를 재구성해 줌으로써 워크플로우 실행시 마치 그 테넌트에 할당된 워크플로우를 사용하는 것과 같은 효과를 내는 동시에, 하나의 워크플로우 인스턴스만 관리하기 때문에 저비용, 고효율의 효과를 낼 수 있다.
도 3은 일반적으로 실행될 수 있는 워크플로우의 예를 나타낸 것이다. 도 3에서 각 도형들은 워크플로우(300)에 존재하는 다양한 액티비티(310)들의 예이다. 액티비티는 제어, 할당, 시스템 연동 등 다양한 형태로 제공될 수 있다.
도 4는 도 2의 메타데이터 관리기가 워크플로우에 대해 테넌트가 컨피규레이션한 액티비티에 대한 메타데이터를 저장하는 스키마의 예를 보여준다. 워크플로우와 액티비티는 각각 할당된 식별자(예컨대, workflow_id, activity id)를 가지고 있으며, 테넌트도 그에 해당하는 식별자(예컨대, tenant_id)를 가지고 있다. 테넌트가 워크플로우의 액티비티들을 컨피규레이션하면, 액티비티 메타데이터 테이블(activity metadata table: 400)에 그 정보를 추가하여 관리하고, 컨피규레이션된 액티비티를 액티비티 저장소에 저장하여 그 위치도 테이블에 같이 저장한다. 이후, 테넌트에 속한 사용자가 워크플로우를 실행할 때 액티비티 메타데이터 테이블(400)을 이용하여 테넌트에 맞춤된 워크플로우를 실행할 수 있다.
도 5와 도 6은 워크플로우의 액티비티 컨피규레이션 방법에 대한 이해를 돕기 위한 예시이다. 도 5는 CRM과 같은 웹기반 SaaS 서비스에서 고객의 구매 정보를 저장하는 데이터베이스 스키마의 예이다. field_a(510)와 field_b(520)는 기본 필드이고, field_c(530)는 특정 테넌트 A가 컨피규레이션하여 추가한 필드라고 하자. 즉, 테넌트 A는 고객의 사용 금액과 별도로 그 중 쿠폰 등으로 할인받은 금액을 따로 관리한다고 하자. 이러한 고객의 다양성을 지원하기 위해서는 데이터를 사용하는 워크플로우에서도 지원되어야 한다.
도 5의 테이블을 이용해서 고객의 구매 정보에 대한 통계를 얻거나 데이터마이닝을 하기 위한 워크플로우가 존재한다고 할 때, 도 3과 같은 워크플로우 액티비티의 일례로 시스템 연동 액티비티, 특히 데이터베이스 연동 액티비티가 있다. 도 6은 도 5의 구매 테이블에서 고객별 사용 금액의 합을 얻으려는 질의문의 예이다. 도 6의 (a)는 사용 금액의 합을 얻는 질의문이고, 도 6의 (b)는 사용 금액 중 할인받은 금액을 제외한 나머지 금액의 합을 얻는 질의문이다. 도 6의 (a)는 기본 워크플로우에 있던 액티비티이고, 도 6의 (b)는 특정 테넌트가 컨피규레이션한 액티비티라고 하자. 이렇게 워크플로우 액티비티에 대한 컨피규레이션을 허용하면 테넌트 A는 (b)와 테넌트에서 추가로 사용하는 필드 field_c를 이용해서 테넌트에 맞춤된 정보를 얻을 수 있어진다.
도 7은 사용자가 워크플로우 실행 요청을 할 때 액티비티를 대체하여 테넌트별 컨피규레이션된 워크플로우를 실행해주는 예를 나타낸다. 워크플로우 실행 요청(S700)이 있으면 워크플로우 오브젝트화(S710)가 수행된다. 이후, 테넌트 메타데이터 존재 여부 판단(S720)을 통해 컨피규레이션된 액티비티가 있을 경우 워크플로우 내의 기본 액티비티를 오버라이딩하고 직렬화(serialization)한다(S730). 이후, 워크플로우를 실행한다(S740). 컨피규레이션된 액티비티가 없는 경우에는, 액티비티 오버라이딩 및 직렬화 과정을 생략하고 워크플로우를 실행한다.
도 8은 기본 액티비티를 오버라이딩하여 직렬화한 워크플로우 스크립트의 예를 도시한 것이다. 도 6에서 설명한 테넌트 A가 워크플로우를 요청할 때, 메타데이터를 이용해서 컨피규레이션 액티비티를 불러와서 오버라이딩 후 직렬화한 워크플로우 스크립트이다. 데이터베이스 액티비티는 SQLActivity로 표시되어 있으며, 도 6의 (b)에서 설명한 질의가 <sqlStmt/>에 도시되어 있다.
다음으로, 워크플로우 처리 시스템(100)의 워크플로우 처리 방법에 대해서 설명한다. 도 9는 본 발명의 바람직한 실시예에 따른 워크플로우 처리 방법을 도시한 순서도이다. 이하 설명할 워크플로우 처리 방법은 테넌트들이 하나의 워크플로우를 공유하려고 할 때 수행된다.
먼저, 소프트웨어 서비스를 제공하기 위한 워크플로우(workflow)와 관련된 적어도 하나의 액티비티(activity)를 추출한다(액티비티 추출 단계, S900). 액티비티 추출 단계(S900)는 제어 기능 액티비티, 할당 기능 액티비티, 및 시스템 연동 기능 액티비티 중에서 선택된 적어도 하나의 액티비티를 추출한다.
이후, 선택된 테넌트(tenant)에 맞춤된 스키마(schema)를 고려하여 추출된 액티비티를 컨피규레이션(configuration)한다(액티비티 컨피규레이션 단계, S910).
이후, 액티비티 추출 대상이 된 워크플로우 및 컨피규레이션된 액티비티를 저장시킨다(저장 처리 단계, S920). 저장 처리 단계(S920)에서는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 더욱 저장시킬 수 있다. 또한, 저장 처리 단계(S920)에서는 액티비티 추출 대상이 된 워크플로우, 컨피규레이션된 액티비티, 및 메타데이터를 구분하여 각각 저장시킬 수 있다.
본 실시예에서는 저장 처리 단계(S920) 이후, 워크플로우 편집 단계와 워크플로우 실행 단계를 수행할 수 있다.
워크플로우 편집 단계는 테넌트들에 의해 워크플로우의 편집이 요청되면, 선택된 테넌트마다 미리 정해진 제1 액티비티를 편집 요청된 워크플로우의 제2 액티비티 위치에 오버라이딩시켜 편집 요청된 워크플로우를 편집하는 단계이다. 워크플로우 편집 단계에서는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 기초로 선택된 테넌트마다 제1 액티비티를 정할 수 있다. 또한, 워크플로우 편집 단계에서는 식별자에 대한 정보를 기초로 제1 액티비티와 관련된 제2 액티비티를 결정할 수 있다. 한편, 워크플로우 편집 단계에서는 오버라이딩 뒤 액티비티 직렬화(serialization)를 수행하여 실행 요청된 워크플로우를 편집할 수 있다.
워크플로우 실행 단계는 메타데이터가 있는 경우 편집된 워크플로우를 테넌트별로 실행시키는 단계이다. 반면, 메타데이터가 없는 경우 편집되지 않은 워크플로우를 메타데이터가 없는 모든 테넌트들을 대상으로 공통 실행시킨다.
한편, 워크플로우 편집 단계와 워크플로우 실행 단계 사이에는 워크플로우 처리 단계가 수행될 수 있다. 워크플로우 처리 단계는 실행 요청된 워크플로우를 오브젝트화시키는 단계이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 소프트웨어 서비스를 제공하기 위한 SaaS 플랫폼 개발에 적용될 수 있다.
100 : 워크플로우 처리 시스템 110 : 액티비티 추출부
120 : 액티비티 컨피규레이션부 130 : 저장 처리부
140 : 주제어부 150 : 워크플로우 처리부
160 : 워크플로우 실행부 200 : 워크플로우 시스템
210 : UI 220 : 워크플로우 편집기
230 : 메타데이터 관리기 231 : 메타데이터 저장소
240 : 액티비티 관리기 241 : 액티비티 저장소
250 : 워크플로우 실행기 260 : 워크플로우 관리기
261 : 워크플로우 저장소 300 : 워크플로우
310 : 액티비티

Claims (16)

  1. 소프트웨어 서비스를 제공하기 위한 워크플로우(workflow)와 관련된 적어도 하나의 액티비티(activity)를 추출하는 액티비티 추출부;
    선택된 테넌트(tenant)에 맞춤된 스키마(schema)를 고려하여 추출된 액티비티를 컨피규레이션(configuration)하는 액티비티 컨피규레이션부; 및
    액티비티 추출 대상이 된 워크플로우 및 컨피규레이션된 액티비티를 저장시키는 저장 처리부
    를 포함하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템.
  2. 제 1 항에 있어서,
    선택된 테넌트마다 미리 정해진 제1 액티비티를 편집 요청된 워크플로우의 제2 액티비티 위치에 오버라이딩시켜 편집 요청된 워크플로우를 편집하는 워크플로우 편집부; 및
    편집된 워크플로우를 테넌트별로 실행시키는 워크플로우 실행부
    를 더욱 포함하는 것을 특징으로 하는 멀티테넌트를 지원하는 워크플로우 처리 시스템.
  3. 제 2 항에 있어서,
    상기 워크플로우 편집부는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 기초로 선택된 테넌트마다 제1 액티비티를 정하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템.
  4. 제 2 항에 있어서,
    상기 워크플로우 편집부는 식별자에 대한 정보를 기초로 제1 액티비티와 관련된 제2 액티비티를 결정하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템.
  5. 제 3 항에 있어서,
    실행 요청된 워크플로우를 오브젝트화시키는 워크플로우 처리부
    를 더욱 포함하며,
    상기 워크플로우 편집부는 상기 오버라이딩 뒤 액티비티 직렬화(serialization)를 수행하여 실행 요청된 워크플로우를 편집하고,
    상기 메타데이터가 없으면, 상기 워크플로우 실행부는 편집되지 않은 워크플로우를 메타데이터가 없는 모든 테넌트들을 대상으로 공통 실행시키는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템.
  6. 제 1 항에 있어서,
    상기 저장 처리부는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 더욱 저장시키고, 액티비티 추출 대상이 된 워크플로우, 컨피규레이션된 액티비티, 및 메타데이터를 구분하여 각각 저장시키는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템.
  7. 제 1 항에 있어서,
    상기 워크플로우 처리 시스템은 테넌트들이 하나의 워크플로우를 공유하려고 할 때 구동하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템.
  8. 제 1 항에 있어서,
    상기 액티비티 추출부는 제어 기능 액티비티, 할당 기능 액티비티, 및 시스템 연동 기능 액티비티 중에서 선택된 적어도 하나의 액티비티를 추출하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 시스템.
  9. 소프트웨어 서비스를 제공하기 위한 워크플로우(workflow)와 관련된 적어도 하나의 액티비티(activity)를 추출하는 액티비티 추출 단계;
    선택된 테넌트(tenant)에 맞춤된 스키마(schema)를 고려하여 추출된 액티비티를 컨피규레이션(configuration)하는 액티비티 컨피규레이션 단계; 및
    액티비티 추출 대상이 된 워크플로우 및 컨피규레이션된 액티비티를 저장시키는 저장 처리 단계
    를 포함하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법.
  10. 제 9 항에 있어서,
    선택된 테넌트마다 미리 정해진 제1 액티비티를 편집 요청된 워크플로우의 제2 액티비티 위치에 오버라이딩시켜 편집 요청된 워크플로우를 편집하는 워크플로우 편집 단계; 및
    편집된 워크플로우를 테넌트별로 실행시키는 워크플로우 실행 단계
    를 더욱 포함하는 것을 특징으로 하는 멀티테넌트를 지원하는 워크플로우 처리 방법.
  11. 제 10 항에 있어서,
    상기 워크플로우 편집 단계는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 기초로 선택된 테넌트마다 제1 액티비티를 정하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법.
  12. 제 10 항에 있어서,
    상기 워크플로우 편집 단계는 식별자에 대한 정보를 기초로 제1 액티비티와 관련된 제2 액티비티를 결정하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법.
  13. 제 11 항에 있어서,
    실행 요청된 워크플로우를 오브젝트화시키는 워크플로우 처리 단계
    를 더욱 포함하며,
    상기 워크플로우 편집 단계는 상기 오버라이딩 뒤 액티비티 직렬화(serialization)를 수행하여 실행 요청된 워크플로우를 편집하고,
    상기 메타데이터가 없으면, 상기 워크플로우 실행 단계는 편집되지 않은 워크플로우를 메타데이터가 없는 모든 테넌트들을 대상으로 공통 실행시키는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법.
  14. 제 9 항에 있어서,
    상기 저장 처리 단계는 컨피규레이션된 액티비티와 액티비티 추출 대상이 된 워크플로우를 관련시키는 메타데이터를 더욱 저장시키고, 액티비티 추출 대상이 된 워크플로우, 컨피규레이션된 액티비티, 및 메타데이터를 구분하여 각각 저장시키는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법.
  15. 제 9 항에 있어서,
    상기 워크플로우 처리 방법은 테넌트들이 하나의 워크플로우를 공유하려고 할 때 수행되는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법.
  16. 제 9 항에 있어서,
    상기 액티비티 추출 단계는 제어 기능 액티비티, 할당 기능 액티비티, 및 시스템 연동 기능 액티비티 중에서 선택된 적어도 하나의 액티비티를 추출하는 것을 특징으로 하는 멀티 테넌트를 지원하는 워크플로우 처리 방법.
KR1020100129530A 2010-12-16 2010-12-16 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법 KR20120067889A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100129530A KR20120067889A (ko) 2010-12-16 2010-12-16 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법
US13/308,732 US20120158453A1 (en) 2010-12-16 2011-12-01 Workflow processing system for supporting multi-tenant, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100129530A KR20120067889A (ko) 2010-12-16 2010-12-16 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20120067889A true KR20120067889A (ko) 2012-06-26

Family

ID=46235560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100129530A KR20120067889A (ko) 2010-12-16 2010-12-16 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법

Country Status (2)

Country Link
US (1) US20120158453A1 (ko)
KR (1) KR20120067889A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798523B2 (en) 2015-06-11 2017-10-24 Electronics And Telecommunications Research Institute Method for generating workflow model and method and apparatus for executing workflow model
KR20230136079A (ko) 2023-04-17 2023-09-26 주식회사 누빅스 기업 간 데이터 호환을 위한 클라우드 기반 데이터 공유 방법
KR20230136080A (ko) 2023-04-17 2023-09-26 주식회사 누빅스 기업 간 데이터 호환을 위한 메타데이터를 이용한 클라우드 기반 데이터 공유 방법
KR20230136082A (ko) 2023-06-30 2023-09-26 주식회사 누빅스 서비스형 소프트웨어를 기반으로 하는 클라우드 사이에서저장된 데이터를 호환하는 방법
KR20230136081A (ko) 2023-06-30 2023-09-26 주식회사 누빅스 서비스형 소프트웨어를 기반으로 클라우드에 저장된데이터를 호환하는 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539078B2 (en) * 2010-07-08 2013-09-17 International Business Machines Corporation Isolating resources between tenants in a software-as-a-service system using the estimated costs of service requests
US9292342B2 (en) 2012-12-26 2016-03-22 Microsoft Technology Licensing, Llc Schedule based execution with extensible continuation based actions
US9317323B2 (en) 2012-12-26 2016-04-19 Microsoft Technology Licensing, Llc Dynamic execution log in a distributed system
CN103399942B (zh) * 2013-08-14 2016-06-29 山大地纬软件股份有限公司 一种支持SaaS多租户的数据引擎系统及其工作方法
US9201908B2 (en) * 2013-08-22 2015-12-01 Sap Portals Israel Ltd Multi-layered multi-tenancy database architecture
US10893033B2 (en) 2018-06-28 2021-01-12 Salesforce.Com, Inc. Accessing client credential sets using a key
CN113487273A (zh) * 2021-06-21 2021-10-08 深圳市信润富联数字科技有限公司 基于Activiti的多租户实例监控系统及方法
CN113947391B (zh) * 2021-12-20 2022-04-08 深圳市明源云采购科技有限公司 基于web的采招系统管理方法、装置、设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442528B1 (en) * 1998-06-05 2002-08-27 I2 Technologies Us, Inc. Exemplar workflow used in the design and deployment of a workflow for multi-enterprise collaboration
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US20060235714A1 (en) * 2005-01-14 2006-10-19 Adinolfi Ronald E Enabling flexible scalable delivery of on demand datasets
US20070156486A1 (en) * 2005-12-29 2007-07-05 Microsoft Corporation Multiple concurrent workflow persistence schemes
US8799181B2 (en) * 2006-05-09 2014-08-05 Sag Ag Business process federated repository
US8356274B2 (en) * 2008-07-07 2013-01-15 International Business Machines Corporation System and methods to create a multi-tenancy software as a service application
US8869099B2 (en) * 2008-07-28 2014-10-21 Infosys Limited System and method of enabling multi-tenancy for software as a service application
US8484610B2 (en) * 2010-03-17 2013-07-09 Microsoft Corporation Workflow execution model
US8863119B2 (en) * 2010-05-27 2014-10-14 Salesforce.Com, Inc. Methods and systems for generating a dynamic workflow in a multi-tenant database environment
US8868582B2 (en) * 2010-08-23 2014-10-21 Sap Ag Repository infrastructure for on demand platforms
US20120079409A1 (en) * 2010-09-28 2012-03-29 Guiluan Luo Workflow management at a document processing device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798523B2 (en) 2015-06-11 2017-10-24 Electronics And Telecommunications Research Institute Method for generating workflow model and method and apparatus for executing workflow model
KR20230136079A (ko) 2023-04-17 2023-09-26 주식회사 누빅스 기업 간 데이터 호환을 위한 클라우드 기반 데이터 공유 방법
KR20230136080A (ko) 2023-04-17 2023-09-26 주식회사 누빅스 기업 간 데이터 호환을 위한 메타데이터를 이용한 클라우드 기반 데이터 공유 방법
KR20230136082A (ko) 2023-06-30 2023-09-26 주식회사 누빅스 서비스형 소프트웨어를 기반으로 하는 클라우드 사이에서저장된 데이터를 호환하는 방법
KR20230136081A (ko) 2023-06-30 2023-09-26 주식회사 누빅스 서비스형 소프트웨어를 기반으로 클라우드에 저장된데이터를 호환하는 방법

Also Published As

Publication number Publication date
US20120158453A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
KR20120067889A (ko) 멀티 테넌트를 지원하는 워크플로우 처리 시스템 및 그 방법
CN111027921B (zh) 一种业务处理方法、装置及电子设备和存储介质
US9591038B2 (en) Feature set differentiation by tenant and user
US9311316B2 (en) Infrastructure identification of available platforms for migration in place
US20140208215A1 (en) Methods and systems for providing filtered report visualizations
CN102236835B (zh) 用于企业内容管理系统的整合框架
US9032367B2 (en) Providing a demo appliance and migrating the demo appliance to a production appliance
US11698891B2 (en) Database systems and related multichannel communication methods
US8630969B2 (en) Systems and methods for implementing business rules designed with cloud computing
US9043750B2 (en) Automated generation of two-tier mobile applications
US20110055177A1 (en) Collaborative content retrieval using calendar task lists
US10476878B2 (en) Access permissions management system and method
US10891298B2 (en) Systems and methods for package component visualizations
US20140173720A1 (en) System and method for controlling the on and off state of features at runtime
US9152966B2 (en) Data reporting framework across on-premise and hosted CRM services
US9069448B2 (en) Filtering objects in a multi-tenant environment
US20170168918A1 (en) Sandboxing for Custom Logic
US11461218B1 (en) Analyzing user API usage from recorded API macros for software product improvement
US11210198B2 (en) Distributed web page performance monitoring methods and systems
KR20150084006A (ko) 사전정의된 쿼리로 뷰를 필터링하는 기법
US9141442B1 (en) Automated connector creation for provisioning systems
US20130304547A1 (en) Investment valuation projections in an on-demand system
US20160266900A1 (en) Information processing apparatus, work flow creation method, and storage medium
US11340968B1 (en) Executing repetitive custom workflows through API recording and playback
CN107784488A (zh) 一种松散耦合的业务流程管理系统

Legal Events

Date Code Title Description
A201 Request for examination
WITB Written withdrawal of application