KR100840513B1 - 웹서비스 시스템 및 그 방법 - Google Patents
웹서비스 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR100840513B1 KR100840513B1 KR1020060049899A KR20060049899A KR100840513B1 KR 100840513 B1 KR100840513 B1 KR 100840513B1 KR 1020060049899 A KR1020060049899 A KR 1020060049899A KR 20060049899 A KR20060049899 A KR 20060049899A KR 100840513 B1 KR100840513 B1 KR 100840513B1
- Authority
- KR
- South Korea
- Prior art keywords
- service
- result
- web service
- web
- client
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000005266 casting Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 5
- 239000000344 soap Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000003619 Marshal aromatic alkylation reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 웹 서비스 시스템 및 그 방법에 관한 것으로서, 본 발명에 따르면, 클라이언트의 웹서비스 요청에 의해 처리된 적어도 하나 이상의 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 생성하여 제공함으로써, 서비스 인터페이스에 관계없이 대용량의 웹서비스 시스템의 개발과 관리가 용이하도록 하고, 또한, 이미 구축되어 있는 기존의 웹서비스 시스템과도 쉽게 통합이 가능하며 서비스별 관리가 가능하여 필요에 따라 쉽게 웹서비스 구현을 추가하거나 삭제하는 것이 가능하도록 한 것이다.
Description
도 1은 WSDL을 이용한 웹서비스 시스템의 메시지 흐름을 나타내는 도면.
도 2는 본 발명의 웹서비스 서버에 의해 정의되는 WSDL의 일예를 나타내는 도면.
도 3은 본 발명에 따른 웹서비스 시스템의 구성을 나타내는 도면.
도 4는 본 발명에 따른 웹서비스 방법의 과정을 나타내는 도면.
도 5는 본 발명에 따른 공통타입의 웹서비스 결과값을 제공하는 과정을 나타내는 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
210 : 웹 컨테이너 240 : 공통타입 생성모듈
230 : 서비스 구현객체 300 : 데이터베이스
본 발명은 웹서비스 시스템 및 그 방법에 관한 것으로서, 클라이언트의 웹서비스 요청에 의해 처리된 적어도 하나 이상의 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 생성하여 제공하도록 한 웹 서비스 시스템 및 그 방법에 관한 것이다.
인터넷의 발달과 함께 웹을 기반으로 하는 클라이언트-서버 분산 구조의 웹서비스 시스템이 인기를 끌고 있다. 웹을 기반으로 클라이언트와 서버 사이에 통신을 하기 위해서는 원격 프로시저를 정의한 인터페이스가 규정되어야 하며 W3C에서 제안된 WSDL(Web Services Description Language)이 표준화된 명세화 방법이다.
WSDL은 XML 용어의 하나로 프로그래밍 단계의 자동적 통합에 요구되는 모든 기술 세목들을 구성한다. 이러한 WSDL은 어떻게 보면 방법론 Description 부분, Argument 형태 및 결과 값에 있어서, 또는 WSDL이 서비스의 호출을 원하는 이용자에게 상세한 구현 절차를 설명함으로써 CORBA(Common Architecture Request Broker)의 IDL(Interface Definition Language)에 비교된다.
다시 말해, WSDL은 문서 지향적 또는 프로시저 지향적인 정보를 포함한 메시지에서 작동하는 종점 집합으로서의 네트워크 서비스를 설명하는 XML 형식이다. WSDL은 통신에 사용되는 메시지 형식 또는 네트워크 프로토콜과는 상관 없이 종점 및 종점의 메시지를 설명하도록 확장할 수 있다.
이와 같은 WSDL을 이용한 웹서비스 시스템을 구축함에 있어 서비스 인터페이스(Service Interface)와 서비스 구현객체(Service implementation)는 따로 분리해서 생각할 수 없는 개념이다.
즉, 서비스 인터페이스(Service Interface)가 정의되면 그에 따라 서버측에서 서비스 구현(implementation)이 이루어짐으로써 클라이언트는 정의된 서비스 인터페이스에 따라 서비스를 받을 수 있게 된다.
특히, 웹 서비스(Web Services)를 제공하는 웹서비스 서버 시스템에서는 WSDL과 Stub를 이용하면 클라이언트 애플리케이션(client application)이 웹 서버의 리모트(remote) 서비스를 로컬(local) API처럼 사용할 수 있게 된다.
예를 들어, WSDL에 의해 서비스 인터페이스(Service Interface)가 " SysInfo getSysInfo(int sysId); CardInfo getCardInfo(int sysId); ... " 와 같이 정의되어 있는 경우, 웹서비스 클라이언트(Web Services client)는 stub를 통해 getSysInfo()나 getCardInfo() 등의 리모트 콜(remote call)을 호출할 수 있게 된다.
리모트 콜(remote call)의 결과는 리턴 값(return value)으로 얻어지게 되는데 SysInfo나 CardInfo의 값이 각각의 리모트 콜(remote call)에 대해서 얻어진다.
즉, 서버의 서비스 구현객체는 클라이언트의 콜(call)에 따라 적절한 결과값을 만들어야 하며, 각각의 서비스 인터페이스(Service Interface)에 따라 별개의 리턴(return) 값으로 응답해야 한다.
하지만, 구현해야 할 서비스 인터페이스가 많을 경우 각각의 서비스 인터페이스를 개별적으로 구현하고 관리하는 것은 서버구현을 복잡하게 하고 특히 대규모의 서버 시스템을 구축할 때에는 더욱 더 비효율적이라는 문제점이 발생하게 된다.
따라서, 본 발명의 목적은 상기와 같은 문제점을 해결하기 위한 것으로서, 서비스 인터페이스(Service Interface)를 공통된 리턴 타입(return type)으로 정의하여 서로 다른 서비스 구현객체의 서비스 종류에 관계없이 공통된 타입의 결과값을 얻을 수 있도록 한 웹서비스 시스템 및 그 방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 웹서비스 시스템의 일 측면에 따르면, 클라이언트의 웹서비스 요청에 의해 처리된 적어도 하나 이상의 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 생성하는 공통타입 생성모듈을 포함한다.
상기 공통타입 생성모듈은 상기 클라이언트로부터 전송되는 웹서비스 요청 메시지의 파라메터 인증을 수행하는 파라메터 인증부와, 상기 파라메터 인증부로부터 인증된 웹서비스 요청 메시지에 대한 서비스 결과값을 획득하는 서비스 분배부와, 상기 서비스 분배부로부터 획득된 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 변환하는 공통타입 변환부 및 상기 공통타입 변환부로부터 변환된 서비스 결과값을 웹 컨테이너를 통해 상기 클라이언트로 전송하는 공통타입 전송부를 포함한다.
상기 공통타입 변환부는 상기 파라메터 인증부의 인증 결과 상기 웹서비스 요청 메시지의 파라메터가 유효하지 않은 경우 전송되는 인증실패 결과정보를 상기 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 인증실패 결과정보로 변환한다.
상기 공통타입 변환부는 상기 서비스 분배부로부터 상기 웹서비스 요청 메시지에 대한 서비스 실패정보가 전송되는 경우, 서비스 실패정보를 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 실패정보로 변환한다.
상기 클라이언트는 상기 공통타입 생성모듈로부터 공통된 형식의 서비스 결과값을 전송받아 de-enveloping하고 타입 캐스팅(type casting)하여 사용자가 인식할 수 있는 real result type으로 변환하게 된다.
또한, 상기한 목적을 달성하기 위한 본 발명에 따른 서비스 시스템의 일 측면에 따르면, 클라이언트로부터 전송되는 웹서비스 요청 메시지의 파라메터 인증을 수행하는 파라메터 인증부와, 상기 파라메터 인증부로부터 인증된 웹서비스 요청 메시지에 대한 서비스 결과값을 획득하는 서비스 분배부와, 상기 서비스 분배부로부터 획득된 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 변환하는 공통타입 변환부 및 상기 공통타입 변환부로부터 변환된 서비스 결과값을 웹 컨테이너를 통해 상기 클라이언트로 전송하는 공통타입 전송부를 포함한다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 웹서비스 방법의 일 측면에 따르면, 클라이언트의 웹서비스 요청에 의해 처리된 적어도 하나 이상의 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 생성하는 단계를 포함한다.
상기 공통된 형식을 갖는 서비스 결과값으로 생성하는 단계는, 상기 클라이언트로부터 전송되는 웹서비스 요청 메시지의 파라메터 인증을 수행하는 단계와, 상기 인증된 웹서비스 요청 메시지에 대한 서비스 결과값을 획득하는 단계와, 상기 획득된 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 변환하는 단계 및 상기 변환된 서비스 결과값을 웹 컨테이너를 통해 상기 클라이언트로 전송하는 단계를 포함한다.
또한, 상기 클라이언트가 상기 공통된 형식의 서비스 결과값을 전송받아 de-enveloping하고 타입 캐스팅(type casting)하여 사용자가 인식할 수 있는 real result type으로 변환하는 단계를 더 포함한다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 1은 WSDL을 이용한 웹서비스 시스템의 메시지 흐름을 나타내는 도면이다.
도 1에 도시된 바와 같이, 일반적으로 WSDL(Web Services Description Language)은 웹서비스 서버(Web Services Server)(200)에 의해서 생성되며, 웹서비 스 서버(Web Services Server)(200)가 제공 가능한 서비스에 대한 일종의 명세서로 웹서비스 클라이언트(Web Services Client)(100)가 접근 가능한 URL(Uniform Resource Locator)에 업로드(upload)한다.
WSDL에 대한 URL은 UDDI(Universal Description, Discovery and Integration)(400)에 등록되어 웹서비스 클라이언트(Web Services Client)(100)가 필요한 경우 WSDL에 대한 URL을 얻을 수 있도록 한다.
즉, 웹서비스 클라이언트(Web Services Client)(100)는 UDDI(400)로부터 WSDL의 URL을 얻게 되면(Obtain WSDL URL), 웹서비스 클라이언트(Web Services Client)(100)의 WSDL 프로세서(WSDL Processor)(110)는 해당 URL에 WSDL(220)을 요청(Request WSDL)하여 요청한 WSDL을 얻는다(Obtain WSDL).
이와 같이 얻어진 WSDL은 WSDL 프로세서(110)에 의해 해석(translate)되어 클라이언트 애플리케이션(client application)(120)이 사용할 수 있는 스터브 이미지(stub images)(130)를 생성하는데 사용된다.
이와 같이 생성된 스터브 이미지(stub images)(110)는 복잡한 분산 환경하에서 클라이언트 애플리케이션(client application)(120)이 자세한 바인딩 정보 없이도 쉽게 웹서비스 서버(Web Services Server)(200)에 서비스를 요청하고 받도록 해준다.
웹서비스 클라이언트(Web Services Client)(100)는 실제로는 리모트 콜(remote call)에 의해서 원하는 정보를 얻지만, 스터브 이미지(stub images)(110)를 통해서 마치 로컬(Local) API를 호출하듯이 동작할 수 있으며 웹서 비스 서버(200)의 서비스를 이용할 수 있다.
즉, 클라이언트 애플리케이션(client application)(120)이 스터브 이미지(stub images)(110)를 통해 웹서비스 서버(200)로 요청 메시지(request message)를 전달하면 웹서비스 서버(200)는 이에 대한 응답 메시지(response message)를 생성(build)하여 웹서비스 클라이언트(100)로 전달하게 된다.
특히, 웹서비스 클라이언트(100)에서 웹서비스 서버(200)로 전달되는 요청 메시지(Request message)는 웹 컨테이너(Web Container)(210)를 통해 알람 서비스(Alarm Service)나 설정 서비스(Config Service)와 같은 서비스 구현객체(Service Implementation)로 전달되어지며, 서비스 구현객체(Service Implementation)(230)는 필요에 따라 백 엔드 시스템(back-end system)이나 데이터베이스(DataBase)(300) 등과 연동하여 응답 메시지(response message)를 생성(build)하여 클라이언트(client)(10)로 응답하게 된다.
도 2는 본 발명의 웹서비스 서버에 의해 정의되는 WSDL의 일예를 나타내는 도면이다.
도 2에 도시된 바와 같이, 본 발명의 웹서비스 서버 시스템에 의해 정의되는 WSDL Type element Description을 살펴보기로 한다.
먼저, 본 발명의 웹 서비스(Web Services)를 명세화한 WSDL의 element 중에 웹 서비스(Web Services)에 사용되는 complex type을 정의하는 <type> element에 Common result type에 해당하는 ResultEnvelope 타입을 정의한다.
특히, ResultEnvelope는 "result", "failReason", "resType" 및 "resObj"의 child element로 구성된다. 여기서, "result"는 스트링(string) 타입으로 "OK", "NOK"의 결과값을 갖게 되는데 만약 결과값이 정상적으로 수행되었으면 "OK"의 값을 가지며, 에러(error)나 실패(fail)가 발생한 경우에는 "NOK"의 값을 가지게 된다.
그리고, failReason은 "result"가 "NOK"인 경우에만 의미를 가지며 "result"가 "OK"인 경우에는 무시해도 되는 요소값(element)이다. 즉, 서비스 결과값이 정상적으로 처리되지 못했을 경우 클라이언트(client)에게 그에 대한 이유를 설명하는 역할을 한다. 예로서, "Invalild Parameter Value”, “Unaccessible Back-end system”, “Out of Memory”, “Unauthorized User" 등이 이에 해당될 수 있다.
그리고, "resObj element"는 서비스 구현객체에 의해 처리된 실제 결과 데이터 객체(data object)가 담기는 곳으로 실제 result type들의 선택 타입(choice type)으로 선언되며, 선택 타입(choice type)에 정의된 실제 result type들도 complex type인 경우에는 WSDL의 type element안에 선언되어야 한다.
그리고, "resType"는 de-enveloping을 위한 정보를 사용자에게 주고, real result object type으로 type casting하기 위한 것이다. "resObj"는 서버측에서 서비스 구현 객체(service implementation objects)에 의해 처리된 real result object를 나타내는 "real object"를 의미한다. ResObj type은 역시 complex type이고 service implementation에 의해 생성된 real result object types이 포함되도록 선택 타입(choice type)으로 정의되어야한다. 만약 real result object types이 complex type이면, real result object types은 관리 정보(management information)에 따라 XML Schema의 폼으로 WSDL로 정의되어야만 한다. 상기 ResObj는 resType field를 이용하여 type casting에 의해 사용자가 인식할 수 있는 real result type으로 변환되어진다.
즉, 도 2에서와 같이, SysInfo가 complex type으로 real result data type으로 선언되고 ResObj의 choice type내에 element로 정의되어 있음을 알 수 있다.
그리고, ResultEnvelope는 common data type으로 resObj element를 이용해 real result type을 포함할 수 있는 구조로 정의될 수 있으며, Common result type과 Real result type간의 연결은 ResObj의 choice type 에 의해서 정의되는 것이다.
이와 같이 정의되는 본 발명의 웹 서비스(Web Services)를 명세화한 WSDL은 종래의 웹서비스 클라이언트와 웹서비스 서버간의 서비스 인터페이스(Service Interface)를 단순화하기 위한 것이다.
도 3은 본 발명에 따른 웹서비스 시스템의 구성을 나타내는 도면이다.
도 3에 도시된 바와 같이, 본 발명의 웹서비스 서버 시스템은 크게 웹 컨테이너(Web Container)(210)와, 공통타입 생성모듈(240)과, 서비스 구현객체(Service Implementation)(230)를 포함하며, 백 엔드 시스템(back-end system)이나 데이터베이스(DataBase)(300) 등과 연동하게 된다.
웹 컨테이너(Web Container)(210)는 웹을 통해 웹서비스 클라이언트로부터 전송되는 웹서비스 요청 메시지를 수신하게 된다. 여기서 웹서비스 요청 메시지는 예를 들어, "getSysinfo()" 등이 될 수 있다.
공통타입 생성 모듈(240)은 웹 컨테이너(Web Container)(210)를 통해 수신되는 웹서비스 요청 메시지를 인증하여 인증된 웹서비스 요청 메시지에 대한 서비스를 수행할 서비스 구현객체(Service Implementation)(230)로 전달한다.
이와 같은 공통타입 생성 모듈(240)은 DV(Data Validator)(241)와, SD(Service Distributer)(242)와, REG(Result Envlelope Generator)(243)와, RED(Result Envelope Deliverer)(244)를 포함하여 구성된다.
DV(Data Validator)(241)는 웹(Web)을 통해 전송된 요청 메시지(request message)의 파라메터 인증(parameter validation)을 수행하게 된다.
즉, DV(Data Validator)(241)는 웹(Web)을 통해 전송된 요청 메시지(Request message)의 파라메터(parameter)가 유효(Valid)하다고 판단되면 유효한 요청 메시지(Request message)를 SD(Service Distributer)(242)로 전송하고, 만약 유효하지 않은 것으로 판단되면 유효하지 않음을 나타내는 메시지를 REG(Result Envlelope Generator)(243)로 전송하게 된다.
특히, DV(Data Validator)(241)는 요청 메시지(Request message)의 파라메터(parameter)가 유효(invalid)하지 않다고 판단되는 경우, "NOK"(NOT OK의 의미)라는 "result" 값과 "Invalild Parameter Value"의 "failReason"값이 담긴 failResponse를 REG(Result Envlelope Generator)(243)로 전달하게 된다.
이에 따라, REG(Result Envlelope Generator)(243)는 "NOK"의 "result" 값과 "Invalild Parameter Value"의 "failReason" 값을 갖는 ResultEnvelope을 생성하여 실패 응답(Fail response)를 RED(Result Envelope Deliverer)(244)를 통해 클라이언트(client)로 전달하게 된다.
한편, SD(Service Distributer)(242)는 DV(Data Validator)(241)로부터 인증된 요청 메시지(Request message)를 수신하는 경우, 수신된 요청 메시지(Request message)를 분석하여 서비스를 수행할 서비스 구현객체를 찾아 해당 서비스 구현객체로 서비스 요청을 하게 된다.
서비스 구현객체(Service Implementation)(230) 중 SD(Service Distributer)(242)로부터 서비스 요청을 받은 구현객체는 백 엔드 시스템(back-end system)이나 데이터베이스(DataBase)(300)와 연동하여 요청 메시지에 대한 해당 서비스 결과값을 생성하여 SD(Service Distributer)(242)로 전송하게 된다.
여기서, 서비스 구현객체(Service Implementation)(230)에 의해 생성된 서비스 결과값은 서비스 타입별로 결과값을 가지게 되며, 데이터베이스(DataBase)(300)에 저장된 미가공 데이터(Raw Data)를 수집(Collecting Information)하여 가공한 Real Result Data Type을 갖게 된다.
SD(Service Distributer)(242)는 서비스 구현객체(Service Implementation)(230)로부터 전송받은 Real Result Data Type의 서비스 결과값을 REG(Result Envlelope Generator)(243)로 전달하게 된다.
REG(Result Envlelope Generator)(243)는 SD(Service Distributer)(242)로부터 전달된 Real Result Data Type의 서비스 결과값을 Common Result Type인 ResultEnvelope type으로 변환하여 RED(Result Envelope Deliverer)(244)로 전달하게 된다.
이에 따라, REG(Result Envlelope Generator)(243)에서 ResultEnvelope type으로 변환된 서비스 결과값은 SOAP이나 HTTP 프로토콜 등의 메시지로 마샬링(Marshalling)되어 클라이언트로 전송되어진다.
그러나, 만약 SD(Service Distributer)(242)가 서비스 구현객체(Service Implementation)(230)로부터 타임아웃(timeout) 등의 이유로 요청 메시지에 대한 서비스 결과값을 수신하지 못했거나, 정상적으로 처리되지 못했다는 실패(fail) 정보를 수신하는 경우, SD(Service Distributer)(242)는 "NOK"라는 "result" 값과 "timeout" 등과 같은 적절한 "failReason" 정보가 담긴 FailResponse를 REG(Result Envlelope Generator)(243)로 전달하게 된다.
이에 따라, REG(Result Envlelope Generator)(243)는 SD(Service Distributer)(242)로부터 전달되는 FailResponse을 Envleloping한 ResultEnvelope를 생성하게 된다.
이 후, REG(Result Envlelope Generator)(243)에서 생성된 ResultEnvelope는 RED(Result Envelope Deliverer)(244)로 전달되어 SOAP/HTTP 등의 프로토콜을 통해 클라이언트(Client)로 전달된다.
도 4는 본 발명에 따른 웹서비스 방법의 과정을 나타내는 도면이다.
도 4에 도시된 바와 같이, 웹을 통해 클라이언트로부터 전송되는 언마샬링 메시지(Unmarshalling message)는 웹서비스 서버의 웹 컨테이너(Web Container)(210)를 통해 공통타입 생성모듈(240)로 전송(S10)된다. 이때, 클라이언트로부터 전송되는 언마샬링 메시지(Unmarshalling message)는 예를 들면 "getSysinfo" 등이 될 수 있다.
이어서, 언마샬링 메시지(Unmarshalling message)를 전송받은 공통타입 생성 모듈(240)은 서비스 구현객체(Service Implementation)(230)로 요청 메시지를 전달(Delivers request)(S20)하게 된다.
이어서, 공통타입 생성모듈(240)로부터 요청 메시지를 전달받은 서비스 구현객체(Service Implementation)(230)는 데이터베이스(300)에 저장된 미가공 데이터(Raw Data)를 수집(Collecting Information)(S30)하여 미처리된 데이터를 전송(S40)받게 된다.
이어서, 서비스 구현객체(Service Implementation)(230)는 데이터베이스(300)로부터 수집된 미가공 데이터(Raw Data)를 Real Result Data Type로 가공하여 CTEM(Common Type Envelope Machine)(240)으로 전송(S50)하게 된다.
이에 따라, 공통타입 생성 모듈(240)은 서비스 구현객체(Service Implementation)(230)로부터 전송되는 Real Result Data Type의 서비스 결과값을 Common Result Type으로 변환하여 웹 컨테이너(Web Container)(210)로 전송(S60)하게 된다.
즉, Common Result Type으로 변환된 서비스 결과값은 SOAP나 HTTP 등의 메시지로 마샬링(Marshalling)되어 클라이언트(client)에게 전송된다.
도 5는 본 발명에 따른 공통타입의 웹서비스 결과값을 제공하는 과정을 나타내는 도면이다.
도 5에 도시된 바와 같이, 웹서비스 서버의 공통타입 생성 모듈(240)은 웹 컨테이너(Web Container)(210)를 통해 웹서비스 클라이언트로부터 전송되는 웹서비스 요청 메시지(request message)가 있는지를 확인(S10)한다.
확인 결과, 공통타입 생성 모듈(240)은 클라이언트로부터 웹서비스 요청 메시지가 수신되는 경우, 수신된 웹서비스 요청 메시지(request message)의 파라메터(parameter)가 유효한지를 확인(S20)한다.
확인 결과, 공통타입 생성 모듈(240)은 수신된 웹서비스 요청 메시지(request message)의 파라메터(parameter)가 유효한 경우, 수신된 웹서비스 요청 메시지(request message)를 분석(S30)하여 서비스를 수행할 서비스 구현객체를 찾아 해당 서비스 구현객체로 서비스 요청(S40)을 하게 된다.
이어서, 공통타입 생성 모듈(240)은 서비스 요청에 대한 서비스 결과값이 해당 서비스 구현객체로부터 정상적으로 처리되어 수신되는지를 확인(S50)한다.
확인 결과, 공통타입 생성 모듈(240)은 서비스 요청에 대한 서비스 결과값이 해당 서비스 구현객체로부터 정상적으로 처리되어 수신되는 경우 요청한 서비스 결과값을 수신(S60)하게 된다.
이어서, 공통타입 생성 모듈(240)은 수신한 서비스 결과값을 Common Result Type인 ResultEnvelope type으로 변환(S70)하게 된다.
이어서, 공통타입 생성 모듈(240)에서는 ResultEnvelope type으로 변환된 서비스 결과값을 SOAP이나 HTTP 프로토콜 등의 메시지로 마샬링(Marshalling)하여 클라이언트로 전송(S80)하게 된다.
한편, 상기 수신된 웹서비스 요청 메시지(request message)의 파라메터(parameter)가 유효한지를 확인하는 S20 과정에서, 만약 요청 메시지(Request message)의 파라메터(parameter)가 유효(invalid)하지 않다고 판단되는 경우, 공통타입 생성 모듈(240)은 "NOK"(NOT OK의 의미)라는 "result" 값과 "Invalild Parameter Value"의 "failReason"값이 담긴 failResponse를 REG(Result Envlelope Generator)(243)로 전달(S90)하게 된다.
이에 따라, REG(Result Envlelope Generator)(243)는 "NOK"의 "result" 값과 "Invalild Parameter Value"의 "failReason" 값을 갖는 ResultEnvelope을 생성(S100)하여 생성된 ResultEnvelope을 RED(Result Envelope Deliverer)(244)를 통해 클라이언트(client)로 전달(S110)하게 된다.
또한, 공통타입 생성 모듈(240)은 서비스 요청에 대한 서비스 결과값이 해당 서비스 구현객체로부터 정상적으로 처리되어 수신되는지를 확인하는 S50 과정에서, 해당 서비스 구현객체로부터 타임아웃(timeout) 등의 이유로 요청 메시지에 대한 서비스 결과값을 수신하지 못했거나, 정상적으로 처리되지 못했다는 실패(fail) 정보를 수신하는 경우, "NOK"라는 "result" 값과 "timeout" 등과 같은 적절한 "failReason" 정보가 담긴 FailResponse를 REG(Result Envlelope Generator)(243)로 전달(S90)하게 된다.
이에 따라, REG(Result Envlelope Generator)(243)는 "NOK"의 "result" 값과 "timeout" 등과 같은 적절한 "failReason" 값을 갖는 ResultEnvelope을 생성(S100)하여 생성된 ResultEnvelope을 RED(Result Envelope Deliverer)(244)를 통해 클라이언트(client)로 전달(S110)하게 된다.
이상 본 발명에서는 웹서비스 시스템 및 그 방법에 관한 실시예에 대해서만 도시하고 설명하였지만, 본 발명은 상술한 실시예에 한정되지 아니하며, 웹을 기반으로 하는 클라이언트-서버 분산 구조의 모든 웹서비스 시스템에 적용 가능하다.
본 발명에 따르면, 서비스 인터페이스(Service Interface)를 공통된 리턴 타입(return type)으로 정의하여 서로 다른 서비스 구현객체의 서비스 종류에 관계없이 공통된 타입의 결과값을 제공함으로써, 서비스 인터페이스에 관계없이 대용량의 웹서비스 시스템의 개발과 관리가 용이하게 되는 효과가 있다.
또한, 이미 구축되어 있는 기존의 웹서비스 시스템과도 쉽게 통합이 가능하 며 서비스별 관리가 가능하여 필요에 따라 쉽게 웹서비스 구현을 추가하거나 삭제하는 것이 가능하다.
Claims (13)
- 삭제
- 삭제
- 삭제
- 삭제
- 웹서비스 시스템에 있어서,클라이언트로부터 전송되는 웹서비스 요청 메시지의 파라메터 인증을 수행하는 파라메터 인증부;상기 파라메터 인증부로부터 인증된 웹서비스 요청 메시지에 대한 서비스 결과값을 획득하는 서비스 분배부;상기 서비스 분배부로부터 획득된 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 변환하는 공통타입 변환부; 및상기 공통타입 변환부로부터 변환된 서비스 결과값을 웹 컨테이너를 통해 상기 클라이언트로 전송하는 공통타입 전송부를 포함하는 웹서비스 시스템.
- 제 5항에 있어서,상기 공통타입 변환부는,상기 파라메터 인증부의 인증 결과 상기 웹서비스 요청 메시지의 파라메터가 유효하지 않은 경우 전송되는 인증실패 결과정보를 상기 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 인증실패 결과정보로 변환하는 웹서비스 시스템.
- 제 5항에 있어서,상기 공통타입 변환부는,상기 서비스 분배부로부터 상기 웹서비스 요청 메시지에 대한 서비스 실패정보가 전송되는 경우, 서비스 실패정보를 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 실패정보로 변환하는 웹서비스 시스템.
- 웹서비스 방법에 있어서,클라이언트로부터 전송되는 웹서비스 요청 메시지의 파라메터 인증을 수행하는 단계;상기 인증된 웹서비스 요청 메시지에 대한 서비스 결과값을 획득하는 단계;상기 획득된 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 변환하는 단계; 및상기 변환된 서비스 결과값을 웹 컨테이너를 통해 상기 클라이언트로 전송하는 단계를 포함하는 웹서비스 방법.
- 삭제
- 제 8항에 있어서,상기 인증 결과 상기 웹서비스 요청 메시지의 파라메터가 유효하지 않은 경우 전송되는 인증실패 결과정보를 상기 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 인증실패 결과정보로 변환하는 단계를 더 포함하는 웹서비스 방법.
- 제 8항에 있어서,상기 웹서비스 요청 메시지에 대한 서비스 실패정보가 전송되는 경우, 서비스 실패정보를 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 실패정보로 변환하는 단계를 더 포함하는 웹서비스 방법.
- 제 8항에 있어서,상기 클라이언트는,상기 공통타입 생성모듈로부터 공통된 형식의 서비스 결과값을 전송받아 de-enveloping하고 타입 캐스팅(type casting)하여 사용자가 인식할 수 있는 real result type으로 변환하는 웹 서비스 방법.
- 제 8항에 있어서,상기 클라이언트가 상기 공통된 형식의 서비스 결과값을 전송받아 de-enveloping하고 타입 캐스팅(type casting)하여 사용자가 인식할 수 있는 real result type으로 변환하는 단계를 더 포함하는 웹서비스 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20050063445 | 2005-07-13 | ||
KR1020050063445 | 2005-07-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070008390A KR20070008390A (ko) | 2007-01-17 |
KR100840513B1 true KR100840513B1 (ko) | 2008-06-23 |
Family
ID=37662920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060049899A KR100840513B1 (ko) | 2005-07-13 | 2006-06-02 | 웹서비스 시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070016697A1 (ko) |
KR (1) | KR100840513B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074234B2 (en) * | 2007-04-16 | 2011-12-06 | Microsoft Corporation | Web service platform for keyword technologies |
US8302017B2 (en) * | 2008-03-05 | 2012-10-30 | Microsoft Corporation | Definition for service interface |
US20190391804A1 (en) * | 2018-06-25 | 2019-12-26 | Sap Se | Odata/crud enabled solution framework |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215486A (ja) | 2000-08-31 | 2002-08-02 | Schneider Autom | Wsdlに基づいたコントローラ装置用通信システム |
US20030163450A1 (en) * | 2001-05-25 | 2003-08-28 | Joram Borenstein | Brokering semantics between web services |
US20040111533A1 (en) | 2002-12-06 | 2004-06-10 | International Business Machines Corporation | Transformations as web services |
US20040221017A1 (en) | 2003-04-30 | 2004-11-04 | International Business Machines Corporation | Dynamic generator for fast-client static proxy from service interface definition document |
US20040221008A1 (en) | 2003-05-01 | 2004-11-04 | Oracle International Corporation | System and method for caching type information for un-typed web service requests |
KR20060035829A (ko) * | 2004-10-20 | 2006-04-27 | 한국전자통신연구원 | 웹 서비스 분석 장치 및 그 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9760647B2 (en) * | 2004-12-08 | 2017-09-12 | Oracle International Corporation | Techniques for automatically exposing, as web services, procedures and functions stored in a database |
-
2006
- 2006-06-02 KR KR1020060049899A patent/KR100840513B1/ko not_active IP Right Cessation
- 2006-06-07 US US11/447,934 patent/US20070016697A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215486A (ja) | 2000-08-31 | 2002-08-02 | Schneider Autom | Wsdlに基づいたコントローラ装置用通信システム |
US20030163450A1 (en) * | 2001-05-25 | 2003-08-28 | Joram Borenstein | Brokering semantics between web services |
US20040111533A1 (en) | 2002-12-06 | 2004-06-10 | International Business Machines Corporation | Transformations as web services |
US20040221017A1 (en) | 2003-04-30 | 2004-11-04 | International Business Machines Corporation | Dynamic generator for fast-client static proxy from service interface definition document |
US20040221008A1 (en) | 2003-05-01 | 2004-11-04 | Oracle International Corporation | System and method for caching type information for un-typed web service requests |
KR20060035829A (ko) * | 2004-10-20 | 2006-04-27 | 한국전자통신연구원 | 웹 서비스 분석 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20070016697A1 (en) | 2007-01-18 |
KR20070008390A (ko) | 2007-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9124466B2 (en) | System and method for exposing distributed transaction services as web services | |
US7254601B2 (en) | Method and apparatus for managing intelligent assets in a distributed environment | |
US8417792B2 (en) | Asynchronous messaging in web services | |
US6430164B1 (en) | Communications involving disparate protocol network/bus and device subsystems | |
Perumal et al. | Interoperability for smart home environment using web services | |
EP1775657A1 (en) | Method and apparatus for providing home network device service to an external device through WEB service | |
US8230448B2 (en) | Methods, systems and computer program products for web service interaction with a resource management system | |
CN106452839A (zh) | 一种消息上报方法及装置 | |
US7882131B2 (en) | Web service providing apparatus, web service requesting apparatus, and method of the same | |
Song et al. | Smart transducer web services based on the IEEE 1451.0 standard | |
KR100840513B1 (ko) | 웹서비스 시스템 및 그 방법 | |
Köksal et al. | Feature-driven domain analysis of session layer protocols of internet of things | |
Cavalieri et al. | A web-based platform for OPC UA integration in IIoT environment | |
US7529840B2 (en) | HTTP use for bidirectional communication | |
Cavalieri et al. | Integration of OPC UA into a web-based platform to enhance interoperability | |
JP4317562B2 (ja) | ウェブサービス提供装置、ウェブサービス要請装置、ウェブサービス提供方法及びウェブサービス要請方法 | |
KR101915683B1 (ko) | Mqtt 어댑터 및 이를 이용한 토픽 처리 방법 | |
JP2002196931A (ja) | サービス・ゲートウェイのための提供機構 | |
KR100663425B1 (ko) | 다양한 망 관리 프로토콜을 위한 시스템 인터페이스 장치 및 방법 | |
JP5042415B2 (ja) | クライアントサーバシステム | |
Yoo et al. | Web services based configuration management for IP network devices | |
KR20150106255A (ko) | 해상 교통 데이터 공유를 위한 개방형 웹 서비스 방법 | |
Devin | Web‐Oriented Architecture–How to design a RESTFull API | |
EP2252032B1 (en) | Message adaptation system for system integration | |
US7376746B2 (en) | Method and program for disclosing and providing services on network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E90F | Notification of reason for final refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
E801 | Decision on dismissal of amendment | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20110530 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |