KR20060099392A - 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시애플리케이션 컴포넌트를 위한 동적인 웹 서비스를생성하는 방법 및 컴퓨터 프로그램 제품 - Google Patents
웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시애플리케이션 컴포넌트를 위한 동적인 웹 서비스를생성하는 방법 및 컴퓨터 프로그램 제품 Download PDFInfo
- Publication number
- KR20060099392A KR20060099392A KR1020060004812A KR20060004812A KR20060099392A KR 20060099392 A KR20060099392 A KR 20060099392A KR 1020060004812 A KR1020060004812 A KR 1020060004812A KR 20060004812 A KR20060004812 A KR 20060004812A KR 20060099392 A KR20060099392 A KR 20060099392A
- Authority
- KR
- South Korea
- Prior art keywords
- web service
- legacy
- application
- components
- dynamic
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99939—Privileged access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 관리 이벤트가 레거시 애플리케이션 컴포넌트(legacy application component)의 초기화 동안 동적인 웹 서비스의 생성을 트리거(trigger)하거나 유발하게 하는 메커니즘을 제공한다. 다른 유형의 정적인 툴링(tooling) 접근법과 마찬가지로, 본 명세서에서 제공되는 동적인 접근법도 레거시 컴포넌트와 통신하기 위한 인터페이스를 설명하는 이용가능한 메타데이터를 이용한다. 예시적인 실시예는, 한꺼번에 또는 때때로 툴링을 통해 웹 서비스를 생성 및 표명하기 보다는 애플리케이션 초기화의 표준 부분으로서 지지 기반구조에 의해 웹 서비스를 생성하는 것을 제공한다. 애플리케이션 종료시에, 대응하는 동적인 웹 서비스를 종료시키고 동적인 웹 서비스를 생성하는 데 이용된 웹 서비스 설명을 삭제하는 종결 시퀀스(termination sequence)가 제공된다. 따라서, 애플리케이션이 시작될 때마다 이용가능한 메타데이터가 참고될 필요가 있으며, 활동중에 일관적인 서비스가 구축될 것이다.
레거시 클라이언트, 웹 서비스 클라이언트, 웹 서비스 초기화기, 관리 구성 설정, 웹 서비스 설명
Description
도 1은 본 발명의 예시적인 실시예에 따른 동적인 웹 서비스를 생성하도록 구성된 분산형 시스템을 예시하는 도면.
도 2는 본 발명의 예시적인 실시예에 따른 레거시 애플리케이션 컴포넌트를 위한 동적인 웹 서비스를 생성하는 방법에 대한 흐름도.
도 3은 본 발명의 적절한 운영 환경을 제공하는 예시적인 시스템을 예시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
105: 레거시 클라이언트
120: 리턴 값
130: 응답
145: 웹 서비스 클라이언트
175: 동적인 웹 서비스
본 발명은 일반적으로 웹 서비스에 관한 것이다. 보다 구체적으로, 본 발명은 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시 애플리케이션 컴포넌트(legacy application component)를 위한 동적인 웹 서비스를 생성하는 것에 관한 것이다.
컴퓨터 시스템 및 관련 기술은 사회 여러 면에 영향을 준다. 실제로, 정보를 처리하는 컴퓨터 시스템의 능력은 우리가 살아가고 일하는 방식을 변형시켰다. 오늘날 컴퓨터 시스템은 일반적으로, 컴퓨터 시스템이 출현하기 전에는 수동적으로 수행되었던 태스크(예를 들어, 워드 프로세싱, 스케줄링, 데이터베이스 관리 등)들을 수행한다. 보다 최근에, 컴퓨터 시스템은 컴퓨터 시스템들이 데이터를 공유하기 위해 전기적으로 통신할 수 있는 컴퓨터 네트워크를 형성하기 위해 또 다른 컴퓨터 시스템들과 연결된다. 웹 서비스는 컴퓨터 시스템들 간의 이러한 통신이 향상되도록 유도하여, 우리가 소프트웨어를 구축하고 이용하는 방식을 완전히 바꾸고 있다.
웹 서비스는, 애플리케이션들이 어떻게 구축되었는지, 그들이 어느 오퍼레이팅 시스템 또는 플랫폼 상에서 동작하는지, 및 그들에 액세스하기 위해 어느 장치들이 이용되는지에 상관없이, 애플리케이션들이 데이터를 공유하고 더욱 강력하게는 다른 애플리케이션들로부터의 능력들을 인보킹(invoking)하게 한다. 웹 서비스는 SOAP(Simple Open Access Protocol), XML(eXtensible Markup Language), UDDI(Universal Description Discovery Integration), WSDL(Web Service Description Language) 등을 포함하는 산업 표준 프로토콜을 이용해 인터넷을 통해 인보킹된다. 웹 서비스들은 서로 개별적으로 존재하지만, 그들 자신을 특정 태스크를 수행하는 공동 그룹(collaborating group)으로 느슨하게 링크시킬 수 있다.
종종, 웹 서비스 네트워크 상의 전기 통신은 서버 컴퓨터 시스템(이후 "서버", "서비스", 또는 "웹 서비스"로 참조됨)의 네트워크 서비스(예를 들어, 웹 서비스)에의 액세스를 요청하는 클라이언트 컴퓨터 시스템(이후 "클라이언트"로 참조됨)을 포함한다. 이에 따라, 클라이언트는 서비스에게 그것의 시스템 자원에의 특정한 액세스에 대한 요청을 송신하는데, 여기서 클라이언트가 인증 및 검증되어 있으면, 서비스는 원하는 정보를 제공하는 요청 메시지로 응답한다. 물론, 클라이언트와 서비스 간의 다른 메시징 패턴들도 이용가능하며, 단순한 단일 메시지 교환뿐만 아니라, 예를 들어 통지, 간청 응답(solicit-response), 퍼브-서브 패턴(pub-sub patterns), 폴링(polling), 킥푸시(kick-push), 큐잉(queuing) 등과 같은 더욱 복잡한 다중 메시지 교환이 포함된다. 또한, 이러한 유형의 통신은 분산형 시스템에 대한 협약(contract) 내에 있는 서비스(예를 들어, 웹 서비스) 및 클라이언트 모두에 의해 정의된 다양한 요청 및 능력에 의해 운영된다.
협약은 서비스 (또는 클라이언트) 행동의 시각적인 양태들의 표현이다. 협약은 기기 판독가능 언어와 인간 언어의 혼합으로 나타내진다. 추가적인 정확성이 가능해지는 것은 물론이고, 기기 판독가능 언어는 부분적인 서비스 구현을 구성하고, 서비스 배치를 자동화하고, 교환된 메시지들을 감사/검증하고, 메시지를 관리하기 위한 툴링(tooling)을 인에이블링(enable)하며, 다른 네트워크 관련 기능들의 호스트를 인에이블링한다. 그러나, 기기 판독가능 언어의 표현력의 한계 때문에, 인간 언어가 (주로 메시지 및 메시지 교환 패턴 의미론을 설명하기 위한) 협약의 중요한 컴포넌트로 남아 있다.
네트워크 프로토콜 설명 언어(예를 들어, WSDL)는 일반어 또는 표준어로 협약(예를 들어, 웹 서비스 협약)을 설명하기 위한 전체적인 래퍼(wrapper) 및 명세를 제공한다. 이러한 명세는, 개발자 및 개발자 툴이 협약을 용이하게 생성 및 인터프리팅(interpreting)하게 한다. 이러한 네트워크 프로토콜 설명 언어(이후 "NPDL"로 참조됨)는 대체로 그들의 인기 때문에 대규모 툴링 제품군을 갖는다.
웹 서비스가 출현하기 이전 여러 해 동안, 수많은 분산형 애플리케이션들은 여러 상인들로부터의 레거시 컴포넌트 기반 아키텍처[예를 들어, COM(Component Object Model), DCOM(Distributed Component Object Model), CORBA(Common Object Request Broker Architecture)]를 이용하여 작성되었다. 그러나, 표준형 기반 웹 서비스의 출현 및 진보로, 웹 서비스로서 이러한 레거시 컴포넌트로부터의 비지니스 논리(business logic)를 노출하는 것이 관심사가 되었다. 예를 들어, 이용되는 접근법에 상관없이, 전형적으로 다음의 인터페이스를 지원하는 애플리케이션 컴포넌트와 같은 것을 취하도록 의도되며,
Interface IStockSystem : IDispatch {
HRESULT GetProductDescription(
[in] BSTR ProductID,
[out, retval] BSTR *ProdDesc) ;
HRESULT GetProductInventory (
[in] BSTR ProductID,
[out, retval] short *ProdCount) ;
} ;
다음의 WSDL 단편 내에 예시된 몇몇의 동작을 갖는 대응하는 웹 서비스 계층인 컴포넌트 정의로부터 생성되도록 의도된다:
< wsdl:portType name="StockSystem">
<wsdl:operation name="GetProductDescription">
<wsdl:input message="tns:GetProductDescriptionIn" />
<wsdl:output message="tns:GetProductDescriptionOut" />
</wsdl:operation>
<wsdl:operation name="GetProductInventory">
<wsdl:input message= "tns:GetProductInventoryIn" />
<wsdl:output message= "tns:GetProductInventoryOut" />
</wsdl:operation>
</wsdl:portType>
오늘날까지, 웹 서비스 환경 내에서 레거시 컴포넌트를 변환 또는 이용하기 위해 이용된 주요 패턴 또는 접근법은 단지 몇 개밖에 없다. 하나의 접근법은 개발자가 웹 서비스 지원을 추가하도록 컴포넌트 소스 코드(component source code)를 수정하는 변경 또는 수정이다. 애플리케이션이 컴파일되고 실행될 때, 애플리 케이션은, 종래의 클라이언트가 기초 애플리케이션에 여전히 접속되어 있도록 허용하는 한 적절한 웹 서비스 지원을 가지며 초기화될 것이다.
또 다른 접근법은 정적인 래핑 서비스를 생성하는 툴링 및 메타데이터 유도 접근법이다. 이 접근법은 컴포넌트 소스 코드 수정을 요청하기보다는, 컴포넌트가 제공해야하는 서비스를 결정하기 위해 컴포넌트에 대해 현재 등록되어 있는 메타데이터를 검사하는 보다 더 외부적인 접근법을 이용한다. 이것은 수정되지 않은 기초 컴포넌트에 외부적이지만 (적어도 초기에는) 일관적인 정적 웹 서비스 래퍼를 생성한다.
상기 수정 접근법 및 정적인 접근법들이 레거시 컴포넌트의 비지니스 논리가 웹 서비스 환경에서 액세스되게 하지만, 이러한 접근법 모두에 관련된 몇몇의 약점 및 문제점이 있다. 예를 들어, 비지니스 논리를 바꾸고 싶지 않더라도 수정 접근법은 소스 코드 수정을 필요로 하기 때문에, 이것은 단순한 관리 절차라기보다는 개발 태스크이다. 따라서, 이러한 태스크는 전형적인 관리자 역할의 범위를 넘어 추가적인 기술 세트를 요청한다. 이외에, 웹 서비스를 인에이블링하기 위한 개발 수정은 본래의 코딩 환경을 이용하지 못할 수 있다. 예를 들어, 더 이상 지원되지 않는 레거시 언어로 작성된 컴포넌트를 수정할 경우, 컴포넌트는 우선 현재 언어로 이식되어야 한다. 따라서, 초기에 메소드(method)에 속성을 추가하는 것처럼 보이는 수정은 사실 다른 언어, 런타임(runtime), 및 개발 환경으로의 변경이다.
정적인 툴링 접근법에서, 문제점은 기초 컴포넌트가 수정되거나 새로운 버전이 디스플레이될 때 존재하게 된다. 이러한 경우에, 서비스가 다시 생성되기 전까 지는 수정이 래핑 서비스에 자동으로 반영되지 않을 것이다. 이외에, 웹 서비스 동작에 대해서, 서비스와 기초 컴포넌트 간에 명백한 종속성이 존재한다. 이에 따라, 컴포넌트의 수명과 웹 서비스의 수명이 동기화되는 것이 보장되도록 주의해야 한다(즉, 래핑 서비스는 컴포넌트가 활성화되도록 요청하고, 컴포넌트는 래퍼가 활성화되도록 요청함). 또한, 환경 및 래퍼의 외부 속성에 따라, 전형적으로 배치 및 관리될 추가적인 컴포넌트가 존재한다. 즉, 컴포넌트가 또 다른 기기로 이동되면, 래퍼 컴포넌트도 또한 따라서 확인되고 이동되어야 한다.
최소한 상기의 이유들 때문에, 서비스와 기초 컴포넌트 간의 명백한 종속성을 지원하지 않을 뿐만 아니라 개발자가 기초 컴포넌트 소스 코드를 수정[컴포넌트 수정 또는 버저닝(versioning)을 허용]하지 않으면서 레거시 컴포넌트에 대한 웹 서비스 및 비지니스 논리를 제공할 필요가 있다.
웹 서비스 환경 내에서 레거시 컴포넌트에 대한 서비스 및 비지니스 논리를 제공하는 시스템의 상기 식별된 결함 및 단점은 본 발명의 예시적인 실시예들을 통해 극복된다. 예를 들어, 본 발명은, 관리 이벤트가 레거시 애플리케이션 컴포넌트의 초기화 동안 동적인 웹 서비스를 생성하게 함으로써 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시 애플리케이션 컴포넌트를 위한 동적인 웹 서비스를 생성하는 것을 제공한다.
본 발명은 애플리케이션을 초기화하기 위한 요청을 수신하는 것을 제공한다. 애플리케이션은 웹 서비스 애플리케이션과 통신하도록 개발되지 않은 하나 이상의 레거시 컴포넌트를 포함한다. 초기화시에, 하나 이상의 레거시 컴포넌트를 위한 동적인 웹 서비스가 애플리케이션의 초기화시에 생성될 것임을 나타내는 관리 구성 설정이 확인된다. 관리 구성 설정에 기초하여, 하나 이상의 레거시 컴포넌트들과 통신하기 위한 인터페이스를 설명하는 메타데이터가 액세스된다. 그 후 메타데이터를 이용하여, 웹 서비스 클라이언트가 번역 프로세스(translation process)를 통해 하나 이상의 레거시 컴포넌트들과 통신하게 하기 위해 인터페이스 설명에 일관적인 동적인 웹 서비스를 자동으로 생성한다.
본 발명의 추가적인 특성 및 이점은 후술되거나, 후술된 것으로부터 부분적으로 명확해지고, 본 발명의 구현에 의해 학습될 수 있다. 본 발명의 특징 및 이점은 특히 첨부된 청구항에 지적된 도구 및 조합의 수단에 의해 현실화 및 획득될 수 있다. 본 발명의 이러한 특징 및 다른 특징들은 다음의 설명 및 첨부된 청구항으로부터 보다 완벽하게 명백해지거나, 후술된 바와 같은 본 발명의 구현에 의해 학습될 수 있다.
본 발명의 상기 언급된 및 다른 이점 및 특징들을 획득할 수 있는 방식을 설명하기 위해, 개략적으로 상술된 본 발명에 대한 보다 특별한 설명이 첨부된 도면들에 예시된 특정한 실시예들을 참조함으로써 나타날 것이다. 이러한 도면들이 본 발명의 전형적인 실시예들만을 설명할 뿐이며 본 발명의 영역을 제한하기 위한 것은 아님을 이해하면서, 본 발명은 첨부된 도면들의 사용을 통해 추가적인 구체사항 및 세부사항들로 설명 및 기술될 것이다.
본 발명은 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시 애플리케이션 컴포넌트를 위한 동적인 웹 서비스를 생성하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품에 관한 것이다. 본 발명의 실시예들은 더욱 상세하게 후술된 바와 같은 다양한 컴퓨터 하드웨어 컴포넌트 또는 모듈을 포함하는 특수 목적 또는 범용 컴퓨터를 포함할 수 있다.
본 발명은 관리 이벤트가 레거시 애플리케이션 컴포넌트의 초기화 동안 동적인 웹 서비스의 생성을 트리거(trigger)하거나 유발하게 하는 메커니즘을 제공한다. 다른 유형의 정적인 툴링 접근법과 마찬가지로, 본 명세서에서 제공되는 동적인 접근법도 레거시 컴포넌트와 통신하기 위한 인터페이스를 설명하는 이용가능한 메타데이터를 이용한다. 예시적인 실시예는, 한꺼번에 또는 때때로 툴링을 통해 웹 서비스를 생성 및 표명하기 보다는 애플리케이션 초기화의 표준 부분으로서 지지 기반구조에 의해 웹 서비스를 생성하는 것을 제공한다. 애플리케이션 종료시에, 대응하는 동적인 웹 서비스를 종료시키고 동적인 웹 서비스를 생성하는 데 이용된 웹 서비스 설명을 삭제하는 종결 시퀀스(termination sequence)가 제공된다. 따라서, 애플리케이션이 시작될 때마다 이용가능한 메타데이터가 참고될 필요가 있으며, 활동중에 일관적인 서비스가 구축될 것이다.
웹 서비스를 생성하기 위한 동적인 접근법은 종래 기술 시스템에 대해 몇몇의 이점을 갖는다. 예를 들어, 본래 컴포넌트가 수정되지 않기 때문에, 동적인 접근법은 관리 동작을 통해 웹 서비스를 인에이블링한다. 이 관리 동작은 애플리케이션의 시동시에 웹 서비스를 인에이블링할 단순한 구성 유틸리티(configuration utility)일 수 있다. 웹 서비스가 구성 설정에 기초하여 생성되게 함으로써, 관리자는 보다 높은 개발자 기술 세트를 요청하지 않으면서도 동적인 웹 서비스를 생성할 수 있다. 또한, 코드 레벨 변경 노력이 필요하지 않기 때문에, 레거시 컴포넌트에 대한 지지 기반구조는 그것이 대응하는 레거시 언어에 남아있게 한다.
이외에, 실시예에 따라 설명된 동적인 접근법은 정적인 툴링 접근법에 비하여 다음의 이점들을 갖는다. 첫째로, 기초 컴포넌트가 언제 수정되는지 또는 새로운 버전이 언제 개발되는지에 상관없이, 항상 컴포넌트 정의에 일관적인 웹 서비스가 생성될 것이다. 따라서, 웹 서비스와 동기화되지 않은 컴포넌트 동작을 가질 여지가 없다. 이외에, 동적인 웹 서비스 시동(및 생성)이 이제는 컴포넌트 시동의 새로운 부분이기 때문에, 서비스의 수명은 용이하게 레거시 컴포넌트의 수명과 밀접하게 연관될 수 있다. 또 다른 이점은 배치 및 관리할 추가적인 래퍼 컴포넌트가 더 이상 없다는 것이다. 이것은 (다음에 더욱 상세하게 설명될 바와 같이) 애플리케이션이 동작중이지 않을 때, 서비스가 나타나지 않는다는 사실 때문이다. 따라서, 동적인 웹 서비스는 항상 제자리에 있다는 것이 보증될 수 있도록 요청된 바와 같이 생성될 것이다. 즉, 기기들 사이에서 옮길 때, 웹 서비스 컴포넌트를 레거시 컴포넌트와 함께 전치시킬 필요가 없다.
도 1은 전술된 것과 같은 다양한 실시예들을 예시한다. 도시된 바와 같이, 웹 서비스 클라이언트(145)와 레거시 클라이언트(105) 모두를 지원하고, 이에 따라 서비스(110) 지향 애플리케이션(125)의 액세스를 허용하는 분산형 시스템(100)이 제공된다. 보다 구체적으로, 서비스(110)는 레거시 컴포넌트(135)를 포함하는 애 플리케이션(125)을 제공받는다. 실시예는 관리자(도시되지 않음)가, 동적인 웹 서비스(175)가 애플리케이션(125)의 시동시에 생성되어야 한다는 것을 나타내는 관리 구성 설정(155)을 설정하게 한다. 이에 따라, 관리 구성 설정(155)에 기초하여, 애플리케이션(125) 시동시에 (가능한 애플리케이션 특정 구성 파일로부터 이끌어낸 다른 구성에 따라), 웹 서비스 초기화기(180)는 카달로그 데이터베이스(165)로부터의 메타데이터(160)에 액세스할 것이다. 실시예들은 애플리케이션(125)[및 대응하는 동적인 웹 서비스(175)]의 초기화에 대한 몇몇 방식을 허용한다는 것을 명심하자. 예를 들어, 애플리케이션(125) 초기화를 위한 요청은 관리자 인터페이스로부터의 입력을 통해 수신될 수 있다. 다른 실시예는 애플리케이션(125)에 의해 제공되는 서비스에의 액세스를 위한 요청(140)(또는 유사한 유형의 다른 요청)의 수신시에 애플리케이션(125)을 자동으로 초기화하는 것을 제공한다. 물론, 애플리케이션(125) 초기화에 대한 잘 알려진 다른 방식들도 본 발명에서 이용가능하다. 따라서, 애플리케이션(125)을 초기화하기 위한 임의의 특정한 방식 또는 프로세스는 예시적인 목적을 위한 것일 뿐, 명확하게 나타내지 않는 한 본 발명의 영역을 제한하거나 이와 달리 좁히기 위해 의도된 것은 아니다.
애플리케이션(125)이 어떻게 초기화되는지에 상관없이, 전술된 바와 같이, 초기화시에 컴포넌트 인터페이스를 설명하는 메타데이터(160)가 액세스된다. 이 메타데이터(160)는 동적인 웹 서비스(175)가 어떻게 레거시 컴포넌트(135)와 통신하는지에 대한 정보이다. 즉, 메타데이터(160)는 다른 것들 중에서 레거시 컴포넌트(135)에 대해서 어느 호출(115)이 요청되는지, 어느 매개변수(115)가 레거시 컴 포넌트(135)에 전달되는지, 매개변수(115)가 어떤 순서로 전달되어야 하는지, 및 예를 들어, 레거시 컴포넌트(135)로부터 리턴 값(120)이 수신되는지를 나타내는 메시지 교환 패턴 중 하나 이상을 나타낸다. 모든 호출이 매개변수를 포함하는 것은 아님을 명심하자. 예를 들어, FormatAllAvailableDisks() 및 다른 호출의 동작은 매개변수를 요청하지 않는다. 따라서, 메타데이터(160)는 물론 행해질 호출의 유형에 따라, 레거시 컴포넌트(135)에 전달될 매개변수(115)에 대한 세부사항을 가질 수도 있고 아닐 수도 있다.
어떤 경우에서든, 메타데이터(160)에의 액세스시에, 웹 서비스 초기화기(180)는 웹 서비스 설명(150) 또는 협약(예를 들어, WSDL 문서)을 생성할 수 있다. 이외에, 웹 서비스 초기화기(180)는 웹 서비스 설명(150)을 이용하여 런타임 동안 동적인 웹 서비스(175)를 시작시킬 것이다. 이외에, 웹 서비스 클라이언트(145)를 일관성 있게 생성하기 위해 웹 서비스 설명(150)을 이용할 필요가 있을 수 있다. 생성된 웹 서비스 설명(150)이 동적인 웹 서비스(175)를 생성하는 데 이용되었지만, 이러한 이벤트는 본 발명에 중요한 것은 아님을 명심하자. 즉, 메타데이터(160)에의 액세스시에 웹 서비스 초기화기(180)는 웹 서비스 설명(150)을 이용하지 않고도 동적인 웹 서비스(175)를 자동으로 생성할 수 있다. 따라서, 동적인 웹 서비스(175)를 생성하기 위해 웹 서비스 설명(150)을 이용하는 것은 예시적인 목적을 위한 것일 뿐, 명확하게 나타내지 않는 한 본 발명의 영역을 제한하거나 이와 달리 좁히기 위해 의도된 것은 아니다.
일단 동적인 웹 서비스(175)가 생성되고 레거시 컴포넌트(135)가 활성화되 면, 웹 서비스 클라이언트(145)는 레거시 컴포넌트(135)에 의해 제공되는 서비스에 액세스하기 위한 요청(140)을 행할 수 있다. 요청(140)은 레거시 컴포넌트(135)에 의해 제공되는 서비스를 요청하기 위한 동작 및/또는 (만약 있다면) 레거시 컴포넌트(135)가 필요로 하는 매개변수(115)와 같은 것들을 포함할 수 있다. 동적인 웹 서비스(175)는 요청(140)의 수신시에 요청 내의 동작에 기초하여, 요청(140)의 내용을 검사하고, 레거시 컴포넌트(135)에 (만약 있다면) 적절한 매개변수를 가진 적절한 호출(115)을 행한다. 즉, 동적인 웹 서비스(175)는, 레거시 컴포넌트(135)와 통신하기 위한 적절한 호출 및 (만약 있다면) 요청된 매개변수(115)와 일반 웹 서비스 요청 메시지(140)(예를 들어, XML 문서) 사이의 번역자로서 기능한다.
전술된 바와 같이, 적절한 호출 및 (만약 있다면) 요청된 매개변수(115) 이외에, 동적인 웹 서비스(175)는 레거시 컴포넌트(135)에 대한 적절한 메시지 교환 패턴을 알도록 구성되어야 한다. 이에 따라, 리턴 값(120)이 요청되면, 동적인 웹 서비스(175)는 이러한 리턴을 기대할 것이다. 그 후 이 리턴 값(120)은 동적인 웹 서비스(175)에 의해 생성되는 적절한 웹 서비스 응답(130)으로 포매팅될 수 있다. 이 예에 대한 메시지 교환 패턴은 요청-응답이지만, 다른 메시지 교환 패턴들도 또한 본 발명에 이용될 수 있다. 이에 따라, 본원에 설명된 것과 같은 임의의 특정한 유형의 메시지 교환 패턴을 이용하는 것은 예시적인 목적을 위한 것일 뿐, 명확하게 나타내지 않는 한 본 발명의 영역을 제한하거나 이와 달리 좁히기 위해 의도된 것은 아니다.
다른 실시예들은 애플리케이션(125)에 대한 종결 시퀀스를 제공한다. 레거 시 애플리케이션(125)이 중지 또는 종료되면, 실시예는 동적인 웹 서비스(175)를 종결시키고, 예를 들어 웹 서비스 설명(150)을 재활용 통(170)에 버림으로써 그것을 삭제하는 것을 제공한다. 이에 따라, 웹 서비스 설명(150)이 지속 및/또는 재사용되지 않기 때문에, 레거시 컴포넌트(175)가 수정되거나 갱신된 버전이 제공되는 경우에도 모순이 없다.
본 발명은 또한 레거시 클라이언트(105)를 지원한다는 것을 명심하자. 따라서, 레거시 클라이언트(105)는 (만약 있다면) 적절한 매개변수(115)를 가진 적절한 호출을, 직접적으로 레거시 애플리케이션(125)에 대하여 행할 수 있다. (만약 있다면) 리턴 값(120)도 또한 레거시 애플리케이션(125)으로부터 레거시 클라이언트(105)로 직접적으로 전달될 수 있다.
본 발명은 또한 기능적 단계 및/또는 비기능적 활동을 포함하는 방법의 견지에서 설명될 수도 있다. 다음은 본 발명의 구현시에 수행될 수 있는 단계 및/또는 활동들에 대한 설명이다. 보통, 비기능적인 활동은 특정한 결과를 달성하기 위한 구체적인 액션을 설명하는 반면, 기능적인 단계는 달성되는 결과의 견지에서 본 발명을 설명한다. 기능적 단계 및/또는 비기능적 활동들이 특정한 순서로 설명 또는 주장될 수 있지만, 본 발명은 단계 및/또는 활동에 대한 임의의 특정한 순서 또는 조합에 반드시 한정되지는 않는다. 또한, 청구항(및 도 2의 흐름도에 대한 다음의 설명)에 언급된 단계 및/또는 활동은 이러한 것들의 바람직한 특정 이용을 나타내기 위해 이용된다.
도 2는 본 발명의 다양한 실시예에 대한 흐름도를 예시한다. 도 2에 대한 다음의 설명은 때때로 도 1로부터의 대응하는 구성요소들을 참조할 것이다. 이 도면으로부터의 특정한 구성요소에 대한 참조가 만들어질 수 있지만, 이러한 구성요소들은 예시적인 목적을 위한 것일 뿐, 명확하게 나타내지 않는 한 본 발명의 영역을 제한하거나 이와 달리 좁히기 위해 의도된 것은 아니다.
도 2는 웹 서비스 환경 내에서 통신하도록 개발, 설계, 또는 코딩되지 않은 레거시 애플리케이션 컴포넌트를 위한 동적인 웹 서비스를 생성하는 방법(200)에 대한 흐름도를 나타낸다. 이러한 실시예들은, 관리 이벤트가 레거시 애플리케이션 컴포넌트의 초기화 동안 동적인 웹 서비스의 생성을 트리거하게 한다. 방법(200)은 애플리케이션을 초기화하기 위한 요청을 수신하는 단계(205)를 포함한다. 예를 들어, 서비스(110)는 애플리케이션(125)을 초기화하기 위한 요청을 수신할 수 있다. 애플리케이션(125)은, 예를 들어, 웹 서비스 클라이언트(145)의 웹 서비스 애플리케이션과 통신하도록 개발되지 않은 레거시 컴포넌트(135)를 포함할 것이다. 애플리케이션을 초기화하기 위한 이 요청은 웹 서비스 클라이언트(145)로부터의 웹 서비스 요청 메시지(140)에 대한 응답으로 수신되거나, 서비스(110) 컴퓨팅 장치에서의 사용자 인터페이스로부터의 입력에 대한 응답으로 수신될 수 있다.
방법(200)은 또한 동적인 웹 서비스를 자동으로 생성하는 단계(225)도 포함한다. 단계(225)는 관리 구성 설정이 레거시 컴포넌트를 위한 동적인 웹 서비스가 생성됐다는 것을 나타냄을 확인하는 단계(210)를 포함한다. 예를 들어, 웹 서비스 초기화기(180)는 레거시 컴포넌트(135)를 위한 동적인 웹 서비스(175)가 애플리케이션(125)의 초기화시에 생성될 것임을 확인하기 위해 관리 구성 설정(155)에 액세 스할 수 있다.
관리 구성 설정에 기초하여, 단계(225)는 레거시 컴포넌트와 통신하기 위한 인터페이스를 설명하는 메타데이터에 액세스하는 단계(215)를 더 포함한다. 예를 들어, 관리 설정(155)에 기초하여, 웹 서비스 초기화기(180)는 카달로그 데이터베이스(165)로부터의 컴포넌트 인터페이스를 설명하는 메타데이터(160)에 액세스할 수 있다. 메타데이터(160)는 적절한 호출, 매개변수(115), 및 동적인 웹 서비스(125)가 레거시 컴포넌트(135)와 통신하는 데 이용할 매개변수(115) 순서화와 같은 것을 설명해야 한다. 컴포넌트 인터페이스의 설명(160)은 또한 레거시 컴포넌트(135)에 대한 메시지 교환 패턴과 같은 정보도 포함할 수 있다.
마지막으로, 단계(225)는 동적인 웹 서비스를 자동으로 생성하기 위해 메타데이터를 이용하는 단계(220)를 포함한다. 즉, 웹 서비스 초기화기(180)는 동적인 웹 서비스(175)를 생성하는 데 이용할 수 있는 웹 서비스 설명(150)을 생성할 수 있다. 이러한 구현에서, 웹 서비스 설명은 WSDL 문서일 수 있다.
다른 실시예는 웹 서비스 클라이언트(145)로부터 웹 서비스 요청 메시지(140)를 수신하는 것을 제공된다. 웹 서비스 요청 메시지(140)는 레거시 컴포넌트(135)에 의해 제공되는 서비스를 요청하기 위한 다양한 매개변수 및 동작을 포함할 수 있다. 웹 서비스 요청 메시지(140) 내의 정보를 이용하여, 동적인 웹 서비스(175)는 레거시 컴포넌트(135)에 레거시 호출(115)을 행하고, 다음 프로세싱을 위한 (만약 있다면) 적절한 매개변수(115)를 레거시 컴포넌트(135)에 전달할 수 있다.
인터페이스 설명(160)에 기초하여 레거시 컴포넌트(135)에 대한 메시지 교환 패턴을 확인할 수 있는 또 다른 실시예가 제공되는데, 여기서 웹 서비스 클라이언트(145)를 위한 응답(130)이 요청된다. 이에 따라, 동적인 웹 서비스(175)는 레거시 컴포넌트(135)로부터 리턴 값(120)을 수신할 수 있으며, 여기서 동적인 웹 서비스(175)는 리턴 값(120)을 웹 서비스 응답 메시지(130)로 포매팅한다. 이에 따라, 그 후 응답 메시지(130)는 다음 프로세싱을 위해 웹 서비스 클라이언트(145)에 송신될 수 있다. 요청(140) 및 응답(130)은 전형적으로 XML 문서일 것임을 명심하자.
또 다른 실시예가 애플리케이션(125)을 종료하기 위한 요청을 수신하는 것을 제공한다. 애플리케이션(125)을 종료하기 위한 요청에 기초하여, 동적인 웹 서비스(175)가 또한 자동으로 종료된다. 이외에, 웹 서비스 설명(150)이 삭제되어, 새로운 동적인 웹 서비스(175)와 새로운 웹 서비스 설명(150)이 애플리케이션(125)의 다음 초기화시에 생성될 것이다.
본 발명의 범위 내의 실시예들은 그것에 저장된 컴퓨터 실행가능 명령어들 또는 데이터 구조들을 포함하거나 갖는 컴퓨터 판독가능 매체를 포함할 수 있다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예를 들어, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM, 다른 광학 디스크 저장소, 자기 디스크 저장소, 다른 자기 저장 장치, 또는 범용 또는 특수 목적 컴퓨터가 액세스할 수 있는 컴퓨터 판독가능 명령어 또는 데이터 구조들의 형태로 원하는 프로그램 코드 수단을 수 행 또는 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이에 한정된 것은 아니다. 정보가 네트워크 또는 컴퓨터로의 또 다른 통신 연결(유선, 무선 또는 유무선의 조합)을 거쳐 전송 또는 제공될 때, 컴퓨터는 그 연결을 적절하게 컴퓨터 판독가능 매체로서 관측한다. 그러므로, 임의의 이러한 연결은 적절하게 컴퓨터 판독가능 매체로 언급된다. 상기의 것들의 조합들도 컴퓨터 판독가능 매체의 영역 내에 포함되어야 한다. 컴퓨터 실행가능 명령어들은 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 프로세싱 장치가 특정한 기능 또는 기능들의 그룹을 수행하게 하는 명령어 및 데이터를 포함한다.
도 3 및 다음의 설명은 본 발명이 구현될 수 있는 적절한 컴퓨팅 환경의 간략하고 일반적인 설명을 제공하기 위해 의도된 것이다. 요구되지는 않았지만, 본 발명은 네트워크 환경 내의 컴퓨터들에 의해 실행되는 프로그램 모듈들과 같은 컴퓨터 실행가능 명령어들의 일반적인 문맥으로 설명될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정한 추상 데이터 유형들을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 컴퓨터 실행가능 명령어, 관련 데이터 구조 및 프로그램 모듈들은 여기에 공개된 방법들의 단계들을 실행하기 위한 프로그램 코드 수단들의 예를 나타낸다. 이러한 실행가능 명령어 또는 관련 데이터 구조들의 특정한 시퀀스는 이러한 단계들에 설명된 기능들을 구현하기 위한 대응하는 활동들의 예를 나타낸다.
당업자들은, 본 발명이 개인용 컴퓨터, 핸드헬드 장치, 미니 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능 가전 제품, 네트워크 PC, 미니컴퓨 터, 메인프레임 컴퓨터 등을 포함하는 여러 유형의 컴퓨터 시스템 구성들을 갖는 네트워크 컴퓨팅 환경들 내에 구현될 수 있다. 본 발명은 또한 태스크가 로컬 프로세싱 장치 및 통신 네트워크를 통해 링크된(유선 링크, 무선 링크 또는 유무선 링크들의 조합에 의함) 원격 프로세싱 장치에 의해 수행될 수 있는 분산 컴퓨팅 환경 내에 구현될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 장치 모두에 위치할 수 있다.
도 3을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 프로세싱 유닛(321), 시스템 메모리(322), 및 시스템 메모리(322)를 포함하는 다양한 시스템 컴포넌트들을 프로세싱 유닛(321)에 접속시키는 시스템 버스(323)를 포함하는 종래 컴퓨터(320) 형태의 범용 컴퓨팅 장치를 포함한다. 시스템 버스(323)는 메모리 버스, 메모리 제어기, 주변 버스, 및 다양한 버스 아키텍처 중 임의의 것을 사용하는 로컬 버스를 포함하는 몇몇 유형의 버스 유형들 중 임의의 것일 수 있다. 시스템 메모리는 ROM(324) 및 RAM(325)를 포함한다. 시동시에 컴퓨터(320) 내의 구성요소들 사이에 정보를 전송하는 것을 돕는 기본 루틴들을 포함하는 기본 입출력 시스템(BIOS, 326)은 ROM(324) 내에 저장될 수 있다.
컴퓨터(320)는 또한 자기 하드 디스크(339)로부터 판독하고 그것에 기록하기 위한 자기 하드 디스크 드라이브(327), 분리형 자기 디스크(329)로부터 판독하고 그것에 기록하기 위한 자기 디스크 드라이브(328), 및 CD-ROM 또는 다른 광학 매체와 같은 분리형 광학 디스크(331)로부터 판독하고 그것에 기록하기 위한 광학 디스크 드라이브(330)를 포함할 수 있다. 광학 디스크 드라이브(330)는 광학 매체 리 코더의 일 예이다. 자기 하드 디스크 드라이브(327), 자기 디스크 드라이브(328) 및 광학 디스크 드라이브(330)는 각각 하드 디스크 드라이브 인터페이스(332), 자기 디스크 드라이브 인터페이스(333) 및 광학 디스크 드라이브 인터페이스(334)에 의해 시스템 버스(323)에 연결된다. 드라이브 및 그들의 관련된 컴퓨터 판독가능 매체는 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(320)에 대한 다른 데이터의 비휘발성 저장소를 제공한다. 여기에 설명된 예시적인 환경은 자기 하드 디스크(339), 분리형 자기 디스크(329) 및 분리형 광학 디스크(331)를 사용하지만, 자기 카세트, 플래시 메모리 카드, DVD, 베르누이 카트리지(Bernoulli cartridges), RAM, ROM 등의 데이터를 저장하기 위한 컴퓨터 판독가능 매체의 다른 유형들이 사용될 수 있다.
오퍼레이팅 시스템(335), 하나 이상의 애플리케이션 프로그램(336), 다른 프로그램 모듈(337) 및 프로그램 데이터(338)을 포함하는 하나 이상의 프로그램 모듈을 포함하는 프로그램 코드 수단은 하드 디스크(339), 자기 디스크(329), 광학 디스크(331), ROM(324) 또는 RAM(325) 상에 저장될 수 있다. 사용자는 키보드(340), 포인팅 장치(342), 또는 마이크로폰, 조이스틱, 게임패드, 위성 안테나, 스캐너 등의 다른 입력 장치(도시되지 않음)를 통해 컴퓨터(320)로 코맨드(command) 및 정보를 입력할 수 있다. 이러한 및 다른 입력 장치들은 종종 시스템 버스(323)에 접속된 직렬 포트 인터페이스(346)를 통해 프로세싱 유닛(321)에 연결된다. 대안적으로, 입력 장치들은 병렬 포트, 게임 포트 또는 USB와 같은 다른 인터페이스에 의해 연결될 수 있다. 모니터(347) 또는 다른 디스플레이 장치는 또한 비디오 어댑터 (348)와 같은 인터페이스를 통해 시스템 버스(323)에 연결된다. 모니터(347) 이외에, 개인용 컴퓨터는 스피커 및 프린터와 같은 다른 주변 출력 장치(도시되지 않음)들을 포함한다.
컴퓨터(320)는 원격 컴퓨터들(349a 및 349b)과 같은 하나 이상의 원격 컴퓨터에의 논리적인 연결을 사용하여 네트워크 환경 내에서 동작할 수 있다. 원격 컴퓨터들(349a 및 349b)은 각각 또 다른 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 일반 네트워크 노드일 수 있으며, 도 3에는 메모리 저장 장치(350a 및 350b)및 그들의 관련된 애플리케이션 프로그램(336a 및 336b)만이 예시되었지만, 컴퓨터(320)에 관련하여 전술된 많은 또는 모든 구성요소들을 전형적으로 포함한다. 도 3에 나타낸 논리적인 연결은 예로서 LAN(351) 및 WAN(352)을 포함하지만, 이에 한정된 것은 아니다. 이러한 네트워크 환경은 사무실 또는 기업 크기 컴퓨터 네트워크, 인트라넷 및 인터넷에 일반적이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(320)는 네트워크 인터페이스 또는 어댑터(353)를 통해 로컬 네트워크(351)에 연결된다. WAN 네트워크 환경에서 사용될 때, 컴퓨터(320)는 모뎀(354), 무선 링크, 또는 인터넷과 같은 WAN(352)을 통해 통신을 구축하기 위한 다른 수단들을 포함할 수 있다. 내장형 또는 외장형일 수 있는 모뎀(354)은 직렬 포트 인터페이스(346)를 통해 시스템 버스(323)에 연결된다. 네트워크 환경에서, 컴퓨터(320) 또는 그것의 일부에 관련해 설명된 프로그램 모듈은 원격 메모리 저장 장치 내에 저장될 수 있다. 도시된 네트워크 연결들은 예시적일 뿐이며, WAN(352)을 통해 통신을 구축하는 다른 수단들이 사용될 수 있 다.
본 발명은 본 발명의 취지 또는 필수적인 특성들을 벗어나지 않는 다른 특정한 형태로 구현될 수 있다. 설명된 실시예들은 모두가 예시적일 뿐이지 제한적인 것은 아니다. 그러므로, 본 발명의 영역은 상술된 설명에 의하기 보다는 첨부된 청구항에 의해 나타내진다. 청구항들의 동등물의 범위 및 의미 내의 모든 수정들은 그들의 영역 내에 포함된다.
본 발명은 분산형 시스템 내의 서비스 컴퓨팅 장치에서, 관리 이벤트가 레거시 애플리케이션 컴포넌트들의 초기화 동안 동적인 웹 서비스를 생성하게 함으로써 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시 애플리케이션 컴포넌트들을 위한 동적인 웹 서비스를 생성하는 방법 및 컴퓨터 프로그램 제품을 제공한다.
Claims (20)
- 분산형 시스템 내의 서비스 컴퓨팅 장치에서, 관리 이벤트가 레거시 애플리케이션 컴포넌트(legacy application component)들의 초기화 동안 동적인 웹 서비스의 생성을 유발하게 함으로써 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시 애플리케이션 컴포넌트들을 위한 동적인 웹 서비스를 생성하는 방법에 있어서,웹 서비스 애플리케이션들과 통신하도록 개발되지 않은 하나 이상의 레거시 컴포넌트들을 포함하는 애플리케이션을 초기화하기 위한 요청을 수신하는 단계;관리 구성 설정이 상기 하나 이상의 레거시 컴포넌트들을 위한 동적인 웹 서비스가 상기 애플리케이션의 초기화시에 생성될 것임을 나타냄을 확인하는 단계;상기 관리 구성 설정에 기초하여, 상기 하나 이상의 레거시 컴포넌트들과 통신하기 위한 인터페이스를 설명하는 메타데이터에 액세스하는 단계; 및웹 서비스 클라이언트가 번역 프로세스(translation process)를 통해 상기 하나 이상의 레거시 컴포넌트들과 통신하게 하기 위해, 상기 메타데이터를 이용하여 상기 인터페이스 설명에 일관적인 상기 동적인 웹 서비스를 자동으로 생성하는 단계를 포함하는 방법.
- 제1항에 있어서,상기 웹 서비스 클라이언트로부터, 상기 하나 이상의 레거시 컴포넌트들에 의해 제공되는 서비스들을 요청하기 위한 하나 이상의 동작들을 포함하는 웹 서비스 요청 메시지를 수신하는 단계; 및상기 하나 이상의 동작들에 기초하여, 상기 동적인 웹 서비스를 이용하여 상기 하나 이상의 레거시 컴포넌트들에 하나 이상의 레거시 호출들을 행하는 단계를 더 포함하는 방법.
- 제2항에 있어서, 상기 웹 서비스 요청 메시지는 하나 이상의 매개변수들을 더 포함하고,상기 방법은,다음 프로세싱을 위해 상기 하나 이상의 레거시 컴포넌트들 중 하나 이상에 상기 하나 이상의 매개변수들을 전달하는 단계를 더 포함하는 방법.
- 제2항에 있어서,상기 인터페이스 설명에 기초하여, 상기 하나 이상의 레거시 컴포넌트들에 대한 메시지 교환 패턴이 상기 웹 서비스 클라이언트로의 응답을 요구하는 것을 확인하는 단계;상기 하나 이상의 레거시 컴포넌트들로부터 하나 이상의 리턴 값들을 수신하는 단계;상기 동적인 웹 서비스를 이용하여 상기 하나 이상의 리턴 값들을 웹 서비스 응답 메시지로 포매팅하는 단계; 및다음 프로세싱을 위해 상기 웹 서비스 클라이언트에 상기 웹 서비스 응답 메시지를 송신하는 단계를 더 포함하는 방법.
- 제4항에 있어서, 상기 웹 서비스 요청 및 웹 서비스 응답 메시지들은 XML 문서들인 방법.
- 제1항에 있어서, 상기 인터페이스 설명은 호출 동작, 매개변수, 매개변수 순서화, 또는 상기 하나 이상의 레거시 컴포넌트들과 통신하기 위한 메시지 교환 패턴 중 하나 이상을 설명하는 방법.
- 제1항에 있어서, 상기 메타데이터는 처음에 웹 서비스 설명을 생성하기 위해 이용되고, 그 다음에 상기 웹 서비스 설명이 상기 동적인 웹 서비스를 생성하기 위해 이용되는 방법.
- 제7항에 있어서, 상기 웹 서비스 설명은 WSDL 문서인 방법.
- 제7항에 있어서,상기 애플리케이션을 종료시키기 위한 요청을 수신하는 단계;상기 애플리케이션을 종료시키기 위한 요청에 기초하여, 상기 동적인 웹 서비스를 자동으로 종료시키는 단계; 및상기 애플리케이션의 다음 초기화시에 새로운 동적인 웹 서비스 및 새로운 웹 서비스 설명이 생성되도록 상기 웹 서비스 설명을 삭제하는 단계를 더 포함하는 방법.
- 제1항에 있어서, 상기 애플리케이션을 초기화하기 위한 요청은 상기 웹 서비스 클라이언트로부터의 웹 서비스 요청 메시지에 대한 응답으로 수신되는 방법.
- 제1항에 있어서, 상기 애플리케이션을 초기화하기 위한 요청은 상기 서비스 컴퓨팅 장치의 사용자 인터페이스로부터의 입력에 대한 응답으로 수신되는 방법.
- 분산형 시스템 내의 서비스 컴퓨팅 장치에서, 관리 이벤트가 레거시 애플리케이션 컴포넌트들의 초기화 동안 동적인 웹 서비스의 생성을 유발하게 함으로써 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시 애플리케이션 컴포넌트들을 위한 동적인 웹 서비스를 생성하는 방법에 있어서,웹 서비스 애플리케이션들과 통신하도록 개발되지 않은 하나 이상의 레거시 컴포넌트들을 포함하는 애플리케이션을 초기화하기 위한 요청을 수신하는 단계; 및상기 요청에 기초하여, 상기 하나 이상의 레거시 컴포넌트들과 통신하기 위 한 인터페이스를 설명하는 메타데이터에 일관적인 동적인 웹 서비스를 자동으로 생성하는 단계- 상기 동적인 웹 서비스는 웹 서비스 클라이언트가 번역 프로세스를 통해 상기 하나 이상의 레거시 컴포넌트들과 통신하게 하기 위해 이용됨-를 포함하는 방법.
- 제12항에 있어서, 상기 메타데이터는 처음에 웹 서비스 설명을 생성하기 위해 이용되고, 그 다음에 상기 웹 서비스 설명이 상기 동적인 웹 서비스를 생성하기 위해 이용되는 방법.
- 제13항에 있어서,상기 애플리케이션을 종료시키기 위한 요청을 수신하는 단계;상기 애플리케이션을 종료시키기 위한 요청에 기초하여, 상기 동적인 웹 서비스를 자동으로 종료시키는 단계; 및상기 애플리케이션의 다음 초기화시에 새로운 동적인 웹 서비스 및 새로운 웹 서비스 설명이 생성되도록 상기 웹 서비스 설명을 삭제하는 단계를 더 포함하는 방법.
- 제12항에 있어서, 상기 애플리케이션을 초기화하기 위한 요청은 상기 웹 서비스 클라이언트로부터의 웹 서비스 요청 메시지에 대한 응답으로 수신되는 방법.
- 분산형 시스템 내의 서비스 컴퓨팅 장치에서, 관리 이벤트가 레거시 애플리케이션 컴포넌트들의 초기화 동안 동적인 웹 서비스의 생성을 유발하게 함으로써 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시 애플리케이션 컴포넌트들을 위한 동적인 웹 서비스를 생성하는 방법을 구현하기 위한 것으로서, 컴퓨터 실행가능 명령어들이 저장되어 있는 하나 이상의 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품에 있어서,상기 컴퓨터 실행가능 명령어들은, 프로세서에 의해 실행될 때, 분산형 컴퓨팅 시스템이,웹 서비스 애플리케이션들과 통신하도록 개발되지 않은 하나 이상의 레거시 컴포넌트들을 포함하는 애플리케이션을 초기화하기 위한 요청을 수신하는 단계;관리 구성 설정이 상기 하나 이상의 레거시 컴포넌트들을 위한 동적인 웹 서비스가 상기 애플리케이션의 초기화시에 생성될 것이란 것을 나타냄을 확인하는 단계;상기 관리 구성 설정에 기초하여, 상기 하나 이상의 레거시 컴포넌트들과 통신하기 위한 인터페이스를 설명하는 메타데이터에 액세스하는 단계; 및웹 서비스 클라이언트가 번역 프로세스를 통해 상기 하나 이상의 레거시 컴포넌트들과 통신하게 하기 위해, 상기 메타데이터를 이용하여 상기 인터페이스 설명에 일관적인 상기 동적인 웹 서비스를 자동으로 생성하는 단계를 수행하게 할 수 있는 컴퓨터 프로그램 제품.
- 제16항에 있어서, 상기 분산형 컴퓨팅 시스템이,상기 웹 서비스 클라이언트로부터, 상기 하나 이상의 레거시 컴포넌트들에 의해 제공되는 서비스들을 요청하기 위한 하나 이상의 동작들을 포함하는 웹 서비스 요청 메시지를 수신하는 단계; 및상기 하나 이상의 동작들에 기초하여, 상기 동적인 웹 서비스를 이용하여 상기 하나 이상의 레거시 컴포넌트들에 하나 이상의 레거시 호출들을 행하는 단계를 수행하게 할 수 있는 컴퓨터 실행가능 명령어들을 더 포함하는 컴퓨터 프로그램 제품.
- 제17항에 있어서, 상기 웹 서비스 요청 메시지는 하나 이상의 매개변수들을 더 포함하고,상기 컴퓨터 프로그램 제품은 상기 분산형 컴퓨팅 시스템이,다음 프로세싱을 위해 상기 하나 이상의 레거시 컴포넌트들 중 하나 이상에 상기 하나 이상의 매개변수들을 전달하는 단계를 수행하게 할 수 있는 컴퓨터 실행가능 명령어들을 더 포함하는 컴퓨터 프로그램 제품.
- 제17항에 있어서, 상기 분산형 컴퓨팅 시스템이,상기 인터페이스 설명에 기초하여, 상기 하나 이상의 레거시 컴포넌트들에 대한 메시지 교환 패턴이 상기 웹 서비스 클라이언트로의 응답을 요구하는 것을 확 인하는 단계;상기 하나 이상의 레거시 컴포넌트들로부터 하나 이상의 리턴 값들을 수신하는 단계;상기 동적인 웹 서비스를 이용하여 상기 하나 이상의 리턴 값들을 웹 서비스 응답 메시지로 포매팅하는 단계; 및다음 프로세싱을 위해 상기 웹 서비스 클라이언트에 상기 웹 서비스 응답 메시지를 송신하는 단계를 수행하게 할 수 있는 컴퓨터 실행가능 명령어들을 더 포함하는 컴퓨터 프로그램 제품.
- 제16항에 있어서, 상기 인터페이스 설명은 호출 동작, 매개변수, 매개변수 순서화, 또는 상기 하나 이상의 레거시 컴포넌트들과 통신하기 위한 메시지 교환 패턴 중 하나 이상을 설명하는 컴퓨터 프로그램 제품.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/075,417 | 2005-03-08 | ||
US11/075,417 US7590988B2 (en) | 2005-03-08 | 2005-03-08 | Dynamic service generation for legacy components |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060099392A true KR20060099392A (ko) | 2006-09-19 |
Family
ID=36282650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060004812A KR20060099392A (ko) | 2005-03-08 | 2006-01-17 | 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시애플리케이션 컴포넌트를 위한 동적인 웹 서비스를생성하는 방법 및 컴퓨터 프로그램 제품 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7590988B2 (ko) |
EP (1) | EP1701261A1 (ko) |
JP (1) | JP5259924B2 (ko) |
KR (1) | KR20060099392A (ko) |
CN (1) | CN1832478B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240011200A (ko) * | 2021-05-31 | 2024-01-25 | 지멘스 악티엔게젤샤프트 | 애플리케이션 프로그램 구성 방법, 실행 방법, 컴퓨팅 디바이스, 및 저장 매체 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7593994B2 (en) * | 2005-03-08 | 2009-09-22 | Microsoft Corporation | Generating a dynamic web service and dynamic service surrogate for legacy application components |
CA2527447C (en) * | 2005-11-18 | 2015-05-05 | Allen Vi Cuong Chan | Message oriented construction of web services |
US8914770B2 (en) * | 2006-01-26 | 2014-12-16 | International Business Machines Corporation | Generating compatible partner processes in BPEL |
JP4958481B2 (ja) * | 2006-06-01 | 2012-06-20 | キヤノン株式会社 | Webサービス実行方法及び情報処理装置 |
US7971184B2 (en) * | 2007-02-23 | 2011-06-28 | Accenture Global Services Limited | GUI-based application to web services conversion system |
US7971183B2 (en) * | 2007-02-23 | 2011-06-28 | Accenture Global Services Limited | Tool for converting legacy applications to web services |
US7865535B2 (en) * | 2007-05-18 | 2011-01-04 | International Business Machines Corporation | Apparatus, system, and method for a data server-managed web services runtime |
US8122444B2 (en) * | 2007-08-02 | 2012-02-21 | Accenture Global Services Limited | Legacy application decommissioning framework |
US8005788B2 (en) * | 2008-01-28 | 2011-08-23 | International Business Machines Corporation | System and method for legacy system component incremental migration |
JP5078726B2 (ja) * | 2008-01-29 | 2012-11-21 | 株式会社リコー | 情報処理装置、サービス制御方法及びサービス制御プログラム |
US8112771B2 (en) * | 2008-01-30 | 2012-02-07 | Microsoft Corporation | Managing component programs within a service application |
JP5084537B2 (ja) * | 2008-02-05 | 2012-11-28 | 三菱電機株式会社 | サーバ装置及びプログラム |
US8762938B2 (en) | 2008-04-28 | 2014-06-24 | Salesforce.Com, Inc. | Object-oriented system for creating and managing websites and their content |
US8060586B2 (en) * | 2009-02-03 | 2011-11-15 | Microsoft Corporation | Dynamic web service deployment and integration |
US8495193B2 (en) * | 2010-02-23 | 2013-07-23 | Microsoft Corporation | Centralized management tool for remote presentation session server farms |
CN101807204B (zh) * | 2010-03-05 | 2012-02-15 | 武汉大学 | 一种遥感图像处理Web服务动态生成方法 |
CN101840334B (zh) * | 2010-04-16 | 2013-04-17 | 中国电子科技集团公司第二十八研究所 | 一种软件构件服务化封装方法 |
CN102262527B (zh) | 2010-05-31 | 2015-12-09 | 国际商业机器公司 | 生成网络服务的方法和系统 |
US9223892B2 (en) | 2010-09-30 | 2015-12-29 | Salesforce.Com, Inc. | Device abstraction for page generation |
US8935360B2 (en) | 2010-12-03 | 2015-01-13 | Salesforce.Com, Inc. | Techniques for metadata-driven dynamic content serving |
US9286037B2 (en) | 2010-12-29 | 2016-03-15 | Microsoft Technology Licensing, Llc | Platform for distributed applications |
CN102622211B (zh) * | 2011-01-27 | 2016-05-25 | 腾讯科技(深圳)有限公司 | 一种应用程序开发的方法和装置 |
US9569274B2 (en) | 2012-10-16 | 2017-02-14 | Microsoft Technology Licensing, Llc | Distributed application optimization using service groups |
CN105404502A (zh) * | 2015-10-20 | 2016-03-16 | 浪潮软件集团有限公司 | 一种方便手机app九宫格、列表开发的js组件 |
US10979516B1 (en) | 2020-03-27 | 2021-04-13 | Mastercard International Incorporated | Monitoring and managing services in legacy systems using cloud native monitoring and managing tools |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049719A (en) * | 1994-11-12 | 2000-04-11 | U.S. Philips Corporation | Communication system with automatic call diversion or forwarding |
JPH11224226A (ja) * | 1997-11-21 | 1999-08-17 | Fuji Xerox Co Ltd | クライアント・サーバ間のゲートウェイにおけるインタフェース及びクライアント・サーバ間のプロトコルマッピング方法 |
GB2332288A (en) * | 1997-12-10 | 1999-06-16 | Northern Telecom Ltd | agent enabling technology |
JP2000172653A (ja) * | 1998-12-03 | 2000-06-23 | Oki Electric Ind Co Ltd | 分散システム |
US6381737B1 (en) * | 1999-04-23 | 2002-04-30 | Sun Microsystems, Inc. | Automatic adapter/stub generator |
US6792605B1 (en) * | 1999-06-10 | 2004-09-14 | Bow Street Software, Inc. | Method and apparatus for providing web based services using an XML Runtime model to store state session data |
JP2001297067A (ja) * | 2000-04-13 | 2001-10-26 | Skill Informations Co Ltd | ネットワークサービスシステム |
US20020116454A1 (en) * | 2000-12-21 | 2002-08-22 | William Dyla | System and method for providing communication among legacy systems using web objects for legacy functions |
US6993585B1 (en) * | 2000-12-22 | 2006-01-31 | Unisys Corporation | Method and system for handling transaction requests from workstations to OLTP enterprise server systems utilizing a common gateway |
WO2002065278A2 (en) * | 2001-02-12 | 2002-08-22 | Lto Limited | A presentation server which enables a client device to run a network based application |
US20020152210A1 (en) * | 2001-04-03 | 2002-10-17 | Venetica Corporation | System for providing access to multiple disparate content repositories with a single consistent interface |
CA2348706A1 (en) * | 2001-05-25 | 2002-11-25 | Ibm Canada Limited-Ibm Canada Limitee | Converting user interface source code of a legacy application to web pages |
US7340714B2 (en) * | 2001-10-18 | 2008-03-04 | Bea Systems, Inc. | System and method for using web services with an enterprise system |
US7188163B2 (en) * | 2001-11-26 | 2007-03-06 | Sun Microsystems, Inc. | Dynamic reconfiguration of applications on a server |
US7284039B2 (en) * | 2002-12-17 | 2007-10-16 | International Business Machines Corporation | Apparatus and method for flexible web service deployment |
US20040128345A1 (en) * | 2002-12-27 | 2004-07-01 | Robinson Scott H. | Dynamic service registry |
US7805713B2 (en) * | 2003-10-27 | 2010-09-28 | Hewlett-Packard Development Company, L.P. | Transaction processing architecture |
US7266550B2 (en) * | 2004-01-29 | 2007-09-04 | Sap Aktiengesellschaft | Managing application status information for a computer application |
US7593994B2 (en) * | 2005-03-08 | 2009-09-22 | Microsoft Corporation | Generating a dynamic web service and dynamic service surrogate for legacy application components |
-
2005
- 2005-03-08 US US11/075,417 patent/US7590988B2/en not_active Expired - Fee Related
-
2006
- 2006-01-17 KR KR1020060004812A patent/KR20060099392A/ko active Search and Examination
- 2006-02-08 JP JP2006031113A patent/JP5259924B2/ja not_active Expired - Fee Related
- 2006-02-10 CN CN2006100085128A patent/CN1832478B/zh not_active Expired - Fee Related
- 2006-03-07 EP EP06110752A patent/EP1701261A1/en not_active Ceased
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240011200A (ko) * | 2021-05-31 | 2024-01-25 | 지멘스 악티엔게젤샤프트 | 애플리케이션 프로그램 구성 방법, 실행 방법, 컴퓨팅 디바이스, 및 저장 매체 |
Also Published As
Publication number | Publication date |
---|---|
JP2006252536A (ja) | 2006-09-21 |
EP1701261A1 (en) | 2006-09-13 |
CN1832478A (zh) | 2006-09-13 |
US20060206599A1 (en) | 2006-09-14 |
CN1832478B (zh) | 2012-05-02 |
US7590988B2 (en) | 2009-09-15 |
JP5259924B2 (ja) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20060099392A (ko) | 웹 서비스 환경 내에서 통신하도록 개발되지 않은 레거시애플리케이션 컴포넌트를 위한 동적인 웹 서비스를생성하는 방법 및 컴퓨터 프로그램 제품 | |
KR101219855B1 (ko) | 동적 서비스 대리자 | |
US20210012059A1 (en) | Mobile device resource provisioning system and method | |
US7546606B2 (en) | System and method using a connector architecture for application integration | |
US7752598B2 (en) | Generating executable objects implementing methods for an information model | |
US6609158B1 (en) | Component architecture in a computer system | |
KR101220000B1 (ko) | 서비스와 클라이언트 런타임을 생성, 교환, 및 구성하기위한 추상적 기술의 사용 | |
US6904600B1 (en) | Application programming interface to the simple object access protocol | |
EP1960899B1 (en) | Conforming web services to an updated contract | |
US8407718B2 (en) | Method and apparatus for composite user interface generation | |
US20080222617A1 (en) | Server side application integration framework | |
MX2007015887A (es) | Flujos de trabajos centricos de datos. | |
US20030055862A1 (en) | Methods, systems, and articles of manufacture for managing systems using operation objects | |
EP1899910A2 (en) | Using messages to extend crm functionality | |
WO2003034183A2 (en) | System and method using a connector architecture for application integration | |
US7047495B1 (en) | Method and apparatus for graphical device management using a virtual console | |
US20060200800A1 (en) | Aggregation of non blocking state machines on enterprise java bean platform | |
CN108496157B (zh) | 使用扩展接口提供运行时跟踪的系统和方法 | |
US7849472B1 (en) | System for instrumenting resources utilizing WS-management resource MBean wrappers for JAXB beans | |
CN114721711A (zh) | 基于GraphQL减免软件研发配置的工具和方法 | |
US8132189B1 (en) | WS-management resource MBean wrapper for JAXB beans | |
US20240231761A1 (en) | Event consumption for high-level programing language platform | |
JP2003015891A (ja) | ネットワークシステム、サーバ、クライアント、オブジェクト間通信方法、プロファイルオブジェクト登録方法、プログラム、および記憶媒体 | |
CN118101744A (zh) | 用于操作资源对象的方法及装置、电子设备 | |
Stan et al. | A PROPOSED APPROACH FOR PLATFORM INTEROPERABILITY. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B601 | Maintenance of original decision after re-examination before a trial | ||
J301 | Trial decision |
Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20121012 Effective date: 20140227 |