KR20180082271A - Cached wadl execution engine and method for calling web services using the theory - Google Patents

Cached wadl execution engine and method for calling web services using the theory Download PDF

Info

Publication number
KR20180082271A
KR20180082271A KR1020170003785A KR20170003785A KR20180082271A KR 20180082271 A KR20180082271 A KR 20180082271A KR 1020170003785 A KR1020170003785 A KR 1020170003785A KR 20170003785 A KR20170003785 A KR 20170003785A KR 20180082271 A KR20180082271 A KR 20180082271A
Authority
KR
South Korea
Prior art keywords
wadl
service
web
cached
execution engine
Prior art date
Application number
KR1020170003785A
Other languages
Korean (ko)
Other versions
KR101910031B1 (en
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 건국대학교 산학협력단
Priority to KR1020170003785A priority Critical patent/KR101910031B1/en
Publication of KR20180082271A publication Critical patent/KR20180082271A/en
Application granted granted Critical
Publication of KR101910031B1 publication Critical patent/KR101910031B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/16
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The present invention relates to a method for calling a web service using a cached WADL execution engine. The method for calling a web service using a cached WADL execution engine comprises: a step (a) of obtaining a service corresponding to a request obtained from a semantic web database as an execute service; and a step (b) of calling a WADL request cached through a web ontology language for service (OWL-S) execution engine and responding to the call to interpret and execute a WADL resource corresponding to the execution service. Communication between web services is able to be executed in the step (b), and accordingly, a web service corresponding to the service is able to be called from the web services. According to the present invention, when a duplicate service is called in an SOA based web service, it is possible to provide a cached WADL execution engine based SOA infrastructure, which is able to enhance processing speed and network performance.

Description

캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법 {CACHED WADL EXECUTION ENGINE AND METHOD FOR CALLING WEB SERVICES USING THE THEORY}[0001] CACHED WADL EXECUTION ENGINE AND METHOD FOR CALLING WEB SERVICES USING THE THEORY [0002]

본원은 네트워크 성능을 향상시키는 RESTful 웹 서비스를 위한 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 관한 것이다.The present invention relates to a cached WADL execution engine for a RESTful web service that improves network performance and a web service invocation method using the same.

인터넷의 발달과 함께 웹을 기반으로 하는 클라이언트-서버 분산 구조의 웹 서비스 시스템 구조가 점차 확산되고 있으며, 최근에는 스마트폰을 이용한 스마트폰과 같은 모바일 애플리케이션이 대중화되면서, 웹 서비스의 활용이 점차 확대되는 추세이다.With the development of the Internet, the structure of the web service system based on the web-based client-server distributed architecture is gradually spreading. In recent years, mobile applications such as smart phones using smart phones have become popular, Trend.

웹 기반 기업들(예를 들어, Google, Twitter, Microsoft 등)은 많은 HTTP 기반 API를 설계하여 다른 응용 프로그램에서 사용할 수 있는 엔터프라이즈급 데이터 API를 만들며, 이러한 기업들은 여러 기업의 웹 서비스를 사용하는 마이크로 서비스 기반의 서비스 지향 아키텍처(Service-Oriented Architecture, SOA)를 적용한다.Web-based companies (for example, Google, Twitter, Microsoft, etc.) design many HTTP-based APIs to create enterprise-class data APIs that can be used in other applications, Service-oriented service-oriented architecture (SOA) is applied.

SOA는 대규모 웹 서비스를 구축하는 방법 및 아키텍처로서, SOA 기반의 웹 서비스를 쉽게 구축하기 위해서는 SOA 인프라스트럭쳐(SOA infrastructure)가 필요하다. SOA is a method and architecture for building large-scale Web services. In order to easily build SOA-based Web services, SOA infrastructure is required.

이러한, SOA 기반의 웹 서비스는 여러 서비스들을 조합하여 비즈니스 로직을 처리하기 때문에 Atomic 서비스를 정의하면 이를 조합함으로써 복잡한 처리가 가능하고, 조합된 서비스를 통해 중복되는 로직을 제거할 수 있는 장점이 있다. 그러나, 많은 서비스들을 복잡하게 조합할 경우 같은 서비스를 중복하여 호출하게 됨에 따라 처리 속도 및 네트워크 성능이 저하되는 단점이 있다.This SOA-based Web service combines several services to process business logic. Therefore, if an Atomic service is defined, it is possible to perform complex processing by combining them, and it is possible to eliminate redundant logic through a combined service. However, when a large number of services are combined in a complicated manner, the same service is repeatedly called and the processing speed and network performance are degraded.

본원의 배경이 되는 기술은 한국등록특허공보 제10-1324393호(등록일: 2013.10.25)에 개시되어 있다.The background technology of the present application is disclosed in Korean Patent Registration No. 10-1324393 (Registered on Feb. 20, 2013).

본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, SOA 기반의 웹 서비스에서 중복된 서비스의 호출시 야기되는 처리 속도 저하 및 네트워크 성능 저하의 문제를 해소할 수 있는 SOA 인프라스트럭쳐에 기반한 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법을 제공하려는 것을 목적으로 한다.It is an object of the present invention to solve the above-mentioned problems of the prior art, and it is an object of the present invention to provide a SOA-based web service, which is capable of solving the problem of degraded processing speed and network performance, An execution engine and a web service invocation method using the same.

다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It is to be understood, however, that the technical scope of the embodiments of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법은, (a) 시맨틱 웹 데이터베이스로부터 획득된 리퀘스트에 대응하는 서비스를 실행 서비스(execute service)로서 획득하는 단계, 및 (b) OWL-S(Web Ontology Language for Service) 실행 엔진을 통해 캐시된 WADL 리퀘스트를 호출하고, 상기 호출에 응답하여 상기 실행 서비스에 대응하는 WADL 리소스를 해석(interpreting)하여 실행하는 단계를 포함하고, 상기 (b) 단계에 의하여 웹 서비스들 간에 통신이 수행됨에 따라 상기 웹 서비스들로부터 상기 서비스에 대응하는 웹 서비스가 호출될 수 있다.According to an aspect of the present invention, there is provided a web service invocation method using a cached WADL execution engine, the method comprising: (a) providing a service corresponding to a request acquired from a semantic web database to an execution service (b) invoking a cached WADL request via the Web Ontology Language for Service (OWL-S) execution engine and, in response to the call, interpreting a WADL resource corresponding to the execution service interpreting the web service, and executing the web service corresponding to the service from the web services as the communication between the web services is performed according to the step (b).

또한, 상기 (b) 단계에서는, 상기 OWL-S 실행 엔진의 WADL 그라운딩 프로바이더를 통해 상기 캐시된 WADL 리퀘스트를 호출할 수 있다.In the step (b), the cached WADL request may be called through the WADL grounding provider of the OWL-S execution engine.

또한, 상기 (b) 단계에서는, 상기 WADL 리소스가 실행될 때, 상기 WADL 리소스를 캐싱하고 있는 상태에서 상기 WADL 리소스의 변경 여부를 캐시 매니저를 이용하여 확인할 수 있다.In the step (b), when the WADL resource is executed, whether or not the WADL resource is changed while the WADL resource is being cached can be checked using the cache manager.

또한, 상기 (b) 단계에서는, 상기 WADL 리소스에 포함된 URI를 키(key)로 하여 상기 캐시 매니저를 통해 상기 URI에 대응하는 캐시 엔트리의 값을 획득함으로써 상기 WADL 리소스의 변경 여부를 확인할 수 있다.In addition, in the step (b), it is possible to confirm whether the WADL resource is changed by obtaining the value of the cache entry corresponding to the URI through the cache manager with the URI included in the WADL resource as a key .

또한, 상기 (b) 단계에서는, 상기 캐시 엔트리의 값에 포함된 태그 값에 기초하여 HTTP 1.1의 조건부 요청(Conditional Requests)을 수행할 수 있다.In the step (b), conditional requests of HTTP 1.1 may be performed based on the tag value included in the value of the cache entry.

또한, 상기 (b) 단계에서는, 상기 조건부 요청을 사용하는 연속 기입(write-through) 캐싱 알고리즘에 기초하여 상기 WADL 리소스의 변경 여부를 확인할 수 있다.In the step (b), it is possible to confirm whether the WADL resource is changed based on a write-through caching algorithm using the conditional request.

또한, 상기 (b) 단계에서는, 상기 캐시된 WADL 리퀘스트의 호출에 의한 RESTful 웹 애플리케이션의 호출 결과를 상기 캐시 엔트리에 저장할 수 있다.In the step (b), a result of calling the RESTful web application by calling the cached WADL request may be stored in the cache entry.

또한, 상기 캐시 매니저는 LRU 알고리즘에 기초하여 리소스를 저장할 수 있다.In addition, the cache manager may store resources based on the LRU algorithm.

한편, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진은, 시맨틱 웹 데이터베이스로부터 획득된 리퀘스트에 대응하는 서비스를 실행 서비스(execute service)로서 획득하는 획득부, 및 OWL-S(Web Ontology Language for Service) 실행 엔진을 통해 캐시된 WADL 리퀘스트를 호출하고, 상기 호출에 응답하여 상기 실행 서비스에 대응하는 WADL 리소스를 해석(interpreting)하여 실행하는 실행부를 포함하고, 상기 실행부에 의하여 웹 서비스들 간에 통신이 수행됨에 따라 상기 웹 서비스들로부터 상기 서비스에 대응하는 웹 서비스가 호출될 수 있다.Meanwhile, the cached WADL execution engine according to an embodiment of the present invention includes an acquisition unit that acquires a service corresponding to a request acquired from a semantic web database as an execute service, and an OWL-S (Web Ontology Language for Service And an execution unit for interpreting and executing a WADL resource corresponding to the execution service in response to the call, wherein the execution unit executes communication between the web services by the execution unit, The web service corresponding to the service can be invoked from the web services.

상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.The above-described task solution is merely exemplary and should not be construed as limiting the present disclosure. In addition to the exemplary embodiments described above, there may be additional embodiments in the drawings and the detailed description of the invention.

전술한 본원의 과제 해결 수단에 의하면, 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법을 통해, OWL-S 기반의 SOA 인프라스트럭쳐에서 중복된 서비스를 WADL(Web Application Description Language)로 호출할 때 캐시 또는 캐시 기법을 통해 성능을 향상시킬 수 있는 효과가 있다.According to the present invention, when a duplicated service is invoked in a WADL (Web Application Description Language) in an OAW-S based SOA infrastructure through a cached WADL execution engine and a web service invocation method using the cached WADL execution engine, Or cache technique to improve performance.

전술한 본원의 과제 해결 수단에 의하면, SOA 기반의 웹 서비스에서 중복된 서비스의 호출시 처리 속도 및 네트워크 성능을 향상시킬 수 있는 캐시된 WADL 실행 엔진 기반의 SOA 인프라스트럭쳐를 제공할 수 있는 효과가 있다.According to the present invention, it is possible to provide an SOA infrastructure based on a cached WADL execution engine that can improve the processing speed and network performance at the time of calling a duplicated service in an SOA-based web service .

전술한 본원의 과제 해결 수단에 의하면, 캐싱 기법을 적용한 HTTP 통신으로 서비스 기반 아키텍처 및 인프라에서 상호 운용시 성능 향상을 제공할 수 있는 효과가 있다.According to the above-mentioned task resolution means, there is an effect that performance improvement in interoperability in a service-based architecture and an infrastructure can be provided by HTTP communication using a caching technique.

다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.However, the effects obtainable here are not limited to the effects as described above, and other effects may exist.

도 1은 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 적용되는 RESTful SWS의 개념도이다.
도 2는 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 적용되는 RESTful 그라운딩 온톨로지를 나타낸 개략도이다.
도 3은 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(SHIN)이 포함된 SOA 인프라스트럭쳐의 아키텍처를 나타낸 개략도이다.
도 4는 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(SHIN)의 아키텍처를 나타낸 도면이다.
도 5는 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법에 대한 개략적인 동작 흐름도이다.
1 is a conceptual diagram of a RESTful SWS applied to a cached WADL execution engine and a web service invocation method using the cached WADL execution engine according to an embodiment of the present invention.
2 is a schematic diagram illustrating a RESTful grounding ontology applied to a cached WADL execution engine and a web service invocation method using the cached WADL execution engine according to an embodiment of the present invention;
Figure 3 is a schematic diagram illustrating the architecture of an SOA infrastructure including a cached WADL execution engine (SHIN) in accordance with one embodiment of the present disclosure.
4 is a diagram illustrating the architecture of a cached WADL execution engine (SHIN) in accordance with one embodiment of the present disclosure.
FIG. 5 is a schematic flowchart illustrating a method of calling a Web service using a cached WADL execution engine according to an exemplary embodiment of the present invention. Referring to FIG.

아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. It should be understood, however, that the present invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In the drawings, the same reference numbers are used throughout the specification to refer to the same or like parts.

본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다. Throughout this specification, when an element is referred to as being "connected" to another element, it is intended to be understood that it is not only "directly connected" but also "electrically connected" or "indirectly connected" "Is included.

본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.It will be appreciated that throughout the specification it will be understood that when a member is located on another member "top", "top", "under", "bottom" But also the case where there is another member between the two members as well as the case where they are in contact with each other.

본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.Throughout this specification, when an element is referred to as "including " an element, it is understood that the element may include other elements as well, without departing from the other elements unless specifically stated otherwise.

본원은 OWL-S(Web Ontology Language for Service) 기반의 SOA 인프라스트럭쳐(SOA infrastructure)에서 중복된 서비스를 WADL(Web Application Description Language)로 호출할 때 캐시를 통해 성능을 향상시킬 수 있는 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 관한 것이다. 본격적인 설명에 앞서, 본원의 기반이 되는 기술을 설명하면 다음과 같다.In this paper, we propose a cached WADL implementation that can improve performance through cache when calling duplicate services in WADL (Web Application Description Language) in SOA Infrastructure based on OWL-S (Web Ontology Language for Service) Engine and a web service invocation method using the same. Prior to the full-scale explanation, the technology underlying the present invention will be described as follows.

1.1. OWL-S를 사용하는 SOA 인프라스트럭쳐 및 SWS.1.1. SOA Infrastructure and SWS using OWL-S.

SOA 인프라스트럭쳐의 주요 기능은 웹 서비스에 대한 검색(Discovery), 호출(Invocation), 컴포지션(Composition) 및 상호운용(Interoperation)을 할 수 있게 하며, SOA 기반의 인프라스트럭쳐는 여러 언어들 중에서 OWL-S로 구성될 수 있다.The main function of the SOA infrastructure is to enable discovery, invocation, composition, and interoperation of Web services. SOA-based infrastructure enables OWL-S ≪ / RTI >

OWL-S는 소프트웨어 에이전트가 자동적으로 웹 서비스에 대한 검색, 호출, 컴포지션, 상호운용과 과 실행 모니터링(Execution monitoring)의 기능을 수행할 수 있도록 정의하는 서비스 온톨로지(Ontology) 프레임워크를 의미한다. OWL-S에서 서비스는, 서비스 프로파일(Service Profile), 서비스 모델(Service Model) 및 서비스 그라운딩(Service Grounding)과 같이, 크게 세가지의 온톨로지로 나타낼 수 있다. 서비스 프로파일은, 어떤 서비스를 할 것인지(즉, 사용자가 요구하는 서비스가 무엇인지)를 표현한 온톨로지로서, 서비스의 자동 검색시 사용된다. 서비스 모델은, 어떻게 서비스를 제공할 것 인가를 다루는 온톨로지로서, 서비스의 자동 컴포지션 및 상호운용시 사용된다. 서비스 그라운딩은, 어떻게 서비스를 접근할 것인지를 정의한 온톨로지로서, 서비스의 자동 실행시 사용된다.OWL-S refers to a service ontology framework that defines a software agent to automatically perform functions such as search, invoke, composition, interoperability and execution monitoring of Web services. In OWL-S, a service can be represented by three types of ontologies such as a service profile, a service model, and a service grounding. A service profile is an ontology representing a service (that is, a service requested by a user), which is used for automatic search of a service. The service model is an ontology that deals with how to provide services, and is used for automatic composition and interoperability of services. Service grounding is an ontology that defines how services are to be accessed and is used for automatic execution of services.

또한, 서비스 그라운딩은 기본 그라운딩으로서 WSDL(Web Services Description Language)을 제공하며, 이는 UPnPGrounding 및 JavaGrounding과 같은 다른 서비스 그라운딩 방법으로 변경할 수 있다. 또한, 서비스 모델은 OWL-S에서 process.owl을 사용하는 서비스의 모델을 정의하기 위해 사용된다. 서비스 모델에서 사용되는 프로세스 온톨로지는, Atomic Process, Simple Process 및 Composite Process와 같은 하위 클래스와 속성으로 구성될 수 있으며, 이러한 프로세스 클래스는, 자동 상호운용을 위한 IOPE(Input, Output, Precondition, Effect) 모델을 정의함으로써 나타낼 수 있다. 달리 말해, OWL-S의 서비스 모델은 기본적으로 IOPE(Input, Output, Precondition, Effect)를 속성으로 가진다.In addition, the service grounding provides Web Services Description Language (WSDL) as a basic grounding, which can be changed by other service grounding methods such as UPnPGrounding and JavaGrounding. The service model is also used to define the model of the service using process.owl in OWL-S. The process ontology used in the service model can be composed of subclasses and attributes such as an atomic process, a simple process, and a composite process. The process class includes an IOPE (Input, Output, Precondition, Effect) model for automatic interoperability . ≪ / RTI > In other words, the service model of OWL-S basically has IOPE (Input, Output, Precondition, Effect) as an attribute.

또한, OWL-S에서는, 서비스 운용을 위한 제어 방법으로서 Sequence, Choice, If-Then-Else, Split, Split-Join 및 Iterate와 같은 Control Construct클래스를 자동 서비스 컴포지션을 위해 사용할 수 있다. 달리말해, OWL-S에서는 Composite Process 클래스를 사용하여 여러 서비스들을 조합할 수 있다. 이에 따라, 후술할 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는 For-Each와 같은 추가 Control Construct의 하위 클래스와 함께 확장된 프로세스 온톨로지를 사용할 수 있다.In OWL-S, Control Construct classes such as Sequence, Choice, If-Then-Else, Split, Split-Join and Iterate can be used for automatic service composition as a control method for service operation. In other words, in OWL-S, you can combine multiple services using the Composite Process class. Accordingly, in the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention to be described later, an extended process ontology can be used together with a subclass of additional Control Construct such as For-Each.

서비스 그라운딩은 WSDL에서 지원되며, 이는 OWL-S에 의해 정의될 수 있다. 이후 서비스 그라운딩은 SOA와 SWS(Semantic Web Service)에서 WSDL 기반의 비즈니스 로직으로 나타냄으로써 최적화될 수 있다. 그런데, 최근 개발된 리소스 지향 아키텍처(Resource-oriented Architecture, ROA) 기반의 오픈 API는 SOA와 일치하지 않으며, ROA는 일반적으로 RESTful 스타일로서, 이 리소스는 고유 식별자인 URI로 표현된다.Service grounding is supported in WSDL, which can be defined by OWL-S. Service grounding can then be optimized by representing WSDL-based business logic in SOA and SWS (Semantic Web Service). However, recently developed Open-API based on Resource-oriented Architecture (ROA) is not consistent with SOA, ROA is generally RESTful style, and this resource is represented by URI which is unique identifier.

후술할 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는 RESTfulGrounding을 사용하여 RESTful 웹 서비스를 제공할 수 있으며, 그라운딩은 ServiceGrounding 온톨로지를 확장하기 위해 WADL을 지원할 수 있고, 더하여, 그라운딩은, 하나 이상의 단일 프로세스(Atomic Process)의 RESTful 웹 리소스를 직접 제어하기 위한 동작(operations)을 정의하는 어휘를 제공할 수 있다.The cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention can provide a RESTful web service using RESTfulGrounding and the grounding can support WADL to extend the ServiceGrounding ontology, , The grounding can provide a vocabulary that defines operations for directly controlling RESTful Web resources of one or more single processes (Atomic Processes).

1.2. WSDL과 WADL.1.2. WSDL and WADL.

WSDL은 특정 비즈니스가 제공하는 서비스를 설명하고, 개인이나 다른 회사들이 그러한 서비스에 전자적으로 접근할 수 있는 방법을 제공하기 위해 사용되는 XML 기반의 언어이다. 2001년에 제안된 WSDL은 HTTP GET 및 POST 메소드(method)를 사용하는 XML 사양으로 구성되며, 이는 프로그래밍 언어에 의존하지 않고 웹 서비스의 엔드포인트(endpoints)를 호출하도록 설계된 SOAP(Simple Object Access Protocol)를 사용한다. 일반적으로, OWL-S 기반의 SOA는 WSDL 및 SOAP를 기반으로 한다. 이러한 WSDL은 WADL과는 차이가 있다.WSDL is an XML-based language that is used to describe services provided by a particular business and to provide a way for individuals or other companies to electronically access such services. The proposed WSDL in 2001 consists of an XML specification that uses the HTTP GET and POST methods. It is based on the Simple Object Access Protocol (SOAP), which is designed to invoke endpoints of a Web service, Lt; / RTI > In general, SOA based on OWL-S is based on WSDL and SOAP. This WSDL differs from WADL.

WADL은 HTTP 기반 웹 응용 프로그램 및 RESTful 웹 리소스를 나타내기 위해 정의된다. HTTP 기반 웹 API는 JSON 또는 XML 포맷을 사용한 데이터를 나타내기 위해 사용된다. RESTful 웹 리소스의 동작은 GET, POST, PUT 및 DELETE와 같은 HTTP 메소드를 사용하여 기술할 수 있다.WADL is defined to represent HTTP-based Web applications and RESTful Web resources. The HTTP-based Web API is used to represent data using JSON or XML format. The behavior of RESTful web resources can be described using HTTP methods such as GET, POST, PUT, and DELETE.

한편, 웹 기반 기업들(예를 들어, Google, Yahoo, Amazon, Flickr 등)은 점점 더 WSDL을 사용하여 오픈 API를 정의하지 않는다. 따라서, 이들 서비스는 오픈 API 및 WADL과 연계된 RESTful 스타일 리소스 기반 아키텍처를 사용하여 설계된다.On the other hand, web-based companies (eg, Google, Yahoo, Amazon, Flickr, etc.) increasingly do not define open APIs using WSDL. Therefore, these services are designed using RESTful style resource-based architecture in conjunction with open API and WADL.

WADL과 WSDL은 일반적으로 HTTP 기반 작동을 사용한다. 그러나, WADL은 웹 응용 프로그램 및 리소스 용으로 설계되었고, WSDL은 웹 서비스 및 비즈니스 논리 용으로 설계되었다는 점에서 차이가 있다. 서비스 엔드포인트의 정의에서 이 두 언어는 기존의 웹 서비스와 현대적인 웹 애플리케이션을 설계하기 위해 다르게 사용된다. 후술할 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는 서비스 호출시 WADL를 이용한다.WADL and WSDL generally use HTTP-based operations. However, WADL is designed for Web applications and resources, and WSDL is designed for Web services and business logic. In the definition of service endpoints, these two languages are used differently to design existing Web services and modern Web applications. In the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention to be described later, WADL is used in a service invocation.

1.3. RESTful 웹 애플리케이션의 클라이언트 측 리소스 캐싱 방법.1.3. How to cache client-side resources for RESTful Web applications.

대규모 웹 서비스 표준은 리소스의 클라이언트측 캐싱을 지원하는 프로토콜을 가지며, 본원의 일 실시예에서 사용하는 대표적인 프로토콜은 'HTTP 1.1 : 조건부 요청(Conditional Requests)'이다.The large-scale Web services standard has a protocol that supports client-side caching of resources, and a typical protocol used in one embodiment of the present invention is 'HTTP 1.1: Conditional Requests'.

이 방법은 HTTP를 통해 전송될 때 헤더에 투플 값(value tuples)과 추가 키(Key)를 통해 조건부 요청을 처리하기 위해 수행될 수 있다.This method can be performed to process conditional requests through the value tuples and additional keys in the header when sent over HTTP.

HTTP 클라이언트는 If-None-Match와 If-Modified-Since의 헤더를 통해 리퀘스트(request)를 전송한다. 그런 다음, 클라이언트는 적용 가능한 자원이 변경되지 않았을 때 본문(body)과 304 코드를 가지지 않는 응답을 서버로부터 수신할 수 있다.(본원의 '캐쉬'의 의미) 이 프로세스는 네트워크의 대기 시간을 줄임으로써 서버의 네트워크 성능을 향상시킬 수 있다.The HTTP client sends a request through the If-None-Match and If-Modified-Since headers. The client can then receive a response from the server, which does not have a body and 304 code, when the applicable resources have not changed (meaning 'cache'). This process reduces the latency of the network So that the network performance of the server can be improved.

GitHub 및 Google과 같은 웹 기반 기업의 대규모 공개 API는, 가능한 네트워크 성능에 대한 조건부 요청을 웹 서비스에 제공한다. 한편, REST 웹 애플리케이션을 위한 클라이언트측 캐싱 방법으로서 조건부 요청을 사용한다면, 리소스와 캐시된 엔트리의 '수정된' 캐싱 상태와 '유효하지 않은' 캐싱 상태를 확인하는데 쉽게 적용할 수 있을 것이다.The large, open APIs of web-based companies such as GitHub and Google provide web services with conditional requests for possible network performance. On the other hand, if a conditional request is used as a client-side caching method for a REST web application, it can easily be applied to checking the 'modified' caching state and the 'invalid' caching state of the resource and the cached entry.

따라서, 후술할 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, 조건부 요청을 REST와는 다른 RESTful 웹 애플리케이션을 위한 클라이언트측 캐싱 방법으로서 사용할 수 있다. 또한, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 적용되는 RESTful 웹 애플리케이션은, 자신의 URI 패턴에 대응하는 리소스에 대한 응답을 지원할 뿐만 아니라 POST(작성), PUT(업데이트), DELETE(제거) 및 GET(검색)을 포함한 4가지 동작을 지원할 수 있으며, 이 방법은 연속 기입(write-through) 캐싱 방법으로 구현될 수 있다. POST(작성), PUT(업데이트), DELETE(제거) 및 GET(검색)을 포함한 4가지 동작의 지원 또는 구동은 공지된 프로세스에 따른다. 또한, 조건부 요청의 HTTP GET을 통해, 애플리케이션은 HTTP 클라이언트가 히트(hits)나 캐시 엔트리의 누락을 확인할 수 있고, 데이터가 '수정된' 상태 또는 '유효하지 않은' 상태일 캐시 라인에 데이터를 업데이트할 수 있다. 또한, POST, DELETE, PUT과 같은 동작 방법에 대한 요청을 서버가 수신하는 경우, 상태가 '수정되지 않음'에서 '수정됨'으로 변경될 수 있다. 또한, RESTful 웹 서비스는, 고유의 URI에 기초하여 하나 이상의 자원에 접근하기 때문에 캐싱 방법에 의해 네트워크 성능을 향상시킬 수 있다.Accordingly, in the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention to be described later, the conditional request can be used as a client side caching method for RESTful web applications other than REST. In addition, the RESTful web application that is applied to the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention not only supports a response to a resource corresponding to its own URI pattern, (Update), DELETE (remove), and GET (retrieve), which can be implemented as a write-through caching method. The support or activation of four operations including POST (creation), PUT (update), DELETE (removal) and GET (retrieval) is in accordance with known processes. In addition, through an HTTP GET of a conditional request, the application can check the HTTP client for missing hits or cache entries and update the data in the cache line where the data is in the 'modified' state or the 'invalid' state can do. In addition, when the server receives a request for an operation method such as POST, DELETE, or PUT, the status may change from 'unmodified' to 'modified'. In addition, RESTful web services can improve network performance by caching methods because they access one or more resources based on their unique URI.

1.4. OWL-S를 위한 다른 실행 엔진.1.4. Another execution engine for OWL-S.

대표적인 OWL-S 기반의 SWS 실행 엔진은 OWL-S 가상 머신(OSVM)과 OWL-S Java API 등이 있으며, OSVM는 DAML-S 및 OWL-S를 지원하는 실행 엔진이다.The SWS execution engine based on OWL-S is OWL-S virtual machine (OSVM) and OWL-S Java API. OSVM is an execution engine supporting DAML-S and OWL-S.

웹 서비스의 호출을 위한 실행 규칙(execution rules)은, Atomic Process의 WSDL 동작과 일치하도록 실행되는 Composite Process 각각에 Constrol Construct를 적용하기 위해 해석될 수 있다.Execution rules for invoking a Web service can be interpreted to apply a Constrol Construct to each Composite Process executed to match the WSDL behavior of the Atomic Process.

후술할 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, OWL-S Java API를 RESTfulGrounding과 함께 사용되는 SWS 실행 엔진으로 이용할 수 있다.In the cached WADL execution engine and the web service invocation method using the same, an OWL-S Java API can be used as an SWS execution engine used together with RESTfulGrounding.

OWL-S Java API의 기본 구성을 살펴보면, OWL-S Java API 라이브러리에는 Apache-Jena 기반의 OWL-S 실행 엔진이 포함되어 있으며, 이는 DAML-S 0.7에서 OWL-S 1.2까지 지원하고, RDF/OWL 모델에 대한 WSDL 또는 UPnP 실행을 지원한다. OWL-S Java API는 , OWL-S 그라운딩 프로바이더(grounding provider) 인터페이스를 사용하여 다른 그라운딩 방법으로 쉽게 확장할 수 있다.The OWL-S Java API library includes Apache-Jena based OWL-S execution engine, which supports DAML-S 0.7 to OWL-S 1.2, and RDF / OWL- Supports WSDL or UPnP execution for the model. The OWL-S Java API can be easily extended to other grounding methods using the OWL-S grounding provider interface.

두 엔진(OWL-S Java API, OSVM)은 기본적으로 WSDL 동작을 지원하고, RDF를 기반으로 하며, 두 엔진을 통한 웹 서비스로부터의 호출 결과가 RDF 포맷으로 변환될 수 있다. 따라서, 후술할 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, 일반적으로 인터네트워크에서 RDF로 데이터 직렬화되는 JSON의 변환을 위해 XSLT를 지원할 수 있다. 또한, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, OWL-S Java API를 기반으로 하는 RESTfulGrounding을 이용하며, OWL-S 그라운딩 프로바이더 인터페이스를 확장하여 WADL Grounding Provider를 생성함으로써 RESTful SWS 실행 엔진을 구현할 수 있다.The two engines (OWL-S Java API, OSVM) basically support WSDL operations, are based on RDF, and the results of a call from a Web service through both engines can be converted to the RDF format. Accordingly, in the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention described below, XSLT can be supported for transforming JSON, which is data serialized to RDF in the internetwork. Also, in the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention, RESTfulGrounding based on OWL-S Java API is used and OWL-S grounding provider interface is extended to provide a WADL Grounding Provider To create a RESTful SWS execution engine.

이하에서는, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 있어서, RESTful 그라운딩에서 WADL 기반의 SWS 호출을 위한 캐싱 레이어를 적용하는 과정에 대해 구체적으로 설명하기로 한다.Hereinafter, a process of applying a caching layer for a WADL-based SWS call in RESTful grounding in a cached WADL execution engine and a web service calling method using the cached WADL execution engine according to an embodiment of the present invention will be described in detail.

본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, 조건부 요청을 사용하는 캐싱 레이어로서 연속 기입(write-through) 캐싱 메커니즘을 추가함으로써 RESTful SWS 호출 프로세스의 성능을 향상시킬 수 있다.In the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention, the performance of the RESTful SWS invocation process is improved by adding a write-through caching mechanism as a caching layer using conditional requests .

SWS의 대규모 설계로 구성된 프로세스는 리소스에 대한 중복 요청이 요구되며, 이는 웹 서버에서 극도로 높은 네트워크의 대기 시간(지연 시간, latency)을 야기한다. 이러한 문제를 해결하기 위해, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(이하, 'SHIN'이라 표현함)은 캐싱 레이어를 사용함으로써 중복된 네트워크 리소스를 제거할 수 있다. 이러한 본원에서는 서버 자원을 감소시킴으로써 성능을 향상시킬 수 있는 SWS 실행 엔진으로서 SHIN을 구현할 수 있다. SWS's large-scale design process requires redundant requests for resources, resulting in extremely high network latencies in the Web server. In order to solve this problem, the cached WADL execution engine (hereinafter referred to as 'SHIN') according to an embodiment of the present invention can remove redundant network resources by using a caching layer. In this paper, SHIN can be implemented as a SWS execution engine that can improve performance by reducing server resources.

전통적으로 사용되는 캐싱 메커니즘 중 하나는 MESI 프로토콜이라 할 수 있다. 일반적으로, MESI 프로토콜은 캐시와 물리적(physical) 메모리 사이의 데이터 일관성 문제를 해결하기 위해 CPU에 의해 사용된다. 컴퓨터 아키텍처에서 물리적 메모리는 모든 CPU에 의해 액세스되며, CPU는 캐시 라인을 가지고 있다. One of the traditionally used caching mechanisms is the MESI protocol. In general, the MESI protocol is used by the CPU to solve the data consistency problem between cache and physical memory. In a computer architecture, physical memory is accessed by all CPUs, and the CPU has a cache line.

본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(SHIN)은, 전통적 캐시 알고리즘이 아닌 연속 기입(Write-through)과 같이 클라이언트 측 캐싱을 위한 캐싱 프로토콜을 사용할 수 있다. 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, HTTP 1.1의 조건부 요청을 사용하여 연속 기입 캐싱 알고리즘을 구현할 수 있다.The cached WADL execution engine (SHIN) according to one embodiment of the present disclosure may use a caching protocol for client-side caching, such as write-through, rather than the traditional cache algorithm. In the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention, a contiguous write caching algorithm can be implemented using a conditional request of HTTP 1.1.

본원에 적용되는 캐싱 알고리즘은, 리소스의 상태가 변경되었는지 여부를 확인하기 위해, Etag와 Modified-Since 헤더를 갖는 HTTP GET 메소드의 리퀘스트를 사용할 수 있다.The caching algorithm applied here can use the HTTP GET method request with Etag and Modified-Since header to check whether the state of the resource has changed.

만약, 다른 클라이언트가 리소스를 쓰는 경우, 서버는 리소스에 데이터를 업데이트하고, 클라이언트가 GET 리퀘스트를 서버에 보낼 때 리소스의 Etag와 Modified-Since 값을 사용하여 응답할 수 있다. 각 클라이언트는, 서버의 Modified-Since 또는 Etag를 사용하여 데이터 또는 해시 값을 비교할 수 있다. 이후, 만약 데이터가 수정된 경우, 클라이언트는 캐시 라인에 이미 있는 캐시 엔트리의 데이터, 해시 및 날짜 값을 업데이트할 수 있다. 이 메커니즘은, 데이터 일관성과 리소스 공유의 문제를 정의하고, 이를 해결할 수 있다. 이에 따라, 웹 클라이언트는, 웹 서버로부터 캐시 라인에 있는 리소스의 상태를 확인할 수 있다. 따라서, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진의 캐싱 메커니즘은, 다른 웹 클라이언트와 리소스를 공유하기 위해, MESI 프로토콜에서는 하지 못하는 연속 기입 방식을 사용할 수 있다. 만약, 클라이언트가 중복된 리소스로 데이터를 전송하는 경우, 데이터는 클라이언트에 의해 각각의 캐시 라인에 저장되고 공유될 수 있다.If another client writes a resource, the server can update the data on the resource and respond with the Etag and Modified-Since values of the resource when the client sends the GET request to the server. Each client can use the server's Modified-Since or Etag to compare data or hash values. Thereafter, if the data is modified, the client may update the data, hash and date values of the cache entry already in the cache line. This mechanism can define and solve the problem of data consistency and resource sharing. As a result, the Web client can check the status of the resource in the cache line from the Web server. Accordingly, the caching mechanism of the cached WADL execution engine according to an exemplary embodiment of the present invention may use a continuous writing method that is not available in the MESI protocol in order to share resources with other web clients. If a client sends data to a duplicate resource, the data can be stored and shared by each client in the respective cache line.

본원에서 클라이언트측 캐싱 알고리즘 구현시, 캐시 엔트리는 캐시 라인에서 중복되지 않는다. MESI 프로토콜에서는 캐시 엔트리의 키가 데이터의 해시 값으로부터 만들어질 수 있다. 이와 마찬가지로, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진은, 캐시 엔트리의 키로서 RESTful 리소스 URI를 사용할 수 있다. RESTFul 웹 애플리케이션에서 URI는 웹 리소스 또는 컬렉션을 식별하기 위한 고유한 값을 의미한다. 또한, GET, POST, PUT 및 DELETE와 같은 HTTP 메소드는 리소스에 대한 동작을 위해 사용된다. 여기서, 동작은 각각 가져오고(take), 생성(create)하고, 업데이트(update)하고, 제거(remove)하는 것을 나타낸다. 따라서, RESTful 서비스는 캐시된 프로세스로 사용하기 위해 지속적으로 개발될 수 있다. 만약, 웹 클라이언트가 서버에 있는 데이터의 변경을 위한 PUT 리퀘스트를 보내는 경우, 다른 클라이언트는, 서버에 대한 요청(리퀘스트)에 의해 알려진 변경된 데이터로 캐시 라인을 업데이트할 수 있다.In the client-side caching algorithm implementation herein, cache entries are not duplicated in the cache line. In the MESI protocol, the key of the cache entry can be generated from the hash value of the data. Likewise, the cached WADL execution engine according to one embodiment of the present disclosure may use a RESTful resource URI as the key of the cache entry. In a RESTFul web application, a URI is a unique value for identifying a web resource or collection. HTTP methods such as GET, POST, PUT, and DELETE are also used for operations on resources. Here, the operations each indicate to take, create, update, and remove. Thus, RESTful services can be continuously developed for use as cached processes. If the web client sends a PUT request to change the data on the server, the other client can update the cache line with the changed data known by the request (request) to the server.

본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(본원의 발명자는 이러한 실행 엔진을 'SHIN'이라 한다)은, SOA 인프라스트럭쳐에서 캐시된 호출에 대한 RESTful SWS의 엔드포인트로 제시된 RESTfulGrounding 온톨로지를 사용할 수 있다.The cached WADL execution engine according to one embodiment of the present application (the inventor of the present invention calls this execution engine 'SHIN') can use the RESTfulGrounding ontology presented as the endpoint of the RESTful SWS for cached calls in the SOA infrastructure have.

도 1은 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 적용되는 RESTful SWS의 개념도이다. 즉, 도 1은 RESTfulGrounding 내에서 WADL과 OWL-S 간의 연결에 대한 개념도를 나타낸다.1 is a conceptual diagram of a RESTful SWS applied to a cached WADL execution engine and a web service invocation method using the cached WADL execution engine according to an embodiment of the present invention. That is, FIG. 1 shows a conceptual diagram of a connection between WADL and OWL-S in RESTfulGrounding.

도 1을 참조하면, 본원에 적용되는 온톨로지는 OWL-S 그라운딩 기술(description)과 같이 WADL을 확장하기 위한 새로운 Service Grounding으로 설계되었다.Referring to FIG. 1, an ontology applied to the present invention is designed as a new service grounding for extending WADL, such as OWL-S grounding description.

RESTful Grounding은 OWL-S 서비스 그라운딩과 WADL 문서의 웹 애플리케이션 리소스를 연결할 수 있다. RESTfulGrounding 각각의 입출력은 WADL 문서의 입력 및 표현에 연결될 수 있다. 또한, RESTful 웹 애플리케이션의 데이터 직렬화가 주로 JSON 포맷으로 사용되도록 권장되기 때문에, WADL의 표현으로부터의 출력은 OWL-S용 XSLT를 사용하여 RDF / XML로 변환될 수 있다.RESTful Grounding can link the OWL-S service grounding and Web application resources in WADL documents. RESTfulGrounding Each input / output can be linked to the input and representation of a WADL document. Also, since data serialization in RESTful web applications is primarily recommended for use in the JSON format, output from the representation of WADL can be converted to RDF / XML using XSLT for OWL-S.

도 2는 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에 적용되는 RESTful 그라운딩 온톨로지를 나타낸 개략도이다. 즉, 도 2는, RESTful 웹 애플리케이션을 그라운딩하기 위한 온톨로지인 RESTfulGrounding을 사용하여 설계된 RESTful 그라운딩 온톨로지를 나타낸다.2 is a schematic diagram illustrating a RESTful grounding ontology applied to a cached WADL execution engine and a web service invocation method using the cached WADL execution engine according to an embodiment of the present invention; That is, FIG. 2 illustrates a RESTful grounding ontology designed using RESTfulGrounding, an ontology for grounding RESTful web applications.

도 2를 참조하면, WadlGrounding 및 WadlAtomicProcessGrounding은, OWL-S 서비스 그라운딩(ServiceGrounding) 온톨로지에서 AtomicProcessGrounding 로 각각 확장하기 위해 설계될 수 있다. WadlGrounding은, 연결된 리소스에서 메소드를 호출하기 위해 WADL 사양과 WadlResourceMethod 속성을 연결할 수 있다. 단일(Atomic) 및 복합(composite) 프로세스의 호출 프로그램은 SWS의 프로세스 실행 엔진을 나타낸다.Referring to FIG. 2, WadlGrounding and WadlAtomicProcessGrounding may be designed to extend from OWL-S Service Grounding ontology to AtomicProcessGrounding, respectively. WadlGrounding can associate the WADL specification with the WadlResourceMethod property to invoke a method on a connected resource. The calling program for the single (atomic) and composite (composite) processes represents the process execution engine of SWS.

본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, URI와 HTTP 메소드를 사용하여 캐시 엔트리에 RESTful 웹 애플리케이션의 호출 결과를 캐시 항목에 저장함으로써, 캐시된 실행 엔진인 SHIN을 구현할 수 있다. 이때, 캐시 항목 세트는 SHIN의 캐싱 레이어라고 할 수 있다.In the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention, the result of calling the RESTful web application in the cache entry is stored in the cache entry using the URI and the HTTP method, Can be implemented. At this time, the cache item set may be referred to as a caching layer of SHIN.

SWS에 캐싱 레이어를 적용하는 것과 관련하여, 그라운딩은 웹 리소스에 대한 고유 액세스 키와 일관된 동작을 나타내야 한다. RESTful 스타일의 리소스는, URL이 아닌 고유한 URI를 사용하여 액세스할 수 있으며, 각각의 일관된 동작을 위해 4 개의 메소드를 가질 수 있다. 이에 따라, 캐싱 레이어를 위해서는 REST API 보다 본원에 적용되는 RESTful API이 더 적합하다고 할 수 있다.With respect to applying a caching layer to the SWS, the grounding should exhibit a behavior consistent with the unique access key for the web resource. RESTful-style resources can be accessed using a unique URI rather than a URL, and can have four methods for each consistent operation. Therefore, RESTful API applied here is more suitable than REST API for caching layer.

본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, RESTful 웹 애플리케이션 기반의 API에 초점을 둔 캐싱 레이어를 구현할 수 있다.In the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an exemplary embodiment of the present invention, a caching layer focusing on an API based on a RESTful web application can be implemented.

RESTful API는, 액세스를 위한 두 개의 주된 URI 패턴과 웹 리소스의 동작을 위한 4개의 HTTP 메소드를 사용하여 정의될 수 있다.The RESTful API can be defined using two main URI patterns for access and four HTTP methods for the operation of Web resources.

하기 표 1은 RESTful API 사양에서 URI와 메소드 간의 관계를 나타낸 것으로서, 이는 주된 RESTful 스타일 API의 사양을 정의하나, 이 사양은 적용되지 않는다. 이 사양에 의해 정의된 API는 RESTful API라 할 수 있다.Table 1 below shows the relationship between URIs and methods in the RESTful API specification, which defines the main RESTful style API specification, but this specification does not apply. The API defined by this specification is a RESTful API.

[표 1][Table 1]

Figure pat00001
Figure pat00001

예를 들어, 표 1에서 컬렉션은, ‘http://api.example.com/resources'로 나타낼 수 있다. 이 'http://api.example.com' URL은 웹 서비스를 나타내고, '/resources'는 리소스의 컬렉션으로서 네임스페이스를 나타낸다. 또한, 'http://api.example.com/resources'는 이 URI를 사용하여 컬렉션을 액세스하는 것을 나타낸다. 요소(element)에 액세스하기 위한 URI의 예는 'http://api.example.com/resources/17'라 할 수 있다. 이 예에서, 'http://api.example.com/resources'는 위와 동일한 것을 의미하며, '/17'은 컬렉션에서 요소에 액세스 하기 위한 ID를 나타낸다. 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, 사양이 표 1과 같이 RESTful API에 관련되기 때문에 이러한 차이에 초점을 맞춘다.For example, in Table 1, collections can be represented as 'http://api.example.com/resources'. This 'http://api.example.com' URL represents a web service, and '/ resources' represents a namespace as a collection of resources. Also, 'http://api.example.com/resources' indicates accessing the collection using this URI. An example of a URI for accessing an element is "http://api.example.com/resources/17". In this example, 'http://api.example.com/resources' means the same as above, and '/ 17' indicates the ID for accessing the element in the collection. In the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to the embodiment of the present invention, since the specification is related to the RESTful API as shown in Table 1, this difference is focused.

이하에서는, 상기에 설명된 내용에 기초하여, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(SHIN) 및 그를 이용한 웹 서비스 호출 방법의 구현 예에 대하여 구체적으로 설명하기로 한다.Hereinafter, an exemplary implementation of a cached WADL execution engine (SHIN) and a web service invocation method using the same will be described in detail with reference to the above description.

도 3은 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(SHIN)이 포함된 SOA 인프라스트럭쳐의 아키텍처를 나타낸 개략도이다.Figure 3 is a schematic diagram illustrating the architecture of an SOA infrastructure including a cached WADL execution engine (SHIN) in accordance with one embodiment of the present disclosure.

도 3을 참조하면, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(SHIN)이 포함된 SOA 인프라스트럭쳐의 아키텍처는, 게이트웨이 서버(10), 시맨틱 웹 데이터베이스(20), OWL-S를 위한 캐시된 WADL 실행 엔진(SHIN, 30) 및 웹 서비스(40)를 포함할 수 있다.3, the architecture of an SOA infrastructure including a cached WADL execution engine (SHIN) according to one embodiment of the present invention includes a gateway server 10, a semantic web database 20, a cache for OWL-S The WADL execution engine (SHIN) 30, and the web service 40.

게이트웨이 서버(10), 시맨틱 웹 데이터베이스(20), OWL-S를 위한 캐시된 WADL 실행 엔진(SHIN, 30) 및 웹 서비스(40)는 서로 네트워크를 통해 통신을 수행할 수 있다. 네트워크(10)의 일예로는 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network) 등이 포함될 수 있으며, 이에 한정되는 것은 아니다.The gateway server 10, the semantic web database 20, the cached WADL execution engine (SHIN) 30 for OWL-S, and the web service 40 can communicate with each other via a network. Examples of the network 10 include a 3rd Generation Partnership Project (3GPP) network, a Long Term Evolution (LTE) network, a World Interoperability for Microwave Access (WIMAX) network, the Internet, a LAN (Local Area Network) (Wireless Local Area Network), a WAN (Wide Area Network), a PAN (Personal Area Network), and the like.

먼저, 간단히 살펴보면, 게이트웨이 서버(10)는 서비스를 제공하는 서버로서, 일예로, 구글(Google), 트위터(Twitter), 마이크로소프트(Microsoft), 네이버(Naver), 야후(Yahoo), 아마존(Amazon), 플리커(Flickr) 등 일 수 있으며, 이에 한정되는 것은 아니다. 일예로, 본원의 일 실시예에 따른 SHIN(30)은 모든 서버에 장착될 수 있다.First, briefly, the gateway server 10 is a server that provides a service. For example, the gateway server 10 may include a service provider such as Google, Twitter, Microsoft, Naver, Yahoo, Amazon, ), Flickr, and the like, but are not limited thereto. For example, the SHIN 30 according to one embodiment of the present application may be installed in all servers.

게이트웨이 서버(10)는, 리퀘스트(Request)를 수신하면(step 1), 발생된 리퀘스트에 해당하는 서비스 네임(service name)을 쿼리로 하여 시맨틱 웹 데이터베이스(20)로 전달할 수 있다(step 2). Upon receiving the request (step 1), the gateway server 10 can transmit the service name corresponding to the generated request as a query to the semantic web database 20 (step 2).

시맨틱 웹 데이터베이스(20)는 설계된 시맨틱 웹 서비스 모델을 저장하는 데이터베이스로서, 시맨틱 웹 데이터베이스(20)는 저장된 서비스들 중 게이트웨이 서버(10)로부터 수신한 서비스네임에 해당하는 서비스를 검색하고, 검색된 서비스를 게이트웨이 서버(10)에 의해 SHIN(30)으로 전달할 수 있다(step 3). 이때, 시맨틱 웹 데이터베이스(20)에 저장된 서비스는 일예로 XML 문서로 저장되어 있을 수 있다. 다시말해, 게이트웨이 서버(10)는 시맨틱 웹 데이터베이스(20)를 통해 서비스 네임에 대한 쿼리에 응답하여 리퀘스트에 대응하는 서비스를 SHIN(30)으로 리턴할 수 있으며, 구체적으로 리퀘스트에 대응하는 서비스의 XML 문서를 SHIN(30)으로 전달할 수 있다.The semantic web database 20 is a database for storing a designed semantic web service model. The semantic web database 20 searches for services corresponding to service names received from the gateway server 10 among the stored services, And may be transmitted to the SHIN 30 by the gateway server 10 (step 3). At this time, the service stored in the semantic web database 20 may be stored as an XML document as an example. In other words, the gateway server 10 can return the service corresponding to the request to the SHIN 30 in response to the query for the service name through the semantic web database 20, specifically, the XML of the service corresponding to the request The document can be transferred to the SHIN 30.

SHIN(30)은 본원의 일 실시예에 따라 구현된 OWL-S를 위한 캐시된 WADL 실행 엔진으로서, SHIN(30)은 조건부 요청을 활용하여 캐시된 WADL 리퀘스트를 구현할 수 있다. 또한, SHIN(30)에서 애플리케이션의 각 리소스가 캐시의 기준이 될 수 있다. 이때, 리소스가 캐시에 저장될 때에는, 이용된지 오래된 항목부터 버리는 방식인 LRU(Least Recently Used) 알고리즘이 이용될 수 있다. 보다 구체적인 설명은 후술하여 설명하기로 한다.SHIN 30 is a cached WADL execution engine for OWL-S implemented in accordance with one embodiment of the present application, wherein SHIN 30 can utilize conditional requests to implement cached WADL requests. Further, in the SHIN 30, each resource of the application can be the reference of the cache. At this time, when the resource is stored in the cache, an LRU (Least Recently Used) algorithm may be used, which is a method of discarding old and old items. A more detailed description will be given later.

SHIN(30)은, 게이트웨이 서버(10)에 의하여 시맨틱 웹 데이터베이스(20)로부터 전달받은 서비스의 XML 문서에 기초하여, 해당 문서를 해석하면서 실행시킬 수 있다(step 4). 이때, SHIN(30)은 해당 문서를 해석하면서 실행시키는 중에 웹 서비스(40)들과 통신을 수행할 수 있으며, 이를 통해, SHIN(30)은 웹 서비스(40)로부터 리퀘스트에 대응하는 웹 서비스를 호출할 수 있다(step 5).The SHIN 30 can interpret and execute the document based on the XML document of the service received from the semantic web database 20 by the gateway server 10 (step 4). At this time, the SHIN 30 can perform communication with the web services 40 while interpreting the document, thereby allowing the SHIN 30 to transmit the web service corresponding to the request from the web service 40 (Step 5).

웹 서비스(40)는 리퀘스트에 대응하는 웹 서비스를 제공하는 클라우드 서버로서, 리퀘스트에 대한 각 기능에 맞는 웹 서비스들을 제공할 수 있다.The web service 40 is a cloud server that provides a web service corresponding to a request, and can provide web services corresponding to each function for a request.

이하에서는, OWL-S에서 모델을 파싱하고 처리하기 위해 사용된 OWL-S API를 기반으로 하는 SWS 실행 엔진과 SOA 인프라 스트럭쳐인 SHIN(30)의 아키텍처에 대해 보다 자세히 설명하기로 한다.Hereinafter, the architecture of the SWS execution engine and the SOA infrastructure SHIN (30) based on the OWL-S API used to parse and process models in OWL-S will be described in more detail.

SHIN(30)은 WADL 기반의 웹 서비스의 호출과 HTTP 기반의 웹 서비스와의 상호운용을 위한 서비스에 대한 설명을 포함할 수 있으며, SHIN(30)에는 향상된 성능을 제공하기 위해 앞서 설명한 캐싱 레이어가 추가될 수 있다.The SHIN 30 may include a description of a service for invoking a WADL-based web service and interworking with an HTTP-based web service. In order to provide enhanced performance to the SHIN 30, the caching layer Can be added.

게이트웨이 서버(10)는, SWS와 관련된 쿼리를 포함하는 리퀘스트를 시맨틱 웹 데이터베이스(20)에 전송함으로써, SWS를 시맨틱 웹 데이터베이스(20)에 등록하고 검색할 수 있다. 또한, 게이트웨이 서버(10)는 시맨틱 웹 데이터베이스(20)에서 OWL-S 서비스와 프로세스를 구성하기 위한 기능을 가지고 있을 수 있다. SWS는 OWL-S를 기반으로 하며, SWS는 OWL-S의 각 문서에 대한 개별 서비스 클래스를 가지고 있을 수 있다.The gateway server 10 can register and search the SWS in the semantic web database 20 by transmitting a request including the query related to the SWS to the semantic web database 20. [ In addition, the gateway server 10 may have a function for configuring an OWL-S service and a process in the semantic web database 20. SWS is based on OWL-S, and SWS may have a separate service class for each document in OWL-S.

SHIN(30)은, 개개의 OWL-S 서비스와 관련된 URI와 같은 파라미터를 사용하여 웹 리퀘스트를 처리할 수 있다. SHIN(30)이 OWL-S로부터 새로운 서비스 URI를 수신하면, SHIN(30)은 서비스를 시맨틱 웹 데이터베이스(20)에 RDF triples로 저장할 수 있다. 그리고, 수신한 서비스 URI에 대한 응답은 캐시를 지원하는 Etag와 Modified-Since 헤더를 가질 수 있다. 서버로 리퀘스트를 보내는 클라이언트는 응답을 캐시할 수 있다.The SHIN 30 can process web requests using parameters such as URIs associated with individual OWL-S services. When the SHIN 30 receives a new service URI from the OWL-S, the SHIN 30 may store the service in the semantic web database 20 as RDF triples. The response to the received service URI may have an Etag and Modified-Since header to support the cache. A client sending a request to the server can cache the response.

시맨틱 웹 데이터베이스(20)는 쿼리를 위해 SPARQL을 사용할 수 있으며, SPARQL은 Apache Jena의 MySQL과 SDB를 기반으로 하고, SPARQL은 RDF 그래프로 표현된 지식 기반을 쿼리하기 위해 구문론(syntax)과 의미론(시맨틱, semantics)을 가지고 있을 수 있다. 따라서, 대부분의 RDF 그래프의 쿼리 방법은 기본 언어로서 SPARQL을 사용할 수 있다. 서비스 URI는 RDB에 RDF triples로 저장될 수 있으며, triples은 Apache Jena의 SDB 인터페이스를 사용하여 액세스할 수 있다. SDB는 RDB에 액세스하기 위해 JDBC 인터페이스를 사용할 수 있다. 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법에서는, 프로세스 앞에 SPARQL을 지원하는 Jena의 쿼리 엔진으로 Jena ARQ 모듈을 사용할 수 있다. 한편, 캐시된 WADL 실행 엔진인 SHIN(30)의 아키텍처는 도 4와 같을 수 있다.SPARQL is based on Apache Jena's MySQL and SDB, and SPARQL uses semantics and semantics to query the knowledge base expressed in RDF graphs. Semantic Web database 20 can use SPARQL for queries. , semantics). Therefore, most query methods for RDF graphs can use SPARQL as the default language. Service URIs can be stored in the RDB as RDF triples, and triples can be accessed using Apache Jena's SDB interface. SDB can use the JDBC interface to access the RDB. In the cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to one embodiment of the present invention, the Jena ARQ module can be used as a query engine of Jena supporting SPARQL before the process. Meanwhile, the architecture of the SHIN 30, which is a cached WADL execution engine, may be as shown in FIG.

도 4는 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진(SHIN)의 아키텍처를 나타낸 도면이다.4 is a diagram illustrating the architecture of a cached WADL execution engine (SHIN) in accordance with one embodiment of the present disclosure.

도 4를 참조하면, 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진인 SHIN(30)은 획득부(미도시) 및 실행부(미도시)를 포함할 수 있다. 일예로, 획득부(미도시)는 OWL-S Java API(31)를 포함하고, 실행부(미도시)는 캐시 매니저(33) 및 RESTful 웹 애플리케이션 서버(34)를 포함할 수 있으며, 이에 한정되는 것은 아니다. Referring to FIG. 4, the SHIN 30, which is a cached WADL execution engine according to an embodiment of the present invention, may include an acquisition unit (not shown) and an execution unit (not shown). For example, an acquisition unit (not shown) may include an OWL-S Java API 31 and an execution unit (not shown) may include a cache manager 33 and a RESTful web application server 34, It is not.

OWL-S Java API(31)는 RESTfulGrounding과 함께 사용되는 SWS 실행 엔진으로서 WADL의 구현이 가능하며, OWL-S Java API(31)는 Grounding Provider 인터페이스를 확장하여 여러가지 그라운딩을 지원할 수 있도록 만들 수 있다. 본원의 SHIN(30)에 적용되는 OWL-S Java API(31)는, WADL 기반 RESTfulGrounding을 WADL Grounding Provider(31c)로 처리하기 위해 OWL-S 그라운딩 프로바이더 인터페이스로부터 확장된 실행 엔진을 의미할 수 있다.The OWL-S Java API 31 can implement WADL as a SWS execution engine used together with RESTfulGrounding, and the OWL-S Java API 31 can extend the Grounding Provider interface to support various grounding. The OWL-S Java API 31 applied to the SHIN 30 of the present application may mean an execution engine extended from the OWL-S grounding provider interface for processing WADL-based RESTfulGrounding by the WADL Grounding Provider 31c .

OWL-S Java API(31)는 일예로 여러 그라운딩으로서, WSDL Grounding Provider(31a), UPnP Provider(31b) 및 WADL Grounding Provider(31c)를 포함할 수 있으며, 이에 한정되는 것은 아니다.The OWL-S Java API 31 may include, for example, a WSDL Grounding Provider 31a, a UPnP Provider 31b, and a WADL Grounding Provider 31c as various grounds.

SHIN(30)의 OWL-S Java API(31)는 시맨틱 웹 데이터베이스(20)로부터 리퀘스트에 대응하는 서비스를 실행 서비스(Execute Service)로서 획득(수신)할 수 있으며, 실행 서비스가 획득되면 RESTful 기반 프로세스에서 그라운딩을 호출할 수 있다.The OWL-S Java API 31 of the SHIN 30 can acquire (receive) a service corresponding to the request from the semantic web database 20 as an execution service (execution service). When the execution service is acquired, You can call the grounding in.

구체적으로, OWL-S Java API(31)는, 리퀘스트에 대응하는 서비스를 실행 서비스(Execute Service)로서 수신하면, WADL Grounding Provider(31c)를 통해 WADL 리퀘스트(32)를 호출할 수 있으며, 호출된 WADL 리퀘스트(32)를 해석(interpreting)하면서 실행시킬 수 있다. 달리 말해, OWL-S Java API(31)는, 호출에 응답하여 실행 서비스의 Atomic 프로세스에 대응하는 WADL 리소스(즉, URI)를 획득할 수 있으며, 획득된 WADL 리소스는 WADL Grounding Provider(31c)를 통해 해석되어 실행될 수 있다. 이때, SHIN(30)가 WADL 리퀘스트(32)를 호출함에 있어서, 캐시 매니저(33)에는 캐싱을 수행될 수 있다. 따라서, 호출된 WADL 리퀘스트(32)는 달리 말해 캐시된 WADL 리퀘스트라 할 수 있다.Specifically, when the OWL-S Java API 31 receives a service corresponding to a request as an execution service (Execute Service), the OWL-S Java API 31 can call the WADL request 32 via the WADL Grounding Provider 31c, The WADL request 32 can be executed while interpreting it. In other words, the OWL-S Java API 31 can acquire a WADL resource (i.e., a URI) corresponding to the Atomic process of the execution service in response to the call, and the acquired WADL resource is transmitted to the WADL Grounding Provider 31c Can be interpreted and executed. At this time, when the SHIN 30 calls the WADL request 32, the cache manager 33 can be cached. Thus, the called WADL request 32 may be referred to as a cached WADL request.

SHIN(30)은 OWL-S 실행 엔진인 OWL-S Java API(31)의 WADL 그라운딩 프로바이더(31c)를 통해 캐시된 WADL 리퀘스트(32)를 호출할 수 있으며, 호출에 응답하여 실행 서비스의 Atomic 프로세스에 대응하는 WADL 리소스를 해석하여 실행할 수 있다. 이때, SHIN(30)은 WADL 리소스를 해석할 때, WADL을 이용하여 RESTful 웹 애플리케이션 서버(34)와 통신을 수행할 수 있다. 또한, SHIN(30)은 실행 서비스에 대응하는 WADL 리소스가 해석되고 실행됨에 의해 웹 서비스(40) 간에 통신이 수행될 수 있으며, 이에 따라 웹 서비스(40)로부터 실행 서비스(즉, 리퀘스트에 대응하는 서비스)에 대응하는 웹 서비스가 호출될 수 있다.The SHIN 30 may invoke the WADL request 32 cached via the WADL grounding provider 31c of the OWL-S Java API 31 which is the OWL-S execution engine, and in response to the call, You can interpret and execute the WADL resource corresponding to the process. At this time, the SHIN 30 can communicate with the RESTful web application server 34 using the WADL when interpreting the WADL resource. Further, the SHIN 30 can communicate with the Web services 40 by analyzing and executing the WADL resources corresponding to the execution services, thereby enabling the SHIN 30 to send execution services (i.e., Service) may be invoked.

또한, SHIN(30)은 리퀘스트에 대응하는 WADL 리소스가 실행될 때, WADL 리소스를 캐싱하고 있는 상태에서 WADL 리소스의 변경 여부를 캐시 매니저(33)를 이용하여 확인할 수 있다. 이때, SHIN(30)은 WADL 리소스에 포함된 URI를 키(key)로 하여 캐시 매니저(33)를 통해 상기 URI에 대응하는 캐시 엔트리의 값(value)을 획득함으로써 WADL 리소스의 변경 여부를 확인할 수 있다. 또한, SHIN(30)은, 캐시 엔트리의 값에 포함된 태그 값에 기초하여 HTTP 1.1의 조건부 요청(Conditional Requests)을 수행할 수 있다. 이때, SHIN(30)은 조건부 요청을 사용하는 연속 기입(write-through) 캐싱 알고리즘에 기초하여 WADL 리소스의 변경 여부를 확인할 수 있다.Also, when the WADL resource corresponding to the request is executed, the SHIN 30 can confirm whether the WADL resource is changed using the cache manager 33 while the WADL resource is being cached. At this time, the SHIN 30 obtains the value of the cache entry corresponding to the URI through the cache manager 33 with the URI included in the WADL resource as a key, thereby confirming whether or not the WADL resource has been changed have. The SHIN 30 may also perform Conditional Requests of HTTP 1.1 based on the tag value contained in the value of the cache entry. At this time, the SHIN 30 can confirm whether or not the WADL resource is changed based on a write-through caching algorithm using a conditional request.

또한, SHIN(30)은 캐시된 WADL 리퀘스트(32)의 호출에 의한 RESTFul 웹 애플리케이션 서버(34)의 호출 결과를 캐시 엔트리에 저장할 수 있으며, 이로 인해, 캐시된 실행 엔진이 구현될 수 있다. 여기서, RESTful 웹 애플리케이션 서버(34)는 네트워크상의 정보자원을 URI 및 HTTP의 기본 기능(GET, POST, PUT, DELETE)을 활용하여 웹을 통해 교환하는 서비스를 제공하는 서버를 의미할 수 있다. The SHIN 30 may also store the result of the call of the RESTful web application server 34 by invoking the cached WADL request 32 in the cache entry so that the cached execution engine can be implemented. Here, the RESTful web application server 34 may refer to a server that provides a service for exchanging information resources on the network through the web using URI and HTTP basic functions (GET, POST, PUT, DELETE).

캐시 매니저(33)는 실행 엔진 클라이언트에서 GET 메소드에 대한 캐시 엔트리를 관리하는 역할을 하며, 이는 달리 표현하여 캐시 스토리지라 할 수 있다.The cache manager 33 is responsible for managing cache entries for the GET method in the execution engine client, which can be otherwise referred to as a cache store.

본원의 일 실시예에 따른 캐시 매니저(33)는 JVM 메모리의 간단한 사전으로 구현될 수 있다. 또한, 캐시 매니저(33)는 다른 많은 키(Key)-값(value)을 저장함으로써 구현될 수 있다. 또한, 캐시 매니저(33)는 캐시 엔트리의 스페이싱(spacing)을 위해 LRU 알고리즘을 사용할 수 있으며, LRU 알고리즘에 기초하여 리소스를 저장할 수 있다.The cache manager 33 according to one embodiment of the present disclosure can be implemented as a simple dictionary of JVM memory. In addition, the cache manager 33 may be implemented by storing many other key-values. In addition, the cache manager 33 may use the LRU algorithm for spacing the cache entries and may store the resources based on the LRU algorithm.

한편, 만약에 서버의 응답에서 Etag 또는 Modified-Since 헤더를 확인하여 프로세스가 캐싱을 수행할 수 있다면(즉, 이전에 호출된 서비스 또는 Atomic process가 있다면), 프로세스는 캐시된 WADL 리퀘스트(32)의 호출을 통해 캐시된 결과를 반환(returns)할 수 있다. 그러므로, SHIN(30)은 SOA 기반 인프라스트럭쳐를 구성하는 웹 서비스의 자동 검색, 호출, 컴포지션 및 상호 운용의 형태로 서비스 오케스트레이션(orchestration)을 제공할 수 있다.On the other hand, if the process can perform caching (i.e., there is a previously invoked service or an atomic process) by checking the Etag or Modified-Since header in the server's response, You can return the cached result through a call. Therefore, the SHIN 30 can provide a service orchestration in the form of automatic retrieval, invocation, composition, and interoperability of web services constituting an SOA-based infrastructure.

이러한, 본원에서는 RESTful 웹 서비스를 위한 새로운 WADL 실행 엔진으로서 캐시된 WADL 실행 엔진(SHIN, 30)을 제안하며, SHIN(30)을 이용하여 웹 서비스를 수행하면 기존 방법들 대비 SOA 프로세스의 속도가 향상될 수 있다. SHIN(30)은 'HTTP 1.1 : 조건부 요청' 방법을 사용하여 WADL 사양을 요청할 수 있다. 이러한 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진 및 그를 이용한 웹 서비스 호출 방법은, 복잡한 프로세스에 대한 성능을 향상시킬 수 있고, 네트워크 대기 시간을 보다 효과적으로 줄일 수 있다.In this case, a cached WADL execution engine (SHIN) 30 is proposed as a new WADL execution engine for a RESTful web service. When a web service is executed using the SHIN 30, the speed of the SOA process is improved . SHIN 30 can request the WADL specification using the 'HTTP 1.1: Conditional Request' method. The cached WADL execution engine and the web service invocation method using the cached WADL execution engine according to an embodiment of the present invention can improve the performance for a complicated process and reduce the network latency more effectively.

이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.Hereinafter, the operation flow of the present invention will be briefly described based on the details described above.

도 5는 본원의 일 실시예에 따른 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법에 대한 개략적인 동작 흐름도이다.FIG. 5 is a schematic flowchart illustrating a method of calling a Web service using a cached WADL execution engine according to an exemplary embodiment of the present invention. Referring to FIG.

도 5에 도시된 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법은 앞서 설명된 캐시된 WADL 실행 엔진에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 캐시된 WADL 실행 엔진에 대하여 설명된 내용은 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법에 대한 설명에도 동일하게 적용될 수 있다.The web service invocation method using the cached WADL execution engine shown in FIG. 5 can be performed by the cached WADL execution engine described above. Therefore, even if omitted below, the contents described for the cached WADL execution engine can be similarly applied to the description of the web service invocation method using the cached WADL execution engine.

도 5를 참조하면, 단계S51에서는, 시맨틱 웹 데이터베이스로부터 획득된 리퀘스트에 대응하는 서비스를 실행 서비스로서 획득할 수 있다.Referring to FIG. 5, in step S51, a service corresponding to the request acquired from the semantic web database can be acquired as an execution service.

다음으로, 단계S52에서는, OWL-S 실행 엔진인 OWL-S Java API를 통해 캐시된 WADL 리퀘스트를 호출하고, 상기 호출에 응답하여 실행 서비스의 Atomic 프로세스에 대응하는 WADL 리소스를 해석하여 실행할 수 있다. 이때, 단계S52에 의하여 웹 서비스들 간에 통신이 수행됨에 따라 웹 서비스들로부터 서비스에 대응하는 웹 서비스가 호출될 수 있다.Next, in step S52, the cached WADL request is called through the OWL-S Java API which is the OWL-S execution engine, and the WADL resource corresponding to the Atomic process of the execution service is analyzed and executed in response to the call. At this time, as the communication between the web services is performed in step S52, the web service corresponding to the service can be called from the web services.

또한, 단계S52에서는, OWL-S 실행 엔진의 WADL 그라운딩 프로바이더를 통해 캐시된 WADL 리퀘스트를 호출할 수 있다.In step S52, the WADL grounding provider of the OWL-S execution engine can invoke the cached WADL request.

또한, 단계S52에서는, WADL 리소스가 실행될 때, WADL 리소스를 캐싱하고 있는 상태에서 WADL 리소스의 변경 여부를 캐시 매니저를 이용하여 확인할 수 있다. 이때, 캐시 매니저는 LRU 알고리즘에 기초하여 리소스를 저장할 수 있다.In step S52, when the WADL resource is executed, whether or not the WADL resource has been changed can be confirmed by using the cache manager while the WADL resource is being cached. At this time, the cache manager can store resources based on the LRU algorithm.

또한, 단계S52에서는, WADL 리소스에 포함된 URI를 키로 하여 캐시 매니저를 통해 상기 URI에 대응하는 캐시 엔트리의 값을 획득함으로써 WADL 리소스의 변경 여부를 확인할 수 있다.In addition, in step S52, it is possible to confirm whether or not the WADL resource is changed by acquiring the value of the cache entry corresponding to the URI through the cache manager with the URI included in the WADL resource as a key.

또한, 단계S52에서는, 캐시 엔트리의 값에 포함된 태그 값에 기초하여 HTTP 1.1의 조건부 요청(Conditional Requests)을 수행할 수 있다.In addition, in step S52, conditional requests of HTTP 1.1 can be performed based on the tag value included in the value of the cache entry.

또한, 단계S52에서는, 조건부 요청을 사용하는 연속 기입(write-through) 캐싱 알고리즘에 기초하여 WADL 리소스의 변경 여부를 확인할 수 있다.In addition, in step S52, it is possible to confirm whether or not the WADL resource is changed based on a write-through caching algorithm using a conditional request.

또한, 단계S52에서는, 캐시된 WADL 리퀘스트의 호출에 의한 RESTFul 웹 애플리케이션의 호출 결과를 캐시 엔트리에 저장할 수 있다.Further, in step S52, the result of calling the RESTFul web application by calling the cached WADL request may be stored in the cache entry.

상술한 설명에서, 단계 S51 내지 S52는 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.In the above description, steps S51 to S52 may be further divided into further steps or combined into fewer steps, according to embodiments of the present disclosure. Also, some of the steps may be omitted as necessary, and the order between the steps may be changed.

본원의 일 실시 예에 따른 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The web service invocation method using the cached WADL execution engine according to an exemplary embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those of ordinary skill in the art that the foregoing description of the embodiments is for illustrative purposes and that those skilled in the art can easily modify the invention without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be interpreted as being included in the scope of the present invention.

30: 캐시된 WADL 실행 엔진
31: OWL-S Java API
33: 캐시 매니저
34: RESTful 웹 애플리케이션 서버
30: Cached WADL Execution Engine
31: OWL-S Java API
33: cache manager
34: RESTful web application server

Claims (10)

(a) 시맨틱 웹 데이터베이스로부터 획득된 리퀘스트에 대응하는 서비스를 실행 서비스(execute service)로서 획득하는 단계; 및
(b) OWL-S(Web Ontology Language for Service) 실행 엔진을 통해 캐시된 WADL 리퀘스트를 호출하고, 상기 호출에 응답하여 상기 실행 서비스에 대응하는 WADL 리소스를 해석(interpreting)하여 실행하는 단계를 포함하고,
상기 (b) 단계에 의하여 웹 서비스들 간에 통신이 수행됨에 따라 상기 웹 서비스들로부터 상기 서비스에 대응하는 웹 서비스가 호출되는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
(a) acquiring a service corresponding to a request acquired from the semantic web database as an execute service; And
(b) invoking a cached WADL request through an OWL-S (Web Ontology Language for Service) execution engine, and interpreting and executing a WADL resource corresponding to the execution service in response to the call ,
And the web service corresponding to the service is called from the web services as the communication between the web services is performed according to the step (b).
제1항에 있어서,
상기 (b) 단계에서는,
상기 OWL-S 실행 엔진의 WADL 그라운딩 프로바이더를 통해 상기 캐시된 WADL 리퀘스트를 호출하는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
The method according to claim 1,
In the step (b)
And calling the cached WADL request through a WADL grounding provider of the OWL-S execution engine.
제1항에 있어서,
상기 (b) 단계에서는,
상기 WADL 리소스가 실행될 때, 상기 WADL 리소스를 캐싱하고 있는 상태에서 상기 WADL 리소스의 변경 여부를 캐시 매니저를 이용하여 확인하는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
The method according to claim 1,
In the step (b)
When the WADL resource is executed, checking whether the WADL resource is changed using the cache manager in a state of caching the WADL resource.
제3항에 있어서,
상기 (b) 단계에서는,
상기 WADL 리소스에 포함된 URI를 키(key)로 하여 상기 캐시 매니저를 통해 상기 URI에 대응하는 캐시 엔트리의 값을 획득함으로써 상기 WADL 리소스의 변경 여부를 확인하는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
The method of claim 3,
In the step (b)
Wherein a cache entry corresponding to the URI is obtained from the cache manager by using a URI included in the WADL resource as a key to confirm whether the WADL resource is changed or not by using the cached WADL execution engine How to call a web service.
제4항에 있어서,
상기 (b) 단계에서는,
상기 캐시 엔트리의 값에 포함된 태그 값에 기초하여 HTTP 1.1의 조건부 요청(Conditional Requests)을 수행하는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
5. The method of claim 4,
In the step (b)
And performs conditional requests of HTTP 1.1 based on the tag value included in the value of the cache entry.
제5항에 있어서,
상기 (b) 단계에서는,
상기 조건부 요청을 사용하는 연속 기입(write-through) 캐싱 알고리즘에 기초하여 상기 WADL 리소스의 변경 여부를 확인하는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
6. The method of claim 5,
In the step (b)
Wherein a change in the WADL resource is checked based on a write-through caching algorithm using the conditional request.
제4항에 있어서,
상기 (b) 단계에서는,
상기 캐시된 WADL 리퀘스트의 호출에 의한 RESTful 웹 애플리케이션의 호출 결과를 상기 캐시 엔트리에 저장하는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
5. The method of claim 4,
In the step (b)
And storing the result of calling the RESTful web application by invoking the cached WADL request in the cache entry.
제3항에 있어서,
상기 캐시 매니저는 LRU 알고리즘에 기초하여 리소스를 저장하는 것인, 캐시된 WADL 실행 엔진을 이용한 웹 서비스 호출 방법.
The method of claim 3,
Wherein the cache manager stores resources based on an LRU algorithm.
시맨틱 웹 데이터베이스로부터 획득된 리퀘스트에 대응하는 서비스를 실행 서비스(execute service)로서 획득하는 획득부; 및
OWL-S(Web Ontology Language for Service) 실행 엔진을 통해 캐시된 WADL 리퀘스트를 호출하고, 상기 호출에 응답하여 상기 실행 서비스에 대응하는 WADL 리소스를 해석(interpreting)하여 실행하는 실행부를 포함하고,
상기 실행부에 의하여 웹 서비스들 간에 통신이 수행됨에 따라 상기 웹 서비스들로부터 상기 서비스에 대응하는 웹 서비스가 호출되는 것인, 캐시된 WADL 실행 엔진.
An acquiring unit acquiring a service corresponding to a request acquired from the semantic web database as an execute service; And
And an execution unit that invokes a cached WADL request through an OWL-S (Web Ontology Language for Service) execution engine, and interpreting and executing a WADL resource corresponding to the execution service in response to the call,
And a web service corresponding to the service is called from the web services as the execution of the communication between the web services by the execution unit.
제1항 내지 제8항 중 어느 한 항의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터에서 판독 가능한 기록매체.A computer-readable recording medium on which a program for executing the method of any one of claims 1 to 8 is recorded.
KR1020170003785A 2017-01-10 2017-01-10 Cached wadl execution engine and method for calling web services using the theory KR101910031B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170003785A KR101910031B1 (en) 2017-01-10 2017-01-10 Cached wadl execution engine and method for calling web services using the theory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170003785A KR101910031B1 (en) 2017-01-10 2017-01-10 Cached wadl execution engine and method for calling web services using the theory

Publications (2)

Publication Number Publication Date
KR20180082271A true KR20180082271A (en) 2018-07-18
KR101910031B1 KR101910031B1 (en) 2018-10-19

Family

ID=63049148

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170003785A KR101910031B1 (en) 2017-01-10 2017-01-10 Cached wadl execution engine and method for calling web services using the theory

Country Status (1)

Country Link
KR (1) KR101910031B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109005163A (en) * 2018-07-20 2018-12-14 珠海宏桥高科技有限公司 A kind of HTTP dynamic requests service calling method
CN109783499A (en) * 2019-01-18 2019-05-21 成都宝瓜科技有限公司 A kind of data cache method, device and server

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124999A2 (en) * 2011-03-17 2012-09-20 엘지전자 주식회사 Method for providing resources by a terminal, and method for acquiring resources by a server

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124999A2 (en) * 2011-03-17 2012-09-20 엘지전자 주식회사 Method for providing resources by a terminal, and method for acquiring resources by a server

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문, RESTful 웹 서비스에서 시맨틱 온톨로지를 구축하기 위한 클러스터링 및 패턴 분석 기법, 한국인터넷 정보학회논문지, 2011.08. 공개 *
논문, 대규모 분산 환경을 위한 서비스 디스커버리 기술, 한국컴퓨터정보학회 학술발표논문집, 2015.01.공개 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109005163A (en) * 2018-07-20 2018-12-14 珠海宏桥高科技有限公司 A kind of HTTP dynamic requests service calling method
CN109783499A (en) * 2019-01-18 2019-05-21 成都宝瓜科技有限公司 A kind of data cache method, device and server
CN109783499B (en) * 2019-01-18 2023-09-22 成都宝瓜科技有限公司 Data caching method, device and server

Also Published As

Publication number Publication date
KR101910031B1 (en) 2018-10-19

Similar Documents

Publication Publication Date Title
US11838358B2 (en) Network operating system
US7895262B2 (en) Web service application protocol and SOAP processing model
US20080208806A1 (en) Techniques for a web services data access layer
Ravi et al. A survey on dynamic Web content generation and delivery techniques
US9697297B2 (en) Representation/invocation of actions/functions in a hypermedia-driven environment
Meng et al. Restful web services: A solution for distributed data integration
CN105354328B (en) A kind of system and method solving the access conflict of NoSQL database concurrency
US20130318160A1 (en) Device and Method for Sharing Data and Applications in Peer-to-Peer Computing Environment
US10102230B1 (en) Rate-limiting secondary index creation for an online table
KR101910031B1 (en) Cached wadl execution engine and method for calling web services using the theory
Baraki et al. Sam: A semantic-aware middleware for mobile cloud computing
Gessert et al. Fast and Scalable Cloud Data Management
Wilde et al. RESTful SPARQL? You name it! Aligning SPARQL with REST and resource orientation
Kanagasundaram et al. Exposing resources as web services: A performance oriented approach
Sletten Resource-oriented architecture patterns for webs of data
WO2008111031A2 (en) An improved grid computing architecture and method for invoking network services for subscription
Himschoot et al. Efficient communication with gRPC
Fensel et al. Triple space computing for semantic web services
Tucholka et al. A highly decoupled front-end framework for high trafficked web applications
Kosmajac et al. MasterBroker: REST oriented service broker
Rinderle-Ma et al. Service Interoperability
Rao et al. Cache mediation pattern
Deinum et al. Spring MVC: REST Services
Xing et al. Active ontology: An information integration approach for dynamic information sources
Gannouni et al. Data integration using service composition in data service middleware

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