KR101324393B1 - Rest 기반 웹 서비스 조합 시스템 및 방법 - Google Patents
Rest 기반 웹 서비스 조합 시스템 및 방법 Download PDFInfo
- Publication number
- KR101324393B1 KR101324393B1 KR1020120019587A KR20120019587A KR101324393B1 KR 101324393 B1 KR101324393 B1 KR 101324393B1 KR 1020120019587 A KR1020120019587 A KR 1020120019587A KR 20120019587 A KR20120019587 A KR 20120019587A KR 101324393 B1 KR101324393 B1 KR 101324393B1
- Authority
- KR
- South Korea
- Prior art keywords
- web service
- rest
- web
- service
- combining
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/221—Parsing markup language streams
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 REST 기반 웹 서비스 조합 시스템 및 방법에 관한 것으로서, 본 발명은 REST(representational state transfer) 기반 웹 서비스를 조합하는 웹 서비스 조합 시스템에서의 웹 서비스 조합 방법에 있어서, 상기 웹 서비스 조합 시스템은 웹 서비스의 수행 결과인 XML(eXtensible MarkUp Language) 데이터를 파싱(Parsing)하는 단계, 상기 웹 서비스 조합 시스템은 상기 XML 데이터로부터 객체를 추출하는 단계 및 상기 웹 서비스 조합 시스템은 상기 추출된 둘 이상의 객체를 조합하는 방식으로 웹 서비스를 제공하는 단계를 포함한다. 본 발명에 의하면 다수의 REST 웹서비스를 통상의 기술자가 편리하게 조합(composition)할 수 있도록 하는 방법을 제공할 수 있는 효과가 있다.
Description
본 발명은 REST 기반 웹 서비스 조합 시스템 및 방법에 관한 것이다.
인터넷의 발달과 함께 웹을 기반으로 하는 클라이언트-서버 분산 구조의 웹 서비스 시스템 구조가 점차 확산되고 있다. 게다가, 최근에는 스마트폰을 이용한 스마트폰 애플리케이션이 대중화되면서, 웹 서비스의 활용이 점차 확대되는 추세이다. 웹을 기반으로 클라이언트와 서버 사이에 통신을 하기 위해서는 원격 프로시저를 정의한 인터페이스가 규정되어야 하며, 기존에는 W3C에서 정의한 WSDL(Web Services Description Language)를 사용하여 웹서비스를 기술하곤 하였다. 그러나, 이와 같은 기존의 웹서비스 기술 및 사용방법은 그 구성이 복잡하고 오버헤드가 큰 이유로 널리 활용되지 못하였다. 최근에는 REST에 기반한 웹서비스가 대중화되면서 웹 서비스의 활용이 확산되는 추세다.
REST(representational state transfer)는 확장성 생성 언어(XML) 파일로 된 웹 페이지를 읽어 원하는 정보를 수집하는 기능으로서, 웹 페이지를 만드는 사람은 주기적으로 내용을 개정하고 사용자는 그 페이지의 URL만 알면 웹 브라우저로 읽어 정보를 얻을 수 있다. REST는 하이퍼텍스트 전송 규약(HTTP)과 XML을 포함한 웹 기술 및 프로토콜을 사용하는 구조적 형태로서 단순 객체 접근 프로토콜(SOAP)보다 사용이 간편하고, 사이트 내용을 기술하는 RSS(RDF Site Summary)의 정보 편집 기능과 유사하다.
REST 방식의 웹서비스는 기존의 SOAP 방식 웹서비스를 보완하기 위해서 등장하였다. 즉, 즉 REST 방식의 웹서비스는 기존 SOAP 방식의 메시지 송수신시 헤더와 바디의 인코딩/디코딩 과정에 따른 오버헤드 문제 해결하고, 웹에 개방된 리소스들을 원격에서 또는 지역적으로 보다 쉽게 이용하려는 사상 반영하며, 부수적인 레이어나 세션 관리를 추가하지 않고도 클라이언트/서버 간의 엄격한 분리로 구현은 단순화시키고 확장성과 성능은 높일수 있는 아키텍쳐이다. 그리고, SOAP의 서비스저장소를 통해 리소스를 공유하는 방식에 비해 ROA(Resource Oriented Architecture) 기반으로 리소스를 등록하고 저장해 두는 중간 매체 없이 리소스 제공자가 직접 요청자에게 제공하며, 리소스는 고유한 URI를 가지며, HTTP의 기본 메소드인 GET/PUT/POST/DELETE만으로 접근할 수 있다.
SOAP 기반 웹서비스와 REST 기반 웹서비스 비교하면 다음과 같다.
웹 서비스는 네트워크를 통해 기계-기계간의 상호운영 작용을 제공하는 SW 시스템으로서, 일반 웹 기술은 브라우저를 통해 기계-사람간의 상호작용을 제공하고, 주로 SOAP, UDDI, WSDL, WS-* 등 프로토콜을 활용하여 구현된다.
여기서 기계-사람간의 웹 기술을 기계-기계간 웹 서비스에도 활용하도록 제약을 추가한 것이 REST 스타일이다. 기계-기계간의 상호운영은 오류가 허용되지 않아 완벽해야 함으로 매우 복잡하고, 일반인이 접근하기 어렵다는 특징이 있으며, REST 웹 서비스는 주로 웹 페이지 관련 분야를 중심으로 SOAP을 대신하고 있다.
기존의 클라이언트-서버 분산 구조에서는 웹 서비스를 통해 서비스 기반 구조(Service Oriented Architecture)를 통해 개발생산성을 향상하는 목적으로 웹서비스를 활용한다. 스마트폰 애플리케이션의 경우는 자체적인 컴퓨팅 파워가 비교적 떨어지기 때문에, 계산시간이 많이 걸리는 작업 혹은 방대한 데이터베이스의 자료를 활용하는 작업의 경우 웹서비스를 통해 기능을 활용할 필요가 있다.
[표 1]은 웹 서비스 연관기술 표준화 동향을 정리한 도표이며, 출처는 Service Oriented Architecture, ICT Standardization Strategy Map, 한국정보통신 기술협회 2011이다.
표 1에서와 같이 REST 기술(REST 기반 웹서비스)는 TTA(한국정보통신기술협회)에서 표준안 개발을 검토하고 있는 단계이며, 세계적으로도 아직 표준안에 대한 논의가 진행되지 않고 있는 상황이다.
SOAP 기반 웹서비스에 대해서는 서비스 조합에 대해서 충분히 다루어 졌으며, 어느정도 정리된 연구분야이다. 애초에, SOAP 웹서비스는 기계가 인식하기 쉽도록 엄격한 규약과 인터페이스를 정의한 것이기 때문이다. 하지만, REST 웹서비스 조합 기술에 대해서는 충분히 다루어 지지 않았다. 왜냐하면, REST 웹서비스는 사람이 사용하기 편리하도록 설계된 기술이고, 그 조합에 대해서는 관여하지 않기 때문이다.
종래 관련 기술을 몇가지 소개하면 다음과 같다.
Xia Zhao et al, "RESTful Web Service Composition : Extracting a Process Model from Linear Logic Theorem Proving" 2011 IEEE International Conference on Next Generation Web Services Practice (NWeSP) 논문은 2011년 10월 19일-21일 스페인에서 개최된 NWeSP 학술대회에서 발표된 REST 웹서비스 조합 방법에 관한 논문이다. 여기서는 2단계 선형 논리(two-stage linear logic) 기반의 프로그램 합성을 이용한 웹서비스 조합 방법을 제안한다. 그러나, 이 논문은 이론적/논리적으로 잘 기술되었으나, 그 구현 및 성능개선에 대해서는 언급된 바 없다. 따라서, 유사분야 통상의 기술자가 재현하기 불가능하다.
다음, Haibo Zhao et al, "Towards Automated RESTful Web Service Composition", 2009 International Conference on Web Services (ICWS) 논문은 REST 웹서비스 조합을 위하여 1차 논리(first order logic)을 이용한 형식 모델을 제안한다. 이 논문 역시 이론적/논리적으로 잘 기술되었으나, 그 구현 및 성능개선에 대해서는 언급된 바 없다. 따라서, 유사분야 통상의 기술자가 재현하기 불가능하다고 할 수 있다.
이상의 두가지 종래 방법을 공통적으로 요약하면, 1차 논리(first order logic)이나 선형 논리(linear logic) 등을 통해 다수의 웹서비스 조합방법을 논리적으로 기술하여 자동으로 조합된 웹서비스를 생성해주는 방법이다. 그러나, 이와 같은 방법은 매우 제한적인 용도로만 응용할 수 있으며, 위 개념의 발명자들조차 이러한 서비스를 대중적으로 제공하지 않는다는 문제점이 있다.
Xia Zhao et al, "RESTful Web Service Composition : Extracting a Process Model from Linear Logic Theorem Proving", 2011 IEEE International Conference on Next Generation Web Services Practice (NWeSP)
Haibo Zhao et al, "Towards Automated RESTful Web Service Composition", 2009 International Conference on Web Services (ICWS)
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 다수의 REST 웹서비스를 통상의 기술자가 편리하게 조합(composition)할 수 있도록 하는 방법을 제공하는데 그 목적이 있다. 즉, 웹서비스 실행 결과물을 객체(object)로 변환(conversion)하여 일반적인 객체지향 프로그래밍 언어(JAVA, C++ 등)을 사용하여 누구나 편리하게 웹서비스 조합을 프로그래밍할 수 있도록 한다.
둘째로, 본 발명은 객체로 변환된 웹서비스 결과물을 활용하여 조합한 프로그램 바이너리(컴파일 결과물)를 업로드하면, 이를 다시 REST 기반 웹서비스로 제공해주는 시스템을 제공하는데 그 다른 목적이 있다. 즉, REST 웹서비스의 조합/탑재/운용을 제공하는 시스템을 제안한다. 이는 사용자가 매번 별도의 서버를 구축하고 클라이언트-서버 분산 응용의 서버측 프로그램을 탑재하고 운용하는 번거로움을 획기적으로 제거할 수 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
이와 같은 목적을 달성하기 위한 본 발명은 REST(representational state transfer) 기반 웹 서비스를 조합하는 웹 서비스 조합 시스템에서의 웹 서비스 조합 방법에 있어서, 상기 웹 서비스 조합 시스템은 웹 서비스의 수행 결과인 XML(eXtensible MarkUp Language) 데이터를 파싱(Parsing)하는 단계, 상기 웹 서비스 조합 시스템은 상기 XML 데이터로부터 객체를 추출하는 단계 및 상기 웹 서비스 조합 시스템은 상기 추출된 둘 이상의 객체를 조합하는 방식으로 웹 서비스를 제공하는 단계를 포함한다.
상기 객체를 추출하는 단계 후에, 상기 웹 서비스 조합 시스템은 추출된 객체를 데이터 베이스에 저장하는 단계를 더 포함할 수 있고(사용자 선택에 따라), 이때, 상기 웹 서비스 조합 시스템은 상기 데이터베이스에 저장(캐싱)된 객체를 퀴리(query)하여 더욱 빠르게 객체조합을 수행할 수 있다.
상기 XML 데이터로부터 객체를 변환하는 단계에서, 상기 웹 서비스 조합 시스템은 XML데이터로부터 객체간 구분을 위해 XML 요소명(element name)을 사용자로부터 입력받을 수 있다.
본 발명에서 REST(representational state transfer) 기반 웹 서비스 조합 시스템에 있어서, 클라이언트로부터의 요청이 있으면, 해당 클라이언트에 웹 서비스를 제공하는 웹 서버 및 사용자가 개발한 REST 웹 서비스를 로딩(loading)하고, 상기 웹 서버로부터의 웹 서비스 요청에 대한 응답을 처리하는 웹 서비스 관리자를 포함한다.
상기 클라이언트와 상기 웹 서버는 HTTP(HyperText Transfer Protocol) 규약에 따라 통신할 수 있다.
상기 웹 서비스 관리자는 객체를 동적으로 인스턴스화하고, 이를 조합하여 사용할 수 있도록 동적 바인딩하는 객체 동적 바인딩을 수행할 수 있다.
상기 웹 서버는 2개 이상의 REST 웹 서비스를 조합한 REST 웹 서비스 그룹을 탑재하여 구동할 수 있다.
본 발명에 의하면 다수의 REST 웹서비스를 통상의 기술자가 편리하게 조합(composition)할 수 있도록 하는 방법을 제공할 수 있는 효과가 있다. 즉, 웹서비스 실행 결과물을 객체(object)로 변환(conversion)하여 일반적인 객체지향 프로그래밍 언어(JAVA, C++ 등)을 사용하여 누구나 편리하게 웹서비스 조합을 프로그래밍할 수 있도록 한다.
그리고, 본 발명에서 객체로 변환된 웹서비스 결과물을 활용하여 조합한 프로그램 바이너리(컴파일 결과물)를 업로드하면, 이를 다시 REST 기반 웹서비스로 제공해주는 시스템을 제공함으로써, 사용자가 매번 별도의 서버를 구축하고 클라이언트-서버 분산 응용의 서버측 프로그램을 탑재하고 운용하는 번거로움을 획기적으로 제거할 수 있다는 효과가 있다.
본 발명에 의하면 현재 널리 사용되는 스마트폰 환경과 같은 부족한 컴퓨팅 파워와 상대적으로 열악한 무선통신환경(3G, 4G 등)에 매우 효과적으로 적용 가능하다. 왜냐하면, 스마트폰에서 필요로 하는 REST 웹서비스는 일반적으로 2개 이상인 경우가 보통인데, 스마트폰 통신환경에서 2번의 웹서비스 접근을 통해 원하는 데이터를 생성하는 것보다, 이러한 웹서비스에 접근하여 사용자가 원하는 데이터를 만들어 보내주는 웹서비스 조합을 미리 본 발명에서 제공하는 서버에 개발해 두고, 이 웹서비스만 호출하는 방식이 성능 측면에서 월등하게 유리하기 때문이다.
도 1은 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합을 설명하기 위한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 REST 기반 웹 서비스 조합을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합 방법을 보여주는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합 시스템의 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 REST 기반 웹 서비스 조합을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합 방법을 보여주는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합 시스템의 블록도이다.
이하, 첨부된 도면을 참조해서 본 발명의 실시예를 상세히 설명하면 다음과 같다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서 전반에 걸쳐서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합을 설명하기 위한 도면이다.
도 1을 참조하면, (가) 단계는 웹서비스(110, 150) 실행 결과인 XML(eXtensible MarkUp Language)(120, 160)과 반환되는 REST 웹 서비스(RESTful Web Service) 실행 상황을 나타낸다.
본 발명에서 REST 웹 서비스 실행결과를 예시하기 위하여 OpenAPI URL의 예를 들면 다음과 같다.
예를 들어, OpenAPI URL이 "http://kr.open.gugi.yahoo.com/service/poi.php?appid=YahooDemo&q=코엑스&encoding=euc-kr&output=xml&results=50"라고 하면, 그 실행 결과는 다음과 같다.
<?xml version="1.0" encoding="UTF-8" ?>
<ResultSet>
<head><publisher>YahooKorea
GUGI</publisher><Error>0</Error><ErrorMessage>No
Error</ErrorMessage><Found>8</Found>
</head>
<locations>
<item>
<num>1</num>
<latitude>37.511591238542</latitude>
<longitude>127.05944600764</longitude>
<name>코엑스몰</name>
<street></street>
<city>삼성동</city>
<county>강남구</county>
<state>서울특별시</state>
<country>South Korea</country>
</item>
<item>
<num>2</num>
<latitude>37.512302929275</latitude>
<longitude>127.05963882578</longitude>
<name>[월드컵응원]코엑스광장</name>
<street></street>
<city>삼성동</city>
<county>강남구</county>
<state>서울특별시</state>
<country>South Korea</country>
</item>
</ResultSet>
<!-- openapil.local.maps.kr3.yahoo.com uncompressed/chunked Fri Jan 623:55:53 UTC 2012 -->
(나) 단계는 웹 서비스 실행 결과로부터 객체(object)를 추출하는 단계이다. 본 발명에서 (나) 단계는 REST 웹 서비스 실행결과로 얻은 데이터를 객체화하여 필요한 내용을 웹서비스 조합에 활용하는 것이다. REST 웹서비스의 실행결과는 일반적으로 동일한 속성(property)을 갖는 여러개의 데이터 집합(ResultSet)으로 구성되므로, 이러한 데이터 집합을 다수개의 객체 인스턴스로 변환할 수 있다. 이와 같은 방법으로 객체화 하는 것은 일반적인 객체지향 프로그래밍언어(JAVA, C++ 등)를 사용하여 서비스 조합을 가능토록 하기 위함이다. 즉, 종래에는 1차 논리(first order logic)이나 선형 논리(linear logic) 등을 활용하여 웹 서비스 조합을 기술하도록 하고 있으나, 본 발명에서는 대중적인 객체지향 언어를 사용하여 웹 서비스 조합을 가능하도록 함으로써 유사분야 통상의 기술자가 손쉽게 활용할 수 있다.
(다) 단계는 웹 서비스 조합하는 단계로, 웹 애플리케이션을 제작하여 웹서버에 업로드함으로써, 웹서비스 조합/탑재/운용 시스템을 적용하는 방법을 나타낸다.
도 2는 본 발명의 다른 실시예에 따른 REST 기반 웹 서비스 조합을 설명하기 위한 블록도이다.
도 2는 발명에서 제안하는 REST 웹서비스 조합/탑재/운용 시스템으로서, 서비스 개발자로 하여금 서비스를 조합한 웹서비스를 일반적인 객체지향언어를 통해 개발하고 컴파일 후 업로드 하면 손쉽게 서비스를 운용할 수 있도록 하는 시스템을 제안한다.
도 2를 참조하면, 웹 서비스 관리자(Web service Manager)(210)는 사용자(또는 서비스 운용사)가 개발한 REST 웹서비스를 로딩하고, 웹 서버(230)로부터 들어오는 웹 서비스 요청에 대하여 서비스하는 역할을 한다. 이때, 웹 서비스 관리자(210)는 REST 웹 서비스의 조합으로 구성된 웹 서비스에 대한 서비스인 경우, 해당 웹 서비스가 필요로 하는 객체들을 동적으로 바인딩(dynamic binding) 할 수 있다.
서비스 개발자(service developer)는 웹 서비스 관리자(210)가 지정한 특정 디렉토리에 웹 서비스 조합 등으로 개발한 REST 웹서비스를 탑재하고 서비스 운용을 위임할 수 있다. 즉, 자신이 개발한 REST 웹 서비스를 웹 서비스 관리자(210)에 탑재함으로써, 서비스를 운용할 수 있다. 단, 탑재할 REST 웹서비스의 형식이 본 시스템이 규정하는 경로구조 및 설정파일 그리고 파일 포맷에 일치하여야 한다. 그리고, 개발한 REST 웹 서비스는 다양한 형식이 적용될 수 있으며, 가령 native 서비스이거나 다른 REST 웹서비스의 조합으로 생성된 REST 웹 서비스 등이 될 수 있다.
웹 서버(230)에 사용자가 업로드한 REST 웹 서비스가 위치한다. 이때, REST 웹 서비스는 웹 서비스 관리자(210)가 관리하는 특정 경로(디렉토리)에 위치한다.
그리고, 각각의 웹서비스는 웹 서비스 관리자(210)가 지정한 특정 경로에 설정파일이 존재하도록 한다. 이때, 설정파일은 xml, cfg 등 다양한 포맷으로 구성될 수 있다. 예를 들어, 설정 파일은 다음과 같은 내용을 포함한다.
<XML요소>
<이름>웹서비스 패키지</이름>
<값>웹서비스 패키지 경로(디렉토리)</값>
</XML요소>
이러한 설정파일은 사용자가 업로드한 웹 서비스 패키지가 어떠한 경로를 가지는 클래스로 구성되는지 서술한다. 즉, 웹 서비스 관리자(210)가 지정한 특정 경로의 특정한 파일에 설정파일을 위치시킴으로써, 사용자가 업로드한 REST 웹 서비스의 실행을 위한 경로를 확인하고 실행할 수 있도록 한다.
사용자가 웹 서비스 관리자(210)에 REST 웹 서비스를 탑재하기 위해서는 웹 서비스 관리자(210)가 요청하는 규약에 따라 일반적인 객체지향 프로그래밍 언어를 활용하여 개발하여야 한다. 여기서 규약이란 웹 서비스 실행결과가 객체로 변환되면, 웹 서비스가 수행되는 동안에는 객체정보를 웹 서비스 관리자(210)의 DB(220)상에서 유지관리할 수 있다.
웹 서버(230)는 클라이언트측 웹 브라우저로부터 HTTP 규약에 따른 요청을 받아 문서와 데이터를 제공하는 응용프로그램을 포함하고 있다.
스마트 폰(240)과 웹 브라우저(250)는 공통적으로 HTTP(HyperText Transfer Protocol) 규약에 따라 서버와 통신하는 클라이언트측 응용 프로그램이 내장되어 있다.
웹 서비스는 객체이거나 객체의 묶음(JAR 파일 등)이거나, 플랫폼 독립적인 객체(Javabeans 혹은 COM 등)일 수 있으며, 객체 묶음에는 디렉토리 구조를 포함할 수 있다. 디렉토리 구조의 특정 경로는 웹서비스 관리 시스템이 요구하는 특정 경로(디렉토리)에 필요한 설정파일을 놓을 수 있다.
최근 대부분의 스마트폰 웹(App)은 상당수 서버와 통신하는 클라이언트-서버 분산 프로그램 형태로 동작하는 바, 서버측 구현을 위해 일반적으로 소켓 프로그래밍을 별도로 적용하고 서버를 구축하여 프로그램을 탑재한 후 운용해야 한다. 그러나, 도 2에서 도시된 본 발명에서 제안하는 REST 웹서비스 조합/탑재/운용 시스템을 활용하면 서비스 개발자는 서비스를 조합한 웹서비스를 일반적인 객체지향언어를 통해 개발하고 컴파일 후 업로드만 하면 된다.
본 발명의 일 실시예에서 웹 서버(230)는 2개 이상의 REST 웹 서비스를 조합한 REST 웹 서비스 그룹을 탑재하여 구동할 수 있다. 따라서, 본 발명에 의하면, 종래 클라이언트가 여러 개의 REST 웹 서비스를 각각 실행하여 결과를 조합하는 방식에 비해, 클라이언트측의 부하를 감소시키고 성능향상을 취할 수 있다.
도 4는 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합 시스템의 블록도이다.
도 4를 참조하면, REST 기반 웹 서비스 조합 시스템은 객체 변환부(410)와 서비스 운용부(420)를 포함하여 이루어진다.
객체 변환부(410)는 REST 웹서비스 실행결과 테이터를 객체로 변환하는 역할을 한다.
서비스 운용부(420)는 변환된 객체를 조합하여 생성된 REST 웹서비스를 탑재하고 운용하는 역할을 한다.
도 3은 본 발명의 일 실시예에 따른 REST 기반 웹 서비스 조합 방법을 보여주는 흐름도이다. 도 3은 웹서비스 조합방법에 대한 상세한 설명을 위한 흐름도이다. 도 3의 각 단계를 수행하는 주체는 객체 변환부(410)와 서비스 운용부(420)로 나뉘며, 객체 변환부(410)는 REST 웹서비스 실행결과 테이터를 객체로 변환하는 과정을 수행하는 주체이며, 서비스 운용부(420)는 변환된 객체를 조합하여 생성된 REST 웹서비스를 탑재/운용하는 주체이다.
도 3을 참조하면, 사용자가 REST 웹 서비스를 실행하고(S301), 이에 따라 XML이 파싱(Parsing)되면(S303), 객체 변환부(410)는 객체 구분 요소를 시작한다(S305).
그리고, 객체 구분 요소가 시작되면, 객체 구분 요소가 종료될 때까지 XML요소의 객체 변수를 매핑(mapping)한다(S307, S309).
다음, 객체의 임시저장 여부를 판단하고(S311), 객체를 임시저장하는 경우 웹 서비스 관리자(210)의 데이터베이스(220)에 객체를 임시저장한다(S313).
본 발명에서 S311 단계에서 객체의 임시저장 여부를 판단하게 되는데, 이는 조합 REST 웹서비스를 서버에서 수행하는 과정에서, 사용자가 선택할 수 있는 옵션(option)이다. 즉, 자신의 웹 서비스에서 필요로 하는 다른 REST 웹 서비스의 데이터를 수행하여 얻은 객체정보를 본 웹 서비스 관리자(210)에 임시저장 하겠는지의 여부를 선택하는 것이다. 다른 REST 웹 서비스 실행결과를 서버측에 저장하였다가, 차회 동일한 서비스 요청시 이를 재활용하는 방법은 일종의 캐싱(caching) 기법과 유사한 것으로 시스템 성능향상에 기여한다. 임시저장 기능을 사용하는 경우, 동일한 REST 웹서비스를 다시 네트워크를 통해 가져올 필요없이, 데이터베이스(220)에서 직접 꺼내어 활용할 수 있으므로 효과적이다. 단, 서버측에 임시저장하는 기능은 사용자가 기능사용을 선택할 경우만 적용하도록 하는 것이 바람직하다. 이때, 데이터베이스(220)에 저장된 객체를 쿼리(query)하여 객체로 변환하는 방식으로 운용할 수 있다.
다음, 서비스 운용부(420)는 사용자의 REST 웹 서비스 패키지를 로딩(loading)한다(S315).
그리고, 서비스 운용부(420)는 REST 웹 서비스 패키지에 대한 객체 동적 바인딩을 수행한다(S317).
서비스 운용부(420)는 사용자 REST 웹 서비스 패키지로부터 객체를 참조(Reference)한다(S319).
도 3의 객체 변환부(410)에서 현재의 REST 웹서비스 실행결과가 동일형식에 대한 복수개의 데이터를 담고 있는 경우, 데이터를 복수개 객체로 구분하여 저장해주어야 하는데, SOAP기반 웹서비스와는 다르게 REST 기반 웹서비스에서는 객체 구분 요소를 사용자가 직접 지정할 수 밖에 없다. 왜냐하면, REST 기반 웹서비스에서는 SOAP 기반 웹 서비스에서와 같이 WSDL(Web Service Description Language)에 의해 웹 서비스의 결과물의 형식에 대하여 형식(formal)적으로 기술되지 않기 때문이다.
본 발명의 일 실시예에서는 객체 각각에 대한 정보를 컴퓨터가 자동으로 구분할 수 없으므로, 사용자로부터 객체간 구분을 위한 XML의 특정 요소명(element tag name)을 입력받도록 한다.
객체 변환부(410)에서 REST 웹서비스 수행결과에서 각 요소명(element name)은 변환될 객체의 각각의 속성값에 대응한다. 예를 들면, <num>, <latitude>, <longitude>, <name>, <street>, <city>, <county>, <state>, <country> 등은 각각 객체의 속성변수로 변환된다. 이러한 변환은 XML 파싱과정에서 객체 구분 요소의 시작 태그를 만난 시점부터 종료 태그를 만날때까지 반복적으로 수행된다.
S317 단계는 서비스 운용부(420)에서 조합된 REST 웹서비스를 로딩하고 실행하는 과정에서 객체를 동적으로 바인딩하는 부분이다. 이는, 다른 REST 웹서비스를 조합함으로써 동작하는 REST 웹서비스의 경우, 객체 변환부(410)를 거치면서 변환된 객체를 동적으로 인스턴스화 하고, 이를 조합 REST 웹 서비스에서 사용할 수 있도록 동적 바인딩하는 것이다. 이러한 작업이 필요한 이유는 다음과 같다. 본 발명의 시스템은 수많은 사용자의 조합 REST 웹서비스를 동시에 실행할 수 있는데, 이 경우 모든 사용자의 웹 서비스가 메모리 상에 올라와 있을 수는 없다. 따라서, 실행 중에 수거(garbage collection)되거나 하는 경우, 객체의 상태를 직렬화(serialization) 등의 방법을 통해 보관하며, 이를 다시 필요로 하는 경우, 메모리에 다시 로딩 및 바인딩하여 사용하여야 하기 때문이다. 따라서, 이와 같이 사용자의 조합 REST 웹 서비스와 그 웹 서비스를 필요로하는 다른 REST 웹서비스의 실행결과(객체)가 바인딩되고 참조(reference)되어 사용될 수 있다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
110, 150 웹 서비스 120 XML
130 객체 210 웹 서비스 관리자
220 데이터베이스 230 웹 서버
240 스마트 폰 250 웹 브라우저
410 객체 변환부 420 서비스 운용부
130 객체 210 웹 서비스 관리자
220 데이터베이스 230 웹 서버
240 스마트 폰 250 웹 브라우저
410 객체 변환부 420 서비스 운용부
Claims (7)
- REST(representational state transfer) 기반 웹 서비스를 조합하는 웹 서비스 조합 시스템에서의 웹 서비스 조합 방법에 있어서,
상기 웹 서비스 조합 시스템은 웹 서비스의 수행 결과인 XML(eXtensible MarkUp Language) 데이터를 파싱(Parsing)하는 단계;
상기 웹 서비스 조합 시스템은 상기 XML 데이터로부터 객체를 추출하는 단계; 및
상기 웹 서비스 조합 시스템은 상기 추출된 둘 이상의 객체를 조합하는 방식으로 웹 서비스를 제공하는 단계를 포함하고,
상기 XML 데이터로부터 객체를 추출하는 단계에서, 상기 웹 서비스 조합 시스템은 객체간 구분을 위해 정해진 XML 요소명(element name)을 사용자로부터 입력받는 것을 특징으로 하는 웹 서비스 조합 방법.
- 제1항에 있어서,
상기 객체를 추출하는 단계 후에,
상기 웹 서비스 조합 시스템은 추출된 객체를 데이터베이스에 저장하는 단계를 더 포함하고,
이때, 상기 웹 서비스 조합 시스템은 상기 데이터베이스에 저장된 객체를 쿼리(query)하여 객체로 변환하는 것을 특징으로 하는 웹 서비스 조합 방법. - 삭제
- REST(representational state transfer) 기반 웹 서비스 조합 시스템에 있어서,
클라이언트로부터의 요청이 있으면, 해당 클라이언트에 웹 서비스를 제공하는 웹 서버; 및
사용자가 개발한 REST 웹 서비스를 로딩(loading)하고, 상기 웹 서버로부터의 웹 서비스 요청에 대한 응답을 처리하는 웹 서비스 관리자를 포함하되,
객체간 구분을 위해 정해진 XML 요소명(element name)을 사용자로부터 입력받는 방식으로 XML 데이터로부터 객체를 추출하는 것을 특징으로 하는 웹 서비스 조합 시스템.
- 제4항에 있어서,
상기 클라이언트와 상기 웹 서버는 HTTP(HyperText Transfer Protocol) 규약에 따라 통신하는 것을 특징으로 하는 웹 서비스 조합 시스템. - 제4항에 있어서,
상기 웹 서비스 관리자는 객체를 동적으로 인스턴스화하고, 이를 조합하여 사용할 수 있도록 동적 바인딩하는 객체 동적 바인딩을 수행하는 것을 특징으로 하는 웹 서비스 조합 시스템. - 제4항에 있어서,
상기 웹 서버는 2개 이상의 REST 웹 서비스를 조합한 REST 웹 서비스 그룹을 탑재하여 구동하는 것을 특징으로 하는 웹 서비스 조합 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120019587A KR101324393B1 (ko) | 2012-02-27 | 2012-02-27 | Rest 기반 웹 서비스 조합 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120019587A KR101324393B1 (ko) | 2012-02-27 | 2012-02-27 | Rest 기반 웹 서비스 조합 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130097927A KR20130097927A (ko) | 2013-09-04 |
KR101324393B1 true KR101324393B1 (ko) | 2013-11-01 |
Family
ID=49450052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120019587A KR101324393B1 (ko) | 2012-02-27 | 2012-02-27 | Rest 기반 웹 서비스 조합 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101324393B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230137512A (ko) | 2022-03-21 | 2023-10-05 | 주식회사 오픈드래프트 | 문서편집컴퓨터 및 문서편집방법 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559234B (zh) * | 2013-10-24 | 2017-01-25 | 北京邮电大学 | RESTful Web服务的自动化语义标注系统和方法 |
KR101586246B1 (ko) | 2014-08-22 | 2016-01-18 | 경북대학교 산학협력단 | Ieee 11073 서비스 제공 방법 및 시스템 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100982732B1 (ko) * | 2010-06-08 | 2010-09-20 | 이에스이 주식회사 | XForms 기반의 클라이언트 페이지 자동 생성 시스템 및 클라이언트 페이지 자동 생성 방법 |
-
2012
- 2012-02-27 KR KR1020120019587A patent/KR101324393B1/ko not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100982732B1 (ko) * | 2010-06-08 | 2010-09-20 | 이에스이 주식회사 | XForms 기반의 클라이언트 페이지 자동 생성 시스템 및 클라이언트 페이지 자동 생성 방법 |
Non-Patent Citations (2)
Title |
---|
REST의 개념과 REST 서비스의 구현' (http://www.hoons.net/lecture/view /391, 2008.03.25. 공지) * |
REST의 개념과 REST 서비스의 구현’ (http://www.hoons.net/lecture/view /391, 2008.03.25. 공지)* |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230137512A (ko) | 2022-03-21 | 2023-10-05 | 주식회사 오픈드래프트 | 문서편집컴퓨터 및 문서편집방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20130097927A (ko) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9535966B1 (en) | Techniques for aggregating data from multiple sources | |
CN101609415B (zh) | 基于中间件的通用服务调用系统及方法 | |
US7650609B2 (en) | Multi-environment document management system access | |
CN102184231A (zh) | 获取页面资源的方法及装置 | |
US20070011274A1 (en) | Data transfer in a multi-environment document management system access | |
CN107566477B (zh) | 一种在分布式文件系统集群中获取文件的方法和装置 | |
US20070162476A1 (en) | Using soap messages for inverse query expressions | |
CN107346320A (zh) | 一种数据调用方法和装置 | |
US20130091416A1 (en) | Method for establishing a relationship between semantic data and the running of a widget | |
Schade et al. | Augmenting SDI with linked data | |
KR101324393B1 (ko) | Rest 기반 웹 서비스 조합 시스템 및 방법 | |
KR100759186B1 (ko) | 비구조 웹문서 및 데이터베이스의 다양한 정보를웹서비스로 제공하기 위한 웹서비스 제공 시스템 및 그방법 | |
CN101807204A (zh) | 一种遥感图像处理Web服务动态生成方法 | |
Riva et al. | Designing web-based mobile services with REST | |
CN104980464A (zh) | 一种网络请求处理方法、网络服务器和网络系统 | |
CN101039320A (zh) | 用于提供客户应用和Web服务之间的接口的方法和系统 | |
CN103020294A (zh) | 一种基于Web Services的旅游信息集成系统 | |
Sbeyti et al. | Scalable extensible middleware framework for context-aware mobile applications (SCAMMP). | |
Rienzi et al. | Towards an ESB-Based Enterprise Integration Platform for Geospatial Web Services | |
Tamayo et al. | Sensor observation service client for android mobile phones | |
Mangler et al. | Quo vadis interface definition languages? Towards a interface definition language for RESTful services | |
Cattelan et al. | Processing and storage middleware support for capture and access applications | |
KR20140139776A (ko) | Tiering 기반의 가상화 네트워크 스토리지와 클라우드 기반 문서 배포 시스템의 자동 연동 방법 | |
Han et al. | Development and Practice of Knowledge Service Platform Based on DSpace | |
Li | Xiang Li |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161005 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |