KR20100027124A - 데이터 서버 관리형 웹 서비스 런타임용 장치, 시스템 및 방법 - Google Patents

데이터 서버 관리형 웹 서비스 런타임용 장치, 시스템 및 방법 Download PDF

Info

Publication number
KR20100027124A
KR20100027124A KR1020097025240A KR20097025240A KR20100027124A KR 20100027124 A KR20100027124 A KR 20100027124A KR 1020097025240 A KR1020097025240 A KR 1020097025240A KR 20097025240 A KR20097025240 A KR 20097025240A KR 20100027124 A KR20100027124 A KR 20100027124A
Authority
KR
South Korea
Prior art keywords
web service
runtime
web
metadata
data access
Prior art date
Application number
KR1020097025240A
Other languages
English (en)
Other versions
KR101055030B1 (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 KR20100027124A publication Critical patent/KR20100027124A/ko
Application granted granted Critical
Publication of KR101055030B1 publication Critical patent/KR101055030B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

데이터 서버 관리형 웹 서비스 런타임(data server-managed web services runtime)을 생성하고 관리하는 장치, 시스템 및 방법. 범용 웹 서비스 런타임 모듈 및 연관된 런타임 제어기는 애플리케이션 서버 상에 전개된다. 런타임 제어기는 이용 가능한 데이터 액세스 기반 웹 서비스를 정의하는 웹 서비스 메타데이터의 변경에 대해 웹 서비스 관리 메타데이터 저장소를 감시한다. 변경이 검출되면, 범용 웹 서비스 런타임은 웹 서비스 메타데이터의 변경이 데이터 액세스 기반 웹 서비스에 반영되도록, 영향을 받는 웹 서비스와 관련된 웹 서비스 종단점 인터페이스 및 웹 서비스 아티팩트(web service artifacts)를 자동으로 업데이트한다. 사용자는 웹 서비스 관리 메타데이터 저장소를 관리하고, 애플리케이션 서버와 상호 통신하지 않고서도, 웹 서비스 관리 메타데이터 저장소를 포함하는 데이터베이스로부터 데이터 액세스 기반 웹 서비스를 정의하고 관리한다.

Description

데이터 서버 관리형 웹 서비스 런타임용 장치, 시스템 및 방법{APPARATUS, SYSTEM, AND METHOD FOR A DATA SERVER-MANAGED WEB SERVICES RUNTIME}
본 발명은 웹 서비스(web services)의 생성 및 관리에 관한 것이다. 더 상세하게는, 본 발명은 데이터베이스 관리 시스템에 의해서 정의되고 관리되는 웹 서비스의 생성에 관한 것이다.
컴퓨터 산업은, 전세계에서는 다양한 플랫폼, 언어 및 OS(operating systems)를 이용하고 있어, 동질성과는 거리가 있다. 또한, 동일한 조직 또는 네트워크 내의 컴퓨터들은 종종 상이한 플랫폼에서 동작한다. 이들 엔티티(entities)가 다른 엔티티와의 상호 통신을 허용하는 것은 그들이 '동일 언어로 통신하는 것'이 아니기 때문에 매우 어렵다. 플랫폼을 통해 통신하는 컴퓨터들의 단점은, 단지 호환성을 제공하기 위해 기능 레거시 시스템(functional legacy systems)의 교체가 필요할 때, 또는, 동일한 기능을 상이한 머신 상에서 제공하기 위해 프로그래머가 하나의 컴퓨터 언어(computing language)로부터 다른 컴퓨터 언어로 코드를 변환 혹은 '이식(port)'해야 할 때, 비용이 증가한다.
웹 서비스는, 네트워크 내의 상이한 플랫폼들 및 프레임워크들(frameworks)간에 통신하기 위한 표준 수단(standard means)을 제공함으로써, 상기 문제에 대한 해결책을 제공한다. 웹 서비스는 통신용 오픈 프로토콜들(open protocols)을 이용하는 자기포함적(self-contained)이면서 자기기술적(self-describing)인 애플리케이션 구성요소(application components)이다. 이들 서비스는, 트랜잭션(transaction)의 참여자가 수락된 웹 서비스 프로토콜을 고수하는 한, 서비스 제공자 및 클라이언트의 기본 플랫폼(underlying platforms)에 관계없이 클라이언트에 의해 호출(invoke)될 수 있다. 전형적으로, 웹 서비스 환경에서는, 클라이언트 및 서버는 HTTP 프로토콜을 고수하면서 SOAP 표준(standard)을 이용하여 XML 메시지를 통신한다. 웹 서비스는 (XML-RPC와 같은) 상이한 서비스 호출 언어들(different service invocation languages) 및 상이한 전송 프로토콜을 이용할 수 있지만, 현재 가장 인기가 높은 것은 SOAP 및 HTTP이다.
일반적으로, 웹 서비스는, 인간에 의해 직접 이용되는 것과는 반대로, 클라이언트 애플리케이션에 의해 기동된다는 것을 의미한다. 웹 서비스는 엔티티가 정보를 공유하는 것을 허용하면서, 이 정보의 소스에 대한 제어를 유지한다. 예컨대, 웹 서비스는, 전체 데이터베이스를 노출시키지 않고 취약성(vulnerabilities)을 일으키지 않고서, 회사들이 어떤 정보로의 액세스를 클라이언트들에게 제공하는데 이용될 수 있다. 예를 들어, 웹 서비스는 클라이언트가, 그 회사의 데이터베이스에 저장된 사용자의 어드레스를 검색하고, 필요에 따라 그 어드레스를 업데이트하는 것을 허용하도록 개발될 수 있다. 웹 서비스는, 양측이 동일한 합의된 플랫 폼(same agreed-upon protocols)을 이용하는 한, 사용되는 플랫폼에 상관없이, 정보를 클라이언트 애플리케이션이 액세스하는 것을 허용한다. 또한, 회사는, 이 정보를 제공하기 위해서 클라이언트에게 데이터베이스를 개방할 필요는 없으며, 이는 정보 공유를 위한 보다 안전한 방법이 된다.
전형적으로, 데이터를 노출시키는 웹 서비스를 생성하는 것은, 서비스 제공자가 애플리케이션을 생성하여 코드를 애플리케이션 서버에 설치하는 것을 수반한다. 웹 서비스 및 그 수명의 관리는 애플리케이션 서버(종종 애플리케이션 서버측 또는 애플리케이션 서버층(application servver side or tier)이라고 불림) 상에서 모두 이루어진다. 웹 서비스를 통해 데이터를 노출시키는 이러한 방법은 애플리케이션 서버와 친숙한 것에 직관적이기는 하지만, 다수의 난점을 갖는다.
먼저, 애플리케이션 서버 상에서의 웹 서비스의 생성 및 관리는 데이터베이스 관리자(Database Administrators) 및, 데이터베이스 환경 밖에서 일하는 한정된 업무 경험을 갖는 다른 사람들에게 힘들 수 있다. 웹 서비스를 작성(writing)하고, 이들을 애플리케이션 서버 상에 전개하고, 그때부터 그들을 관리하는 프로세스는 데이터베이스 생성, 설계 및 관리를 전문으로 하는 개인에게는 귀찮을 수 있다. 데이터베이스 관리자가, 애플리케이션 서버 관리자와 같은 다른 개인에게 데이터베이스에 대한 웹 서비스를 생성하고 관리하게 하면, 데이터베이스 관리자는 데이터베이스의 일부 제어 권한을 포기하게 된다. 즉, 별개의 개인에 의해 별개의 서버 상에서 관리되는 웹 서비스를 통해 데이터로의 액세스가 가능할 것이다. 개발된 웹 서비스는, 데이터베이스 관리자가 허용하지 않으려고 한 데이터에 대한 변경을 가능하게 하고, 데이터베이스의 유지 보수를 위해 웹 서비스를 셧다운하는 것은 시스템 관리자에 의해 웹 서비스가 애플리케이션 서버에서 중단되어 재기동될 필요가 있을 때에, 한층 복잡성을 더한다.
애플리케이션 서버와 친숙한 웹 서비스일지라도, 데이터베이스 내의 정보에 액세스하는 데 사용되는 것과 같은 웹 서비스를 개발하고 전개하는 것은 시간 소모적인 처리이다. 웹 서비스를 개발하기 위해서는, 애플리케이션 개발자는 Java(Java 또는 Java 기반 상표들은 미국, 그외 나라, 또는 모두에서 Sun Microsystems, Inc.의 상표들임) 또는 C++과 같은 지원 프로그래밍 언어로 서비스를 코딩하고, 데이터베이스 내의 정보에 액세스하기 위해 SQL, XQuery 또는 다른 데이터 액세스 명령문(other data access statements)을 작성하고, 명칭 공간(namespaces), 작업 이름(operation names), 및 메시지 스타일(message style)을 제공하고, 그 코드를 전개 가능한 구성요소로 패키지화한다. 웹 서비스를 전개하기 위해서는, 웹 애플리케이션 관리자는 데이터 서버를 위한 데이터 소스를 셋업하고 구축하고, 애플리케이션으로서 웹 서비스를 전개하고, 보안 및 리소스 기준(security and resource references)과 같은 웹 서비스에 대한 설정을 구성한다. 웹 애플리케이션 관리자는 웹 서비스의 수명을 관리하는데, 이는 또한 많은 상기 단계들의 많은 부분을 반복하는 것을 요구할 수 있다.
또한, 높은 가용성을 제공하기 위해 복수의 애플리케이션 서버들 또는 노드들에 걸쳐 웹 서비스가 배포되면, 웹 서비스를 위한 코드는 수동으로 복제되고, 유지되며, 해당 코드가 위치하는 모든 서버 간에 동기화가 유지되어야 한다. 이들 애플리케이션 서버 자체는 동일 타입이 아닐 수 있어, 사용자가 각 시스템의 요건에 따라 전개 및 관리의 각 개별적 경우를 처리할 필요가 있다. 전술한 것에 대한 결과로서, 웹 서비스의 생성, 개발, 유지 보수는, 특히 이종 환경에 있어서, 웹 서비스 수명 내에서 언제나 조직에 고비용을 초래할 수 있다.
전술한 설명으로부터, 애플리케이션 서버측과는 대조적으로, 데이터베이스 관리자 또는 데이터베이스 층(tier) 또는 데이터베이스측과 친숙한 다른 사용자가 데이터베이스측으로부터 용이하고 효율적으로 웹 서비스를 생성, 제어 및 전개하는 것을 허용하는 데이터 서버 관리형 웹 서비스 툴이 필요한 것은 명백하다. 이 툴은, 데이터베이스 관리자가 웹 서비스를 효율적으로 감시하고 관리할 수 있도록, 애플리케이션 서버 상에서의 웹 서비스의 동작 및 관리의 세부 내용을 DBMS(Database Management System)으로부터 이상적으로 분리시킨다. 이 툴은 또한, 웹 서비스가 전개되는 애플리케이션 서버의 수 및 타입에 상관없이 웹 서비스의 관리를 중앙 집중화한다.
본 발명은, 해당 분야의 현재 기술수준 및, 특히 아직 완전히 해결되지 않은 해당 분야에서의 문제 및 필요성에 따라 개발되었다. 따라서, 본 발명은 해당 분야에서의 전술한 많은 단점을 해결하는 데이터 서버 관리형 웹 서비스 런타임을 생성 및 관리하는 장치, 시스템 및 방법을 제공하기 위해 개발되고 있다.
본 발명은, 컴퓨터 프로그램 제품을 구비하며, 컴퓨터 프로그램 제품의 동작은, 웹 서비스 관리 메타데이터 저장소 내의 웹 서비스 메타데이터에 액세스하는 단계와, 웹 서비스 관리 메타데이터 저장소 내의 웹 서비스 메타데이터의 변경이 있는지를 판단하는 단계와, 웹 서비스 관리 메타데이터 저장소 내의 웹 서비스 메타데이터의 변경에 응답하여 데이터 액세스 기반 웹 서비스를 자동으로 관리하는 단계를 구비하고, 데이터 액세스 기반 웹 서비스는 애플리케이션 서버 상에서 전개되는 범용(generic) 웹 서비스 런타임 모듈과 협력하여 실행되고, 애플리케이션 서버는 웹 서비스의 동적 전개를 지원한다.
웹 서비스 메타데이터의 변경이 웹 서비스 관리 메타데이터 저장소에 부가되는 웹 서비스 메타데이터를 포함하는 경우, 자동으로 데이터 액세스 기반 웹 서비스를 관리하는 단계는, 웹 서비스 관리 메타데이터 저장소로부터 웹 서비스 구성 문서를 검색하는 단계와, 웹 서비스 구성 스키마를 만족하는 웹 서비스 구성 문서로부터 웹 서비스 아티팩트(web service artifact)를 생성하는 단계와, 범용 웹 서비스 런타임 모듈과 관련된 요청 프로세서가 웹 서비스 아티팩트와 관련된 요청을 수용하도록 웹 서비스 아티팩트를 개시하는 단계를 더 구비한다. 웹 서비스 아티팩트를 개시하는 단계는 범용 웹 서비스 런타임 모듈의 재개시 없이 웹 서비스 아티팩트가 웹 서비스 요청을 실행하는 것을 더 구비한다.
웹 서비스 메타데이터의 변경은 웹 서비스 관리 메타데이터 저장소로부터 제거되는 웹 서비스 메타데이터를 포함하는 경우, 자동으로 데이터 액세스 기반 웹 서비스를 관리하는 단계는 제거되는 웹 서비스 메타데이터에 의해 식별되는 데이터 액세스 기반 웹 서비스와 연관된 웹 서비스 런타임 아티팩트를 비활성화하는 단계를 구비한다.
어떤 실시예에 있어서, 웹 서비스 메타데이터의 변경은 웹 서비스 관리 메타데이터 저장소에 정의된 웹 서비스와 연관된 타임스탬프(timestamp)를 평가함으로써 판정된다. 또한, 컴퓨터 프로그램 제품은 사용자가 웹 서비스 관리 메타데이터 저장소 내의 웹 서비스 메타데이터를 정의하는 것을 더 구비할 수 있다. 웹 서비스 메타데이터는 웹 서비스명, 웹 서비스 구성 문서, WSDL(web services description language) 문서, 웹 서비스 상태, 및 타임스탬프를 더 구비한다.
어떤 실시예에 있어서, 웹 서비스 구성 문서는 XML 파일이며, 웹 서비스 구성 스키마는 XML 스키마 문서이고, 웹 서비스 구성 문서는 데이터 저장소상에서의 SQL(Structured Query Language) 데이터 연산을 명시한다. 컴퓨터 프로그램 제품은 데이터 액세스 기반 웹 서비스에 연관된 WSDL을 발행하는 단계를 더 구비할 수 있다.
또한 전술한 것은 데이터 서버 관리형 웹 서비스 런타임의 연산을 위한 시스템이며, 그 시스템은 웹 서비스의 동적 전개의 지원 및, 복수의 웹 서비스 런타임 모듈의 호스팅을 위해 구성된 애플리케이션 서버를 구비하고, 애플리케이션 서버는 메모리 디바이스 및 적어도 하나의 프로세서를 구비한다. 시스템은, 웹 서비스명, 웹 서비스 구성 문서, WSDL(web services descriptiion language) 문서, 웹 서비스 상태 및 타임스탬프를 구비하는 웹 서비스 관리 메타데이터 저장소와, 웹 서비스 액세스 가능 데이터 및 저장 프로시저(stored procedures)를 구비하는 데이터 액세스 기반 웹 서비스 데이터 저장소를 더 구비한다. 시스템은, 애플리케이션 서버 상에서 동작하고 단일의 고유 범용 웹 서비스 런타임을 관리하도록 구성된 런타임 제어기와, 애플리케이션 서버 상에서 동작하고 웹 서비스 구성 문서에 근거하여 하나 이상의 웹 서비스에 대한 하나 이상의 웹 서비스 아티팩트를 생성하도록 구성된 범용 웹 서비스 런타임 모듈을 더 구비한다.
어떤 실시예에 있어서, 시스템은 또한, 웹 서비스 관리 메타데이터 저장소와 통신하도록 구성된 웹 서비스 메타데이터 툴을 또한 구비하며, 웹 서비스 메타데이터 툴은, 데이터 액세스 기반 웹 서비스로서의 전개에 이용될 수 있는 데이터 액세스 기반 웹 서비스 데이터 및 저장 프로시저를 사용자에게 노출시키고, 사용자로부터 메터데이터를 수신하도록 구성되며, 메타데이터는 새로운 데이터 액세스 기반 웹 서비스를 정의한다. 웹 서비스 메타데이터 툴은 사용자 메타데이터로부터 웹 서비스 구성 문서 및 WSDL 문서를 생성하고, 웹 서비스명, 웹 서비스 구성 문서, WSDL 문서, 상태 및 타임스탬프를 웹 서비스 관리 메타데이터 저장소에 저장한다.
런타임 제어기는, 웹 서비스 관리 메타데이터 저장소의 변경을 판정하고, 그 변경을 범용 웹 서비스 런타임 모듈에 통보하는 동기화 모듈과, 웹 서비스 엔진 내의 웹 서비스 종단점 인터페이스 정의를 유지하도록 구성된 종단점(endpoint) 인터페이스 동기화 모듈과, 범용 웹 서비스 런타임 모듈 상에서 웹 서비스 아티팩트 상에서 연산을 개시하고 중단시킬 수 있도록 구성된 관리 모듈을 더 구비한다.
본 발명은 또한 데이터 서버 관리 런타임의 연산을 위한 시스템도 개시하며, 그 시스템은, 웹 서비스의 동적 전개를 지원하고 복수의 웹 서비스 런타임 모듈 및 런타임 제어기를 호스팅하도록 구성된 복수의 애플리케이션 서버와, 복수의 데이터베이스를 구비하며, 데이터베이스는 공통 웹 서비스 관리 메타데이터 저장소 및 공통 데이터 액세스 기반 웹 서비스 데이터 저장소를 더 구비하고, 복수의 웹 서비스 런타임 모듈은 복수의 애플리케이션 서버 중 하나의 애플리케이션 서버 상에서 동작되고, 웹 서비스 구성 문서에 근거하여 하나 이상의 웹 서비스에 대한 하나 이상의 웹 서비스 아티팩트를 생성하도록 구성되고, 복수의 범용 웹 서비스 런타임 모듈은 복수의 애플리케이션 서버 중 하나의 애플리케이션 서버 상에서 동작하고, 웹 서비스 구성 문서에 근거하여 하나 이상의 웹 서비스에 대한 하나 이상의 웹 서비스 아티팩트를 생성하도록 구성된다.
복수의 애플리케이션 서버 상의 범용 웹 서비스 런타임 모듈은 데이터 액세스 기반 웹 서비스를 정의하는 리던던트 웹 서비스 아티팩트(redundant web service artifacts)를 더 구비하며, 리던던트 웹 서비스 아티팩트는 공통 웹 서비스 관리 메타데이터 저장소에 저장된 웹 서비스 메타데이터로부터 유도된다. 어떤 실시예에 있어서, 복수의 애플리케이션 서버는 이종 플랫폼(heterogeneous platforms)을 구비한다. 애플리케이션 서버는 또한, 복수의 런타임 제어기 및 범용 웹 서비스 런타임 모듈을 구비할 수 있으며, 런타임 제어기는 연관된 고유 범용 웹 서비스 런타임 모듈을 갖는다.
본 명세서 전반에 걸쳐 특징, 장점 또는 유사한 언어의 언급은 본 발명을 실현할 수 있는 모든 특징 및 장점이 본 발명의 어떠한 단일 실시예이거나 단일 실시예 내에 있음을 내포하지 않는다. 오히려, 그 특징 장점에 관한 언어는, 일 실시예와 연관되어 기술되는 특정한 특징, 장점 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미함을 이해할 것이다. 따라서, 본 명세서 전반에 걸친 그 특징 및 장점의 설명 및, 유사한 언어는, 반드시 필요하지는 않지만, 동일한 실시예를 가리킨다.
더욱이, 본 발명의 전술한 특징, 장점 및 특성은 어떠한 적절한 방식으로 하나 이상의 실시예로 조합될 수 있다. 당업자라면, 특정 실시예의 하나 이상의 특정한 특징 및 장점 없이도 본 발명을 실시할 수 있음을 이해할 수 있을 것이다. 다른 예에 있어서, 본 발명의 모든 실시예에서 나타내지 않을 수 있는 어떠한 실시예에서 다른 추가 특징 및 장점을 실현할 수 있을 것이다.
본 발명의 이러한 특징들 및 장점들은 이하의 상세한 설명 및 첨부된 청구의 범위로부터 더욱 완전하게 명백해지거나, 후술하는 바와 같이 본 발명의 실시에 의해 인식될 수 있을 것이다.
본 발명의 장점을 용이하게 이해하기 위해서, 간단히 전술한 본 발명의 더 상세한 설명을 첨부된 도면에 설명하는 특정 실시예들을 참조하여 나타낼 것이다. 이들 도면들은 단지 본 발명의 전형적 실시예를 나타내며 그 범위를 한정하는 것으로 간주되지 않아야 함을 이해해야 하고, 본 발명은 첨부된 도면을 이용하여 부가적 구체성 및 세부를 기술하고 설명될 것이다.
도 1은 본 발명에 따른 웹 서비스 시스템의 일 실시예를 나타내는 개략 블록도,
도 2는 본 발명에 따른 데이터베이스 및 웹 서비스 메타데이터 툴(web service metadata tool)의 일 실시예를 나타내는 개략 블록도,
도 3은 본 발명에 따른 애플리케이션 서버의 일 실시예를 나타내는 개략 블록도,
도 4는 본 발명에 따라, 복수의 애플리케이션 서버 및 복수의 데이터베이스를 구비하는 웹 서비스 시스템의 일 실시예를 나타내는 개략 블럭도,
도 5는 본 발명에 따른 범용 웹 서비스 런타임 모듈을 전개하는 방법의 일 실시예를 나타내는 개략적 흐름도,
도 6은 본 발명에 따른 웹 서비스 생성 방법의 일 실시예를 나타내는 개략적 흐름도,
도 7은 본 발명에 따른 웹 서비스 요청 처리 방법의 일 실시예를 나타내는 개략적 흐름도이다.
본 명세서에서 설명하는 많은 기능적 유닛들은, 특히 그들의 구현 독립성을 더욱 강조하기 위해서, 모듈로서 라벨링되어 있다. 예컨대, 모듈은, 주문형 VLSI 회로(custom VLSI circuits) 또는 게이트 어레이를 구비하는 하드웨어 회로, 로직 칩(logic chips), 트랜지스터와 같은 기존의 반도체(off-the-shelf semiconductors) 또는 다른 이산 구성요소(other discrete components)로서 구현될 수 있다. 또한 모듈은, 프로세서 및 메모리 다바이스와 같은 프로그램 가능한 하 드웨어 디바이스, FPGA(field programmable gate arrays), PAL(programmable array logic), PLD(programmable logic devices) 등으로 구현될 수 있다.
또한 모듈들은 다양한 형태의 프로세서에 의해 실행되는 소프트웨어로 구현될 수 있다. 실행 코드의 식별 모듈(identified module)은 예컨대 오브젝트(object), 프로시저(procedure), 또는 함수로 구성될 수 있는 예를 들면 컴퓨터 명령어의 하나 이상의 물리 블럭 또는 논리 블럭을 구비할 수 있다. 그럼에도 불구하고, 식별 모듈의 실행 가능한 부분들은, 물리적으로 함께 배치될 필요는 없지만, 논리적으로 함께 결합되면, 모듈을 구성하여 모듈의 지정된 목적을 달성할 수 있는 상이한 위치에 저장된 별개의 명령어를 포함할 수 있다.
실제로, 실행 코드의 모듈은 단일 명령어이거나, 다수의 명령어일 수 있으며, 여러 메모리 디바이스에 걸쳐 상이한 프로그램 중에, 여러 다른 코드 라인에 걸쳐 분산될 수도 있다. 마찬가지로, 여기서 연산 데이터(operational data)는 모듈 내에서 식별되어 나타내고 있으며, 어떤 적당한 형태에 포함되어 어떠한 적당한 타입의 데이터 구조로 조직화될 수 있다. 연산 데이터는 단일 데이터 세트로서 수집되거나, 상이한 저장 디바이스를 포함하는 상이한 위치들에 걸쳐 분산될 수도 있다.
본 명세서 전반에 걸쳐 "일 실시예", "실시예" 또는 유사한 언어로 기재한 것은, 해당 실시예와 관련하여 기술된 특유의 특성, 구성, 또는 특징이 본 발명의 적어도 일 실시예에 포함됨을 의미한다. 따라서, 본 명세서 전반에 걸쳐 구문 "일 실시예에서", "실시예에서" 및 그와 유사한 언어의 의미는, 반드시는 아니지만, 모 두 동일한 실시예를 가리키는 것이다.
더욱이, 기술한 본 발명의 특성, 구성 또는 특징은 어떠한 적당한 방식으로 하나 이상의 실시예로 조합될 수 있다. 이하의 설명에 있어서, 많은 상세한 설명은, 프로그래밍, 소프트웨어 모듈, 사용자 선택(user selections), 네트워크 트랜잭션(network transactions), 데이터베이스 쿼리(database queries), 하드웨어 모듈, 하드웨어 회로, 하드웨어 프로세서 및 메모리, 하드웨어 칩 등의 예로서 제공되어, 본 발명의 실시예의 완전한 이해를 돕는다. 그러나, 당업자라면, 하나 이상의 상세한 설명이 없이, 다른 방식, 구성요소, 소재 등으로 실시할 수 있을 것이다. 즉, 공지된 구조, 요소 또는 동작은 본 발명이 불명확해지는 것을 방지하기 위해 상세히 도시하지 않거나 설명하지 않는다.
도 1은 본 발명에 따른 웹 서비스 시스템(100)의 일 실시예를 나타내는 블록도이다. 본 출원서 전반에 걸쳐 나타낸 실시예들은 특히 웹 서비스 및 웹 서비스 시스템에 대해 기술하고 있지만, 당업자라면 본 발명이 모든 네트워크 프로토콜에 관한 것임을 알 수 있을 것이다. 웹 서비스 시스템(100)은 클라이언트(160), 애플리케이션 서버(102), 및 데이터베이스(130)를 포함한다. 웹 서비스 시스템(100)은, 각 구성요소의 기본 플랫폼의 고유 호환성에 관계없이, 클라이언트(160)가 애플리케이션 서버(102) 및 데이터베이스(130)와 연관된 리소스 및 서비스로 액세스하는 것을 허용한다. 웹 서비스 시스템(100)은, 클라이언트(160)가 이용 가능한 웹 서비스에 의해 정의된 바와 같이, 데이터베이스(130)와 연관된 리소스에 액세스할 수 있는 경우, 데이터베이스(160) 상에서 직접 그들 동작을 직접 실행시키지 않 고, 분산된 컴퓨팅(computing)을 활성화한다. 오히려, 클라이언트(160)가 애플리케이션 서버(102)로부터 이용 가능한 동작을 요청하고, 애플리케이션 서버(102)는 이 요청에 관련되는 동작을 실행해서, 그 결과를 클라이언트(160)에게 리턴한다.
웹 서비스 시스템(100)은 임의의 수의 웹 서비스를 제공할 수 있지만, 본 발명의 포커스는 데이터 액세스 기반 웹 서비스이다. 데이터 액세스 기반 웹 서비스는 데이터베이스(130) 상에서 데이터베이스 조작(operation)을 행하는 것이 주 기능(primary fuction)인 웹 서비스이다. 이들 조작은 데이터베이스(130) 내의 테이블 및 레코드의 추가, 제거, 또는 편집뿐만 아니라, 저장 프로시저의 액세싱을 포함할 수 있다. 데이터 액세스 기반 웹 서비스는 또한 웹 서비스의 일부로서 다른 조작을 포함할 수도 있다. 예를 들면, 데이터 액세스 기반 웹 서비스는, 결과를 리턴하기 전에, 데이터베이스(130)로부터 검색된 데이터에 대해, 현재의 한 양식으로부터 다른 양식으로의 변환과 같은 추가 조작을 행할 수 있다.
애플리케이션 서버(102)는 복수의 애플리케이션을 실행하고 관리하도록 구현된 소프트웨어 프로그램이다. 이 애플리케이션은 클라이언트 컴퓨터 또는 디바이스에 애플리케이션 서비스를 전달한다. 애플리케이션 서버(102)는 전형적으로 웹 서비스를 제공하기 위한 미들웨어(middleware) 및 공지된 모듈을 포함한다. 일 실시예에서는, 애플리케이션 서버(102)는 IBM WebSphere Application Server(IBM 및 WebSphere는 International Business Machines Corporation의 등록 상표임)이다. 애플리케이션 서버(102)는 데이터 액세스 서비스를 제공하기 위한 서비스 지향 아키텍쳐(service-oriented architecture)의 일부로서 기능할 수 있다.
애플리케이션 서버(102)는 또한 웹 서비스의 동적 전개(dynamic deployment)를 지원한다. 동적 전개, 즉 '핫 디플로이먼트(hot deployment)' 및 '동적 리로딩(dynamic reloading)'은, 변경 내용이 발휘되기 전에 애플리케이션 서버(102)를 정지하거나 재개시하는 것이 없이도, 구성요소를 애플리케이션 서버(102)에 부가하거나 또는 구성요소를 편집할 수 있게 해준다. 동적 전개는 또한 애플리케이션 서버(102)의 재개시없이 구성요소의 제거도 허용한다. 동적 전개를 지원하는 애플리케이션 서버(102)에서는, 웹 서비스 전개 정보를 웹 서비스 엔진(공통적으로 SOAP 엔진으로도 언급됨)(104)에 대해 추가하거나 제거할 수 있으며, 웹 서비스 엔진(104)은 애플리케이션 서버(102)의 재개시의 요구없이 이들 변경을 수용하고 응답한다.
애플리케이션 서버(102)는 웹 서비스 엔진(104)을 더 구비하고 있다. 웹 서비스 엔진(104)은 클라이언트(160)로부터 웹 서비스 요청을 수신하고, 해석하여 처리한다. 웹 서비스 엔진(104)은 또한 웹 서비스 요청 응답을 패키지화하여 클라이언트(160)에게 보낸다. 다양한 상업용 내지는 오픈-소스 웹 서비스 엔진들(commercial and open-source web service engines)이 존재한다. 일 실시예에서는, 이 웹 서비스 엔진(104)은 Apache Axis 엔진이다.
바람직한 실시예에 있어서, 웹 서비스 엔진(104)은 SOAP(Simple Object Access Protocol) 메시지의 수신 및 생성이 가능한 SOAP 엔진이다. W3C 규격(specification)에서는, 비집중화되고 분산된 환경에서 구조화된 정보(structured information)를 교환하기 위한 경량 프로토콜(lightweight protocol)로서 SOAP를 정의하고 있다. SOAP 메시지는 3개 부분, 즉, 메시지의 콘텐츠 및, 그것의 처리 방법을 기술하는 프레임워크(framework)을 정의하기 위한 엔벨로프(envelope), 애플리케이션-정의 데이터타입(application-defined datatypes)을 나타내는 인코딩 룰(encoding rules), 및 원격 프로시저 호출 및 응답(remote procedure calls and responses)을 표현하기 위한 규약(convention)을 구비한다. 웹 서비스 엔진(104)은 SOAP 메시지를 수신하여 해석하고, 또한, SOAP 메시지를 구성하여 보낸다.
본 발명에 따르면, 애플리케이션 서버(102)는 런타임 제어기(runtime controller)(110)를 더 구비한다. 런타임 제어기(110)는 범용 웹 서비스 런타임 모듈(generic web service runtime module)(120)을 관리한다. 런타임 제어기(110)는 웹 서비스 관리 메타데이터 저장소(web services management metadata store)(140) 내의 웹 서비스 메타데이터를 트랙킹 및 감시하여, 웹 서비스 엔진(140)의 서비스 종단점(endpoint)이 현재 상태대로 유지되도록 보장한다. 런타임 제어기(110)의 이러한 특유의 특징에 대해서는 도 3 및 도 6을 참조하여 더 상세히 설명한다.
범용 웹 서비스 런타임 모듈(120) 각각은 연관된 런타임 제어기(110)를 갖는다. 또한, 런타임 제어기(110)는 데이터베이스(130)와 웹 서비스 관리 메타데이터 저장소(140)와 통신하도록 구성되어 있다. 사용자는, 범용 웹 서비스 런타임 모듈(120) 각각이 고유의 런타임 제어기(110)를 구비하는 한, 복수의 런타임 제어기(110) 및 복수의 범용 웹 서비스 런타임 모듈(120)을 애플리케이션 서버(102) 상 에 전개할 수 있다.
본 발명에 따르면, 애플리케이션 서버(102)는 범용 웹 서비스 런타임 모듈(120)을 더 구비한다. 범용 웹 서비스 런타임 모듈(120)은 데이터 액세스 기반 웹 서비스에 대한 운용 환경(operating environment)으로서 기능한다. 범용 웹 서비스 런타임 모듈(120)은 웹 서비스 관리 메타데이터 저장소(140)에 저장된 웹 서비스 메타데이터로부터 데이터 액세스 기반 웹 서비스를 생성한다. 이들 데이터 액세스 기반 웹 서비스는 웹 서비스 요청에 응답하여 데이터 액세스 기반 웹 서비스 데이터 저장소(150)로부터 데이터를 검색한다. 범용 웹 서비스 런타임 모듈(120)은 각 데이터 액세스 기반 웹 서비스가 웹 서비스 요청을 실행하여 적합한 웹 서비스 응답을 생성할 수 있게 하는 하나 이상의 실행 가능한 컴퓨터 명령어를 제공한다. 전술한 바와 같이, 데이터 액세스 기반 웹 서비스는 데이터베이스(130) 상에서 데이터베이스 조작을 행하는 것이 주 기능인 웹 서비스이다. 이들 조작은 데이터베이스(130)의 테이블 및 레코드의 추가, 제거, 또는 편집뿐만 아니라, 저장 프로시저의 액세싱을 포함할 수 있다. 데이터 액세스 기반 웹 서비스는 데이터베이스 조작에 연관되는 추가 조작 및 동작을 행할 수 있다.
범용 웹 서비스 런타임 모듈(120)은 웹 서비스 엔진(104)을 이용하여 웹 서비스 요청을 수신해서 당해 서비스 요청에 응답한다. 일 실시예에서는, 범용 웹 서비스 런타임 모듈(120)은, 메소드(method)와, 파리미터와, 웹 서비스를 실행하기 위해 클라이언트(160)의 호출자(caller)에 의해 사용되는 관련 웹 서비스의 출력을 포함하는 웹 서비스의 기술(description)을 구비하는 WSDL(web services description language) 문서를 또한 발행한다. WSDL은 서비스 요청자와 서비스 제공자간의 계약(contract)이다. 범용 웹 서비스 런타임 모듈(120)의 기능에 대해서는 도 3 및 도 6을 참조하여 더 상세히 설명한다.
웹 서비스 시스템(100)은 클라이언트(160)를 더 구비한다. 클라이언트(160)는 애플리케이션 서버(102)로부터 웹 서비스를 요청하는 엔티티(entity)를 나타낸다. 클라이언트(160)는 SOAP 프로토콜에 준하여 WSDL 문서에 정의된 기술(description)에 따라 요청을 보낸다.
웹 서비스 시스템(100)은 데이터베이스(130)를 더 구비한다. 데이터베이스(130)는 당해 분야에서 공지된 바와 같이, 데이터의 구조화 세트 및, DB2(DB2는 International Busines Machines Corporation의 등록 상표임) 또는 다른 시스템과 같은 DBMS(database management system)를 구비하고 있다. 데이터베이스(130)는 웹 서비스 관리 메타데이터 저장소(140) 및 데이터 액세스 기반 웹 서비스 데이터 저장소(150)를 포함한다.
웹 서비스 관리 메타데이터 저장소(140)는, 일 실시예에서는, 웹 서비스의 작용 및 구조를 명시하는 웹 서비스 메타데이터를 포함하는 레코드의 테이블을 구비한다. 본 출원서 전반에 걸쳐 용어 '메타데이터'가 이용되는데, 당업자라면, 메타데이터가, 본 발명의 동작을 설명하는데 필요한 요구된 제어 데이터를 제공하는 단지 하나의 방편임을 알 수 있을 것이다. 웹 서비스 메타데이터의 내용 및 생성에 대해서는 도 3을 참조하여 더 상세히 설명한다. 웹 서비스 관리 메타데이터 저장소(140)의 구성에 대해서는 도 5를 참조하여 더 상세히 설명한다. 범용 웹 서비 스 런타임 모듈(120)은 웹 서비스 관리 메타데이터 저장소(140)에 저장된 웹 서비스 메타데이터에 근거하여 데이터 액세스 기반 웹 서비스를 정의한다.
데이터베이스(130)는 데이터 액세스 기반 웹 서비스 데이터 저장소(150)를 더 구비한다. 데이터 액세스 기반 웹 서비스 데이터 저장소(150)는 데이터 액세스 기반 웹 서비스의 대상(subject)으로서 데이터 액세스 기반 웹 서비스에 이용할 수 있는 데이터를 포함하고 있다. 예컨대, 회사의 직원 레코드(company's employee records)는 데이터 액세스 기반 웹 서비스 데이터 저장소(150)의 일부를 구성할 수 있다. 이와 같이, 그러한 정보는 적합한 웹 서비스의 대상으로서 이용될 수 있다.
당업자라면, 웹 서비스 시스템(100)이, 많은 가능한 구성 중 단지 하나임을 알 수 있을 것이다. 예컨대, 웹 서비스 관리 메타데이터 저장소(140) 및 데이터 액세스 기반 웹 서비스 데이터 저장소(150)는, 그 저장소에 대한 접속 정보가 런타임 제어기(110) 및 범용 웹 서비스 런타임 모듈(120)에 적절히 제공되기만 하면, 동일한 데이터베이스(130)에 위치할 필요는 없다. 또한, 웹 서비스 시스템(100)은 복수의 애플리케이션 서버(102)를 구비할 수 있다. 마찬가지로, 이들 서버는 또한 데이터베이스(130)와도 접속되는 런타임 제어기(110) 및 범용 웹 서비스 런타임 모듈(120)을 구비할 수 있다. 데이터베이스(130) 및 관련되는 데이터 저장소와 연관되는 런타임 제어기(110) 및 범용 웹 서비스 런타임 모듈(120)의 개수에는 제한이 없다. 웹 서비스 시스템(100)의 다른 구성에 대해서는 도 4를 참조하여 더 상세히 설명한다.
도 2는 본 발명에 따른 데이터베이스(130) 및 웹 서비스 메타데이터 툴(210) 의 일 실시예를 나타내는 개략 블록도이다. 데이터베이스(130)는 웹 서비스 관리 메타데이터 저장소(140) 및 데이터 액세스 기반 웹 서비스 데이터 저장소(150)를 포함하고 있다. 전술한 바와 같이, 웹 서비스 관리 메타데이터 저장소(140)는 범용 웹 서비스 런타임 모듈(120) 및 런타임 제어기(110)에 액세스 가능한 포맷(format)으로 웹 서비스를 기술한 웹 서비스 메타데이터(220)를 포함하고 있다. 웹 서비스 메타데이터(220)는 사용자(200)에 의해 정의된 데이터 액세스 기반 웹 서비스를 기술하고 있다. 범용 웹 서비스 런타임 모듈(120)은 웹 서비스 메타데이터(220)를 이용하여 사용자(200)의 정의에 따른 웹 서비스를 생성한다. 웹 서비스 메타데이터(220)의 콘텐츠에 대해서는 이하에서 더 상세히 설명한다.
데이터 액세스 기반 웹 서비스 데이터 저장소(150)는 웹 서비스가 액세스하고자 하고 조작이 행해지는 '원(raw)' 데이터를 포함한다. 이 데이터 액세스 기반 웹 서비스 데이터 저장소(150)는 테이블 및 행(rows)의 관계 데이터베이스 내의 체계화된 데이터 또는 계층적 데이터베이스 내의 데이터를 포함한다. 또한, 데이터 액세스 기반 웹 서비스 데이터 저장소(150)는 저장 프로시저를 포함할 수 있다. 일 실시예에서는, 데이터 액세스 기반 웹 서비스 데이터 저장소(150)는 데이터베이스(130)에 저장된 레코드를 구비한다. 전술한 바와 같이, 데이터 액세스 기반 웹 서비스 데이터 저장소(150)는 범용 웹 서비스 런타임 모듈(150)에 액세스 가능한 어떠한 저장 정보를 구비할 수 있다.
웹 서비스 메타데이터 툴(210)은 사용자(200)가 웹 서비스 메타데이터(220)를 웹 서비스 관리 메타데이터 저장소(140)에 입력하기 위한 하나의 수단이다. 사 용자가(200)가 웹 서비스 메타데이터(220)를 웹 서비스 관리 메타데이터 저장소(140)에 수동으로 삽입할 수 있지만, 바람직한 실시예에서는 웹 서비스 메타데이터 툴(210)이 이 기능을 제공한다. 웹 서비스 메타데이터 툴(210)은 사용자(200)가 데이터 액세스 기반 웹 서비스의 조작을 용이하게 명시하는 것을 허용하는 툴을 제공하고, 그 사용자 명시 사항(user specification)으로부터, 범용 웹 서비스 런타임 모듈(120)을 이해할 수 있도록 그 서비스를 기술한 웹 서비스 메타데이터(220)를 생성한다. 웹 서비스 메타데이터 툴(210)은 또한, 정의된 데이터 액세스 기반 웹 서비스의 일상적 조작(day-to-day operations)을 사용자(200)가 개시하고, 정지하고, 그렇지 않으면 관리할 수 있도록 하는 데이터베이스측의 인터페이스를 사용자(200)에게 제공한다. 이들 기능을 용이하게 하기 위해서, 웹 서비스 메타데이터 툴(210)은 편집기 모듈(212) 및 관리 모듈(214)을 더 구비한다. 편집기 모듈(212)은 사용자(200)가 새로운 데이터 액세스 기반 웹 서비스를 생성하거나, 현재의 데이터 액세스 기반 웹 서비스를 편집하거나, 또는 본 발명에 따라 이용 가능하게 되는 데이터 액세스 기반 웹 서비스를 제거하는 것을 허용한다.
관리 모듈(214)은 데이터 액세스 기반 웹 서비스에 관한 관리 기능(administrative functions)을 사용자(200)가 수행하는 것을 허용한다. 예컨대, 관리 모듈(214)은, 범용 웹 서비스 런타임 모듈(120)을 통해 이용 가능하게 되는 다른 데이터 액세스 기반 웹 서비스에 영향을 주지 않고, 특정 데이터 액세스 기반 웹 서비스를 사용자(200)가 이용 불가(disable)로 하는 것을 허용할 수 있다. 또한, 관리 모듈(214)은, 사용자가, 데이터 액세스 기반 웹 서비스가 이용 가능하거 나 오프라인 시간을 명시하는 스케줄을 생성하는 것을 허용하여, 데이터 액세스 기반 웹 서비스 데이터 저장소(150)로의 액세스가 단절(cut off)될 수 있는, 백업 처리와 같은 다른 데이터베이스 관리 작업에 대한 데이터 액세스 기반 웹 서비스 액세스의 용이한 조정을 가능하게 한다.
상술한 실시예에 있어서, 사용자(200)는 데이터베이스 관리자이거나 데이터베이스(130)로부터 데이터 액세스 기반 웹 서비스를 개발하는 다른 개인이다. 사용자(200)는 웹 서비스 메타데이터 툴(210)을 조작하여 데이터 액세스 기반 웹 서비스를 생성한다. 웹 서비스 메타데이터 툴(210)은 데이터베이스(130) 내의 데이터와의 통신 및 조작을 허용하는 IBM의 DB2, 플러그인 또는 다른 구성과 같은 DBMS의 일부인 소프트웨어를 구비할 수 있다.
웹 서비스 메타데이터 툴(210)은, 일 실시예에서는 먼저 데이터베이스(130) 상의 리소스 탐색 기능을 수행한다. 리소스 탐색 기능은 데이터베이스(130) 내의 어떤 데이터가 SQL 명령문(statement)과 같은 데이터베이스 조작에 의해 액세스될 수 있는지를 판정한다. 웹 서비스 메타데이터 툴(210)은 이 탐색된 액세스 가능한 데이터를 웹 서비스의 일부로서 이용할 수 있는 데이터로서 사용자(200)에게 제시한다.
본 명세서에서는 SQL 명령문을 관련 데이터베이스 조작으로서 종종 언급하지만, 당업자라면, SQL이 단지 데이터베이스 조작을 행하기 위한 질의어(query language) 또는 수단이 아님을 알 수 있을 것이다. 사용자는 특정 동작을 행하기 위한 XQuery와 같은 다른 질의어를 이용할 수 있다. 본 명세서 전반에 걸쳐 언급 된 SQL 명령문은 데이터베이스 조작을 행하기 위한 XQuery 명령어에 대한 참조 또는 다른 수단으로 대체될 수 있다. SQL 명령문의 사용은 많은 가능한 실시예들 중 하나를 단지 구성하는 것이다.
사용자(200)는 웹 서비스명을 제공하여, 데이터 액세스 기반 웹 서비스 데이터 저장소(150)의 일부인 탐색된 데이터로부터, 그 명명된 데이터 액세스 기반 웹 서비스 내로 삽입될 것을 선택할 수 있다. 사용자(200)는 또한 데이터 액세스 기반 웹 서비스가 수신할 것으로 예상되는 파라미터들이 어떠한 것인지 및, 선택된 데이터 상에서 원하는 조작을 행하는데 필요한 SQL 코드가 어떠한 것인지를 명시한다. 또한, 사용자(200)는 SQL 명령문의 실행 전 혹은 후에 수행되어야 하는 다른 조작을 명시할 수 있다. 사용자(200)는 또한, 요청된 데이터가 발견되지 않거나 그 웹 서비스의 실행시에 어떠한 다른 에러가 발생하는 경우에 데이터 액세스 기반 웹 서비스가 사용자에게 무엇을 리턴할 것인지를 명시할 수 있다.
예를 들면, 사용자(200)는 파라미터로서 직원 ID 번호를 취하여 과거 5년 동안 그 직원의 평균 임금을 나타내는 "getFiveYearAverage"라고 불리는 데이터 액세스 기반 웹 서비스를 생성할 수 있다. 이 특정예에서는, 데이터 액세스 기반 웹 서비스 데이터 저장소(150)는 평균 임금 필드를 가지지 않지만, 웹 서비스 메타데이터 툴(210)에 의해 실행되는 리소스 탐색 기능이, 필드 "EmplSalary"가 이용 가능하다는 것을 표시한다. 사용자(200)는 웹 서비스 메타데이터 툴(210)을 이용하여, 데이터 액세스 기반 웹 서비스를 위한 "EmplID" 및 "EmplSalary" 필드를 선택해서, 현재로부터 과거 5년 동안 직원 ID와 관련된 5년간 임금값을 추출하는데 필 요한 SQL 코드를 생성한다. 그리고 사용자(200)는 추가 코드를 작성하여, 검색된 5년간 임금값에 근거해서 평균 임금을 산출하고, 그 산출 결과를 리턴할 수 있다. 사용자(200)는 5년 중 어느 한 해의 임금이 검색될 수 없다면 부정의 값이 리턴되도록 더 명시할 수 있다.
웹 서비스 메타데이터 툴(210)은 당업자에게 익숙한 수많은 방식을 통해 전술한 기능을 제공할 수 있는데, 웹 서비스 메타데이터 툴(210)은 웹 서비스에 대한 필드 및 연산을 사용자(200)가 선택할 수 있거나, 이와 달리 관련 데이터 및 연산의 사용자 식별 정보(user identification)로부터 수신하는 수단을 제공할 수 있도록 하는 GUI(graphical user interface)를 구비한다.
웹 서비스 메타데이터 툴(210)은 사용자(200)로부터 입력을 받아, 웹 서비스 메타데이터(220)를 생성한다. 웹 서비스 메타데이터(220)는 웹 서비스의 동작을 기술하고 있으며, 웹 서비스를 생성하는데 필요한 정보를 범용 웹 서비스 런타임 모듈(120)에 제공한다. 그러나, 웹 서비스 메타데이터(220) 그 자체는 단독으로 웹 서비스로서 동작하는 프로그램이 아니며, 오히려, 웹 서비스 메타데이터(220)는 웹 서비스의 동작 및 조작의 기술(description)이다. 웹 서비스 메타데이터(220)는 데이터베이스(130)의 웹 서비스 관리 메타데이터 저장소(140)에 저장된다. 웹 서비스 메타데이터 툴(210)에 의해 생성되는 웹 서비스 메타데이터(220)의 일 실시예를 도 2에 나타낸다. 웹 서비스 메타데이터(220)는 웹 서비스명(WS명)(240), 웹 서비스 구성 문서(a web service configuration document)(250), 웹 서비스 기술 언어(WSDL) 문서(260), 상태(status)(270), 타임스탬프(timestamp)(280)를 구비한 다.
웹 서비스명(240)은 웹 서비스 관리 메타데이터 저장소(140) 내의 웹 서비스 레코드의 식별자를 구비한다. 일 실시예에서는, 웹 서비스명(240)은 테이블에 대한 키(key)를 구성한다. 웹 서비스명(240)은 웹 서비스 메타데이터 툴(210)을 통해 웹 서비스 생성 프로세스의 일부로서 사용자(200)에 의해 제공될 수 있거나, 웹 서비스명(240)은 웹 서비스 메타데이터 툴(210)에 의해 생성될 수 있다.
웹 서비스 구성 문서(250)는 범용 웹 서비스 런타임 모듈(120)이 해석할 수 있는 포맷으로 웹 서비스의 메소드(method), 동작, 대상을 기술한 문서이다. 본 발명에 따른 웹 서비스 구성 문서(250)의 해석에 대해서는 도 3 및 도 6을 참조하여 더 상세히 설명한다.
웹 서비스 구성 문서(250)는 웹 서비스에 관련되는 데이터베이스(130)의 웹 서비스명, 연산, 필드에 관한 정보를 포함한다. 웹 서비스 구성 문서(250)는 또한 웹 서비스의 일부로서 행해지는 실행 가능한 데이터베이스 조작을 포함한다.
일 실시예에서는, 웹 서비스 구성 문서(250)는 XML 문서이며, 데이터베이스 조작은 SQL 명령문으로서 명시된다. 예컨대, 직원 레코드의 추가, 직원 레코드의 제거, 직원 레코드의 취득, 직원 레코드의 업데이트에 대한 조작을 제공하는 웹 서비스는 이하와 같은 대응 웹 서비스 구성 문서(250)를 가질 수 있다.
Figure 112009074667317-PCT00001
WSDL(260)은 웹 서비스를 기술하기 위한 모델을 제공하는 웹 서비스 기술 언 어 문서이다. WSDL은 웹 서비스에 대한 공용 인터페이스(public interface)를 정의하여, 웹 서비스와 관련된 어떠한 특정 데이터타입뿐만 아니라, 이용 가능한 기능(function)을 클라이언트에게 통지함으로써, 웹 서비스와의 통신 방법에 대한 기술(description)뿐만 아니라, 웹 서비스의 XML 기반 기술(XML-based description)을 제공한다. WSDL(260)은 기술된 웹 서비스와 상호 작용하는데 필요한 정보를 클라이언트에게 제공한다.
WSDL(260)은 또한, 일 실시예에서는, 사용자(200)가 데이터 액세스 기반 웹 서비스를 정의하는 파라미터들을 제공하는 것에 응답하여 웹 서비스 메타데이터 툴(210)에 의해 생성된다. WSDL 문서의 구조와 기능은 당해 분야에서 공지되어 있다. 당업자라면, 웹 서비스에 대한 연산 및 파라미터의 사용자 지정 세트(user-specified set)로부터 WSDL 문서가 생성되도록 툴링 모듈(tooling module)을 생성할 수 있다. 일례로서, 전술한 예시의 구성 문서와 관련하여 생성되는 WSDL에 대해서는 부록 A에 나타낸다. 당업자라면, 부록 A의 WSDL이, 제공된 연산의 이름 및 파라미터들을 포함하는, 웹 서비스의 이용에 필요한 정보를 상기 구성 문서에 의해 정의된 웹 서비스의 잠재적 클라이언트(potential client)에게 제공하는 것임을 이해할 수 있을 것이다.
웹 서비스 메타데이터(220)는, 일 실시예에서는 상태(270)를 더 구비한다. 상태(270) 필드는 웹 서비스명(240)과 관련된 웹 서비스의 조작 상태를 저장한다. 일 실시예에서는, 상태(270)는, 대응 데이터 액세스 기반 웹 서비스가 이용 가능한 경우에는 '활성화(active)'로 설정되고, 데이터 액세스 기반 웹 서비스가 이용 가 능하지 않거나 이용할 수 없는 경우에는 '비활성화(inactive)'로 설정될 수 있다. 이와 달리, 웹 서비스 메타데이터(220)의 테이블의 행의 존재는 데이터 액세스 기반 웹 서비스가 활성화인 것을 나타내고, 행의 제거는 데이터 액세스 기반 웹 서비스가 비활성화인 것을 나타낼 수 있다.
웹 서비스 관리 메타데이터 저장소(140)는, 일 실시예에서는, 데이터 액세스 기반 웹 서비스와 관련된 타임스탬프(280)를 더 구비한다. 타임스탬프는 데이터 액세스 기반 웹 서비스에 대한 변경이 이루어졌을 때 또는 이루어졌는지를 판정하는데에 이용될 수 있는 토큰(token)을 제공한다. 새로운 데이터 액세스 기반 웹 서비스의 생성, 현재의 데이터 액세스 기반 웹 서비스의 편집, 또는 데이터 액세스 기반 웹 서비스의 제거 또는 비활성화뿐만 아니라, 웹 서비스 메타데이터(220)의 상태 또는 다른 구성요소의 변경은 웹 서비스 메타데이터 툴(210)이 새로운 타임스탬프(280)를 생성하게 한다. 바람직하게는, 이들 변경은 DBMS와 배타적으로 상호 작용하는 사용자에 의해 이루어진다.
웹 서비스 메타데이터 툴(210)은 웹 서비스 관리 메타데이터 저장소(140) 내의 데이터 액세스 기반 웹 서비스에 대한 변경을 행하는 편집기 모듈(212)을 더 구비할 수 있다. 사용자(200)는 편집기 모듈(212)을 조작하여, 데이터 액세스 기반 웹 서비스를 편집하거나 삭제한다. 일 실시예에서는, 사용자(200)가 현재의 데이터 액세스 기반 웹 서비스를 편집할 때에는, 웹 서비스 메타데이터 툴(210)은 편집에 의해 영향을 받는 웹 서비스 관리 메타데이터 저장소(140) 내의 엔트리를 오버라이트(overwrites)한다. 웹 서비스 메타데이터 툴(210)은 또한 웹 서비스를 위한 새로운 타임스탬프(280)도 생성한다. 사용자(200)가 데이터 액세스 기반 웹 서비스를 삭제하는 경우에는, 웹 서비스 메타데이터 툴(210)은 데이터 액세스 기반 웹 서비스를 정의하고 있는 메타데이터를 웹 서비스 관리 메타데이터 저장소(140)로부터 완전히 제거할 수 있다.
웹 서비스 메타데이터 툴(210)은 애플리케이션 서버(102) 대신에, 데이터베이스(130)로부터의 데이터 액세스 기반 웹 서비스의 조작을 사용자(200)가 관리할 수 있게 해주는 관리 모듈(214)을 더 구비한다. 사용자(200)는 관리 모듈(214)을 이용하여 데이터 액세스 기반 웹 서비스를 개시하거나 정지시킨다. 일 실시예에서는, 관리 모듈(214)은 웹 서비스의 상태(270)를 '활성화' 또는 '비활성화'로 변경함으로써 서비스의 개시 및 정지를 행한다. 이와 달리, 데이터 액세스 기반 웹 서비스를 정의하는 메타데이터의 추가 또는 제거는 데이터 액세스 기반 웹 서비스가 활성화 또는 비활성화인지 여부에 영향을 준다. 런타임 제어기(110)는 그 변경을 검출하여, 표시된 데이터 액세스 기반 웹 서비스를 동적으로 개시하거나 정지시킨다.
이는, 사용자(200)가, 데이터 액세스 기반 웹 서비스에 의한 데이터베이스(130)로의 액세스를 용이하게 제어하도록 허용한다. 사용자(200)는 데이터베이스 관리 또는 다른 작업을 행하기 위해, 데이터베이스로의 데이터 액세스 기반 웹 서비스 액세스를 용이하게 단절(cut off)할 수 있다. 일 실시예에서는, 웹 서비스 메타데이터 툴(210)은 또한 데이터 액세스 기반 웹 서비스의 이용 가능성을 정의하는 스케줄을 사용자(200)가 생성하는 것을 허용할 수 있다.
당업자라면, 웹 서비스 메타데이터(220)가 보다 복잡하여, 추가 툴 및 기능을 사용자(200)에게 제공하기 위해 전술한 것보다 많은 필드를 구비할 수 있음을 이해할 수 있을 것이다. 추가 툴 및 필드는 향상된 버전의 데이터 액세스 기반 웹 서비스(versioning data access-based web services)와 같은 더욱 향상된 특징을 지원할 수 있다.
또한, 당업자라면, 본 발명을 실시하는데 웹 서비스 메타데이터 툴(210)을 사용할 필요가 없음을 이해할 것이다. 즉, 사용자(200)는, 예컨대, 데이터 액세스 웹 서비스의 정의 및 조작에 대한 요구된 정보를, SQL 명령문을 이용하여 웹 서비스 관리 메타데이터 저장소(140)에 직접 저장할 수 있다.
그러한 실시예에 있어서, 사용자(200)는, 본 발명에 제대로 동작하기 위하여, 웹 서비스명(240), 웹 서비스 구성 문서(250), WSDL(260), 상태(270), 타임스탬프(280)와 같은 관련된 웹 서비스 메타데이터(220)를 적절히 생성하고 정의해야 한다. 이와 같이, 웹 서비스 메타데이터 툴(210)은 본 발명에 따라 적절히 정의된 메타데이터를 생성하는 메카니즘으로부터 사용자(200)를 분리하는 추상성(abstraction)을 생성함으로써, 필요한 웹 서비스 메타데이터(220)를 생성하는 처리를 간략화한다.
도 3은 본 발명에 따른 애플리케이션 서버(102)의 일 실시예를 나타내는 개략 블록도이다. 예시한 실시예에 있어서, 애플리케이션 서버(102)는 웹 서비스 엔진(104), 런타임 제어기(110), 및 범용 웹 서비스 런타임 모듈(120)을 구비한다. 도 3은 또한 웹 서비스 관리 메타데이터 저장소(140) 및 데이터 액세스 기반 웹 서 비스 데이터 저장소(150)를 구비하는 데이터베이스(130)도 도시하고 있다.
도 1을 참조하여 전술한 바와 같은 런타임 제어기(110)는 관리 모듈(310), 동기화 모듈(312), 및 종단점 인터페이스 동기화 모듈(314)을 더 구비한다. 관리 모듈(310)은 애플리케이션 서버(102) 상의 사용자에게 범용 웹 서비스 런타임 모듈(120)에 대한 관리 툴을 제공한다.
예컨대, 애플리케이션 서버 사용자는 관리 모듈(310)을 이용하여 애플리케이션 서버(102) 상에서의 범용 웹 서비스 런타임 모듈(120)의 동작을 개시시키거나 정지시킬 수 있다. 또한, 관리 모듈(310)은 사용자가 범용 웹 서비스 런타임 모듈(120)을 전개하고 구성할 수 있게 한다. 관리 모듈(310)은 또한, 애플리케이션 서버(102) 상의 툴에 의해 제공되는 웹 서비스 기능을 지렛대로서 이용하여(leverage), 범용 사용자가 웹 서비스 런타임 모듈(120)에 대한 접속 및 보안 설정을 구성할 수 있게 해준다. 예컨대, 관리 모듈(310)은 애플리케이션 서버 툴을 이용하여, 범용 웹 서비스 런타임 모듈(120)과 관련된 패스워드 및 ID를 사용자가 셋업할 수 있도록 해준다.
동기화 모듈(312)은 범용 웹 서비스 런타임 모듈(120)에 의해 제공되는 데이터 액세스 기반 웹 서비스가 웹 서비스 관리 메타데이터 저장소(140)에 정의된 그들의 데이터 액세스 기반 웹 서비스의 정의와 일치되도록 보장한다. 일 실시예에서는, 동기화 모듈(312)은 가장 현재의 데이터 액세스 기반 웹 서비스 정의가 사용되고 있는지 여부를 판정하기 위해서, 웹 서비스 관리 메타데이터 저장소(140)를 일정 간격으로 폴링(poll)한다. 그러한 실시예에 있어서, 동기화 모듈(312)은, 도 3에 도시하지 않지만, 웹 서비스명(240) 및 타임스탬프(280)를 구비하는 데이터 구조를 포함할 수 있다. 동기화 모듈(312)은 일정 간격으로, 웹 서비스 관리 메타데이터 저장소(140)를 폴링하여, 리스팅된 웹 서비스명(240)에 대한 타임스탬프(280)를 추출한다. 그리고, 동기화 모듈(312)은 추출된 정보를 동기화 모듈 데이터 구조에 유지된 정보와 비교한다. 타임스탬프(28)가 특정 웹 서비스명(240)과 매칭되지 않으면, 웹 서비스 관리 메타데이터 저장소(140)는 변경된 정의를 가지고 있고, 동기화 모듈(312)은, 범용 웹 서비스 런타임 모듈(120)에게, 애플리케이션 서버(102) 상에서 동작하고 있는 관련 데이터 액세스 기반 웹 서비스를 업데이트하도록 지시한다.
웹 서비스명(240) 및 타임스탬프(280)가 데이터 구조가 아닌 웹 서비스 관리 메타데이터 저장소(140)에 존재하면, 동기화 모듈(312)은 범용 웹 서비스 런타임 모듈(120)에게, 애플리케이션 서버(102) 상에서 동작하는 데이터 액세스 기반 웹 서비스를 생성하여 개시하도록 지시한다. 데이터 구조부가 웹 서비스명(240)을 포함하지만 동일한 웹 서비스명(240)이 웹 서비스 관리 메타데이터 저장소(140)에서 발견되지 않으면, 동기화 모듈(312)은 범용 웹 서비스 런타임 모듈(120)에게, 애플리케이션 서버(102) 상에서 동작하고 있는 데이터 액세스 기반 웹 서비스를 중지시키도록 지시한다.
다른 실시예에 있어서, 동기화 모듈(314)은 폴링 간격에 근거하여 웹 서비스 관리 메타데이터 저장소(140)에 대한 변경이 있었는지 여부를 판정할 수 있다. 예컨대, 폴링 간격이 매 5분으로 설정되면, 동기화 모듈(312)은 과거 5분 내에 어떠 한 타임스탬프(280)가 변경되었는지를 판정함으로써,데이터 액세스 기반 웹 서비스를 업데이트하는데 범용 웹 서비스 런타임 모듈(120)이 필요한지 여부를 판정할 수 있다. 그 결과, 그러한 실시예에서는, 상태 필드(270)가 불필요할 수 있다. 당업자라면, 통지 구성(notification confugrations)을 포함하여, 데이터의 동기화 및 일관성의 보장을 위한 여러 방법이 존재하는 것을 이해할 수 있을 것이다. 본 발명의 실시예들은 어떠한 특정 동기화 방식에 한정되거나 의존하지 않는다.
종단점 인터페이스 동기화 모듈(314)은 웹 서비스 엔진(104)이 데이터 액세스 기반 웹 서비스로의 액세스 허용에 필요한 현재의 종단점 인터페이스 정의를 가짐을 보장한다. 웹 서비스 종단점 인터페이스는 특정 웹 서비스 종단점 인터페이스에 관련되는 웹 서비스 아티팩트(338)가 정의되어 있는 애플리케이션 서버 상의 위치를 특정한다. 아티팩트 모듈(336)이 데이터 액세스 기반 웹 서비스에 대한 종단점 인터페이스를 생성하면, 아티팩트 모듈(336)은 관련된 데이터 액세스 기반 웹 서비스의 종단점 인터페이스 및 식별자를 웹 서버 엔진(104)에 제공하는 종단점 인터페이스 동기화 모듈(314)에 통지한다.
범용 웹 서비스 런타임 모듈(120)은 또한, 정의 모듈(334), 검증 모듈(validation module)(332), WSDL 발행 모듈(WSDL publication module)(330), 아티팩트 모듈(336) 및 웹 서비스 아티팩트(338a, 338b)도 포함한다. 정의 모듈(334)은 애플리케이션 서버(102) 상에서 동작하고 있는 데이터 액세스 기반 웹 서비스의 업데이트가 필요하다고 런타임 제어기(110)가 판정할 때에 작동된다. 데이터 액세스 기반 웹 서비스가 추가되거나 편집되었으면, 정의 모듈(334)은 데이터 액세스 기반 웹 서비스에 관련된 웹 서비스 구성 문서(250)를 웹 서비스 관리 메타데이터 저장소(140)로부터 검색한다. 데이터 액세스 기반 웹 서비스가 제거되면, 정의 모듈(334)은 제거된 웹 서비스에 대응하는 웹 서비스 아티팩트(338)를 파기하고, 웹 서비스 종단점 인터페이스가 더 이상 유효하지 않아 웹 서비스 엔진(104)으로부터 제거될 것임을 종단점 인터페이스 동기화 모듈(314)에 통지한다.
검증 모듈(332)은 웹 서비스 구성 문서(250)를 정의 모듈(334)로부터 수신한다. 검증 모듈은 웹 서비스 구성 스키마(web service configuration schema)(333)를 더 구비한다. 웹 서비스 구성 스키마(333)는 범용 웹 서비스 런타임 모듈(120)이 처리할 수 있는 웹 서비스 구성 문서(250)의 구조를 명시하는 웹 서비스 구성 문서(250)의 허용 가능한 구조를 레이아웃한다. 일 실시예에서는, 웹 서비스 구성 스키마(333)는 XML 스키마 문서이다.
검증 모듈(332)은 웹 서비스 구성 스키마(333)를 이용하여 웹 서비스 구성 문서(250)가 부합되는 문서(compliant document)인지 여부를 판정한다. 스키마에 근거하여 문서를 검증하는 방식 및 툴은 당해 분야에 공지되어 있다. 일 실시예에 있어서, 웹 서비스 구성 문서(250)가 웹 서비스 구성 스키마(333)에 부합되는 것이 아니면, 검증 모듈(332)은 데이터 액세스 기반 웹 서비스를 생성하고 관리하는 데이터베이스 사용자(200)에게, 특정 웹 서비스를 생성할 수 없음과 아울러, 어떠한 문제가 발생했는지를 나타내는 메시지를 제공한다.
WSDL 발행 모듈(330)은 데이터 액세스 기반 웹 서비스 클라이언트가 이용 가능한 WSDL을 생성한다. WSDL 발행 모듈(330)은 검증된 웹 서비스에 관련된 WSDL(260)을 웹 서비스 관리 메타데이터 저장소(140)로부터 검색한다. 일 실시예에서는, WSDL 발행 모듈(330)은 UDDI(Universal Description Discovery and Integration) 레지스트리와 같은 서비스 중개자(service broker)를 통해 이용 가능한 WSDL(260)을 생성한다. WSDL 발행 모듈(330)은 WSDL(260)에 기술된 바와 같이, 소모시에 이용 가능한 웹 서비스와 상호 작용하는데 요구되는 프로토콜 바인딩(protocol bindings) 및 메시지 포맷을 생성한다.
아티팩트 모듈(336)은, 웹 서비스 구성 문서(250)가 웹 서비스 구성 스키마(333)에 부합되면, 검증 모듈(332)로부터 웹 서비스 구성 문서(250)를 수신한다. 아티팩트 모듈(336)은 웹 서비스 구성 문서(250)를 해석하여, 웹 서비스 구성 문서(250)에 주어진 사양(specifications)에 따른 웹 서비스 아티팩트(338)를 생성한다. 아티팩트 모듈(338)은 또한, 웹 서비스 아티팩트(338)에 대한 적합한 종단점 인터페이스를 생성하여, 데이터 액세스 기반 웹 서비스에 대한 종단점 인터페이스를 종단점 인터페이스 동기화 모듈(314)에 제공한다.
웹 서비스 아티팩트(338)는 또한 웹 서비스 런타임 아티팩트라고도 불리며, 웹 서비스 구성 문서(250)에 기술된 바와 같이, 데이터 액세스 기반 웹 서비스로부터의 요청에 응답하여 데이터베이스 조작을 행하는 실행 가능 코드를 구비한다. 웹 서비스 아티팩트(338)는 또한 데이터베이스 조작의 실행 전 혹은 후에 행해질 추가 조작도 포함할 수 있다. 웹 서비스 아티팩트(338)는, 다른 관련 조작들과 함께, 데이터 액세스 기반 웹 서비스를 구성하는 필요한 데이터베이스 조작을 행한다. 일 실시예에서는, 이들 데이터베이스 조작은 SQL 블록(339)으로 나타내는 SQL 명령문이다. 당업자라면, 웹 서비스 구성 문서(250)에 정의된 바와 같이 데이터베이스 조작을 행하는데에 다른 언어 또는 문장이 이용될 수 있음을 이해할 수 있을 것이다. 웹 서비스 아티팩트(338)는 웹 서비스 엔진(104) 내의 요청 프로세서 모듈(320)로부터 서비스의 요청 및, 당해 요청과 관련되는 파라미터를 수신한다. 웹 서비스 아티팩트(338)는 제공된 파라미터를 이용하여, 당해 요청에 응답해서 코드를 실행하고, 요청 프로세서 모듈(320)에 동작 결과를 리턴한다.
예컨대, 웹 서비스 아티팩트(338)는, 상술한 예시의 웹 서비스 구성 문서(250)에 나타내어진 바와 같이, 연산명 "addEmployee"을 갖는 웹 서비스 요청을 수신한다. 유효한 요청은 또한 "addEmployee" 연산에 관련되는 파라미터 empno, firstname, midinit 및 기타를 구비한다. 그리고, 웹 서비스 아티팩트(338a)는 데이터베이스(130) 내의 데이터 액세스 기반 웹 서비스 데이터 저장소(150)에 직원이 부가되도록 하는 조작에 관련되는 SQL 명령문을 실행한다. 이러한 특정 조작은 데이터 액세스 기반 웹 서비스 데이터 저장소(150)로부터 웹 서비스를 요청한 클라이언트로 정보를 리턴하지 않지만, 웹 서비스 아티팩트(338)는 성공한 업데이트의 플래그 또는 지시자를 요청 프로세서 모듈(320)로 리턴할 수 있다.
범용 웹 서비스 런타임 모듈(120)은, 도 3에 도시한 바와 같이, 복수의 웹 서비스 아티팩트(338a, 338b)를 구비할 수 있다. 범용 웹 서비스 런타임 모듈(120) 내의 웹 서비스 아티팩트(338)의 개수는 웹 서비스 관리 메타데이터 저장소(140)에 정의된 데이터 액세스 기반 웹 서비스의 개수에 대응한다. 예컨대, 웹 서비스 관리 메타데이터 저장소(140) 내에 정의된 서로 다른 10개의 데이터 액세스 기반 웹 서비스가 존재하는 경우, 범용 웹 서비스 런타임 모듈(120)은 이용 가능한 별개의 웹 서비스를 나타내는 10개의 상이한 웹 서비스 아티팩트(338)를 갖고 있다. 그러나, 당업자라면, 웹 서비스 아티팩트(338a-b)가, 다른 데이터 액세스 기반 웹 서비스에 의해 사용될 수 있도록 구현될 수 있음을 이해할 것이다. 예컨대, 다른 조작에 부가하여, 데이터 액세스 기반 웹 서비스가 웹 서비스 아티팩트(338a, 338b)에 의해 행해지는 데이터베이스 조작을 요구할 수 있고, 새로운 액세스 기반 웹 서비스가 웹 서비스 아티팩트(338a, 338b)를 이용하여, 그들의 동일한 조작을 복제하기 보다는 그들이 제공하는 조작을 실행할 수 있을 것이다. 그러한 구성은 웹 서비스 아티팩트들간의 리던던시(redundancy)를 줄이는데 이용될 수 있다.
바람직한 실시예는, 추가 요소를 웹 서비스의 핫 전개에 부가한다. 일반적으로 핫 전개는, 그들 구성요소가 작동되기 전에 애플리케이션 서버(102)를 재시작하는 것 없이도, 애플리케이션 서버(102)에 대해 웹 서비스와 같은 구성요소를 추가하거나 편집할 수 있는 능력을 지칭한다. 바람직한 실시예에서는, 범용 웹 서비스 런타임 모듈(120)의 재개시없이 데이터 액세스 기반 웹 서비스를 사용자가 생성하고 변형하고 관리하는 것을 허용함으로써 핫 전개의 개념을 확장한다. 따라서, 사용자(200)는, 그들의 서비스를 이용하기 전에 애플리케이션 서버(102) 또는 범용 웹 서비스 런타임 모듈(120)을 재개시하는 것 없이도, 데이터 액세스 기반 웹 서비스를 정의하고 관리하고 전개할 수 있다. 그와 같이, 바람직한 실시예에서는, 데이터 액세스 기반 웹 서비스를 호스팅하는 애플리케이션 서버(102)에 대해 어떠한 수동적 변경을 행하지 않고서도, 사용자가 데이터베이스측으로부터 데이터 액세스 기반 웹 서비스 작업을 행할 수 있게 해준다.
웹 서비스 엔진(104)은 웹 서비스 요청을 핸들링하고 처리하기 위한 애플리케이션 서버(102)에 의해 제공되는 핵심 기능(core functionality)을 구비한다. 웹 서비스 엔진(104)은 웹 서비스 요청을 수신하고 웹 서비스 응답을 보낸다. 웹 서비스 엔진(104)은 특정 웹 서비스에 대한 요청을 처리하는 방법을 웹 서비스 엔진(104)가 인지하도록, 이용 가능한 웹 서비스에 관한 구성 데이터의 세트(도시하지 않음)를 유지하고 있다. 이러한 구성 데이터는 애플리케이션 서버(102) 상에서 이용 가능한 웹 서비스 아티팩트와 관련된 종단점 인터페이스 정의를 포함한다. 런타임 제어기(110)의 종단점 인터페이스 동기화 모듈(314)은 웹 서비스 아티팩트(338)와 관련된 종단점 인터페이스 정의들을 업데이트하고, 그렇지 않다면 구성 데이터가 범용 웹 서비스 런타임 모듈(120) 내의 데이터 액세스 기반 웹 서비스의 현재 상태와 동기된 상태로 유지되도록 보장한다.
클라이언트(160)가, 도 1에 도시한 바와 같이, 웹 서비스 요청을 애플리케이션 서버(102)에 보내면, 웹 서비스 엔진(104)이 그 요청을 수신한다. 웹 서비스 엔진(104) 내의 요청 프로세서 모듈(320)은 SOAP 웹 서비스 요청을 분석하여, 그 요청으로부터 연산 및 파라미터를 추출한다. 요청된 서비스가 존재하지 않으면, 요청 프로세서 모듈(320)은 해당 서비스가 발견되지 않았음을 나타내는 에러로 응답한다. 그렇지 않으면, 요청 프로세서 모듈은 애플리케이션 서버(102) 상의 적절한 웹 서비스를 결정하여, 웹 서비스가 실행될 수 있게 하는 파라미터를 제공한다.
요청된 웹 서비스가 웹 서비스 관리 메타데이터 저장소(140)에 정의된 데이 터 액세스 기반 웹 서비스인 경우, 요청 프로세서 모듈(320)은 그 구성 데이터 내의 종단점 인터페이스 정보를 이용하여, 웹 서비스 요청과 연관되는 웹 서비스 아티팩트(338)로 파라미터를 포워딩(forward)한다. 웹 서비스 아티팩트(338)는 요청 프로세서 모듈(320)로부터 파라미터를 수신하여, 데이터 액세스 기반 웹 서비스 데이터 저장소(150) 상에서 SQL 블록(338) 내의 SQL 명령문을 실행한다. 웹 서비스 아티팩트(338)는 또한 데이터 액세스 기반 웹 서비스의 일부인 임의의 다른 지시자도 실행한다. 웹 서비스 아티팩트(338)는 연산의 결과를 웹 서비스 엔진(104) 내의 요청 프로세서 모듈(320)에 리턴한다. 그리고, 요청 프로세서 모듈(320)은 그 응답에 대한 SOAP 엔벨로프를 구축하여, 보안 목적의 암호화를 제공하는 것과 같은 추가적인 데이터 처리를 행할 수 있다. 요청 프로세서 모듈(320)이 사전 응답 처리(pre-response processing)를 완료하면, 요청 프로세서 모듈(320)은 요청측 클라이언트(160)에게 SOAP 응답을 리턴한다.
도 4는 복수의 애플리케이션 서버(402, 420) 및 복수의 데이터베이스(430, 432)를 구비하는 웹 서비스 시스템(400)의 일 실시예를 나타내는 개략 블럭도이다. 애플리케이션 서버(402)는 웹 서비스 엔진(404), 런타임 제어기(406) 및 범용 웹 서비스 런타임 모듈(408)을 포함한다. 도 4에서는, 웹 서비스 관리 메타데이터 저장소(440)를 구비하는 데이터베이스(430), 및 데이터 액세스 기반 웹 서비스 데이터 저장소(450)를 구비하는 데이터베이스(432)와 전자적으로 통신하는 애플리케이션 서버(402)를 나타내고 있다.
도 4에서는 데이터 저장소(440, 450)가 물리적으로 별개의 레포지토 리(repositories)일 수 있음을 나타내고 있다. 데이터 액세스 기반 웹 서비스 데이터 저장소(450)가 복수의 물리적 유닛(multiple physical units) 상에 위치하는 경우에 추가 구성이 가능하다. 웹 서비스 관리 메타데이터 저장소(440)는 또한 데이터 액세스 기반 웹 서비스 데이터 저장소(440)의 서브세트(subset)으로서 구현될 수 있다. 그러한 구성은, 예컨대 범용 웹 서비스 런타임 모듈(408)이 '부트스트랩(bootstrap)'할 수 있게 해주는 데이터 액세스 기반 웹 서비스를 생성하는데에 유용하다. 즉, 사용자가, 웹 서비스 관리 메타데이터 저장소(440) 자체를 데이터 액세스 기반 웹 서비스 데이터 저장소(450)의 서브세트로서 관리하고 구성하기 위한 데이터 액세스 기반 웹 서비스를 개발할 수 있다. 그러한 실시예에서는, 웹 서비스 메타데이터 툴(210)은 범용 웹 서비스 런타임 모듈(408)에 의해 제공되는 웹 서비스 그 자체일 수 있다.
데이터베이스(430, 432)에 위치하는 데이터 저장소(440, 450)에 대한 애플리케이션 서버(402, 420) 간의 통신은 웹 서비스 시스템(400)의 적합한 동작에 중대한 것이다. 애플리케이션 서버(420)는 웹 서비스 엔진(422), 런타임 제어기(424a, 424b) 및 범용 웹 서비스 런타임 모듈(426a, 426b)을 포함한다. 범용 웹 서비스 런타임 모듈(426a, 426b) 각각은 하나의 연관된 런타임 제어기(424a, 424b)를 갖고 있다. 각 런타임 제어기(424a, 424b) 및 각 범용 웹 서비스 런타임 모듈(426a, 426b)은 웹 서비스 관리 메타데이터 저장소(440) 및 데이터 액세스 기반 웹 서비스 데이터 저장소(450)와 통신하도록 구성된다. 또한, 각 런타임 제어기(424a, 424b)는 웹 서비스 엔진(422)의 정확한 구성 데이터의 유지 보수에 기여한다. 런타임 제어기(424a, 424b)는 그들 제각각의 범용 웹 서비스 런타임 모듈(426a, 426b)에 연관되는 데이터 액세스 기반 웹 서비스에 관한 구성 데이터를 관리한다.
그 결과, 애플리케이션 서버 대 데이터베이스의 관계가 n대n이더라도, 개인이, 데이터베이스로부터 본 발명의 어떤 실시예에 따른 데이터액세스 기반 웹 서비스를 용이하게 유지 보수할 수 있다. 예컨대, 데이터베이스 관리자는, 도 2에 도시한 바와 같이, 웹 서비스 관리 메타데이터 저장소(440)에 새로운 데이터 액세스 기반 웹 서비스 정의를 생성할 수 있다. 새로운 웹 서비스 정의가 런타임 제어기(406, 424a, 424b)에 의해 검출되면, 런타임 제어기 각각은 각 범용 웹 서비스 런타임 모듈(408, 426a, 426b)에게, 도 3을 참조하여 설명한 바와 같이 데이터 액세스 기반 웹 서비스를 생성하도록 지시한다. 런타임 제어기(406, 424a, 424b)는 또한 이들 웹 서비스의 활성화를 가능하게 하는 정보도, 도 3을 참조하여 설명한 바와 같이 웹 서비스 엔진(422, 404)에 제공한다.
이러한 방식으로 데이터 액세스 기반 웹 서비스를 관리하고 생성하는 것은 많은 장점이 있으며, 그 서비스의 다수의 실시예를 제공함으로써, 웹 서비스는 높은 가용성으로 용이하게 전개할 수 있다. 사용자는 데이터베이스측 상에서 단일 조작으로 특정 데이터 액세스 기반 웹 서비스의 복수의 복사본을 데이터베이스측에 전개할 수 있다. 또한, 본 발명은 다수의 애플리케이션 서버에 걸쳐 분산된 데이터 액세스 기반 웹 서비스의 유지 보수를 간략화한다. 전술한 바와 같이, 데이터베이스에서 단일 조작을 통해 다양한 애플리케이션 서버 상에서 변경이 이루어질 수 있다. 또, 당업자라면, 애플리케이션 서버가 동일한 타입이 아니더라도 이것이 유효하다는 것을 이해할 수 있을 것이다. 따라서, 단일 조작은 사용자가 애플리케이션 서버 플랫폼의 차이를 고려하지 않고서도, WebLogic Server, WebShpere Server, 및 Oracle OC4J Server간에 데이터 액세스 기반 웹 서비스를 업데이트하거나 전개할 수 있다. 이러한 차이는, 본 발명의 실시예들이 상이한 플랫폼 상에서 전개되는 경우에 처리되며, 런타임 제어기(406, 424a, 424b) 및 범용 웹 서비스 런타임 모듈(408, 426a, 426b)이 제대로 동작한다면, 이들은 웹 서비스 메타데이터를 이용하여, 그들의 특정 애플리케이션 서버(402, 420) 플랫폼 상에서 데이터 액세스 기반 웹 서비스를 생성한다.
이하의 개략적 흐름도는 일반적으로 논리적 흐름도로서 설명한다. 그와 같이, 나타낸 순서 및 분류된 단계들은 본 방법의 일 실시예를 나타낸다. 다른 단계들 및 방법들은 나타낸 방법의 하나 이상의 단계 또는 그 일부에 대한 기능, 로직, 또는 효과와 동등하다는 것을 이해할 수 있을 것이다. 추가적으로, 사용되는 포맷 및 심볼은 이 방법의 논리적 단계를 설명하는데 제공되며, 본 발명의 범위를 한정하는 것이 아님을 이해할 수 있을 것이다. 흐름도에서 다양한 화살표 타입 및 라인 타입이 이용되더라도, 그들이 대응하는 방법의 범위를 한정하는 것이 아님을 이해할 수 있을 것이다. 실제로, 어떠한 화살표 또는 다른 접속 부호는 방법의 논리적 흐름만을 나타내는데 이용 가능하다. 예컨대, 나타낸 방법의 열거된 단계들 사이의 불특정 기간의 대기 주기 또는 감시 주기를 화살표로 나타낼 수 있다. 추가적으로, 특정 방법이 일어나는 순서는 도시한 대응 단계들의 순서에 정확히 부합될 수 있거나 부합되지 않을 수 있다.
도 5는 본 발명에 따른 범용 웹 서비스 런타임 모듈을 전개하기 위한 방법의 일 실시예를 나타내는 개략 흐름도이다. 도 5를 참조하여 설명한 범용 웹 서비스 런타임 모듈(120)의 전개 및 관련 동작은 본 발명에 따른 데이터 액세스 기반 웹 서비스의 관리를 실시하기 이전에 필요한 1회의 동작(one-time action)을 구성한 것이다. 사용자(200)는 데이터베이스(130) 상의 웹 서비스 관리 메타데이터 저장소(140)를 셋업한다(502). 사용자(200)는, 예컨대 CREATE TABLE 명령문을 발행하여, 웹 서비스 관리 메타데이터 저장소(140)를 생성하고, 필드 및 구조를 적절히 정의한다. 일 실시예에 있어서, CREATE TABLE 명령문은 이하와 같을 수 있다.
Figure 112009074667317-PCT00002
당업자라면, 발행된 그 명령문(exact statements)은 변경될 수 있고, 사용자가 웹 서비스 관리 메타데이터 저장소(140)에 유지하고자 하는 정보에 의존할 것임을 인식할 수 있을 것이다.
애플리케이션 서버(102)로의 액세스 및 그에 대한 적합한 권한을 갖는 사용자는 애플리케이션 서버(102)가 데이터베이스(130) 상의 정보에 액세스할 수 있도록, 데이터베이스(130)로의 접속 정보를 구성하여(504), 런타임 제어기(110) 및 범용 웹 서비스 런타임 모듈(120)이 웹 서비스 관리 메타데이터 저장소(140) 및 데이터 액세스 기반 웹 서비스 데이터 저장소(150)에 액세스할 수 있게 한다. 도 4를 참조하여 설명한 바와 같이, 사용자는 웹 서비스 시스템의 어떤 실시예에서는 복수의 데이터베이스에 대한 접속 정보를 구축해야 할 것이다. 사용자는 또한 범용 웹 서비스 런타임 모듈(120) 및 런타임 제어기(110)도 애플리케이션 서버(102) 상에 전개한다(506). 이들 모듈의 전개 단계는, 전술한 바와 같이, 본 발명에 필요한 조정(coordination)이 이루어질 수 있도록, 모듈들이 웹 서비스 엔진(104)으로부터의 호출을 적절히 액세스하고 웹 서비스 엔진(104)으로부터의 호출에 의해 액세스될 수 있음을 보장하는 것을 더 구비한다.
애플리케이션 서버 사용자는 또한 범용 웹 서비스 런타임 모듈(120)을 위해 필요한 임의의 접속 설정 및 보안 설정을 셋업한다(508). 예컨대, 애플리케이션 서버 사용자는 사용자 ID 및 패스워드의 생성 및 설정과 같은 추가 미세 조정(additional fine-tuning)을 행할 수 있다. 범용 웹 서비스 런타임 모듈(120)이 적절히 전개되어 구성되면, 사용자(200)는 본 발명에 따라, 데이터베이스(130)로부터 데이터 액세스 기반 웹 서비스를 관리하기 시작할 수 있다.
도 6은 본 발명에 따른 웹 서비스를 생성하는 방법의 일 실시예를 나타내는 개략 흐름도이다. 런타임 제어기(110)는 동기화 모듈(312)을 이용하여 웹 서비스 관리 메타데이터의 변경에 대해 웹 서비스 관리 메타데이터 저장소(140)를 체크(check)한다(602). 동기화 모듈(312)은, 메타데이터의 변경이 있었는지 여부를 판정하는데(604), 변경이 없는 경우는, 동기화 모듈(312)은 다음 폴링 간격까지 대기하고, 동기화 모듈(312)이 웹 서비스 관리 메타데이터 저장소(140)의 변경을 검지할 때까지 그 판정(604)을 반복한다. 변경이 발생하면, 동기화 모듈(314)은 데 이터 액세스 기반 웹 서비스의 추가나 변경, 또는 삭제의 변경이 있는지 여부를 판정한다(606). 당업자라면, 이러한 열거된 변경보다 더 많은 변경이 일어날 가능성이 있음을 이해할 수 있을 것이며, 예컨대, 이 변경은 웹 서비스의 상태(270)의 변경일 수 있고, 이 경우 영향을 받는 웹 서비스는 커맨드에 근거하여, 비활성화되거나 재활성화된다. 본 예에서 추가 동작을 나타내지 않았지만, 본 발명의 범위는 웹 서비스의 추가, 변형 또는 제거에 한정되지 않는다.
웹 서비스 관리 메타데이터 저장소(140)의 변경이, 기존 웹 서비스의 변형 또는 새로운 웹 서비스의 생성을 나타내면, 정의 모듈(334)은 웹 서비스 구성 문서(250)를 검색한다(608). 그리고 검증 모듈(332)은 웹 서비스 구성 스키마(333)에 근거하여 웹 서비스 구성 문서(250)를 검증한다(610). 아티팩트 모듈(336)은 검증된 웹 서비스 구성 문서(250)로부터 웹 서비스 아티팩트(338)를 생성한다(612). 아티팩트 모듈(338)은 또한 웹 서비스를 위한 웹 서비스 종단점 인터페이스를 생성하고(614), 종단점 인터페이스 동기화 모듈(314)은 종단점 인터페이스를 포함하는 업데이트된 구현 정보를 웹 서비스 엔진(104)에 등록한다. 그 다음에, 새롭게 생성되거나 변형된 데이터 액세스 기반 웹 서비스가 웹 서비스 요청을 처리하게 된다.
그 조작이 삭제 조작이라고 동기화 모듈(312)이 판정하면(606), 아티팩트 모듈(336)은 영향을 받는 웹 서비스 아티팩트(338)를 비활성화하고(616), 또한 종단점 인터페이스 동기화 모듈(314)에게, 웹 서비스 엔진(104)의 구현 정보로부터 웹 서비스 종단점 인터페이스를 비활성화시키도록(618) 지시한다. 일 실시예에서는, 웹 서비스 아티팩트(338)의 비활성화 및 웹 서비스 종단점 인터페이스의 비활성화는 단순히 아티팩트 및 인터페이스의 삭제를 구성하는 것이다. 아티팩트 모듈(336)은 애플리케이션 서버(102)의 웹 서비스의 동작 전개를 지렛대로 이용하여, 웹 서비스 아티팩트(338)의 중지 및/또는 제거를 행한다. 유리하게는, 사용자는 애플리케이션 서버(102)와의 상호 동작이 불필요하게 된다.
도 7은 웹 서비스 요청을 처리하기 위한 방법의 일 실시예를 나타내는 개략적 흐름도이다. 클라이언트(160)는 웹 서비스 요청을 애플리케이션 서버(102)에 보낸다. 그 요청을 요청 프로세서 모듈(320)이 수신한다(702). 요청 프로세서 모듈(320)은 그 요청을 연산 및 관련 파라미터로 분해한다(704). 요청 프로세서 모듈(320)은 웹 서비스 요청에 연관된 적절한 웹 서비스 아티팩트(338)를 결정한다(706).
요청 프로세서 모듈(320)은 웹 서비스의 형태로 데이터 액세스 기반 데이터 연산을 실행하는 관련 웹 서비스 아티팩트(338)에 제어(control) 및 임시의 파라미터를 전달한다(708). 일 실시예에서는, 데이터 연산의 실행은 SQL 블록(339) 내의 명령문(statements)을 실행하는 것으로 구성될 수 있다. 데이터 연산이 성공적으로 실행되면, 웹 서비스 아티팩트(338)는 임의의 결과를 요청 프로세서 모듈(320)에 전달한다. 요청 프로세서 모듈(320)은 그 결과를 웹 서비스 응답으로서 리턴한다(710). 요청을 웹 서비스 응답으로서 리턴하는 것은 그 응답을 적절한 SOAP 엔벨로프(또는 다른 느슨하게 결합된 네트워크 포맷(other lossely coupled network format))으로 구성하는 것 및, 암호화와 같은 임의의 추가적인 필요한 데이터 프로 세싱을 행하는 것을 더 구비할 수 있다.
본 발명은 그 사상 또는 본질적 특징을 벗어나지 않는 범위 내에서 다른 특정 형태로 구현될 수 있다. 기술한 실시예들은 예시한 바와 같은 관점에서만 고려될 것이지만, 제한적인 것은 아니다. 따라서, 본 발명의 범위는 전술한 설명이 아니라 첨부한 청구의 범위에 의해 나타낸다. 청구의 범위와 균등한 의미 및 범위 내에서의 모든 변경은 그들의 청구범위 내에 포함되는 것이다.
부록 A
Figure 112009074667317-PCT00003
Figure 112009074667317-PCT00004
Figure 112009074667317-PCT00005
Figure 112009074667317-PCT00006
Figure 112009074667317-PCT00007
Figure 112009074667317-PCT00008
Figure 112009074667317-PCT00009
Figure 112009074667317-PCT00010
Figure 112009074667317-PCT00011
Figure 112009074667317-PCT00012
Figure 112009074667317-PCT00013
Figure 112009074667317-PCT00014
Figure 112009074667317-PCT00015
Figure 112009074667317-PCT00016

Claims (10)

  1. 데이터 서버 관리형 웹 서비스 런타임의 조작 방법에 있어서,
    웹 서비스 관리 메타데이터 저장소(web services management metadata store)의 웹 서비스 메타데이터에 액세스하는 단계와,
    상기 웹 서비스 관리 메타데이터 저장소의 상기 웹 서비스 메타데이터의 변경이 있는지를 판정하는 단계와,
    상기 웹 서비스 관리 메타데이터 저장소의 상기 웹 서비스 메타데이터의 변경에 응답하여 데이터 액세스 기반 웹 서비스를 관리하는 단계를 포함하되,
    상기 데이터 액세스 기반 웹 서비스는 애플리케이션 서버 상에 전개되는 범용 웹 서비스 런타임 모듈(generic web service runtime module)과 협력하여 실행되고,
    상기 애플리케이션 서버는 웹 서비스의 동적 전개(dynamic deployment)를 지원하는
    데이터 서버 관리형 웹 서비스 런타임의 조작 방법.
  2. 제 1 항에 있어서,
    상기 웹 서비스 메타데이터의 변경은 웹 서비스 메타데이터가 웹 서비스 관리 메타데이터 저장소에 추가되는 것을 포함하며,
    상기 관리 단계는,
    상기 웹 서비스 관리 메타데이터 저장소로부터 웹 서비스 구성 문서(web service configuration document)를 검색하는 단계와,
    웹 서비스 구성 스키마(web service configuration schema)를 만족하는 상기 웹 서비스 구성 문서로부터 웹 서비스 아티팩트(web service artifact)를 생성하는 단계와,
    상기 범용 웹 서비스 런타임 모듈과 연관되는 요청 프로세서가 상기 웹 서비스 아티팩트와 연관되는 요청을 수용하도록 웹 서비스 아티팩트를 개시하는 단계를 더 포함하는
    데이터 서버 관리형 웹 서비스 런타임의 조작 방법.
  3. 제 1 항에 있어서,
    상기 웹 서비스 관리 메타데이터 저장소 내의 상기 웹 서비스 메타데이터를 사용자가 정의하는 단계를 더 포함하는
    데이터 서버 관리형 웹 서비스 런타임의 조작 방법.
  4. 제 1 항에 있어서,
    상기 데이터 액세스 기반 웹 서비스에 연관된 WSDL(web services description language) 문서를 발행하는 단계를 더 포함하는
    데이터 서버 관리형 웹 서비스 런타임의 조작 방법.
  5. 제 1 항에 있어서,
    상기 범용 웹 서비스 런타임 모듈에 상기 변경을 통지하는 단계를 더 포함하는
    데이터 서버 관리형 웹 서비스 런타임의 조작 방법.
  6. 데이터 서버 관리형 웹 서비스 런타임을 조작하는 장치에 있어서,
    웹 서비스 관리 메타데이터 저장소 내의 웹 서비스 메타데이터에 액세스하는 수단과,
    상기 웹 서비스 관리 메타데이터 저장소 내의 변경이 있었는지를 판정하는 수단과,
    상기 웹 서비스 관리 메타데이터 저장소의 변경에 응답하여 데이터 액세스 기반 웹 서비스를 관리하는 수단을 포함하되,
    상기 데이터 액세스 기반 웹 서비스는 애플리케이션 서버에 전개된 범용 웹 서비스 런타임 모듈과 협력하여 실행되고,
    상기 애플리케이션 서버는 웹 서비스의 동적 전개를 지원하는
    데이터 서버 관리형 웹 서비스 런타임 조작 장치.
  7. 제 6 항에 있어서,
    상기 웹 서비스 메타데이터의 변경은 웹 서비스 메타데이터가 웹 서비스 관리 메타데이터 저장소에 추가되는 것을 포함하며,
    상기 관리 수단은,
    상기 웹 서비스 관리 메타데이터 저장소로부터 웹 서비스 구성 문서를 검색하는 수단과,
    웹 서비스 구성 스키마를 만족하는 상기 웹 서비스 구성 문서로부터 웹 서비스 아티팩트를 생성하는 수단과,
    상기 범용 웹 서비스 런타임 모듈과 연관된 요청 프로세서가 상기 웹 서비스 아티팩트에 연관되는 요청을 수용하도록 웹 서비스 아티팩트를 개시하는 수단을 더 포함하는
    데이터 서버 관리형 웹 서비스 런타임 조작 장치.
  8. 제 6 항에 있어서,
    상기 데이터 액세스 기반 웹 서비스에 연관된 WSDL(web services description language) 문서를 발행하는 수단을 더 포함하는
    데이터 서버 관리형 웹 서비스 런타임 조작 장치.
  9. 제 6 항에 있어서,
    상기 범용 웹 서비스 런타임 모듈에 상기 변경을 통지하는 수단을 더 포함하는
    데이터 서버 관리형 웹 서비스 런타임 조작 장치.
  10. 컴퓨터 프로그램으로서,
    상기 프로그램이 컴퓨터 상에서 구동되면, 청구항 1 내지 5 중 어느 한 항에 기재된 모든 단계를 실행하는 프로그램 코드 수단을 포함하는
    컴퓨터 프로그램.
KR1020097025240A 2007-05-18 2008-04-30 데이터 서버 관리형 웹 서비스 런타임용 장치, 시스템 및 방법 KR101055030B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/750,886 US7865535B2 (en) 2007-05-18 2007-05-18 Apparatus, system, and method for a data server-managed web services runtime
US11/750,886 2007-05-18
PCT/EP2008/055376 WO2008141905A1 (en) 2007-05-18 2008-04-30 Apparatus, system, and method for a data server-managed web services runtime

Publications (2)

Publication Number Publication Date
KR20100027124A true KR20100027124A (ko) 2010-03-10
KR101055030B1 KR101055030B1 (ko) 2011-08-05

Family

ID=39679476

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097025240A KR101055030B1 (ko) 2007-05-18 2008-04-30 데이터 서버 관리형 웹 서비스 런타임용 장치, 시스템 및 방법

Country Status (5)

Country Link
US (1) US7865535B2 (ko)
EP (1) EP2151118A1 (ko)
KR (1) KR101055030B1 (ko)
CN (1) CN101690123B (ko)
WO (1) WO2008141905A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013141517A1 (ko) * 2012-03-18 2013-09-26 엘지전자 주식회사 제어 장치 및 그의 동작 방법, 서버 및 그의 동작 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853554B2 (en) * 2002-11-12 2010-12-14 Oracle International Corporation Method and system for metadata reconciliation in a data warehouse
US20090083441A1 (en) * 2007-09-24 2009-03-26 Microsoft Corporation Synchronization of web service endpoints in a multi-master synchronization environment
US7792921B2 (en) * 2007-09-24 2010-09-07 Microsoft Corporation Metadata endpoint for a generic service
US20090222749A1 (en) * 2008-02-29 2009-09-03 Business Objects, S.A. Apparatus and method for automated creation and update of a web service application
US8539050B2 (en) * 2008-04-28 2013-09-17 Applied Olap, Inc. Method for distributing update modules for computer software over a network
US8903889B2 (en) * 2008-07-25 2014-12-02 International Business Machines Corporation Method, system and article for mobile metadata software agent in a data-centric computing environment
US20110029479A1 (en) * 2009-07-31 2011-02-03 Miroslav Novak Method and system to maintain service architecture repositories
CN102170365B (zh) * 2010-02-26 2013-12-25 阿里巴巴集团控股有限公司 实现软件系统热部署的方法及系统
TWI494855B (zh) * 2010-05-31 2015-08-01 Alibaba Group Holding Ltd Methods and systems for implementing hot deployment of software systems
CN102457569B (zh) * 2010-10-25 2014-04-02 中国科学院声学研究所 一种面向物联网应用的Web服务的冗余检测方法及系统
EP2477377A1 (en) * 2011-01-14 2012-07-18 Alcatel Lucent Peer node and method for improved peer node selection
US10310851B2 (en) 2011-06-29 2019-06-04 International Business Machines Corporation Automated generation of service definitions for message queue application clients
US11231690B2 (en) 2011-11-11 2022-01-25 Rockwell Automation Technologies, Inc. System and method for dynamic meta-data in control and visualization
US20130124575A1 (en) * 2011-11-11 2013-05-16 Rockwell Automation Technologies, Inc. System and Method for Dynamic Meta-Data in Control and Visualization
US20130198171A1 (en) * 2012-01-26 2013-08-01 Microsoft Corporation Method and system for managing database object information
US9741004B1 (en) * 2012-08-16 2017-08-22 Nintex Pty Limited Apparatus and method for transforming web services into managed workflow actions
US10129328B2 (en) 2013-09-26 2018-11-13 Oracle International Corporation Centralized management of webservice resources in an enterprise
WO2015143416A1 (en) 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
US9467533B2 (en) * 2014-03-21 2016-10-11 Ptc Inc. System and method for developing real-time web-service objects
US9389890B2 (en) 2014-03-27 2016-07-12 Microsoft Technology Licensing, Llc Hierarchical directives-based management of runtime behaviors
US9292270B2 (en) * 2014-03-27 2016-03-22 Microsoft Technology Licensing, Llc Supporting dynamic behavior in statically compiled programs
CN104134156A (zh) * 2014-07-17 2014-11-05 南宁市锋威科技有限公司 一种基于web的网上银行安全系统
US10320935B2 (en) 2015-01-28 2019-06-11 Red Hat, Inc. Cache data validation
WO2017001916A1 (en) * 2015-06-30 2017-01-05 Societal Innovations Ipco Limited System and method for reacquiring a running service after restarting a configurable platform instance
CN105159974A (zh) * 2015-08-27 2015-12-16 浪潮软件股份有限公司 一种跨数据源的web服务自动生成方法
US10319043B1 (en) 2016-01-29 2019-06-11 Intuit Inc. Methods, systems, and computer program products for linking data schemas to electronic tax return
US10270796B1 (en) * 2016-03-25 2019-04-23 EMC IP Holding Company LLC Data protection analytics in cloud computing platform
CN107943543B (zh) * 2017-11-29 2022-01-14 优速云(福建)科技有限公司 一种web应用热部署的方法和计算机设备
US20190278570A1 (en) * 2018-03-08 2019-09-12 Microsoft Technology Licensing, Llc Annotating Features of a Resource to Facilitate Consumption in Different Computing Environments
US11544617B2 (en) * 2018-04-23 2023-01-03 At&T Intellectual Property I, L.P. Network-based machine learning microservice platform
US11860901B1 (en) * 2019-03-29 2024-01-02 Amazon Technologies, Inc. SQL execution over HTTP for relational databases using connection pooling
CN113901143B (zh) * 2021-10-13 2022-06-28 北京德塔精要信息技术有限公司 前端跨框架通信方法及前端框架结构
CN115062084B (zh) * 2022-08-19 2022-11-04 中关村科学城城市大脑股份有限公司 基于数据库元数据构建api接口方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR0210589A (pt) * 2001-06-22 2005-04-26 Nosa Omoigui Sistema e método para a recuperação, o gerenciamento, a entrega e a apresentação do conhecimento
US7581231B2 (en) * 2001-07-10 2009-08-25 Microsoft Corporation Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer
US20030033432A1 (en) * 2001-08-08 2003-02-13 Simpson Shell S. Web based imaging service that converts web pages into content on behalf of another web site
US7343428B2 (en) * 2001-09-19 2008-03-11 International Business Machines Corporation Dynamic, real-time integration of software resources through services of a content framework
US7296061B2 (en) * 2001-11-21 2007-11-13 Blue Titan Software, Inc. Distributed web services network architecture
US20040045004A1 (en) 2002-08-29 2004-03-04 Manoj Cheenath System for runtime web service to java translation
US20040044656A1 (en) 2002-08-29 2004-03-04 Manoj Cheenath System for web service generation and brokering
US7349980B1 (en) * 2003-01-24 2008-03-25 Blue Titan Software, Inc. Network publish/subscribe system incorporating Web services network routing architecture
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7620934B2 (en) 2004-05-28 2009-11-17 Sap Ag System and method for a Web service definition
US7617480B2 (en) 2004-05-28 2009-11-10 Sap Ag System and method for a Web service virtual interface
KR100630616B1 (ko) 2004-07-15 2006-10-02 주식회사 위즈링크 개인 맞춤 온-라인 상시 웹 서비스 제공 시스템 및 방법
JP2006072785A (ja) 2004-09-03 2006-03-16 Hitachi Electronics Service Co Ltd サービス利用のためのリクエストメッセージ制御方法、および、サービス提供システム
US7590988B2 (en) 2005-03-08 2009-09-15 Microsoft Corporation Dynamic service generation for legacy components
US7571447B2 (en) 2005-06-20 2009-08-04 International Business Machines Corporation Loose coupling of web services
US20070067384A1 (en) 2005-09-21 2007-03-22 Angelov Dimitar V System and method for web services configuration creation and validation
US20070073844A1 (en) 2005-09-28 2007-03-29 International Business Machines Corporation Method, system, and program product for web services orchestration
KR100660289B1 (ko) 2005-12-24 2006-12-20 주식회사 케이티 인터넷 사이트의 액세스 데이터 용량 정보 제공 시스템 및방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013141517A1 (ko) * 2012-03-18 2013-09-26 엘지전자 주식회사 제어 장치 및 그의 동작 방법, 서버 및 그의 동작 방법

Also Published As

Publication number Publication date
EP2151118A1 (en) 2010-02-10
WO2008141905A1 (en) 2008-11-27
US20080288547A1 (en) 2008-11-20
US7865535B2 (en) 2011-01-04
CN101690123B (zh) 2013-06-12
KR101055030B1 (ko) 2011-08-05
CN101690123A (zh) 2010-03-31

Similar Documents

Publication Publication Date Title
KR101055030B1 (ko) 데이터 서버 관리형 웹 서비스 런타임용 장치, 시스템 및 방법
KR101891506B1 (ko) 하나 이상의 클라우드 시스템 상에 애플리케이션들을 이식 가능하게 배치하기 위한 방법들 및 시스템들
US10044522B1 (en) Tree-oriented configuration management service
US8380785B2 (en) Managing rule sets as web services
US7167874B2 (en) System and method for command line administration of project spaces using XML objects
US8751626B2 (en) Model-based composite application platform
JP7036597B2 (ja) ネットワーク上のデータソースへの照会
US7937716B2 (en) Managing collections of appliances
US20080082569A1 (en) Smart Integration Engine And Metadata-Oriented Architecture For Automatic EII And Business Integration
US20120221605A1 (en) Linking framework for information technology management
US20120158655A1 (en) Non-relational function-based data publication for relational data
US20090063650A1 (en) Managing Collections of Appliances
US20090165021A1 (en) Model-Based Composite Application Platform
US8533230B2 (en) Expressing manageable resource topology graphs as dynamic stateful resources
US20080189402A1 (en) Method and Respective System for Performing Systems Management on IT-Resources Using Web Services
US10120886B2 (en) Database integration of originally decoupled components
AU2006226959A1 (en) Data management for mobile data system
US20080040418A1 (en) Accessing existing data using a service oriented architecture gateway
US10868719B2 (en) System and method for federated configuration in an application server environment
Cosmina et al. Spring microservices with spring cloud
US10713082B2 (en) Cloud platform integration load balancer
US20230028620A1 (en) Streaming static web page generation
JP2005346408A (ja) ワークフローシステム間のwebサービス連携方法
Coventry Exploring Microsoft Sharepoint 2013: new features & functions
Walters et al. Automation and Monitoring

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee