KR100840513B1 - 웹서비스 시스템 및 그 방법 - Google Patents

웹서비스 시스템 및 그 방법 Download PDF

Info

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
Application number
KR1020060049899A
Other languages
English (en)
Other versions
KR20070008390A (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 KR20070008390A publication Critical patent/KR20070008390A/ko
Application granted granted Critical
Publication of KR100840513B1 publication Critical patent/KR100840513B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery 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

웹서비스 시스템 및 그 방법{WEB SERVICES SYSTEM AND METHOD}
도 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)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 웹서비스 시스템에 있어서,
    클라이언트로부터 전송되는 웹서비스 요청 메시지의 파라메터 인증을 수행하는 파라메터 인증부;
    상기 파라메터 인증부로부터 인증된 웹서비스 요청 메시지에 대한 서비스 결과값을 획득하는 서비스 분배부;
    상기 서비스 분배부로부터 획득된 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 변환하는 공통타입 변환부; 및
    상기 공통타입 변환부로부터 변환된 서비스 결과값을 웹 컨테이너를 통해 상기 클라이언트로 전송하는 공통타입 전송부를 포함하는 웹서비스 시스템.
  6. 제 5항에 있어서,
    상기 공통타입 변환부는,
    상기 파라메터 인증부의 인증 결과 상기 웹서비스 요청 메시지의 파라메터가 유효하지 않은 경우 전송되는 인증실패 결과정보를 상기 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 인증실패 결과정보로 변환하는 웹서비스 시스템.
  7. 제 5항에 있어서,
    상기 공통타입 변환부는,
    상기 서비스 분배부로부터 상기 웹서비스 요청 메시지에 대한 서비스 실패정보가 전송되는 경우, 서비스 실패정보를 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 실패정보로 변환하는 웹서비스 시스템.
  8. 웹서비스 방법에 있어서,
    클라이언트로부터 전송되는 웹서비스 요청 메시지의 파라메터 인증을 수행하는 단계;
    상기 인증된 웹서비스 요청 메시지에 대한 서비스 결과값을 획득하는 단계;
    상기 획득된 서비스 결과값을 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 결과값으로 변환하는 단계; 및
    상기 변환된 서비스 결과값을 웹 컨테이너를 통해 상기 클라이언트로 전송하는 단계를 포함하는 웹서비스 방법.
  9. 삭제
  10. 제 8항에 있어서,
    상기 인증 결과 상기 웹서비스 요청 메시지의 파라메터가 유효하지 않은 경우 전송되는 인증실패 결과정보를 상기 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 인증실패 결과정보로 변환하는 단계를 더 포함하는 웹서비스 방법.
  11. 제 8항에 있어서,
    상기 웹서비스 요청 메시지에 대한 서비스 실패정보가 전송되는 경우, 서비스 실패정보를 기설정된 웹서비스 명세정보에 따라 공통된 형식을 갖는 서비스 실패정보로 변환하는 단계를 더 포함하는 웹서비스 방법.
  12. 제 8항에 있어서,
    상기 클라이언트는,
    상기 공통타입 생성모듈로부터 공통된 형식의 서비스 결과값을 전송받아 de-enveloping하고 타입 캐스팅(type casting)하여 사용자가 인식할 수 있는 real result type으로 변환하는 웹 서비스 방법.
  13. 제 8항에 있어서,
    상기 클라이언트가 상기 공통된 형식의 서비스 결과값을 전송받아 de-enveloping하고 타입 캐스팅(type casting)하여 사용자가 인식할 수 있는 real result type으로 변환하는 단계를 더 포함하는 웹서비스 방법.
KR1020060049899A 2005-07-13 2006-06-02 웹서비스 시스템 및 그 방법 KR100840513B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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