KR20120078033A - Service mashup method and apparatus in environment of linked data - Google Patents

Service mashup method and apparatus in environment of linked data Download PDF

Info

Publication number
KR20120078033A
KR20120078033A KR1020100140195A KR20100140195A KR20120078033A KR 20120078033 A KR20120078033 A KR 20120078033A KR 1020100140195 A KR1020100140195 A KR 1020100140195A KR 20100140195 A KR20100140195 A KR 20100140195A KR 20120078033 A KR20120078033 A KR 20120078033A
Authority
KR
South Korea
Prior art keywords
service
result
unit
information
data
Prior art date
Application number
KR1020100140195A
Other languages
Korean (ko)
Inventor
김성혁
오원석
추윤미
강선희
Original Assignee
(주)탑쿼드란트코리아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)탑쿼드란트코리아 filed Critical (주)탑쿼드란트코리아
Priority to KR1020100140195A priority Critical patent/KR20120078033A/en
Priority to PCT/KR2011/010214 priority patent/WO2012091444A2/en
Publication of KR20120078033A publication Critical patent/KR20120078033A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • 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/567Integrating service provisioning from a plurality of service providers

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

PURPOSE: A service mash-up method in a linked data environment and a system thereof are provided to express a data service of linked data, an open API(Application Program Interface) and a RSS(Really Simple Syndication) feed as a single consistent data structure, thereby mashing up disparate data. CONSTITUTION: A validity checking module(202) receives a validity checking request message about information for a service configuration through a user terminal and confirms validity. A process issuing module(204) receives a process issuing request message including the information for the service configuration which the validity is confirmed and generates a URI(Uniform Resource ID) about the information. The process issuing module receives information about a process and the information for the service configuration and the URI and describes the process and includes a process description in order to issue a unit service.

Description

링크드 데이터 환경에서의 서비스 매쉬업 방법 및 시스템{SERVICE MASHUP METHOD AND APPARATUS IN ENVIRONMENT OF LINKED DATA} SERVICE MASHUP METHOD AND APPARATUS IN ENVIRONMENT OF LINKED DATA}

본 발명은 링크드 데이터 환경에서의 서비스 매쉬업 기술에 관한 것으로, 더욱 상세하게는 데이터의 이질성과는 무관하게 데이터 및 서비스를 매쉬업할 수 있는 링크드 데이터 환경에서의 서비스 매쉬업 방법 및 시스템에 관한 것이다.The present invention relates to a service mashup technique in a linked data environment, and more particularly, to a service mashup method and system in a linked data environment that can mash up data and services irrespective of the heterogeneity of the data.

월드 와이드 웹(World Wide Web)의 등장으로 누구든지 인터넷을 통해 자유롭게 자신이 원하는 정보를 찾고, 자신이 가진 정보를 웹으로 발행(publishing)할 수 있으며, 웹을 통해 서로 커뮤니케이션 하고, 물건을 사고팔기도 하는 웹 중심의 정보 환경이 만들어지게 되었다. 이로써 이전과는 차원이 다른 새로운 방식의 정보생산과 이용이 가능하게 되었다. 이러한 새로운 형태의 정보 환경을 통해 정보 생산량은 폭발적으로 늘어났고, 그에 따른 정보의 증가는 그 안에서 필요로 하고 의미 있는 정보를 찾아내는 것이 심각한 문제가 되는 상황을 유발하게 되었다. With the advent of the World Wide Web, anyone can freely find the information they want through the Internet, publish their information on the web, communicate with each other, and buy and sell things on the web. Web-oriented information environment has been created. This enables a new way of producing and using information, which is a different dimension than before. This new type of information environment has exploded and increased the amount of information produced, leading to a situation where the need for and meaningful information within it becomes a serious problem.

우리에게 익숙한 기존의 웹은 서로 연결된 HTML이라는 형식으로 표현된 문서들로 이루어져 있으며, 실제 웹 문서와 그것이 기술하는 실세계의 엔티티(Entity) 간의 연결, 즉 의미의 이해는 그 문서를 읽는 인간에 의해 이루어진다. 예를 들어, 어떤 사람이 제주도를 여행하기 위해 관련 정보들을 찾고자 할 때, 제주도에 대한 여행 정보와 지도 정보를 각각 웹에서 찾아, 두 정보를 연결하고 조합하여 원하는 여행 정보를 만드는 것은 인간의 작업을 거치지 않으면 안 되는 것이다. 이것은 웹에서 문서를 표현하는 형식인 HTML이 인간이 읽기 위한 디스플레이 목적으로 만들어졌기 때문이며, 웹은 단지 정보를 전달하는 도구일 뿐, 그것을 이해하고 처리하는 기능을 갖지 못했기 때문에 발생하는 문제이다.The existing web that we are familiar with consists of documents that are expressed in the form of interconnected HTML, and the connection between the actual web document and the real-world entity that it describes, that is, the understanding of meaning, is made by the person who reads the document. . For example, when a person wants to find relevant information to travel to Jeju Island, finding the travel information and map information about Jeju Island on the web, and connecting and combining the two informations to make the desired travel information is a human task. You must go through it. This is because HTML, the format for representing documents on the Web, was created for display purposes for human reading, and is a problem because the Web is merely a tool for conveying information and has no ability to understand and process it.

시맨틱 웹(Semantic Web)은 이러한 문제를 해결하기 위한 것으로, 인간 중심의 데이터 표현을 위한 HTML을 기반으로 한 기존의 웹과는 달리, 웹에서 데이터의 의미를 표현함으로써 데이터의 자동적인 상호 교환을 통해 인간과 기계, 기계와 기계 사이의 상호 협력이 가능한 데이터의 웹(the Web of data)을 제공한다. The Semantic Web is designed to solve this problem. Unlike the existing web based on HTML for human-centered data representation, the Semantic Web expresses the meaning of data on the web and provides automatic data exchange. It provides a Web of data that enables human and machine, machine and machine cooperation.

이러한 시멘틱 웹에 대해 월드 와이드 웹(World Wide Web)의 주창자인 팀 버너스리는 시맨틱 웹은 잘 정의된(well-defined) 의미를 정보에 부여함으로써 기계와 인간이 더욱 잘 협력할 수 있는 현재 웹의 확장이라고 정의하였다. 즉, 다양한 어플리케이션 간의 자유로운 데이터의 상호 교환이 이루어짐으로써 데이터의 통합(integration) 및 재사용(reuse), 더 나아가 기계 또는 에이전트에 의한 자동화가 가능하도록 기계가 사용할 수 있는 방식으로 정의되고 연결된 데이터의 웹이 바로 시맨틱 웹의 비전이다.Tim Berners-Lee, the founder of the World Wide Web for this semantic web, gave the semantic web a well-defined meaning to information that allows the machine and humans to work better together. It is defined as an extension. In other words, the free exchange of data between various applications enables the integration and reuse of data, and furthermore, the web of data defined and connected in such a way that the machine can be used to enable automation by machines or agents. It is the vision of the Semantic Web.

그리고 링크드 데이터(Linked Data)는 개방형 데이터들을 네트워크를 통해 개방하고, 융통하여 협업을 가능하게 한다. 즉 URI(Uniform Resource Identifier) 역참조를 통해 자원에 접근하고, RDF(Resource Description Framework)를 통해 기계가독형으로 데이터를 웹으로 발행하며, RDF 형식으로 발행된 정보를 검색하기 위한 질의 언어로서 SPARQL을 이용한다. 상기한 URI, RDF, SPARQL은 모두 W3C의 시맨틱웹 표준으로 링크드 데이터는 시맨틱웹 서비스의 실제적인 사례이다. 위키피디아에서는 링크드 데이터를 URI(Unified Rdsource Identifier)와 RDF(Resource Description Framework)를 이용해 시맨틱웹 상에 널려있는 데이터, 정보, 지식을 노출하고 공유하며 연결하기 위해 추천되는 최고의 방법을 설명하는 용어라고 설명하고 있다.Linked Data also enables open data over the network, flexibility and collaboration. In other words, SPARQL is used as a query language for accessing resources through Uniform Resource Identifier (URI) dereferences, publishing data to the web through machine-readable methods through the Resource Description Framework (RDF), and retrieving information published in RDF format. I use it. The above URIs, RDFs, and SPARQLs are all semantic web standards of the W3C, and linked data is a practical example of semantic web services. Wikipedia describes Linked Data as a term describing the best way to expose, share, and connect data, information, and knowledge on the Semantic Web using the Unified Rdsource Identifier (URI) and Resource Description Framework (RDF). have.

현재의 웹은 잘 가공되고 꾸며진 표현 중심적인 웹페이지를 통해서만 정보를 유통한다. 그러나 웹페이지에 속한 데이터, 특히 가공되지 않은 원 데이터(raw data)들을 관련 주제끼리 연결할 수 있다면 엄청난 수의 조합이 이루어져 수천, 수백만 건의 다양하고 유익한 결과들을 생성해 낼 수 있다. 그러나 현재 웹 상에 있는 데이터들은 엄청나게 다양한 형태로 저장되어 있으며, 이 데이터들은 문서의 표현을 위한 HTML 형식으로 되어 있어 연결되기 어렵다. The current web only distributes information through well-processed and well-formed, expression-oriented web pages. But if you can link data from web pages, especially raw data, to related topics, a huge number of combinations can produce thousands and millions of different and beneficial results. However, data on the web is stored in a huge variety of forms, which are difficult to connect because they are in HTML format for document presentation.

한편 웹 2.0의 출현으로 인해 등장한 매쉬업은 오픈 API, RSS/ATOM Feed를 이용한 콘텐츠 신디케이션(syndication)으로 특징지을 수 있다. 또한 AJAX, JSON, Flex와 같은 프로그래밍 도구를 통해 풍부한 이용자 인터페이스를 제공하는 매쉬업 어플리케이션의 생성과 공유가 쉽고 빠르게 이루어지게 되었다. 그러나 이러한 웹 2.0 매쉬업은 서로 다른 인터페이스를 제공하고 데이터의 표현이 제각각 다른 문제 때문에 데이터 소스가 추가될 때마다 수동으로 프로그램 코드를 추가해야 하는 문제가 있었다. 또 데이터의 표현이 기계가 이해할 수 있는 포맷이 아니므로 인간이 일일이 작업해야 하고 매쉬업의 수준도 인터페이스 수준에 머무르며 데이터의 재사용이 어려운 문제도 있었다. On the other hand, the mashup that emerged due to the emergence of Web 2.0 can be characterized by an open API and content syndication using RSS / ATOM Feed. In addition, programming tools such as AJAX, JSON, and Flex make it easy and fast to create and share mashup applications that provide a rich user interface. However, these Web 2.0 mashups have different interfaces and different representations of the data, which means that program code must be added manually each time a data source is added. In addition, since the representation of data is not a format that can be understood by the machine, humans have to work individually, and the level of mashup remains at the interface level, and data reuse is difficult.

그런데 시맨틱 웹 데이터를 기반으로 한 링크드 데이터의 매쉬업은 기계가 이해할 수 있도록 W3C 시맨틱웹 표준 포맷인 RDF로 데이터를 표현하여 서로 연계(link)함으로써 쉽게 이루어질 수 있다. 즉, http://"로 시작되는 URI는 데이터를 식별(identify)하고 웹을 통해 누구나 접근 가능하므로 원래의 데이터(original data source)가 수정되더라도 동적으로 수정된 내용이 반영된 매쉬업이 가능하다. However, mashup of linked data based on semantic web data can be easily achieved by expressing data in RDF, a W3C semantic web standard format, and linking them together for machine understanding. That is, URIs starting with http: // "identify data and can be accessed by anyone through the web, so that even if the original data source is modified, the mashup can be dynamically reflected.

또한 URI로 구별되는 데이터는 재사용이 가능하며 웹 API를 이용한 매쉬업보다 쉽게 작성할 수 있으므로 산업적 가치가 훨씬 뛰어나다. In addition, the data distinguished by URI is much more industrial value because it is reusable and easier to write than mashup using web API.

매쉬업된 데이터 또한 호환이 가능한 표준 포맷이므로 다른 매쉬업의 입력 데이터가 될 수 있기 때문에 링크드 데이터의 선순환구조, 즉 생태계(ecosystem)를 조성하는데 중요한 역할을 담당한다.Mashed data also plays an important role in creating a virtuous cycle, or ecosystem, of linked data because it is a compatible standard format and can be input data for other mashups.

시맨틱 웹 매쉬업 도구인 탑쿼드란트 사의 SparqlMotion은 URI를 이용하여 웹에 분산되어 있는 RDF 데이터에 접근하고, 이를 통해 데이터들을 조합하여 원하는 목적으로 가공하기 위한 비주얼 플로우 에디터(visual flow editor)로 RDF/OWL 표준 질의 언어인 SPARQL을 이용하여 데이터를 필터링하고 OWL로 모델링된 직관적인 정보의 플로우 다이어그램(flow diagram)을 작성할 수 있도록 하여 이용자가 쉽게 매쉬업을 작성할 수 있도록 한다. 뿐만 아니라 상기 SparqlMotion은 XML, RSS Feed, TEXT 문서 등의 다양한 형태의 데이터에 대해 임포트(import), 변환, 필터링, 검색 등의 기능을 지원하며, 작성된 데이터 플로우 다이어그램(data flow diagram)은 RDF로 기술된 스크립트로 저장되어 재사용이 가능하다. 최근에는 SPARQL 질의에 외부의 SPARQL 엔드포인트에 접근하여 외부 데이터를 질의할 수 있도록 하는 기능도 추가되었다. SparqlMotion from Top Quadrant, a semantic web mashup tool, uses URIs to access RDF data distributed across the web, and then combines the data into a visual flow editor that can be processed for any purpose. SPARQL, an OWL standard query language, allows you to filter data and create an intuitive flow diagram of OWL-modeled information so that users can easily create mashups. In addition, the SparqlMotion supports functions such as import, transformation, filtering, and search for various types of data such as XML, RSS Feed, and TEXT document, and the data flow diagram written is described in RDF. Saved as a script that can be reused. Recently, SPARQL queries have been added to allow external data to be queried by accessing an external SPARQL endpoint.

그러나 상기 SparqlMotion은 탑쿼드란트 사의 온톨로지 모델링 도구인 TopBraid Composer에 통합된 제품으로 웹 기반 인터페이스를 제공하지 않으며, SparqlMotion을 통해 작성된 매쉬업은 TopQuadrant사의 시맨틱웹 어플리케이션 서버를 통해서만 서비스로서 발행(publishing)되었다.  However, the SparqlMotion is a product integrated with TopBraid Composer, an ontology modeling tool of Top Quadrant, and does not provide a web-based interface. A mashup created through SparqlMotion is published as a service only through TopQuadrant's semantic web application server.

그리고 DERI(Digital Enterprise Research Institute)는 세계적인 시맨틱웹 연구기관으로 관련 기술 연구 및 산업화, 적용 솔루션을 제공하며 전세계의 시맨틱 웹 산업을 주도하고 있다. 상기 DERI의 Pipes는 웹 상에 분산되어 있는 링크드 데이터 형식의 데이터를 융복합하기 위한 시맨틱 매쉬업 플랫폼이다. 상기 DERI의 Pipes는 파이프 에디터(Pipes editor), 파이프 레파지토리(Pipes repository), 실행 엔진(Execution Engine)으로 구성되어 있으며, 매쉬업된 데이터는 RDF, RDF/JSON, Turtle/N3, TRIG, TRIX, NTRIPLES 형식으로 제공될 수 있다.The Digital Enterprise Research Institute (DERI) is the world's leading semantic web research institute, providing related technology research, industrialization and application solutions and leading the semantic web industry worldwide. The DERI Pipes is a semantic mashup platform for fusion and converged data of the linked data format distributed on the web. The DERI Pipes consists of a Pipes Editor, a Pipes Repository, and an Execution Engine, and the mashed up data is in RDF, RDF / JSON, Turtle / N3, TRIG, TRIX, NTRIPLES format. It may be provided as.

상기 파이프 에디터(Pipes editor)는 경량화된 웹 기반의 워크플로우 에디터로 데이터의 처리 및 흐름에 대한 머지(Merge), 스플릿(Split) 등의 오퍼레이터와 선택(select), 구성(construct)과 같은 Sparql 질의를 통해 데이터의 병합과 필터링을 통한 데이터 매쉬업을 설계할 수 있게 한다. 이렇게 설계된 매쉬업은 XML 형식으로 직렬화(serialize)되어 파이프 레파지토리(Pipes repository)에 저장되며, 다른 매쉬업에 재사용될 수 있다. The Pipes editor is a lightweight web-based workflow editor that allows operators such as merge and split to process and flow data, and Sparql queries such as selects and constructs. Allows you to design data mashups through merging and filtering of data. This designed mashup is serialized to XML format and stored in the Pipes repository, which can be reused for other mashups.

그리고 실행 엔진은 저장된 매쉬업을 로딩하며 HTTP 콘텐트 네고시에이션(content negotiation)을 통해 웹에서 접근할 수 있다. 상기 Pipe의 입력으로 파라미터를 정의할 수 있으며, 그에 따라 REST API를사용하는 어플리케이션 혹은 사용자가 직접 정의하거나 또는 HTTP 겟 리퀘스트(Get request)를 통해 동적으로 제공함으로써 동적인 최신 데이터를 반영할 수 있다. 이밖에 DERI Pipes의 장점으로는 RDFS 수준의 추론과 Sparql 질의처리를 지원하고 매쉬업의 재사용성을 보장하며 동적인 데이터 통합이 가능하다는 점이 있다. The execution engine then loads the stored mashup and can be accessed from the web through HTTP content negotiation. Parameters can be defined as inputs of the pipe, and accordingly, applications or users using REST APIs can be defined by themselves or dynamically provided through HTTP get requests to reflect the latest dynamic data. Other advantages of DERI Pipes include support for RDFS-level inference and Sparql query processing, ensuring reusability of mashups, and dynamic data integration.

상기한 바와 같이 링크드 데이터(Linked Data)는 인간뿐만 아니라 기계가 이해할 수 있는 포맷의 시맨틱 데이터를 구축함으로써 분산된 웹 환경에서 이질적인 데이터 간의 통합과 재사용이라는 목적을 이루기 위한 시멘틱 웹(Semantic Web)의 궁극적 목적을 이루기 위한 기술적 수단으로, 시맨틱 데이터 환경을 이루기 위한 기반 기술이다. As mentioned above, linked data is the ultimate in semantic web to achieve the purpose of integrating and reusing heterogeneous data in a distributed web environment by building semantic data in a format that can be understood by both humans and machines. As a technical means for achieving the purpose, it is a base technology for achieving the semantic data environment.

특히 링크드 데이터(Linked Data)를 통해 시맨틱 데이터 환경이 구축되어야만이 이를 기반으로 한 웹 기반의 지능형 서비스, 혁신적인 서비스 구현이 기능하므로, 차세대 정보통신 기술 시장이 시맨틱 데이터 환경으로 전환되고 있는 시점에서 이를 뒷받침할 수 있는 링크드 데이터(Linked Data)를 위한 기반 솔루션 확보가 절실히 필요하다고 볼 수 있다. In particular, a semantic data environment must be established through linked data to enable web-based intelligent services and innovative service implementation, which supports this point when the next-generation information and communication technology market is transitioning to a semantic data environment. There is an urgent need to secure a foundation solution for linked data.

그러나 현재까지 수행되고 있는 대부분의 연구 및 기존의 매쉬업 도구들은 동일한 데이터형에 대해서만 이루어지고 있다. 즉, 현재 수행되고 있는 대표적인 매쉬업 사례들은 링크드 데이터와 링크드 데이터 사이의 매쉬업, 오픈 API와 오픈 API 사이의 매쉬업을 주로 연구하고 있다. However, most of the research and existing mashup tools that have been carried out to date only work on the same data types. That is, the representative mashups currently being conducted mainly research mashups between linked data and linked data, and mashups between open API and open API.

이에따라 링크드 데이터 간의 매쉬업을 연구하는 분야(e.g A. Nikolov, V. Uren, E. Motta, Data Linking: Capturing and Utilising Implicit Schema-level Relation)에서는 DBPedia와 같은 온톨로지를 중개자(mediator)로 사용하여 범용성을 확보하고자 하였으나, 이 또한 매쉬업에 필요한 모든 데이터가 링크드 데이터(Linked Data)로 발행(Publishing)되지 않은 경우에는 사용이 불가한 문제가 있었다. 따라서 양질의 일반 웹 데이터와는 매쉬업이 불가능하므로, 사용자들이 원하는 다양한 데이터의 사용과 새로운 서비스 창출에는 한계가 있었다. 또한 현재 웹 2.0 환경에서 많이 이용되고 있는 오픈 API간의 매쉬업의 경우에는 사용자가 매뉴얼하게 프로그래밍을 수행해야만 그 결과를 이용할 수 있었다. 그러나 이 경우에도 정보 제공자가 공개하는 데이터에 한해서만 사용이 가능하다는 한계점이 존재하였다. Accordingly, in the field of researching mashups between linked data (eg A. Nikolov, V. Uren, E. Motta, Data Linking: Capturing and Utilizing Implicit Schema-level Relations), an ontology such as DBPedia is used as a mediator. However, this also has a problem that can not be used when all the data required for the mashup is not published as Linked Data. Therefore, it is impossible to mash up with high-quality general web data, so there is a limit in using various data desired by users and creating new service. In addition, in the case of mashup between open APIs, which are widely used in the Web 2.0 environment, the results can be used only when the user manually executes programming. However, even in this case, there was a limitation that only the data disclosed by the information provider could be used.

이에따라 웹 데이터를 링크드 데이터 형태로 이용하고자 하는 다양한 시도들이 있었다. 그러나 이는 대체로 웹 데이터 및 웹 서비스를 링크드 서비스로 변환하여 서비스하는 단계에 머물러 있는 수준이었다. 따라서 웹 2.0의 순기능인 공유, 참여 등을 시멘틱 웹 환경에서도 계승, 발전시키기 위해서는 매쉬업을 통한 사용자 참여가 요구되며, 또한 데이터 및 서비스의 다양화를 위해서도 매쉬업은 필수적이다. 그러나 데이터의 이질성은 이를 방해하는 요소로 작용하고 있어, 종래에는 데이터의 이질성과는 무관하게 데이터 및 서비스를 매쉬업할 수 있는 도구의 개발이 절실하게 요망되었다. Accordingly, various attempts have been made to use web data in the form of linked data. However, this remained largely at the stage of converting web data and web services to linked services. Therefore, in order to inherit and develop the net function of Web 2.0, even in the semantic web environment, user participation through mashup is required, and mashup is also essential for the diversification of data and services. However, since the heterogeneity of data acts as an obstacle to this problem, it is urgently required to develop a tool capable of mashing up data and services irrespective of the heterogeneity of data.

본 발명은 링크드 데이터 환경에서 데이터의 이질성과는 무관하게 데이터 및 서비스를 매쉬업할 수 있는 링크드 데이터 환경에서의 서비스 매쉬업 방법 및 시스템을 제공하는 것을 그 목적으로 한다. It is an object of the present invention to provide a method and system for mashing up a service in a linked data environment that can mash up data and services irrespective of the heterogeneity of the data in the linked data environment.

상기한 목적을 달성하기 위한 본 발명에 따르는 서비스 매쉬업 시스템은, 사용자 단말기를 통해 서비스 구성을 위한 정보에 대한 유효성 검사 요청 메시지를 입력받아 유효성을 확인하는 유효성 확인모듈; 상기 유효성이 확인된 서비스 구성을 위한 정보를 포함하는 프로세스 발행 요청 메시지를 수신받아, 그 서비스 구성을 위한 정보에 대해 URI를 생성하고, 그 URI과 상기 서비스 구성을 위한 정보와 프로세스에 대한 정보를 입력받아 프로세스를 명세하고, 그 프로세스 명세를 포함하여 단위 서비스를 발행하는 프로세스 발행모듈;을 구비함을 특징으로 한다. Service mashup system according to the present invention for achieving the above object, Validation module for receiving a validity check request message for information on the service configuration through the user terminal to verify the validity; Receiving a process issuance request message including the information for the service configuration is validated, generates a URI for the information for the service configuration, and inputs the URI, information for the service configuration and information about the process And a process issuing module for receiving a process and specifying a process and issuing a unit service including the process specification.

또한 상기 본 발명에 따르는 서비스 매쉬업 시스템은, 서비스 저장소; 상기 발행된 단위 서비스 및 상기 서비스 저장소에 저장된 단위 서비스 및 하나 이상의 서비스가 조합되어 생성된 복합 서비스 중 일부를 선택받고, 새로운 서비스에 대한 URI를 생성하고, 그 URI와 선택된 서비스들의 정보로 복합 서비스를 명세하여 발행하며, 상기 발행된 복합 서비스를 상기 서비스 저장소에 저장하는 서비스 구성모듈;을 더 구비한다. In addition, the service mashup system according to the present invention, a service storage; The selected unit service, a unit service stored in the service repository, and one or more services that are combined with one or more services generated are selected, and a URI for a new service is generated, and the composite service is composed of the URI and selected services. And specifying and publishing a service configuration module for storing the issued composite service in the service repository.

상기한 본 발명은 링크드 데이터, 오픈 API, RSS 피드 등의 데이터 및 서비스를 일관적인 하나의 데이터 구조로 표현함으로써, 이질적인 데이터에 대한 매쉬업을 가능하게 하는 효과가 있다. The present invention described above has an effect of enabling mashup of heterogeneous data by representing data and services such as linked data, open API, RSS feed, etc. in one consistent data structure.

이러한 본 발명은 서로 다른 데이터를 가진 양질의 데이터를 매쉬업할 수 있게 함으로써, 데이터의 재사용성을 높이고, 보다 양질의 데이터를 재생산할 수 있게 함과 동시에, 데이터의 확장성을 높이고, 데이터의 다양성을 보다 높일 수 있고, 데이터들의 활용 범위를 보다 넓힐 수 있는 효과를 야기한다. The present invention makes it possible to mash up high-quality data having different data, thereby increasing data reusability, reproducing more high-quality data, and increasing data scalability and increasing data diversity. It can be higher and causes an effect that can widen the range of application of the data.

또한 본 발명은 사용자를 위한 매쉬업 도구를 제공하여, 사용자 화면을 통해 입력한 기본적인 정보를 이용하여 명세, 발행, 실행 등의 과정을 수행할 수 있게 한다. 또한 이 과정에서 프로세스인 단위 서비스 및 복합 서비스를 발행하여 서비스 저장소에 저장하고, 이를 사용자가 재사용할 수 있도록 한다. 이는 사용자의 편의성을 높이고, 개선된 편의성에 따라 사용자의 참여 확대를 이끌어 낼 수 있는 계기가 될 수 있다. 이러한 사용자 참여 확대는 보다 많은 참여를 도모함으로써, 데이터 및 서비스들이 보다 다양해지고, 새로워질 수 있게 할 수 있다. In addition, the present invention provides a mashup tool for the user, it is possible to perform the process of specification, publication, execution, etc. using the basic information input through the user screen. In this process, we also publish unit services and complex services, which are processes, and store them in the service repository so that users can reuse them. This may be an opportunity to increase the convenience of the user and lead to the expansion of the user's participation according to the improved convenience. Such increased user participation can lead to more participation, allowing data and services to be more diverse and new.

또한 본 발명은 다양한 이질적인 데이터를 링크드 데이터의 서비스로 발행하며, 이 과정에서 일관된 형식으로 명세를 수행하고 이를 발행하므로 데이터 통합적인 측면에서 효율성을 기대할 수 있는 효과도 있다. In addition, the present invention publishes a variety of heterogeneous data as a service of linked data, and in this process, the specification is performed in a consistent format and issued, and thus, efficiency can be expected in terms of data integration.

도 1은 본 발명의 바람직한 실시예에 따르는 서비스 모델링 구조도.
도 2는 본 발명의 바람직한 실시예에 따른 서비스 매쉬업 시스템의 사용자 화면을 도시한 도면.
도 3 내지 도 7은 본 발명의 바람직한 실시예에 따른 서비스 매쉬업 시스템의 구조도.
1 is a service modeling structure diagram according to a preferred embodiment of the present invention.
2 is a diagram illustrating a user screen of a service mashup system according to a preferred embodiment of the present invention.
3 to 7 are structural diagrams of a service mashup system according to a preferred embodiment of the present invention.

본 발명은 이질적인 데이터 및 서비스에 대한 매쉬업을 이행하고, 이를 위한 사용자의 노력을 최소화시킬 수 있게 한다. 이를 위해 본 발명은 이질적인 데이터 및 서비스를 일관된 방법으로 명세하여, 서비스를 발행함과 아울러 매쉬업을 수행한다.
The present invention makes it possible to implement mashups for heterogeneous data and services and to minimize user effort for them. To this end, the present invention specifies heterogeneous data and services in a consistent manner, publishes services and performs mashups.

<서비스 명세><Service Description>

먼저 본 발명의 바람직한 실시예에 따른 서비스의 명세를 도 1을 참조하여 설명한다.First, a description of a service according to a preferred embodiment of the present invention will be described with reference to FIG. 1.

본 발명에 따르는 서비스는 링크드 데이터로 발행되므로 서비스는 온톨로지 모델을 기반으로 하여 명세된다. 즉, 수집된 데이터는 프로세스(Process) 단위로 명세되고, 이후의 서비스 매쉬업을 위해 서비스로 발행됨으로써 서비스 간의 조합을 용이하게 한다. Since the service according to the invention is published as linked data, the service is specified based on the ontology model. That is, the collected data is specified in a process unit, and is issued as a service for subsequent service mashup, thereby facilitating the combination between services.

상기한 본 발명에 따른 서비스는 단위 서비스(Atomic Service)와 복합 서비스(Composed Service)로 구분된다. 상기 단위 서비스는 하나의 프로세스만을 가지는 서비스이며, 상기 복합 서비스는 하나 이상의 단위 서비스 및/또는 하나 이상의 복합 서비스의 조합으로 구성된다.The above-described service according to the present invention is classified into an atomic service and a composite service. The unit service is a service having only one process, and the composite service is composed of one or more unit services and / or a combination of one or more composite services.

특히 본 발명에 따른 서비스가 복합 서비스인 경우에 해당 서비스를 구성하는 두개 이상의 서비스에 대한 실행 순서가 명세된다. In particular, when the service according to the present invention is a complex service, the execution order for two or more services constituting the service is specified.

이와같이 서비스의 실행 순서를 명세하는 것은 매쉬업 서비스 실행에서의 정확성을 높이기 위해 반드시 요구된다. As such, specifying the order of execution of services is essential to increase the accuracy of mashup service execution.

도 1은 본 발명에 따른 서비스의 명세를 모델링한 것이다. 1 is a model of the specification of a service according to the present invention.

상기 도 1을 참조하면, 상기 서비스의 명세는 서비스 구성에 대한 명세와 서비스에 대한 데이터 형식에 대한 명세와 상기 서비스 설명에 대한 명세로 구성된다. Referring to FIG. 1, the specification of the service includes a specification of a service configuration, a specification of a data format of the service, and a specification of the service description.

먼저 상기 서비스 구성에 대한 명세에 대해 설명한다. First, a description of the service configuration will be described.

서비스(Service)는 하나 이상의 단위 서비스(AtomicService)와 복합 서비스(CompositService)로 구성되며, 이는 rdfs:subClassOf로 기술된다. 그리고 각 서비스에 대한 구성정보는 compose/composedOf로 기술된다. 그리고 상기 서비스가 복합 서비스인 경우에는 실행순서정보가 명세되며 이는 next, ,previous로 기술된다. A service consists of one or more unit services and a composite service, which is described as rdfs: subClassOf. Configuration information for each service is described as compose / composedOf. If the service is a complex service, execution order information is specified, which is described as next, or previous.

상기 단위 서비스에는 프로세스(Process)가 포함되며, 각 프로세스는 메시지(Massage)를 가지며 이는 hasMassage로 기술된다. 그리고 메시지는 결과 메시지(Result Message) 와 에러 메시지(Error Message)를 포함할 수 있으며, 이는 rdfs:subClassOf로 기술된다. 상기 결과 메시지는 massageCode로 기술되며, 그에 대한 데이터 형식이 xsd:string으로 기술되고, 상기 에러 메시지는 messageContent으로 기술되며, 그에 대한 데이터 형식이 xsd:string으로 기술된다. The unit service includes a process, and each process has a message, which is described as hasMassage. And the message can include Result Message and Error Message, which is described as rdfs: subClassOf. The result message is described as massageCode, the data format for it is described as xsd: string, the error message is described as messageContent, and the data format for it is described as xsd: string.

또한 상기 프로세스는 파라메터(Parameter)를 가지며, 이 파라메터의 입출력은 hasOutput 및 hasInput으로 기술된다. 상기 파라메터는 paramName으로 이름이 기술되고, 프로세스를 호출할 때 필요한 정보로서 파라메타 간의 순서(Order)를 기술하기 위한 paramOrder가 부여된다. 그리고 상기 프로세스에는 processName으로 이름이 기술되고, 그에 대한 데이터 형식이 xsd:string으로 기술되며, description으로 설명이 기술되고, 그에 대한 데이터 형식이 xsd:string으로 기술된다. The process also has parameters, the input and output of which are described as hasOutput and hasInput. The parameter is named paramName, and paramOrder is provided for describing an order between parameters as information required when invoking a process. In the process, a name is described as processName, a data type thereof is described by xsd: string, a description is described by description, and a data type thereof is described by xsd: string.

상기 서비스에 대한 데이터 형식에 대한 명세에 대해 설명한다. The specification of the data format for the service will be described.

상기 프로세스에 대한 데이터 형식은 rdfs:subClassOf로 기술된다. 상기 데이터 형식은 SparqlQuery, OpenAPI, RSS 등이 될 수 있다. 상기 SparqlQuery는 rdfs:subClassOf를 통해 구조 및 선택정보를 기술한다. 또한 상기 SparqlQuery의 queryContent 및 그에 대한 xsd:string이 기술된다. 그리고 상기 OpenAPI는 apiURLForm 및 그에 대한 xsd:string이 기술된다. 또한 OpenAPI가 API Key값을 필요로 하는 경우 hasAPIKey를 통해 기술한다. 그리고 상기 RSS는 rssTagging 및 그에 대한 xsd:string이 기술된다. The data format for the process is described as rdfs: subClassOf. The data format may be SparqlQuery, OpenAPI, RSS, or the like. The SparqlQuery describes structure and selection information through rdfs: subClassOf. In addition, the queryContent of the SparqlQuery and xsd: string thereof are described. The OpenAPI describes apiURLForm and its xsd: string. In addition, when OpenAPI needs API Key value, it describes through hasAPIKey. The RSS is described by rssTagging and xsd: string thereof.

상기 서비스 설명에 대한 명세에 대해 설명한다. A description of the service description will be described.

상기 서비스에는 창작자(creator) 정보 및 제목(title), 목적(goal), 클래스 코드(class code) 등에 대한 정보가 포함되며, 상기 창작자 정보는 dc:creator로 기술된다. 그리고 상기 제목 정보는 dc:title로 기술된다. 그리고 상기 서비스의 목적은 goal로 기술된다. 상기 클래스 코드는 classCode 및 serviceCode 및 rdf:type, skos:Contept로 기술된다. 상기 클래스 코드는 W3C의 표준 지식어휘 디스크립션 표준인 SKOS에 따라 서비스에 대한 분류 코드를 skos:Concept의 인스턴스로 생성하고, classCode를 통해 해당 서비스의 분류 코드로서 skos:Concept의 인스턴스인 분류코드를 취한다.The service includes creator information and information on a title, a goal, a class code, and the like, and the creator information is described as dc: creator. The title information is described as dc: title. And the purpose of the service is described as a goal. The class code is described as classCode and serviceCode and rdf: type and skos: Contept. The class code generates a classification code for a service as an instance of skos: Concept according to the W3C standard knowledge vocabulary description standard SKOS, and takes a classification code that is an instance of skos: Concept as the classification code of the corresponding service through classCode. .

그리고 다수의 서비스가 조합되어 서비스를 구성할 때에는, 상기 조합된 다수의 서비스에 대한 실행 순서에 대한 선후 관계(next,previous)가 기술된다. 즉, 복합 서비스(Composite Service)를 구성하고 있는 서비스 중에서 첫번째(first) 서비스는 이전(previous)에 대한 명세가 없고, 마지막(last) 서비스는 다음(next)이 없다. 또한 상기 복합 서비스에 포함되는 서비스의 수가 numberOfServices와 xsd:integer로 기술된다. When a plurality of services are combined to form a service, a next relationship (previous) of execution order for the plurality of combined services is described. That is, among the services constituting the composite service, the first service has no specification about previous, and the last service has no next. In addition, the number of services included in the composite service is described as numberOfServices and xsd: integer.

상기 복합 서비스를 구성하는 다수의 서비스는, 입력(Input)과 출력(Output)과 파라메터(Parameter)를 가지며, 복합 서비스를 구성하는 서비스 중에서 첫번째(first)로 오는 서비스의 입력 파라메터(input parameter)가 복합 서비스의 입력(input)이고, 마지막(last)으로 오는 서비스의 출력 파라메터(output parameter)가 복합 서비스의 출력(output)이 된다. A plurality of services constituting the composite service have an input, an output, and a parameter, and an input parameter of a service that comes first among the services constituting the composite service is It is the input of the composite service, and the output parameter of the service that comes last is the output of the composite service.

한편 상기한 서비스는 단위 서비스로 추상화된 프로세스를 가지며, 이는 hasProcess로 기술된다. 상기 프로세스는 메시지를 가지며 이는 hasMessage로 기술되며, 파라메터를 가지며 이는 hasInput 및 hasOutput으로 기술되며, 프로세스 타입을 가지며 이는 hasType으로 기술되며, 설명은 description과 xsd:string으로 기술되며, 이름은 processName과 xsd:string으로 기술된다. The above service, on the other hand, has a process abstracted into a unit service, which is described as hasProcess. The process has a message, which is described by hasMessage, which has a parameter, described by hasInput and hasOutput, which has a process type, described by hasType, the description is described by description and xsd: string, and the names are processName and xsd: Described as a string.

그리고 프로세스의 결과를 반환하는 문서의 타입(Result type)은 returmFormat으로 기술되며, RDF,JSON, XML 등의 타입이 rdf:type으로 기술된다. The type of the document that returns the result of the process is described as returmFormat, and the types such as RDF, JSON, and XML are described as rdf: type.

<서비스 매쉬업을 위한 화면><Screen for service mashup>

본 발명의 바람직한 실시예에 따른 서비스 매쉬업을 위한 사용자 화면을 도시한 것이 도 2이다. 2 illustrates a user screen for service mashup according to a preferred embodiment of the present invention.

상기 서비스 매쉬업을 위한 사용자 화면은 본 발명에 따른 서비스 매쉬업 시스템에 의해 제공되며, 유효성 체크화면(100)과 단위 서비스 등록화면(102)과 서비스 매쉬업 화면(104)으로 구성된다. The user screen for the service mashup is provided by the service mashup system according to the present invention, and includes a validity check screen 100, a unit service registration screen 102, and a service mashup screen 104.

상기 유효성 체크화면(100)은 사용자로부터 URL과 쿼리를 입력받아 서비스 매쉬업 시스템으로 제공하고, 상기 서비스 매쉬업 시스템으로부터 회신되는 결과를 표시한다. The validity check screen 100 receives a URL and a query from a user, provides the service mashup system, and displays a result returned from the service mashup system.

상기 단위 서비스 등록화면(102)은 사용자로부터의 요청에 따라 서비스 매쉬업 시스템이 생성한 URI를 생성하여 안내함과 아울러 사용자로부터의 명세를 입력받으며, 단위 서비스 등록 요청에 따라 단위 서비스의 등록을 서비스 매쉬업 시스템으로 요청하며, 서비스 매쉬업 시스템에 등록된 단위 서비스 또는 복합 서비스에 대한 매쉬업을 요청할 수 있다. 특히 상기 단위 서비스 등록화면(102)에서 명세 입력은 명세할 항목들을 안내하고, 어느 한 항목이 선택되면 그 항목에 대한 명세 가능한 목록을 안내하여, 사용자에 의한 서비스 명세가 용이하게 이루어질 수 있게 한다. The unit service registration screen 102 generates and guides a URI generated by the service mashup system according to a request from the user, receives a specification from the user, and registers the unit service according to the unit service registration request. The system may request a mashup for a unit service or a complex service registered in the service mashup system. In particular, the specification input on the unit service registration screen 102 guides the items to be specified, and when one item is selected, guides a list of the available specifications for the item, so that the service specification by the user can be easily performed.

상기 서비스 매쉬업 화면(104)은 사용자로부터의 요청에 따라 서비스 매쉬업 시스템에 등록된 단위 서비스 또는 복합 서비스를 안내하고, 상기 사용자의 요청에 따라 상기 단위 서비스 또는 복합 서비스를 선택받아 서비스 발행을 서비스 매쉬업 시스템으로 요청하여 저장한다.
The service mashup screen 104 guides the unit service or the composite service registered in the service mashup system according to a request from the user, and selects the unit service or the composite service according to the user's request to issue a service. Save as requested.

<서비스 매쉬업 시스템><Service Mashup System>

본 발명의 바람직한 실시예에 따른 서비스 매쉬업 시스템의 구성을 도 3을 참조하여 설명한다.A configuration of a service mashup system according to a preferred embodiment of the present invention will be described with reference to FIG. 3.

상기 서비스 매쉬업 시스템(200)은 유효성 확인모듈(Validator)(202)과 프로세스 발행모듈(Process Publisher)(204)과 서비스 구성모듈(Service Composer)(206)과 서비스 실행모듈(Service Executor)(208)로 구성된다. 상기한 서비스 매쉬업 시스템(200)은 서비스 매쉬업 과정에서 발행되는 각종 정보 및 서비스를 저장하는 서비스 저장소(212)가 연결된다. The service mashup system 200 includes a validator 202, a process publisher 204, a service composer 206, and a service executor 208. It consists of. The service mashup system 200 is connected to a service repository 212 that stores various information and services issued during the service mashup process.

상기 유효성 확인모듈(202)은 도 2에 도시한 유효성 체크화면(100)을 통해 사용자가 입력하는 URL 및 쿼리를 입력받아 네트워크를 통해 해당 URL에 대한 유효성을 체크하고, 그 결과를 유효성 체크화면(100)을 통해 사용자에게 안내한다. The validity check module 202 receives a URL and a query input by the user through the validity check screen 100 shown in FIG. 2 and checks the validity of the corresponding URL through a network, and checks the result of the validity check screen ( Guide the user through 100).

상기 프로세스 발행모듈(204)은 도 2에 도시한 단위 서비스 등록화면(102)을 통해 단위 서비스에 대한 URI를 생성하여 안내함과 아울러, 사용자가 입력하는 단위 서비스에 대한 명세를 입력받아 데이터베이스(214)에 단위 서비스로서 등록한다. The process issuing module 204 generates and guides a URI for the unit service through the unit service registration screen 102 shown in FIG. 2, and receives a specification for the unit service input by the user. ) As a unit service.

상기 서비스 구성모듈(206)은 도 2에 도시한 서비스 매쉬업 화면(104)을 통해 데이터베이스(214)에 등록된 단위 서비스 및 복합 서비스들에 대한 목록 및 정보를 안내하며, 안내된 단위 서비스 및 복합 서비스 중 하나 이상 및 실행순서정보를 사용자로부터 선택받아 서비스를 발행하여 데이터베이스(214)에 저장한다. The service configuration module 206 guides the list and information on the unit service and the complex services registered in the database 214 through the service mashup screen 104 shown in FIG. 2, and guides the unit service and the complex service. One or more and execution order information is selected by the user, and a service is issued and stored in the database 214.

상기 서비스 실행모듈(208)은 도 2에 도시한 서비스 매쉬업 화면(104)을 통해 발행된 서비스에 대한 실행요청에 따라 서비스를 실행한다.
The service execution module 208 executes the service according to the execution request for the service issued through the service mashup screen 104 shown in FIG.

상기한 본 발명의 바람직한 실시예에 따른 서비스 매쉬업 시스템(200)의 각 구성에 대해 도면을 참조하여 상세히 설명한다.
Each configuration of the service mashup system 200 according to the preferred embodiment of the present invention described above will be described in detail with reference to the accompanying drawings.

<유효성 확인모듈><Validation module>

본 발명의 바람직한 실시예에 따른 유효성 확인모듈(202)의 구성 및 동작을 도 4를 참조하여 상세히 설명한다. The configuration and operation of the validity checking module 202 according to the preferred embodiment of the present invention will be described in detail with reference to FIG. 4.

상기 유효성 확인모듈(202)은 사용자가 요구하는 데이터의 유효성을 검사하여 그 결과를 안내하는 모듈로서, 데이터 어셉터(Data Acceptor)(300)와 유효성 체커(Validation Checker)(302)와 결과 핸들러(Result Handler)(304)와 연결 매니저(Connection Manager)(306)로 구성된다. The validation module 202 is a module for checking the validity of data requested by the user and guiding the results, and includes a data acceptor 300, a validation checker 302, and a result handler. A result handler 304 and a connection manager 306.

상기 데이터 어셉터(300)는 사용자 단말기(210)의 유효성 체크화면(100)을 통해 사용자가 입력하는 URL과 쿼리를 포함하는 유효성 검사요청 데이터를 수신하여 유효성 체커(302)에 제공한다. 상기 사용자가 입력하는 쿼리는 오픈 API(OpenAPI)의 경우에는 쿼리 및 기타 파라미터 정보, RSS 피드(Feed)의 경우에는 키워드(Keyword) 등으로 구성된다. The data acceptor 300 receives validity check request data including a URL and a query input by the user through the validity check screen 100 of the user terminal 210 and provides the validity checker 302 to the validity checker 302. The query input by the user is composed of a query and other parameter information in the case of an Open API, a keyword in the case of an RSS feed.

상기 유효성 체커(302)는 유효성 검사요청 데이터를 URL과 쿼리로 분리하여, 연결 매니저(Connection Manager)(306)로 전송한다. The validity checker 302 separates the validation request data into a URL and a query, and transmits the validation check request data to the connection manager 306.

상기 연결 매니저(306)는 상기 URL과 쿼리를 수신받아 URL에 따른 웹 자원에 접속하여 상기 쿼리를 전달하고, 상기 웹 자원으로부터 쿼리에 대한 처리 결과가 제공되면 이를 상기 유효성 체커(302)로 전송한다. 여기서, 상기 URL이 유효하지 않거나 쿼리에 따른 처리 결과가 유효하지 않거나, 쿼리에 따른 처리 결과 값이 존재하지 않는 경우에는 상기 연결 매니저(306)는 결과로서 "Fault Message"를 제공받는다. 특히, 상기 연결 매니저(306)는 외부의 웹 자원과의 연결을 관리하며 각 웹 자원에 접속하기 위한 정보를 미리 저장한다. The connection manager 306 receives the URL and the query, accesses the web resource according to the URL, delivers the query, and transmits the query to the validity checker 302 when a processing result of the query is provided from the web resource. . Here, when the URL is not valid or the processing result according to the query is invalid or the processing result value according to the query does not exist, the connection manager 306 is provided with a "Fault Message" as a result. In particular, the connection manager 306 manages a connection with an external web resource and stores information for accessing each web resource in advance.

상기 유효성 체커(302)는 상기 연결 매니저(306)로부터 "Fault Message"를 제공받으면 사용자가 입력한 URL 및 질의정보가 유효하지 않음을 나타내는 통지정보를 상기 결과 핸들러(304)로 제공하고, 그외의 메시지가 수신되면 사용자가 입력한 URL 및 쿼리가 유효함을 나타내는 통지정보를 결과 핸들러(304)로 제공한다. When the validity checker 302 is provided with a "Fault Message" from the connection manager 306, the result handler 304 provides notification information indicating that the URL and query information input by the user is invalid. When the message is received, the result handler 304 provides notification information indicating that the URL entered by the user and the query are valid.

상기 결과 핸들러(304)는 상기 통지정보를 사용자 단말기(210)의 유효성 체크화면(100)를 통해 사용자에게 안내한다. The result handler 304 guides the notification information to the user through the validity check screen 100 of the user terminal 210.

또한 상기 결과 핸들러(304)는 상기 통지정보를 안내한 후에, 사용자 단말기(210)의 유효성 체크화면(100)을 통해 사용자가 URL 및 질의정보에 대한 저장을 요청하면, 상기 URL 및 쿼리 및 유효성 검사 결과정보를 서비스 저장소(212)에 저장함과 아울러 프로세스 발행모듈(204)로 제공한다.
In addition, after the result handler 304 guides the notification information, when the user requests to store URL and query information through the validity check screen 100 of the user terminal 210, the URL, query, and validity check are performed. The result information is stored in the service repository 212 and provided to the process publishing module 204.

<프로세스 발행모듈><Process Issuance Module>

본 발명의 바람직한 실시예에 따른 프로세스 발행모듈(204)의 구성 및 동작을 도 5를 참조하여 상세히 설명한다. The configuration and operation of the process issuance module 204 according to the preferred embodiment of the present invention will be described in detail with reference to FIG.

상기 프로세스 발행모듈(204)은 유효성 확인 모듈(202)을 통해 유효성이 확인된 URL 및 쿼리를 포함하는 프로세스 발행 요청 메시지가 수신되면, URI를 생성함과 아울러 상기 URL 및 쿼리 및 사용자 단말기(210)의 단위 서비스 등록화면(102)을 통해 프로세스에 대한 정보를 입력받아 프로세스를 명세하고, 이를 링크드 데이터 기반의 단위 서비스(Atomic Service)로 발행한다. 여기서, 상기 프로세스 발행 요청 메시지는 URL 및 쿼리 및 유효성 체크 결과를 포함한다. When the process issuance module 204 receives a process issuance request message including a URL and a query which has been validated through the validation module 202, the process issuance module 204 generates a URI and the URL and the query and the user terminal 210. Through the unit service registration screen 102 of the process, the information on the process is input, and the process is specified, and it is issued to the linked data-based unit service (Atomic Service). Here, the process issue request message includes a URL, a query, and a validity check result.

상기한 프로세스 발행모듈(204)은 데이터 어셉터(Data Acceptor)(400)와 URI 생성기(URI Generator)(402), 데이터 파서(Data Parser)(404), 프로세스 디스크리터(Process Descriptor)(406), 프로세스 어그리게이터(Process Aggregator)(408), 단위 서비스 등록기(Atomic Service Register)(410), 사용자 입출력 핸들러(User Input/output Handler)(412)로 구성된다. The process issuing module 204 includes a data acceptor 400, a URI generator 402, a data parser 404, and a process descriptor 406. It is composed of a process aggregator (408), a unit service register (Atomic Service Register) (410), a user input / output handler (User Input / output Handler) (412).

상기 데이터 어셉터(400)는 사용자 단말기(210)의 단위 서비스 등록화면(102)을 통해 단위 서비스 등록에 대한 요청 및 단위 서비스 명세를 위한 정보를 입력받고, 상기 유효성 확인모듈(202)을 통해 유효성이 확인된 URL 및 쿼리를 포함하는 프로세스 발행 요청 메시지를 입력받는다. The data acceptor 400 receives a request for unit service registration and information for a unit service specification through the unit service registration screen 102 of the user terminal 210, and validates the data through the validity checking module 202. It receives a process issue request message containing the verified URL and query.

상기 단위 서비스 등록요청에 따라 상기 데이터 어셉터(400)는 URI 생성기(402)로 URI 생성을 요청함과 아울러 상기 URL 및 쿼리 및 단위 서비스 명세를 위한 정보를 데이터 파서(404)로 제공한다. In response to the unit service registration request, the data acceptor 400 requests URI generation to the URI generator 402 and provides the data parser 404 with information for the URL, query, and unit service specification.

상기 URI 생성기(402)는 상기 URI 생성 요청에 따라 URI를 생성한다. 여기서, 링크드 데이터에서는 각 인스턴스마다 고유한 URI를 가지므로, 사용자로부터의 입력 정보를 링크드 데이터화하기 위해서는 고유한 URI가 요구된다. 이에 본 발명은 시스템 내부적으로 URI를 생성하는 방식을 채택하였다. The URI generator 402 generates a URI according to the URI generation request. In the linked data, since each instance has a unique URI, a unique URI is required in order to make the input information from the user linked data. Accordingly, the present invention adopts a method of generating a URI in the system.

상기 데이터 파서(404)는 URL 및 쿼리 및 단위 서비스 명세를 위한 정보를 분할하여 질의/URL/Parameter 등의 각종 정보들을 프로세스 명세를 위해 사용될 수 있는 단위로 분할 및 추출하여 프로세스 디스크립터(406)로 전송한다. The data parser 404 divides information for URL and query and unit service specification, divides and extracts various information such as query / URL / Parameter into units that can be used for process specification, and transmits the information to the process descriptor 406. do.

상기 프로세스 디스크립터(406)는 상기 데이터 파서(404)로부터 제공된 데이터 중 프로세스 명세에 해당되는 정보들을 미리 정해진 프로세스 명세 규칙에 따라 프로세스를 명세한 후에, 프로세스 어그리게이터(408)로 제공한다. 여기서, 상기 프로세스 명세에 해당되는 정보로는, 프로세스가 메시지를 가지는지, 어떤 메시지를 가지는지, 그 메시지의 형식은 어떠한지, 입출력 파라메터를 가지는지, 해당 프로세스가 SparqlQuery인지, 오픈 API인지, RSS인지 등에 대한 정보가 포함되며, 이러한 프로세스의 명세 항목 및 프로세스 명세 규칙은 도 1을 참조하여 상술되었다. The process descriptor 406 specifies, according to a predetermined process specification rule, information corresponding to a process specification among data provided from the data parser 404, and then provides the process to the process aggregator 408. Here, as the information corresponding to the process specification, whether the process has a message, what message, the format of the message, input / output parameters, the process is SparqlQuery, open API, RSS And the like, and specification items and process specification rules of these processes have been described above with reference to FIG. 1.

상기 프로세스 어그리게이터(408)는 상기 프로세스 디스크립터(406)로부터 제공되는 프로세스 명세 및 URI 생성기(402)로부터의 URI를 수집하여, 미리 정해진 서비스 명세 규칙에 맞추어 조합하여 링크드 데이터 구조의 단위 서비스를 구성한다. 여기서, 상기 미리 정해진 서비스 명세 규칙의 예로는 도 1의 예가 있다. The process aggregator 408 collects the process specification provided from the process descriptor 406 and the URI from the URI generator 402 and combines them according to a predetermined service specification rule to form a unit service of a linked data structure. do. Here, an example of the predetermined service specification rule is the example of FIG. 1.

상기 단위 서비스는 단위 서비스 등록기(410)에 입력된다. The unit service is input to the unit service register 410.

상기 단위 서비스 등록기(410)는 상기 단위 서비스를 서비스 저장소(212)에 저장하며, 상기 단위 서비스 저장완료를 상기 사용자 입출력 핸들러(412)를 통해 사용자 단말기(210)로 통지한다. 여기서, 사용자가 단위 서비스의 저장을 요청할 경우에 해당 요청을 사용자 입출력 핸들러(412)로 전달하고, 사용자 입출력 핸들러(412)는 해당 요청을 단위 서비스 등록기(410)로 전달한다. 그리고 단위 서비스 등록기(410)는 해당 요청에 대해 정상적으로 단위 서비스가 생성된 경우 서비스 저장소(212)에 저장할 것을 요청하고, 서비스 저장소(212)로부터 저장결과 메시지를 전달받는다. 이때 저장결과 메시지는 "complete", "fault", "reject" 등 사용자가 서비스가 제대로 저장되었는지를 알 수 있는 형태의 메시지들로 구성된다. 상기 단위 서비스 등록기(410)는 서비스 저장소(212)에서 전달받은 메시지를 분석하고, 그 결과를 사용자 입출력 핸들러(412)로 전달하여 사용자 화면에 출력한다.
The unit service register 410 stores the unit service in the service storage 212, and notifies the user terminal 210 of the completion of the unit service storage through the user input / output handler 412. Here, when the user requests the storage of the unit service, the request is transmitted to the user input / output handler 412, and the user input / output handler 412 transmits the request to the unit service register 410. When the unit service is normally generated, the unit service register 410 requests to store the service in the service storage 212 and receives a storage result message from the service storage 212. At this time, the save result message is composed of messages in which the user can know whether the service is properly stored, such as "complete", "fault", and "reject". The unit service register 410 analyzes the message received from the service storage 212 and transmits the result to the user input / output handler 412 and outputs the result to the user screen.

<서비스 구성모듈><Service Configuration Module>

이제 본 발명의 바람직한 실시예에 따른 서비스 구성모듈(206)의 구성 및 동작을 도 6을 참조하여 상세히 설명한다. Now, the configuration and operation of the service configuration module 206 according to the preferred embodiment of the present invention will be described in detail with reference to FIG.

상기 서비스 구성모듈(206)은 사용자가 사용자 단말기(210)의 서비스 매쉬업 화면(104)을 통해 선택적으로 구성한 서비스들을 매쉬업하여 하나의 복합 서비스를 구성한다. The service configuration module 206 configures one composite service by mashing up services selectively configured by the user through the service mashup screen 104 of the user terminal 210.

상기한 서비스 구성모듈(206)은 서비스 로더(service loader)(500), 서비스 분석부((Service Analyzer)(502), 서비스 순서 결정부(Service Order Determinator)(504), 서비스 어그리게이터(Service Aggregator)(506), 서비스 디스크립터(Service Descriptor)(508), URI 생성기(URI Generator)(510), 서비스 등록 매니저(Service Registration Manager)(512)로 구성된다. The service configuration module 206 includes a service loader 500, a service analyzer 502, a service order determinator 504, and a service aggregator. Aggregator 506, Service Descriptor 508, URI Generator 510, and Service Registration Manager 512.

상기 서비스 로더(500)는 사용자의 서비스 매쉬업 구성 요청을 받아들이고, 이때 함께 전달된 서비스명 등을 이용하여 서비스 저장소(212)로부터 선택된 서비스의 전체 정보를 요청하고, 그 결과를 전달받는다. The service loader 500 accepts a user's service mashup configuration request, and requests the entire information of the selected service from the service storage 212 using the service name and the like delivered together, and receives the result.

전달된 서비스 정보는 해당 서비스를 분석하고, 사용자가 정한 서비스 실행 순서 등을 분석할 필요가 있다. The delivered service information needs to analyze the service and analyze the service execution order determined by the user.

따라서 서비스 로더(500)는 제공된 정보를 서비스 분석부(502)로 전달하여 해당 서비스가 단위 서비스인지, 복합 서비스인지 등을 분석하고, 복합 서비스라면 해당 서비스 내에서의 서비스 실행 순서 등을 분석한다. 이때 서비스 순서 결정부(504)는 복합 서비스내에 미리 설정된 실행 순서 및 사용자의 선택정보를 토대로 각 서비스의 실행 순서를 결정하여 추후 서비스 명세시 반영될 수 있도록 서비스 실행 순서를 결정한다. Therefore, the service loader 500 transmits the provided information to the service analyzer 502 to analyze whether the corresponding service is a unit service or a complex service, and if the complex service is a service, analyzes the service execution order in the corresponding service. At this time, the service order determination unit 504 determines the execution order of each service based on the execution order set in advance in the composite service and the user's selection information, and determines the service execution order so that the service order can be reflected later.

이와 같이 서비스 분석부(502)에서 분석된 정보와 서비스 순서 결정부(504)에서 결정된 실행 순서 정보는 서비스 어그리게이터(506)에 전달된다. 특히 사용자가 매쉬업을 요청한 서비스가 여러개일 경우, 서비스 어그리게이터(506)는 사용자 선택에 따라 순차적으로 서비스를 적재한다. As such, the information analyzed by the service analyzer 502 and the execution order information determined by the service order determiner 504 are transmitted to the service aggregator 506. In particular, when there are a plurality of services requested by the user for mashup, the service aggregator 506 sequentially loads the services according to the user's selection.

상기 적재된 서비스는 서비스 디스크립터(508)로 전달되며, 상기 서비스 디스크립터(508)는 상기 적재된 서비스를 미리 정해진 서비스 명세규칙에 따라 하나의 복합 서비스로 명세한다. 또한 매쉬업된 서비스는 하나의 복합 서비스로써 서비스 저장소에 저장되어야 하므로, 매쉬업된 서비스도 역시 서비스로 발행되어야 하므로 URI 정보가 필요하다. 따라서 서비스 어그리게이터(506)에서는 서비스 디스크립터(508)로 적재된 정보를 전달함과 동시에 URI 생성기(510)에 URI 생성을 요청한다. The loaded service is delivered to the service descriptor 508, which specifies the loaded service as one composite service according to a predetermined service specification rule. In addition, since the mashed-up service must be stored in the service repository as a complex service, the mashed-up service must also be published as a service, so URI information is required. Therefore, the service aggregator 506 transfers the information loaded into the service descriptor 508 and requests the URI generator 510 to generate the URI.

상기 URI 생성기(510)는 상기 URI 생성요청에 따라 유일한 URI를 생성한다. The URI generator 510 generates a unique URI according to the URI generation request.

상기 서비스 명세와 상기 생성된 URI는 서비스 등록 매니저(512)로 전달된다. The service description and the generated URI are forwarded to a service registration manager 512.

상기 서비스 등록 매니저(512)는 이밖에도 사용자 화면으로부터 매쉬업 서비스 저장 요청을 받아드리고, 매쉬업된 서비스를 서비스 저장소(212)에 저장하도록 요청한다. 그리고 그 처리 결과 및 업데이트된 서비스 목록을 전달받아, 사용자 화면에 전달하는 기능도 수행한다.
In addition, the service registration manager 512 receives a mashup service storage request from the user screen and requests to store the mashup service in the service storage 212. It also performs the function of receiving the processing result and the updated service list and delivering it to the user screen.

<서비스 실행모듈><Service Execution Module>

본 발명의 바람직한 실시예에 따른 서비스 실행모듈(208)의 구성 및 동작을 도 7을 참조하여 상세히 설명한다. The configuration and operation of the service execution module 208 according to the preferred embodiment of the present invention will be described in detail with reference to FIG.

상기 서비스 실행모듈(208)은 매쉬업된 복합 서비스 및 단위 서비스를 실행하는 역할을 이행한다. 여기서, 상기 서비스 실행모듈(208)의 입력(input)은 서비스 실행 요청 및 실행할 서비스이며, 출력 또는 결과는 서비스 실행결과이다. The service execution module 208 performs a role of executing a mashed-up composite service and a unit service. Here, the input of the service execution module 208 is a service execution request and a service to be executed, and the output or result is a service execution result.

상기 서비스 실행모듈(208)은 서비스 어셉터(600)와 서비스 파서(Service Parser)(602)와 서비스 프로세서(service processor)(604)와 SPARQL 실행기(SPARQL executor)(606), 오픈 APL 실행기(open API executor)(608), RSS 실행기(rss executor)(610)와 연결 핸들러(connection handler)(612)와 결과 핸들러(result handler)(614)와 결과 어그리게이터(result aggregator)(616)와 결과 데이터 매니저(result data manager)(618)와 결과 템플릿 제공부(result template)(620)로 구성된다. The service execution module 208 includes a service acceptor 600, a service parser 602, a service processor 604, a SPARQL executor 606, and an open APL executor. API executor 608, RSS executor 610, connection handler 612, result handler 614, result aggregator 616 and results It is composed of a data manager 618 and a result template provider 620.

상기 서비스 어셉터(600)는 사용자가 사용자 화면을 통한 서비스 실행 요청을 인지하고, 서비스 구성모듈(206)이 발행한 서비스 또는 사용자 단말기(210)를 통해 선택된 서비스를 서비스 저장소(212)로부터 독출하여 서비스 파서(602)로 제공한다. The service acceptor 600 recognizes a service execution request through a user screen, and reads a service issued by the service configuration module 206 or a service selected through the user terminal 210 from the service storage 212. Provided to service parser 602.

상기 서비스 파서(602)는 서비스의 정보를 파싱하고, 파싱된 정보를 서비스 프로세서(604)로 제공하여 서비스 정보에 대한 분석을 요청한다. The service parser 602 parses the information of the service and provides the parsed information to the service processor 604 to request analysis of the service information.

상기 서비스 프로세서(604)는 서비스 정보를 이용하여, 서비스 실행 순서, 서비스별 입력(Input), 출력(Output), 데이터 형식 등을 분석하고, 실행을 위해 서비스의 데이터 형식에 따라 SPARQL 실행기(SPARQL executor)(606), 오픈 APL 실행기(open API executor)(608), RSS 실행기(RSS executor)(610)를 실행한다. 이때 서비스들은 RSS, 오픈API, SPARQL 질의와 같이 실행해야 하는 환경이 상이할 수 있다. 따라서 SPARQL 실행기(SPARQL executor)(606), 오픈 API 실행기(open API executor)(608), RSS 실행기(rss executor)(610)는 각 서비스들의 실행 환경에 맞춰 호출된다.The service processor 604 analyzes a service execution order, an input for each service, an output, a data format, and the like using service information, and executes a SPARQL executor according to the data format of the service for execution. 606, an open API executor 608, and an RSS executor 610. In this case, services may have different environments that must be executed such as RSS, OpenAPI, and SPARQL queries. Therefore, the SPARQL executor 606, the open API executor 608, and the RSS executor 610 are called according to the execution environment of each service.

상기 SPARQL 실행기(SPARQL executor)(606), 오픈 APL 실행기(open API executor)(608), RSS 실행기(rss executor)(610)는 해당 서비스의 실행 환경에 맞춰 실행 정보들을 구성하고, 연결 핸들러(612)를 통해 외부의 SPARQL 엔드포인트들(endpoints), OpenAPI, RSS 피더(Feeder) 등과 연계하여 질의를 처리하고, 그 결과를 전달받는다. 이때 질의 처리 결과로 전달 받은 데이터 또는 서비스들은 서로 상이한 데이터 형식을 가질 수 있다. The SPARQL executor 606, the open APL executor 608, and the RSS executor 610 configure execution information according to the execution environment of the corresponding service, and the connection handler 612. ) Is processed in connection with external SPARQL endpoints, OpenAPI, RSS feeder, etc. to process the query and receive the result. In this case, data or services delivered as a result of query processing may have different data formats.

상기 연결 핸들러(612)는 해당 결과(result)를 결과 핸들러(614)로 제공한다. The connection handler 612 provides the corresponding result to the result handler 614.

상기 결과 핸들러(614)는 상기 결과를 링크드 데이터 환경에 적합한 데이터 형태로 변경하여 결과 어그리게이터(616)로 전송한다. The result handler 614 converts the result into a data type suitable for the linked data environment and transmits the result to the result aggregator 616.

본 발명의 서비스 실행 모듈이 실행하는 서비스가 복합 서비스인 경우는 다수 개의 서비스 실행결과가 병렬적이거나 절차적으로 발생하므로, 상기 결과 어그리게이터(616)는 병렬적으로 실행되는 복합서비스의 경우 다수의 서비스 실행 결과를 종합하여 적재하고, 절차적으로 실행되는 복합서비스인 경우는 선행 서비스의 실행 결과를 후행 서비스의 입력값으로 전달하며, 최종적으로 실행된 서비스의 실행 결과를 결과 데이터 매니저(618)로 전송한다.When the service executed by the service execution module of the present invention is a complex service, since a plurality of service execution results are generated in parallel or procedurally, the result aggregator 616 is configured in the case of a complex service executed in parallel. In the case of a complex service executed by combining the service execution result of the service, and executing a procedural service, the execution result of the preceding service is transmitted as an input value of the subsequent service, and the result data manager 618 transmits the execution result of the finally executed service. To send.

상기 결과 데이터 매니저(618)는 결과 어그리게이터(616)로부터 적재(또는 수집, 조합)된 서비스 실행 결과를 전달받고, 사용자 편의성을 높이기 위해 제공되는 결과 템플릿 제공부(620)가 제공하는 결과 템플릿(Result Template)과 결합하여 실행결과로서 사용자에게 전달한다. The result data manager 618 receives a service execution result loaded (or collected or combined) from the result aggregator 616 and provides a result template provided by the result template provider 620 provided to increase user convenience. Combine with (Result Template) and deliver to user as execution result.

200 : 서비스 매쉬업 시스템
202 : 유효성 확인모듈
204 : 프로세스 발행모듈
206 : 서비스 구성모듈
208 : 서비스 실행모듈
210 : 사용자 단말기
212 : 서비스 저장소
200: service mashup system
202: Validation module
204 process publishing module
206: service configuration module
208 service execution module
210: user terminal
212: service store

Claims (24)

서비스 매쉬업 시스템에 있어서,
사용자 단말기를 통해 서비스 구성을 위한 정보에 대한 유효성 검사 요청 메시지를 입력받아 유효성을 확인하는 유효성 확인모듈;
상기 유효성이 확인된 서비스 구성을 위한 정보를 포함하는 프로세스 발행 요청 메시지를 수신받아, 그 서비스 구성을 위한 정보에 대해 URI를 생성하고, 그 URI과 상기 서비스 구성을 위한 정보와 프로세스에 대한 정보를 입력받아 프로세스를 명세하고, 그 프로세스 명세를 포함하여 단위 서비스를 발행하는 프로세스 발행모듈;을 구비함을 특징으로 하는 서비스 매쉬업 시스템.
In the service mashup system,
A validation module configured to receive a validation request message for information on service configuration through a user terminal and verify validity;
Receiving a process issuance request message including the information for the service configuration is validated, generates a URI for the information for the service configuration, and inputs the URI, information for the service configuration and information about the process And a process issuing module for receiving a process and specifying a process and issuing a unit service including the process specification.
제1항에 있어서,
서비스 저장소;
상기 발행된 단위 서비스 및 상기 서비스 저장소에 저장된 단위 서비스 및 하나 이상의 서비스가 조합되어 생성된 복합 서비스 중 일부를 선택받고, 새로운 서비스에 대한 URI를 생성하고, 그 URI와 선택된 서비스들의 정보로 복합 서비스를 명세하여 발행하며, 상기 발행된 복합 서비스를 상기 서비스 저장소에 저장하는 서비스 구성모듈;을 더 구비하며,
상기 서비스 저장소에는 단위 서비스 및 복합 서비스임을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 1,
Service repository;
The selected unit service, a unit service stored in the service repository, and one or more services that are combined with one or more services generated are selected, and a URI for a new service is generated, and the composite service is composed of the URI and selected services. And specifying and publishing a service configuration module for storing the issued composite service in the service repository.
The service mashup system, characterized in that the service repository is a unit service and a complex service.
제1항에 있어서,
상기 유효성 확인모듈은,
상기 사용자 단말기를 통해 URL 및 쿼리를 포함하는 서비스 구성을 위한 정보에 대한 유효성 검사 요청 메시지를 입력받아 상기 URL에 대응되는 웹 자원으로 쿼리를 전송하고,
상기 웹 자원으로부터 상기 쿼리에 대한 처리결과가 수신되면,
상기 처리결과가 유효한지 여부를 판단하고,
그 결과를 상기 사용자 단말기를 통지함을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 1,
The validation module,
Receives a validity request message for information on a service configuration including a URL and a query through the user terminal and transmits a query to a web resource corresponding to the URL,
When the processing result of the query is received from the web resource,
Determine whether the processing result is valid;
And a result of notifying the user terminal of the result.
제3항에 있어서,
상기 유효성 확인모듈은,
상기 사용자 단말기를 통해 URL 및 쿼리를 포함하는 서비스 구성을 위한 정보에 대한 유효성 검사 요청 메시지를 입력받는 데이터 어셉터;
상기 데이터 어셉터를 통해 유효성 검사 요청 메시지를 제공받아, URL과 쿼리를 분리하여 출력하고, 상기 쿼리에 대한 처리 결과가 수신되면 그 결과가 유효한지 여부를 통해 서비스 구성을 위한 정보에 대한 유효성을 판단하고, 그 결과를 출력하는 유효성 체커;
상기 유효성 체커로부터 URL 및 쿼리를 제공받아, 상기 URL에 대응되는 웹 자원에 접속하여 상기 쿼리를 제공하고, 그 웹 자원으로부터 상기 쿼리에 대한 처리결과를 제공받아 상기 유효성 체커로 전송하는 연결 매니저;
상기 유효성 체커로부터 유효성 판단별과를 제공받아 상기 사용자 단말기 및 상기 프로세스 발행모듈로 제공하는 결과 핸들러로 구성됨을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 3,
The validation module,
A data acceptor receiving a validation request message for information on a service configuration including a URL and a query through the user terminal;
Receives a validation request message through the data acceptor, outputs a URL and a query separately, and when the processing result of the query is received, determines the validity of the information for service configuration through whether the result is valid. A validity checker for outputting the result;
A connection manager receiving a URL and a query from the validity checker, accessing a web resource corresponding to the URL, providing the query, and receiving a processing result of the query from the web resource and transmitting the result to the validity checker;
Service mashup system comprising a result handler for receiving the validity check by the validity checker provided to the user terminal and the process issuing module.
제3항에 있어서,
상기 프로세스 발행모듈은,
사용자 단말기를 통해 단위 서비스 발행이 요청되면,
URI를 생성하고,
그 생성된 URI와,
상기 유효성 확인모듈에 의해 유효한 것으로 판단된 URL과 쿼리와 상기 사용자 단말기를 통해 입력되는 프로세스에 대한 정보를 미리 정의된 프로세스 명세 규칙에 따라 프로세스를 명세하고, 그 프로세스 명세를 포함하는 단위 서비스를 발행함을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 3,
The process issuance module,
When a unit service issuance is requested through the user terminal,
Create a URI,
The generated URI,
A process is specified according to a predefined process specification rule based on a URL and a query determined to be valid by the validation module and information about a process input through the user terminal, and a unit service including the process specification is issued. Service mashup system, characterized in that.
제5항에 있어서,
상기 프로세스 발행모듈은,
상기 유효성 확인모듈을 통해 유효한 것으로 판단된 URL과 쿼리와 사용자 단말기로부터 입력되는 프로세스에 대한 정보를 입력받는 데이터 어셉터;
URI를 생성하는 URI 생성기;
상기 데이터 어셉터로부터 URL과 쿼리와 사용자 단말기로부터 입력되는 프로세스에 대한 정보를 파싱하는 데이터 파서;
상기 파싱된 URL과 쿼리와 프로세스에 대한 정보를 미리 정의된 프로세스 명세 규칙에 따라 명세하는 프로세스 디스크립터;
상기 URI와 상기 프로세스의 명세를 제공받아 결합하여 단위 서비스로 생성하는 프로세스 어그리게이터;
상기 단위 서비스를 제공받아 서비스 저장소에 저장하는 단위 서비스 등록기;를 포함하는 것을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 5,
The process issuance module,
A data acceptor for receiving a URL, a query determined by the validity checking module, and information about a process input from a user terminal;
A URI generator for generating a URI;
A data parser for parsing URLs and queries from the data acceptor and information about processes entered from user terminals;
A process descriptor for specifying the parsed URL, the information about the query and the process according to a predefined process specification rule;
A process aggregator receiving the URI and the specification of the process and combining the URI and the process to generate a unit service;
And a unit service register for receiving the unit service and storing the unit service in a service repository.
제6항에 있어서,
상기 프로세스 발행모듈이,
상기 사용자 단말기와의 입출력 데이터를 핸들링을 담당하는 사용자 입출력 핸들러를 더 구비함을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 6,
The process issuance module,
And a user input / output handler for handling input / output data with the user terminal.
제2항에 있어서,
상기 서비스 구성모듈은,
상기 프로세스 발행모듈이 발행한 단위 서비스 및 상기 서비스 저장소에 저장된 단위 서비스 및 복합서비스 중 사용자에 의해 선택된 하나 이상의 서비스를 로드하는 서비스 로더;
상기 서비스 로더에 의해 로드된 하나 이상의 서비스를 분석하는 서비스 분석부;
상기 하나 이상의 서비스의 실행순서를 사용자의 선택과 복합 서비스 내의 서비스 실행순서에 따라 결정하는 서비스 순서 결정부;
상기 하나 이상의 서비스를 실행순서에 따라 적재하는 서비스 어그리게이터;
상기 서비스 어그리게이터에 적재된 하나 이상의 서비스를 미리 정해진 서비스 명세 규칙에 따라 명세하는 서비스 디스크립터;
상기 하나 이상의 복합 서비스로 구성되는 새로운 서비스에 대한 URI를 생성하는 URI 생성기;
상기 하나 이상의 서비스에 대한 명세와 상기 새로운 복합 서비스에 대한 URI를 새로운 복합 서비스로 발행하여 서비스 저장소에 등록하는 서비스 등록 매니저;를 구비함을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 2,
The service configuration module,
A service loader for loading one or more services selected by a user from among unit services issued by the process publishing module and unit services and composite services stored in the service repository;
A service analyzer analyzing one or more services loaded by the service loader;
A service order determiner configured to determine an execution order of the one or more services according to a user's selection and a service execution order in a composite service;
A service aggregator for loading the at least one service in an execution order;
A service descriptor for specifying one or more services loaded on the service aggregator according to a predetermined service specification rule;
A URI generator for generating a URI for a new service consisting of the one or more composite services;
And a service registration manager for issuing a specification for the one or more services and a URI for the new composite service as a new composite service and registering it in a service repository.
제2항에 있어서,
상기 서비스 구성모듈에 의해 발행된 서비스 또는 상기 서비스 저장소에 등록된 서비스에 대한 실행요청에 따라,
상기 서비스를 파싱하고, 그 파싱된 서비스를 실행하고, 그 실행결과를 상기 사용자 단말기로 제공하는 서비스 실행모듈;을 더 구비함을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 2,
According to the execution request for a service issued by the service configuration module or a service registered in the service repository,
And a service execution module for parsing the service, executing the parsed service, and providing the execution result to the user terminal.
제9항에 있어서,
상기 서비스 실행모듈은,
상기 서비스 저장소 또는 상기 서비스 구성모듈로부터 단위 또는 복합 서비스를 입력받는 서비스 어셉터;
상기 서비스 어셉터가 입력받은 단위 또는 복합 서비스를 파싱하는 서비스 파서;
단위 서비스의 경우에는 데이터 타입을 분석하고, 복합 서비스의 경우에는 단위 서비스 실행순서에 따라 단위 서비스별로 데이터 타입을 분석하고, 분석된 데이터 타입에 따라 출력하는 서비스 프로세서;
데이터 타입에 따라 단위 서비스를 입력받아 실행하는 다수의 실행기;
상기 다수의 실행기의 실행을 위해 외부 웹 자원과 상기 다수의 실행기를 연결하는 연결 핸들러;
상기 다수의 실행기로부터의 처리결과를 입력받아 적재하는 결과 어그리게이터;
상기 적재된 결과를 사용자 단말기로 제공하는 결과 데이터 매니저;로 구성됨을 특징으로 하는 서비스 매쉬업 시스템.
10. The method of claim 9,
The service execution module,
A service acceptor for receiving a unit or complex service from the service repository or the service configuration module;
A service parser for parsing a unit or composite service input by the service acceptor;
A service processor for analyzing a data type in the case of a unit service, and analyzing the data type for each unit service according to an execution order of a unit service in a complex service, and outputting the data type according to the analyzed data type;
A plurality of executors for receiving and executing unit services according to data types;
A connection handler connecting an external web resource and the plurality of executors to execute the plurality of executors;
A result aggregator that receives and loads the processing results from the plurality of executors;
And a result data manager configured to provide the loaded result to a user terminal.
제10항에 있어서,
상기 서비스 실행모듈이,
상기 다수의 실행기로부터의 처리결과를 입력받아 링크드 데이터 환경에 따른 데이터 형태로 변경한 후에 상기 결과 어그리게이터로 전송하는 결과 핸들러;를 더 구비함을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 10,
The service execution module,
And a result handler which receives the processing results from the plurality of executors, converts the data into a data format according to the linked data environment, and sends the result handler to the result aggregator.
제10항에 있어서,
상기 서비스 실행모듈이,
미리 저장해둔 결과 템플릿을 제공하는 결과 템플릿 제공부;를 더 구비하며,
상기 결고 데이터 매니저가, 상기 결과 템플릿 제공부로부터의 결과 템플릿과 상기 적재된 결과를 결합하여 상기 사용자 단말기로 제공함을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 10,
The service execution module,
It further comprises a result template providing unit for providing a result template stored in advance;
And the result data manager combines the result template from the result template providing unit and the loaded result to the user terminal.
제10항에 있어서,
상기 다수의 실행기는,
RSS 실행기,
오픈 API 실행기,
SPARQL 실행기임을 특징으로 하는 서비스 매쉬업 시스템.
The method of claim 10,
The plurality of executors,
RSS Launcher,
Open API launcher,
A service mashup system characterized by being a SPARQL launcher.
서비스 매쉬업 방법에 있어서,
사용자 단말기를 통해 서비스 구성을 위한 정보에 대한 유효성 검사 요청 메시지를 입력받아 유효성을 확인하는 유효성 확인 단계;
상기 유효성이 확인된 서비스 구성을 위한 정보를 포함하는 프로세스 발행 요청 메시지를 수신받아, 그 서비스 구성을 위한 정보에 대해 URI를 생성하고, 그 URI과 상기 서비스 구성을 위한 정보와 프로세스에 대한 정보를 입력받아 프로세스를 명세하고, 그 프로세스 명세를 포함하여 단위 서비스를 발행하는 프로세스 발행단계;를 구비함을 특징으로 하는 서비스 매쉬업 방법.
In the service mashup method,
A validity checking step of receiving a validity request message for information on a service configuration through a user terminal to verify validity;
Receiving a process issuance request message including the information for the service configuration is validated, generates a URI for the information for the service configuration, and inputs the URI, information for the service configuration and information about the process And a process issuing step of specifying a process and issuing a unit service including the process specification.
제14항에 있어서,
상기 발행된 단위 서비스 및 서비스 저장소에 저장된 단위 서비스 및 하나 이상의 서비스가 조합되어 생성된 복합 서비스 중 일부를 선택받고, 새로운 서비스에 대한 URI를 생성하고, 그 URI와 선택된 서비스들의 정보로 복합 서비스를 명세하여 발행하며, 상기 발행된 복합 서비스를 상기 서비스 저장소에 저장하는 서비스 구성 단계;를 더 구비함을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 14,
The selected unit service and the unit service stored in the service repository and the one or more services are selected from a combination of some of the composite services generated, generate a URI for a new service, and specify the composite service with the URI and the information of the selected services And issuing a service, and configuring the service to store the issued composite service in the service repository.
제14항에 있어서,
상기 유효성 확인 단계는,
상기 사용자 단말기를 통해 URL 및 쿼리를 포함하는 서비스 구성을 위한 정보에 대한 유효성 검사 요청 메시지를 입력받아 상기 URL에 대응되는 웹 자원으로 쿼리를 전송하는 단계;
상기 웹 자원으로부터 상기 쿼리에 대한 처리결과가 수신되면,
상기 처리결과가 유효한지 여부를 판단하고,
그 결과를 상기 사용자 단말기를 통지하는 단계로 구성됨을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 14,
The validation step,
Receiving a validity request message for information on a service configuration including a URL and a query through the user terminal and transmitting a query to a web resource corresponding to the URL;
When the processing result of the query is received from the web resource,
Determine whether the processing result is valid;
And notifying the user terminal of the result of the service mashup method.
제16항에 있어서,
상기 유효성 확인 단계는,
데이터 어셉터가 상기 사용자 단말기를 통해 URL 및 쿼리를 포함하는 서비스 구성을 위한 정보에 대한 유효성 검사 요청 메시지를 입력받는 단계;
유효성 체커가, 상기 데이터 어셉터를 통해 유효성 검사 요청 메시지를 제공받아, URL과 쿼리를 분리하여 출력하고, 상기 쿼리에 대한 처리 결과가 수신되면 그 결과가 유효한지 여부를 통해 서비스 구성을 위한 정보에 대한 유효성을 판단하고, 그 결과를 출력하는 단계;
연결 매니저가, 상기 유효성 체커로부터 URL 및 쿼리를 제공받아, 상기 URL에 대응되는 웹 자원에 접속하여 상기 쿼리를 제공하고, 그 웹 자원으로부터 상기 쿼리에 대한 처리결과를 제공받아 상기 유효성 체커로 전송하는 단계;
결과 핸들러가 상기 유효성 체커로부터 유효성 판단별과를 제공받아 상기 사용자 단말기 및 상기 프로세스 발행모듈로 제공하는 단계;를 구비함을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 16,
The validation step,
Receiving, by a data acceptor, a validity request message for information on a service configuration including a URL and a query through the user terminal;
The validity checker receives the validation request message through the data acceptor, separates the URL from the query, and outputs the result. When the processing result of the query is received, the validity checker determines whether the result is valid or not. Determining validity and outputting the result;
The connection manager receives a URL and a query from the validity checker, accesses a web resource corresponding to the URL, provides the query, receives a processing result of the query from the web resource, and transmits the result to the validity checker. step;
And a result handler receiving the validity determination result from the validity checker and providing the result to the user terminal and the process issuing module.
제16항에 있어서,
상기 프로세스 발행단계가,
사용자 단말기를 통해 단위 서비스 발행이 요청되면, URI를 생성하는 단계;
그 생성된 URI와, 상기 유효성 확인모듈에 의해 유효한 것으로 판단된 URL과 쿼리와 상기 사용자 단말기를 통해 입력되는 프로세스에 대한 정보를 미리 정의된 프로세스 명세 규칙에 따라 프로세스를 명세하고, 그 프로세스 명세를 포함하는 단위 서비스를 발행하는 단계;를 구비함을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 16,
The process issuance step,
Generating a URI when a unit service issuance is requested through a user terminal;
The generated URI, the URL determined to be valid by the validation module, the query, and the information about the process input through the user terminal are specified in accordance with a predefined process specification rule, and the process specification is included. Issuing a unit service to the; service mashup method comprising the.
제18항에 있어서,
상기 프로세스 발행단계는,
유효한 것으로 판단된 URL과 쿼리와 사용자 단말기로부터 입력되는 프로세스에 대한 정보를 입력받는 단계;
URI를 생성하는 단계;
상기 URL과 쿼리와 사용자 단말기로부터 입력되는 프로세스에 대한 정보를 파싱하는 단계;
상기 파싱된 URL과 쿼리와 프로세스에 대한 정보를 미리 정의된 프로세스 명세 규칙에 따라 명세하는 단계;
상기 URI와 상기 프로세스의 명세를 제공받아 결합하여 단위 서비스로 생성하는 단계;
상기 단위 서비스를 제공받아 서비스 저장소에 저장하는 단계;를 포함하는 것을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 18,
The process issuance step,
Receiving a URL, a query determined to be valid, and information on a process input from a user terminal;
Generating a URI;
Parsing information about the URL, a query, and a process input from a user terminal;
Specifying information about the parsed URL, the query, and the process according to a predefined process specification rule;
Generating a unit service by combining the URI and the specification of the process;
Receiving the unit service and storing the received service in a service repository.
제15항에 있어서,
상기 서비스 구성 단계가,
상기 프로세스 발행단계에서 발행한 단위 서비스 및 상기 서비스 저장소에 저장된 단위 서비스 및 복합서비스 중 사용자에 의해 선택된 하나 이상의 서비스를 로드하는 단계;
상기 로드된 하나 이상의 서비스를 분석하는 단계;
상기 하나 이상의 서비스의 실행순서를 사용자의 선택과 복합 서비스 내의 서비스 실행순서에 따라 결정하는 단계;
상기 하나 이상의 서비스를 실행순서에 따라 적재하는 단계;
상기 적재된 하나 이상의 서비스를 미리 정해진 서비스 명세 규칙에 따라 명세하는 단계;
상기 하나 이상의 복합 서비스로 구성되는 새로운 서비스에 대한 URI를 생성하는 단계;
상기 하나 이상의 서비스에 대한 명세와 상기 새로운 복합 서비스에 대한 URI를 새로운 복합 서비스로 발행하여 서비스 저장소에 등록하는 단계;를 구비함을 특징으로 하는 서비스 매쉬업 방법.
16. The method of claim 15,
The service configuration step,
Loading at least one service selected by a user from among unit services issued in the process issuing step and unit services and composite services stored in the service repository;
Analyzing the loaded one or more services;
Determining an execution order of the one or more services according to a user's selection and a service execution order in a composite service;
Loading the at least one service in an execution order;
Specifying the loaded at least one service according to a predetermined service specification rule;
Generating a URI for a new service consisting of the one or more composite services;
Issuing a specification for the one or more services and a URI for the new composite service as a new composite service and registering it in a service repository.
제15항에 있어서,
상기 서비스 구성 단계에 의해 발행된 서비스 또는 상기 서비스 저장소에 등록된 서비스에 대한 실행요청에 따라,
상기 서비스를 파싱하고, 그 파싱된 서비스를 실행하고, 그 실행결과를 상기 사용자 단말기로 제공하는 서비스 실행 단계;를 더 구비함을 특징으로 하는 서비스 매쉬업 방법.
16. The method of claim 15,
According to the execution request for a service issued by the service configuration step or a service registered in the service repository,
And a service execution step of parsing the service, executing the parsed service, and providing the execution result to the user terminal.
제21항에 있어서,
상기 서비스 실행 단계는,
상기 서비스 저장소 또는 상기 서비스 구성모듈로부터 단위 또는 복합 서비스를 입력받는 제1단계;
입력받은 단위 또는 복합 서비스를 파싱하는 제2단계;
단위 서비스의 경우에는 데이터 타입을 분석하고, 복합 서비스의 경우에는 단위 서비스 실행순서에 따라 단위 서비스별로 데이터 타입을 분석하고, 분석된 데이터 타입에 따라 출력하는 제3단계;
단위 서비스별로 데이터 타입에 부합되는 실행기를 통해 단위 서비스를 실행하는 제4단계;
상기 단위 서비스별 처리결과를 입력받아 적재하는 제5단계;
상기 적재된 결과를 사용자 단말기로 제공하는 제6단계;로 구성됨을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 21,
The service execution step,
A first step of receiving a unit or complex service from the service repository or the service configuration module;
Parsing the received unit or composite service;
A third step of analyzing a data type in the case of a unit service, and analyzing a data type for each unit service according to an execution order of a unit service in a complex service, and outputting the data type according to the analyzed data type;
A fourth step of executing the unit service through an executor corresponding to the data type for each unit service;
A fifth step of receiving and loading the processing result for each unit service;
And a sixth step of providing the loaded result to the user terminal.
제22항에 있어서,
상기 서비스 실행 단계가,
상기 제4단계의 수행에 따라 상기 단위 서비스별 처리결과를 입력받아 링크드 데이터 환경에 따른 데이터 형태로 변경한 후에 상기 제5단계로 진입하여 변경된 단위 서비스별 처리결과를 적재되게 하는 단계;를 더 구비함을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 22,
The service execution step,
And receiving the processing result for each unit service according to the execution of the fourth step, changing the data result according to the linked data environment, and entering the fifth step to load the changed processing result for each unit service. Service mashup method characterized in that.
제22항에 있어서,
상기 제6단계가,
상기 적재된 결과를 미리 저장해둔 결과 템플릿에 결합하여 사용자 단말기로 제공하는 것임을 특징으로 하는 서비스 매쉬업 방법.
The method of claim 22,
The sixth step,
The service mashup method, characterized in that to provide to the user terminal by combining the loaded result in the result template stored in advance.
KR1020100140195A 2010-12-31 2010-12-31 Service mashup method and apparatus in environment of linked data KR20120078033A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100140195A KR20120078033A (en) 2010-12-31 2010-12-31 Service mashup method and apparatus in environment of linked data
PCT/KR2011/010214 WO2012091444A2 (en) 2010-12-31 2011-12-28 Service mashup method and service mashup system in a linked data environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100140195A KR20120078033A (en) 2010-12-31 2010-12-31 Service mashup method and apparatus in environment of linked data

Publications (1)

Publication Number Publication Date
KR20120078033A true KR20120078033A (en) 2012-07-10

Family

ID=46383713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100140195A KR20120078033A (en) 2010-12-31 2010-12-31 Service mashup method and apparatus in environment of linked data

Country Status (2)

Country Link
KR (1) KR20120078033A (en)
WO (1) WO2012091444A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101478259B1 (en) * 2013-05-28 2014-12-31 숭실대학교산학협력단 Teminology ontology search service offering apparatus and the method thereof
KR101952637B1 (en) * 2018-05-31 2019-02-27 주식회사 팬라인 Apparatus and method for providing service packages
WO2019164293A1 (en) * 2018-02-21 2019-08-29 주식회사 팬라인 Information search method and apparatus utilizing non-hierarchical database structure

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788517B2 (en) * 2006-06-28 2014-07-22 Microsoft Corporation Intelligently guiding search based on user dialog

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101478259B1 (en) * 2013-05-28 2014-12-31 숭실대학교산학협력단 Teminology ontology search service offering apparatus and the method thereof
WO2019164293A1 (en) * 2018-02-21 2019-08-29 주식회사 팬라인 Information search method and apparatus utilizing non-hierarchical database structure
KR101952637B1 (en) * 2018-05-31 2019-02-27 주식회사 팬라인 Apparatus and method for providing service packages

Also Published As

Publication number Publication date
WO2012091444A2 (en) 2012-07-05
WO2012091444A3 (en) 2012-12-06
WO2012091444A9 (en) 2013-03-14

Similar Documents

Publication Publication Date Title
US8073857B2 (en) Semantics-based data transformation over a wire in mashups
US9239709B2 (en) Method and system for an interface certification and design tool
US9535966B1 (en) Techniques for aggregating data from multiple sources
US8645913B2 (en) Web-service based generation of business objects
CN102567400B (en) Method for realizing Web visit and Web server
Vasiliev SOA and WS-BPEL
Kurtz et al. ASP. NET Web API 2: Building a REST Service from Start to Finish
KR20120078033A (en) Service mashup method and apparatus in environment of linked data
Daniel et al. Mashups
US20120102406A1 (en) Composition model for components of a user interface framework for web applications
US9304983B2 (en) Method and system for Xform generation and processing application integration framework
Biehl GraphQL API Design
Maarouf et al. XML integrated environment for service-oriented data management
Honkala Web user interaction: a declarative approach based on XForms
Purer Web service composition in drupal
Hasim et al. Developing Microframework based on Singleton and Abstract Factory Design Pattern
US11238220B1 (en) Dynamic user interface framework
Gatti et al. Domain-independent data validation and content assistance as a service
Araújo Hands-On RESTful Web Services with TypeScript 3: Design and Develop Scalable RESTful APIs for Your Applications
Pohja Web application user interface technologies
EP3588298B1 (en) Enabling synchronous editable signals in process modeling
Stringer et al. Building a Live Blogging Tool
Owen Applying web technologies to large scale IoT deployments
KR20130103646A (en) The service mashup system and method for fusioning openapis and linked data
Sundar Invocation of Web services in Glycomics portal

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
NORF Unpaid initial registration fee