KR100698236B1 - A service method with server-client unification network system based on peer to peer - Google Patents

A service method with server-client unification network system based on peer to peer Download PDF

Info

Publication number
KR100698236B1
KR100698236B1 KR1020050028437A KR20050028437A KR100698236B1 KR 100698236 B1 KR100698236 B1 KR 100698236B1 KR 1020050028437 A KR1020050028437 A KR 1020050028437A KR 20050028437 A KR20050028437 A KR 20050028437A KR 100698236 B1 KR100698236 B1 KR 100698236B1
Authority
KR
South Korea
Prior art keywords
peer
server
talk
network
service
Prior art date
Application number
KR1020050028437A
Other languages
Korean (ko)
Other versions
KR20060107010A (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 KR1020050028437A priority Critical patent/KR100698236B1/en
Publication of KR20060107010A publication Critical patent/KR20060107010A/en
Application granted granted Critical
Publication of KR100698236B1 publication Critical patent/KR100698236B1/en

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02DFOUNDATIONS; EXCAVATIONS; EMBANKMENTS; UNDERGROUND OR UNDERWATER STRUCTURES
    • E02D5/00Bulkheads, piles, or other structural elements specially adapted to foundation engineering
    • E02D5/74Means for anchoring structural elements or bulkheads
    • E02D5/80Ground anchors
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02DFOUNDATIONS; EXCAVATIONS; EMBANKMENTS; UNDERGROUND OR UNDERWATER STRUCTURES
    • E02D17/00Excavations; Bordering of excavations; Making embankments
    • E02D17/20Securing of slopes or inclines

Landscapes

  • Engineering & Computer Science (AREA)
  • Structural Engineering (AREA)
  • Mining & Mineral Resources (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Paleontology (AREA)
  • Civil Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 피어 투 피어 기반에서의 네트워크를 구성하고 그 네트워크에서의 피어들간의 자원 공유방법과 메시지 등의 각종 서비스를 구현하여 통합적으로 서비스를 제공하는 방법에 관한 것이다. The present invention relates to a method of constructing a network on a peer-to-peer basis and implementing a variety of services such as a resource sharing method and messages between peers in the network and providing a service in an integrated manner.

본 발명의 통합 미들웨어는 특정 파일의 전송뿐만 아니라 이벤트 전송, 데이터베이스 핸들링, 업데이트, 리모팅, 스트리밍 등의 서비스를 통합하여 일원화하고 이를 피어 내에 서버 영역에 구현함으로써 각 피어의 서버로서의 기능을 강화하고 전체 네트워크의 유연성을 높였으며, 네트워크 기반의 프로그래밍을 지원하고 어플리케이션 레벨에서 컴포넌트로 구성되고, 유무선 관계없이 다양한 OS를 채용한 기기들간의 정보교환이 동일한 어플리케이션 인터페이스를 사용하기 때문에 기기의 물리적인 네트워킹 방법이나 사용환경에 관계없이 시스템 구축이 가능한 장점이 있으며, 이로써 네트워크를 위한 프로그램을 별도로 개발하지 않아도 되며, 개발에 투여되는 인원 및 시간을 절약할 수 있다. The integrated middleware of the present invention integrates and centralizes services such as event transmission, database handling, update, remote, and streaming as well as transfer of specific files, and implements them in a server area within a peer to enhance the function as a server of each peer and the entire network Device's physical networking method and use because it supports network-based programming, consists of components at the application level, and exchanges information between devices using various OS regardless of wired or wireless. Regardless of the environment, there is an advantage that the system can be constructed, and thus, there is no need to develop a program for the network, and it saves a lot of time and manpower.

피어 투 피어, 통합 미들웨어, 어플리케이션, 컴포넌트, 인증, 파일 전송, 메시지 전송, 이벤트 전송, 원격, 데이터베이스 핸들링 Peer-to-Peer, Integrated Middleware, Applications, Components, Authentication, File Transfer, Message Transfer, Event Transfer, Remote, Database Handling

Description

피어 투 피어 기반에서의 서버-클라이언트 통합 네트워크를 이용한 일원화된 통합 서비스 제공방법{A SERVICE METHOD WITH SERVER-CLIENT UNIFICATION NETWORK SYSTEM BASED ON PEER TO PEER}A unified service providing method using server-client integrated network based on peer to peer {A SERVICE METHOD WITH SERVER-CLIENT UNIFICATION NETWORK SYSTEM BASED ON PEER TO PEER}

도 1은 본 발명의 X-Talk 프로토콜 기반의 데이터 패킷 포맷의 기본적인 구성을 나타내는 도면이다. 1 is a diagram showing the basic configuration of a data packet format based on the X-Talk protocol of the present invention.

도 2는 본 발명의 X-Talk 클라이언트(X-Talk 컴포넌트를 내장한 어플리케이션) 간에 이루어지는 통신의 패킷 구조를 개략적으로 나타낸 도면이다.2 is a diagram schematically showing a packet structure of communication between X-Talk clients (applications with X-Talk components embedded) of the present invention.

도 3은 본 발명의 X-Talk Peer ID와 피어 Code의 매핑에 대한 개략적인 구성을 나타낸 도면이다.3 is a diagram illustrating a schematic configuration for mapping an X-Talk Peer ID and a peer code of the present invention.

도 4는 본 발명의 Peer ID Code의 비트구성을 개략적으로 나타낸 도면이다. 4 is a diagram schematically showing a bit structure of a Peer ID code of the present invention.

도 5는 본 발명의 X-Talk 컴포넌트의 개략적인 구성도이다.5 is a schematic structural diagram of an X-Talk component of the present invention.

도 6은 본 발명의 인터페이스 구조를 개략적으로 나타낸 도면이다.6 is a view schematically showing the interface structure of the present invention.

도 7은 본 발명의 일 실시예로서 X-Talk에서의 기본 Service Request and Reply 프로세스를 나타낸 플로우도이다.7 is a flowchart illustrating a basic Service Request and Reply process in X-Talk as an embodiment of the present invention.

도 8은 본 발명의 실시예에 따라 목적지 피어 B로부터 출발지 피어 A에게로 Return Event/Return Data를 전송하는 프로세스에 대한 개략적인 플로우도이다.8 is a schematic flow diagram of a process for transmitting Return Event / Return Data from a destination peer B to a source peer A in accordance with an embodiment of the present invention.

도 9는 출발지 피어 A의 어플리케이션에서 목적지 피어 B의 어플리케이션으 로 Event/Message를 전송할 때의 개략적인 과정에 대한 플로우도이다.FIG. 9 is a flowchart illustrating a schematic process of transmitting an Event / Message from an application of a source peer A to an application of a destination peer B. Referring to FIG.

도 10은 세 개의 피어가 있는 경우의 본 발명에 따른 파일 전송의 개략적인 의미를 나타낸 도면이다.FIG. 10 is a diagram illustrating a schematic meaning of file transfer according to the present invention when there are three peers.

도 11은 위 도 10의 다른 실시형태를 나타낸 도면이다.FIG. 11 is a diagram showing another embodiment of FIG. 10.

도 12는 위 도 10의 피어 A에서 피어 B에 명령하여 피어 B의 file을 피어 C에 전송하고자 할 때의 개략적인 전체 프로세스를 나타낸 플로우도이다.FIG. 12 is a flowchart illustrating the overall overall process when the peer A of FIG. 10 wants to instruct the peer B to transfer the file of the peer B to the peer C.

도 13은 피어 상호 간에 자유로운 Database 핸들링에 관한 개략적인 프로세스를 나타낸 플로우도이다13 is a flow diagram illustrating a schematic process for free database handling between peers.

도 14는 본 발명의 B-Server의 개략적인 구성을 나타낸 구성도이다.14 is a configuration diagram showing a schematic configuration of a B-Server of the present invention.

도 15는 본 발명을 B-Server의 관점에서 바라본 개략적인 시스템 구성도이다.15 is a schematic system configuration view of the present invention from the perspective of a B-Server.

본 발명은 피어 투 피어 기반에서의 네트워크를 구성하고 그 네트워크에서의 피어들간의 자원 공유방법과 메시지 등의 각종 서비스를 구현하는 방법에 관한 것이다. The present invention relates to a method of constructing a network on a peer-to-peer basis and implementing various services such as message sharing and resource sharing between peers in the network.

일반적으로 네트워크들은 클라이언트-서버(C/S) 구조나 피어-투-피어(P2P) 구조를 갖는 것으로 분류될 수 있다. P2P 기반의 네트워크에서, 하나의 디바이스 또는 네트워크 노드(node)는 피어(peer)로 간주되며, 각 피어들은 서로 직접 통신 할 수도 있어 중앙 네트워크 구조가 요구되지 않으며, 이들 피어들은 또한 서로 협조하여 서비스와 자원을 서로 공유하므로, 소위 말하는 피어-그룹을 형성한다. 또한, 피어들은 어느 때나 네트워크에 연결될 수 있거나 네트워크로부터 분리될 수 있으며, 그 시스템에 임의로 결합하기도 하고 탈퇴하기도 하며, 또는 피어-그룹들은 분리되거나 합쳐지는 특성을 갖기 때문에 다이내믹한 네트워크를 형성할 수 있다. 반면에 클라이언트-서버의 네트워크 구조는 네트워크를 통합적으로 관리, 조정할 수 있는 장점이 있으며, 이러한 장점은 기술적인 면 뿐만 아니라 비즈니스 관점에서는 유용하게 활용된다.In general, networks may be classified as having a client-server (C / S) structure or a peer-to-peer (P2P) structure. In P2P-based networks, one device or network node is considered a peer, and each peer may communicate directly with each other, requiring no central network structure, and these peers also cooperate with each other to provide services and services. Since resources are shared with each other, so-called peer-groups are formed. In addition, peers can be connected to or disconnected from the network at any time, can arbitrarily join and leave the system, or can form a dynamic network because peer-groups have the property of being separated or merged. . On the other hand, the network structure of the client-server has the advantage of managing and coordinating the network in an integrated manner, which is useful not only in terms of technology but also in terms of business.

그런데 이러한 네트워크들의 구성에 있어서, 각 서버와 클라이언트들이 다른 통신체계를 갖고 있다거나 서로 다른 이기종 디바이스인 경우에는 통일된 통신 체계를 만들기 위한 솔루션이 필요하다는 문제점이 있으며, 특히 홈네트워크 등 상이한 이기종의 디바이스들이 네트워크로 관련되는 경우와 네트워크상의 클라이언트들이 어플리케이션의 복잡성과 다양성을 갖고 있는 모바일 디바이스인 경우에는 통합 미들웨어를 설계하여 정교한 네트워크를 구성하는 데 어려움이 있다.However, in the configuration of these networks, when each server and client has a different communication system or different heterogeneous devices, there is a problem in that a solution for creating a unified communication system is needed, and in particular, heterogeneous devices such as home networks. Is a network device, and if the clients on the network are mobile devices with complexity and diversity of applications, it is difficult to design an integrated middleware to construct a sophisticated network.

특히 도래하는 유비쿼터스(Ubiquitous) 환경에서는 이기종 간의 통일된 통신체계, 응용프로그램의 쉬운 개발, 공유, 배치가 전제되어야 하고, 언제 어디서나 원하는 정보를 공유할 수 있다는 사용환경은 기존의 특정한 디바이스들간의 특정한 서비스, 특정한 프로토콜을 해체하여 각 디바이스가 이해할 수 있는 통일된 체계 확립이 보다 용이하게 제공되어야 한다. 그런데 모든 솔루션이 그러하듯 제품개발까지를 목표로 한다면 이러한 광범위한 개념에서 한발 더 나아가 경제적인 면에서 합목적성을 가져야 하는 것은 필수조건이다. 여기에서 말하는 경제적인 면이라 함은 솔루션을 제작하는 기술자가 가장 짧은 시간 내에 정교한 네트워크를 보다 용이하게 제작할 수 있어야 함을 의미하기 때문에 이는 곧 기술적인 환경과 결부될 수밖에 없다.In particular, in the coming ubiquitous environment, a unified communication system between heterogeneous heterogeneous systems, easy development, sharing, and deployment of applications should be premised, and the environment in which users can share desired information anytime, anywhere is a specific service between specific devices. However, it should be easier to establish a unified system that each device can understand by breaking up specific protocols. However, if all the solutions are aimed at product development, it is necessary to go further from this broader concept and have economic purpose. The economics here mean that the engineer creating the solution should be able to more easily build a sophisticated network in the shortest amount of time, which inevitably leads to a technical environment.

종래의 네트워크 프로그래밍은 C/C++, Basic, Java, HTML, XML 등 어플리케이션의 언어를 각각 고려하여 Network Function을 구현하여야 했기 때문에 개발시간이 길어지는 문제점이 있었다. 물론 이는 개발 코스트의 증가를 초래하였다.In the conventional network programming, the development time is long because network functions have to be implemented in consideration of application languages such as C / C ++, Basic, Java, HTML, and XML. This, of course, led to an increase in development costs.

특히 클라이언트/서버 네트워크 모델과 피어 투 피어 모델을 결부시키기 위한 네트워크를 구성하기 위해서도 각각의 클라이언트/서버 어플리케이션의 언어를 고려해야 함과 아울러 기존의 클라이언트/서버 어플리케이션과 피어 투 피어 어플리케이션의 정보교환 프로그래밍 또는 솔루션이 필요하였으며, 따라서 설계하고자 하는 네트워크마다 또는 특정 서비스마다 각각 새로운 피어 투 피어 솔루션을 다시 개발하여야 하는 문제점이 있었다. 나아가 네트워크의 효율성을 위하여 네트워크 내에서의 각 피어들은 피어들 상호 간의 데이터베이스를 원격으로 핸들링할 수 있도록 구성되어야 하는데, Background 어플리케이션과 Front-end 어플리케이션과의 인터페이스를 구현하여야 하며, 이때 각 피어들 마다 Background DB Handling 어플리케이션을 새롭게 개발하여야 하는 문제점이 있었다.In particular, the language of each client / server application must be considered to construct a network for associating a client / server network model with a peer-to-peer model, as well as information exchange programming or a solution of existing client / server applications and peer-to-peer applications. Therefore, there was a problem in that a new peer-to-peer solution must be re-developed for each network or a specific service to be designed. Furthermore, for the efficiency of the network, each peer in the network should be configured to handle the database between peers remotely. The interface between the background application and the front-end application must be implemented, and each peer must have a background. There was a problem in developing a new DB Handling application.

더욱이 각 피어의 디바이스가 PDA나 휴대폰과 같은 모바일 디바이스인 경우에는, 기본적인 P2P 개념 구현 자체가 어려웠으며, 정교한 코딩에 수반되는 인력자원이 막대하게 요구되었을 뿐만 아니라 각각의 피어의 디바이스가 운전되는 OS에서 의 동작 표준화에 어려움이 있었기 때문에, 모바일 환경에서 P2P 기반의 네트워크에 클라이언트/서버 네트워크를 결합한다는 것은 대단히 곤란한 문제였다. 또한, 모바일 디바이스 클라이언트의 어플리케이션의 업그레이드의 문제 또는 원격 A/S의 문제는 네트워크가 구성된 이후의 문제이기 때문에 네트워크 구성이 용이하지 않은 이상 해결될 수 없는 문제로 보였다(물론 종래의 업그레이드는 FTP를 통해 업그레이드 할 수 있도록 제작되었으나, PDA나 휴대폰의 프로그램은 업그레이드가 용이하지 않을 뿐만 아니라, Client가 다수이고 동시에 적용하는 경우에는 불안정성을 면하기 힘들다).Moreover, when each peer's device is a mobile device such as a PDA or a mobile phone, the implementation of the basic P2P concept itself was difficult, and not only the human resources required for sophisticated coding were required, Due to the difficulty in standardizing the behavior of the client, it was very difficult to combine the client / server network with the P2P based network in the mobile environment. In addition, the problem of the upgrade of the application of the mobile device client or the remote A / S problem is a problem after the network is configured, so it seems that the problem cannot be solved unless the network configuration is easy. It is designed to be upgraded, but the program of PDA or mobile phone is not easy to upgrade, and it is hard to avoid instability when there are many clients and applied at the same time).

즉 P2P 네트워크의 유연성과 C/S 네트워크의 통합성을 모두 고려하면서 네트워크를 구성하는 경우에, 특히 네트워크 내의 다수의 피어들 중 모바일 디바이스가 포함되는 경우에는 네트워크 구성의 정교함을 기하기가 어렵고 오히려 유연성을 잃을 위험이 있으며, 또한 경제적인 취약함을 낳는 문제점이 있었다.In other words, when configuring a network considering both the flexibility of a P2P network and the integration of a C / S network, it is difficult and inflexible to configure the network, especially when a mobile device is included among a large number of peers in the network. There was a risk of losing money and there was also a problem of economic weakness.

위와 같은 문제점을 해결하기 위하여, 본 발명가는 다음과 같은 점을 오랜 연구를 통해 확인하였으며, 이를 기본적인 기술적 과제로 설정하였다. 첫째 Slim-Sized Solution에서부터 Large Legacy Solution에 독립적으로 혹은 유연하게 결합될 수 있는 미들웨어(Middleware)가 필요하다는 것이다. 둘째 대부분의 모바일 디바이스가 Thin Client로서의 역할에 한정되어 있는데 반해, 향후 예상되는 모바일 디바이스의 고성능화를 고려할 때 미리 예견되는 어플리케이션의 복잡성과 다양성은 보다 정교한 개발환경을 요구한다. 이에 개발자가 이러한 급속한 개발환경 변화 에 쉽게 적응하면서도 시장에서의 요구수준에 적응하는 것을 돕는 도구로서의 미들웨어가 역할을 하도록 개발해야 한다는 것이다. 셋째 미들웨어가 ISV(Independent Software Vendor)나 SI(System Integration) Partner의 다양한 어플리케이션에 적용되기 위해서는 개발 코스트 측면에서 부담을 느끼지 않도록 하는 게 필수이므로, 개발된 미들웨어는 간결한 구조로 구성되어 다수의 복합 구조를 가지는 여타의 시스템에 비하여 가격적인 장점을 가져야 한다는 것이다.In order to solve the above problems, the inventors have confirmed the following points through a long study, and set this as a basic technical problem. First, there is a need for middleware that can be independently or flexibly combined with slim-sized solutions to large legacy solutions. Second, while most mobile devices are limited to their role as thin clients, the complexity and diversity of applications that are foreseen in the future, given the expected high performance of mobile devices, requires a more sophisticated development environment. Therefore, it is necessary to develop middleware as a tool to help developers adapt to such rapid development environment changes and to adapt to market demands. Third, in order for middleware to be applied to various applications of ISV (Independent Software Vendor) or SI (System Integration) partner, it is essential not to feel the burden in terms of development cost. Therefore, the developed middleware is composed of concise structure, Branches should have a price advantage over other systems.

이러한 기술적 과제는 모바일 디바이스인 피어가 네트워크에 포함된 경우에 피어 투 피어 기반에서의 서버-클라이언트 통합 네트워크를 더욱 간결하게 구성할 수 있음과 아울러 네트워크 구성의 유연성 및 다양한 응용성을 높여야 한다는 목적에 맞닿아 있다.This technical challenge meets the purpose of making the server-client integrated network more concise on the basis of peer-to-peer based network when the peer, which is a mobile device, is included in the network. Is touching.

본 발명의 또 다른 목적 및 장점들은 하기에 설명될 것이며, 이는 본 발명의 청구범위에 기재된 사항 및 그 실시예의 개시내용뿐만 아니라, 이들로부터 용이하게 추고할 수 있는 범위 내의 수단 및 조합에 의해 더욱 넓은 범위로 포섭될 것이며, 본 발명의 특유한 효과에 대응될 것임을 첨언한다.Further objects and advantages of the present invention will be described below, which is further broadened by means of the disclosure in the claims and the disclosure of the embodiments thereof, as well as means and combinations within the range readily recited therefrom. It will be added to the scope and will correspond to the unique effects of the present invention.

위와 같은 목적을 달성하기 위하여, 본 발명은, 각 피어(Peer) 단말에는 통합 서비스 라이브러리를 구비한 통합 미들웨어 컴포넌트가 미리 설치되고, 각 피어 단말에 피어 ID 코드를 부여하며 인증을 수행하는 B-Server가 구비되며, 각 피어 단말과 B-Server는 통합 미들웨어 P2P Connector 모듈을 통해 통신하는 네트워크 시스템을 이용하는 것을 특징으로 하며, In order to achieve the above object, the present invention, each peer (Peer) terminal is a pre-installed integrated middleware component having an integrated service library, B-Server to give a peer ID code to each peer terminal and perform authentication Is provided, each peer terminal and the B-Server is characterized in that using a network system to communicate through the integrated middleware P2P Connector module,

요청 피어인 제 1 피어 단말의 어플리케이션을 매개로 인터페이스를 통해 통합 서비스의 특정 메쏘드(Method)를 호출하는 단계;Calling a specific method of an integrated service through an interface via an application of a first peer terminal that is a requesting peer;

상기 B-Server에 접속하여 제 1 피어 단말의 피어 ID를 획득하는 단계;Accessing the B-Server to obtain a peer ID of a first peer terminal;

상기 제 1 피어 단말이 목적지 피어인 제 2 피어 단말로 특정 서비스의 요청명령을 전송하는 단계;Transmitting a request command of a specific service to a second peer terminal in which the first peer terminal is a destination peer;

상기 제 2 피어 단말이 요청받은 서비스에 대하여 자신의 통합 서비스 라이브러리를 통해 응답을 작성하여 제 1 피어 단말로 전송하는 단계;The second peer terminal creating a response to the requested service through its integrated service library and transmitting the response to the first peer terminal;

상기 제 1 피어 단말이 상기 제 2 피어 단말로부터 수신한 응답을 체크한 후 자신의 어플리케이션에 통지하는 단계를 포함하도록 구성한다.And checking, by the first peer terminal, the response received from the second peer terminal, and notifying its application.

본 발명의 피어 투 피어 기반에서의 클라이언트-서버 통합 네트워크를 통한 일원화된 통합 서비스 제공방법은, 상기 특정 서비스의 요청명령의 전송이 Sync 전송인지 또는 Async 전송인지를 결정하는 단계; 및 The method for providing a unified integrated service through a client-server integrated network on a peer-to-peer basis of the present invention may include: determining whether a transmission of a request command of the specific service is a Sync transmission or an Async transmission; And

Sync 전송의 경우에는 제 1 피어 단말의 미리 결정된 대기 시간까지는 제 2 피어 단말에서 응답이 올 때까지 대기하며, Async 전송인 경우에는 제 2 피어 단말에게 명령을 전송한 다음에 대기하지 않고 곧바로 제어권을 제 1 클라이언트의 어플리케이션으로 돌려주는 단계를 더 포함하는 것이 좋다.In the case of a sync transmission, the second peer terminal waits until a response is received until a predetermined waiting time of the first peer terminal. In the case of an Async transmission, the control right is immediately transmitted without waiting after transmitting a command to the second peer terminal. The method may further include returning to the application of the first client.

또한, 상기 특정 서비스의 요청명령은, 제 1 피어 단말이 제 3 피어 단말을 타깃 피어로 설정하고, 제 2 피어 단말로 하여금 자기가 가지고 있는 자원을 제 3 피어 단말로 전송해주도록 요청하는 것은 매우 유용한 실시형태로 자리매김한다.In addition, the request command of the specific service, it is very likely that the first peer terminal to set the third peer terminal as the target peer, and to request the second peer terminal to transmit its own resources to the third peer terminal. It establishes itself as a useful embodiment.

그리고 상기 통합 서비스 라이브러리에는 피어 단말 간의 데이터베이스 핸들 링(DB Handling), 피어들에 저장되어 있는 파일의 억세스, 또는 데이터베이스의 업그레이드, 이벤트/메시지 전송, 파일 전송에 관한 모듈이 통합적으로 구비되며, In addition, the integrated service library is integrated with a module for database handling (DB Handling) between peer terminals, access to files stored in peers, or database upgrade, event / message transmission, file transfer,

제 1 피어 단말의 어플리케이션이 상기 통합 서비스 라이브러리에 모듈화되어 있는 어느 하나 이상을 선택하여 특정 메쏘드를 호출하는 것이 바람직하다.It is preferable that an application of the first peer terminal selects one or more of those modularized in the integrated service library and invokes a specific method.

이하 본 발명에 따른 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 그리고 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 공지 구성 등 이미 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, when it is determined that the subject matter of the present invention may be unnecessarily obscured as a matter already known to those skilled in the art, such as a known function or a known configuration, the detailed description thereof will be omitted.

1. 정의1. Definition

본 발명에서 사용하는 중요한 용어로서, 모바일 디바이스를 포함한 이기종 피어들간의 분산된 자원을 공유하는 기반을 만듦과 동시에 Backoffice와 연동시킴으로써 P2P 기능과 C/S 모델의 기능을 통합하며 컴포넌트 내에 모듈화된 통합 서비스 라이브러리 및 통합 리소스들을 이용하여 각 피어 마다 통합 서버의 기능을 구현하는 본 발명 고유의 통합 미들웨어를 "X-Talk"라 정의한다.As an important term used in the present invention, it provides a base for sharing distributed resources among heterogeneous peers including mobile devices, and integrates P2P functions and C / S models by integrating with Backoffice and modularized integrated services in components. An integrated middleware of the present invention that implements the integrated server function for each peer using libraries and integrated resources is defined as "X-Talk".

2. X-Talk Protocol2. X-Talk Protocol

서버에 중요자원을 확보하고 클라이언트의 요구에 따라 정보와 자원을 전송하는 C/S(Client-Server) 시스템 모델과 달리 피어 투 피어(Peer-to-Peer) 시스템 모델은 기본적으로 모든 피어 컴퓨터나 기기들에 자원이 분산되어 있는 환경에서 구축하는 모델이다. 따라서 각각의 피어 기기들은 클라이언트적인 요소와 서버적인 요소를 모두 포함하여야 한다. 또한, 실시간으로 각각의 어플리케이션이나 서비스가 반응하고 대응해야 한다. 이를 위하여 Primitive Networking 기반 위에 피어 투 피어 시스템 구축을 용이하게 하는 새로운 Networking Infrastructure를 구축하였다.Unlike the Client-Server (C / S) system model, which secures critical resources on the server and transmits information and resources according to the client's needs, the peer-to-peer system model is basically any peer computer or device. This is a model to build in an environment where resources are distributed among the fields. Therefore, each peer device must include both client and server components. In addition, each application or service must respond and respond in real time. To this end, we established a new networking infrastructure that facilitates peer-to-peer system building on top of primitive networking.

도 1은 피어들 사이에서 X-Talk 프로토콜 기반의 데이터 패킷 포맷의 기본적인 구성을 나타내고 있다. OSI 7 Layer에서 Transport Layer까지는 TCP/IP 기반이며 실제 X-Talk 프로토콜은 어플리케이션 계층에 속한다. 기본적으로 C/S나 P2P나 low-level 네트워크는 동일하다. 그러나 어느 모델을 기반으로 시스템을 구성할 것인가 하는 것은 전적으로 어플리케이션과 관계된 것이므로, X-Talk 전용의 기본 통신 채널을 어플리케이션 레벨에서 별도로 구성하는 것이 타당하다.1 shows the basic configuration of a data packet format based on the X-Talk protocol among peers. The OSI 7 Layer to Transport Layer is TCP / IP based and the actual X-Talk protocol belongs to the application layer. Basically, C / S, P2P or low-level networks are the same. However, it is appropriate to configure a basic communication channel dedicated to X-Talk separately at the application level because it is entirely application related to which model to configure the system based on.

도 2는 X-Talk 클라이언트(X-Talk 컴포넌트를 내장한 어플리케이션) 간에 이루어지는 통신의 패킷 구조를 나타내고 있으며, 각각 "Receiver"는 데이터 패킷을 받는 Peer ID, "Sender"는 데이터 패킷을 보낸 Peer ID, "Command"는 서비스 요청 Command, "Check Code for Command-Reply Pair"는 Receive한 특정 패킷이 어떤 Command에 대한 응답인지를 확인하는 코드, "Date_NuM"은 하위 데이터의 바이트 수, "Data"는 Command가 수반하는 실제 데이터를 의미한다.Fig. 2 shows a packet structure of communication between X-Talk clients (applications with X-Talk components), where "Receiver" is a Peer ID for receiving data packets, "Sender" is a Peer ID for sending data packets, "Command" is a service request command, "Check Code for Command-Reply Pair" is a code for checking which command a specific packet received is a response. "Date_NuM" is the number of bytes of sub data, and "Data" is a command. Refers to the actual data involved.

X-Talk Name System 및 Peer ID, Peer NameX-Talk Name System, Peer ID, Peer Name

도 3은 X-Talk Peer ID와 피어 Code의 매핑에 대한 개략적인 구성을 도시하고 있다. 브릿징 서버(Bridging Server, 이하 "B-Server"라 한다)에 X-Talk 클라이언트가 접속하였을 때 고유한 String 값의 Peer ID에 일 대 일로 매핑된 고유한 Peer ID Code를 B-Server로부터 얻는다. Peer ID Code와 Peer ID 간의 맵핑은 X-Talk Name System에서 관리하며, 어플리케이션에서는 고유한 Peer ID Code로 사용하고 X-Talk 클라이언트 내부에서는 해당 Peer ID가 사용된다. 이것은 기존의 인터넷 어플리케이션에서 데이터 전송시 읽을 수 있는 Domain Name이 이 DNS를 거쳐 실제 IP Address로 번역되어 처리되는 것과 유사하다.3 shows a schematic configuration for mapping X-Talk Peer ID and peer code. When an X-Talk client connects to a bridging server (hereinafter referred to as "B-Server"), a unique peer ID code mapped one-to-one to a peer ID of a unique string value is obtained from the B-Server. The mapping between Peer ID Code and Peer ID is managed by X-Talk Name System. The application uses the unique Peer ID Code and the Peer ID is used inside the X-Talk client. This is similar to the domain name that can be read when transmitting data in the existing Internet application is translated into the actual IP address through this DNS.

상기 Peer ID Code는 32 비트로 구성되어 있으며 각각의 비트들은 도 4와 같은 의미를 갖는다. "User Code", "Group Code", "Class Code"는 여러 피어 집단을 그룹화(Grouping)하는데 사용되며, "User Code"로 표현할 수 있는 피어의 최대수는 256개가 되며, 하나의 Group을 의미하는데, 이 Group은 최대 4096개를 갖는다. 또한, Group Code를 하나의 셀로 하는 그룹은 "Class Code"에서 표현되며 최대 4096개가 가능하다. "User Code", "Group Code", "Class Code"는 피어 집단의 규모에 따라 적절히 할당되어 인터넷상의 컴퓨터 및 유무선 기기들에 할당할 수 있다.The Peer ID Code is composed of 32 bits and each bit has the same meaning as in FIG. 4. "User Code", "Group Code" and "Class Code" are used to group multiple peer groups, and the maximum number of peers that can be expressed as "User Code" is 256, which means one Group. This group has a maximum of 4096. In addition, a group having a group code as one cell is expressed in a "class code", and a maximum of 4096 pieces are possible. "User Code", "Group Code", and "Class Code" may be appropriately allocated according to the size of peer group and assigned to computers and wired and wireless devices on the Internet.

2. X-Talk Component2. X-Talk Component

도 5는 X-Talk 컴포넌트의 개략적인 구성을 나타내고 있다.5 shows a schematic configuration of an X-Talk component.

X-Talk 컴포넌트는 인터페이스(2)를 통해 어플리케이션(1)과 연결되며, Sync. Coordinator(3), Packet Parser(4), X-Talk Server(5), Service Library(통합 서비스 라이브러리)(6), Resources(통합 리소스)(7), Peer Connection Monitor(8), X-Talk Local Name System(10) 및 X-Talk P2P Connector(9)로 이루어지고, 서버 영역과 클라이언트 영역으로 구분되어 기능을 수행하며, 구분된 영역에 서의 기능은 상기 도 5에 각각 C+일련번호, S+일련번호가 병기되어 있는 화살표로 도시되어 있다.The X-Talk component is connected to the application (1) via the interface (2), Sync. Coordinator (3), Packet Parser (4), X-Talk Server (5), Service Library (6), Resources (7), Peer Connection Monitor (8), X-Talk Local Name System (10) and X-Talk P2P Connector (9), divided into server area and client area to perform the function, the functions in the divided area is C + serial number, S + serial in FIG. The numbers are shown with arrows in the description.

Packet Parser(4)Packet Parser (4)

X-Talk P2P Connector(9)를 통해 들어오는 모든 데이터 패킷(Data Packet)은 모두 Packet Parser(4)로 들어간다. 패킷의 분류에 따라 처리할 프로세스가 결정되고 그 프로세스에 데이터와 제어권을 넘겨 주는 역할을 한다. 각각의 패킷 분류와 그에 따라 실시예를 나타내면 다음과 같다.All data packets coming through the X-Talk P2P Connector 9 enter the Packet Parser 4. The classification of packets determines the process to be processed and gives the process control and data. Each packet classification and an embodiment thereof is as follows.

# 케이스 1 : 자기가 다른 피어에게 command를 전송했을 때 응답으로서 오는 데이터:Case 1: Data that comes as a response when a user sends a command to another peer:

피어 A가 피어 B에게 서비스 요청 Command를 보냈을 때 피어 B는 처리결과를 피어 A에게 되돌려 보낸다. 이 결과 데이터는 상기 Packet Parser(4)로 들어와서, 케이스 1로 확인되면 즉시 Sync. Coordinator(3)으로 보내진다. Sync. Coordinator(3)에서는 피어 A가 전송한 command를 모두 기억하고 있다가 Packet Parser(4)로부터 오는 결과 데이터가 그 이전에 보낸 어떤 command의 결과값인지를 확인하고 적절히 Application(1)에 그 결과를 통지(Notify)해 준다.When peer A sends a service request command to peer B, peer B sends the processing back to peer A. The result data enters the Packet Parser (4), and upon confirmation as Case 1, Sync. Sent to the Coordinator (3). Sync. Coordinator (3) memorizes all commands sent by peer A, checks whether the result data from Packet Parser (4) is the result of any previously sent command, and notifies Application (1) of the result as appropriate. (Notify)

# 케이스 2 : 다른 피어에서 데이터를 일방적으로 푸쉬(Push)하거나 스트림(Stream)형태로 오는 데이터# Case 2: Data coming from other peers unilaterally pushed or streamed

X-Talk의 기능 중 음성 Steaming 기능이 여기에 해당한다. 압축된 음성데이터는 일정한 간격으로 피어 B에서 피어 A로 전송된다. 이 경우는 받은 Packet에 해당하는 특정한 command가 없다. 즉 일방적으로 피어 A가 받은 Packet을 재생시키는 것이므로 곧바로 X-Talk Server에서 음성 재생이 된다.This is the voice steaming function of X-Talk. Compressed voice data is transmitted from peer B to peer A at regular intervals. In this case, there is no specific command corresponding to the received packet. In other words, because it plays packet received by peer A unilaterally, voice is played in X-Talk Server immediately.

# 케이스 3 : 다른 피어에서 특정 서비스를 요청하는 데이터Case 3: data requesting a specific service from another peer

피어 B가 피어 A에게 특정 서비스를 요청하는 경우이다. 파일 전송, 이벤트 전송, 메시지 전송, DB Handling 등등이 여기에 해당된다. Case 3로 분류된 데이터는 X-Talk Server(5)로 보내지고 X-Talk는 요구된 특정 서비스를 통합 서비스 라이브러리(6)에서 찾아내고 호출해서 X-Talk Server(5)내에서 별도의 스레드(Thread)로 실행된다. This is the case when peer B requests a specific service from peer A. This includes file transfers, event transfers, message transfers, and DB Handling. The data categorized as Case 3 is sent to the X-Talk Server (5), and X-Talk finds and calls the specific service requested in the Integrated Services Library (6), which is a separate thread (in the X-Talk Server (5)). Thread).

Sync. Coordinator(3)Sync. Coordinator (3)

상기 Sync. Coordinate(3)은 X-Talk command의 Sync/Async 처리를 하는 부분이다. Command가 Sync나 Async동작을 하는 것은 어플리케이션(1)이 상대 피어의 처리결과를 통보받는 방식이 다르다는 것을 의미하며, 이는 직접적으로 어플리케이션 설계에 영향을 미친다.Sync. Coordinate (3) is a part of Sync / Async processing of X-Talk command. When the command performs Sync or Async operation, it means that the application 1 is notified of the counterpart's processing result, which directly affects the application design.

X-Talk에서는 기본적으로 상대 피어에 대한 서비스 요청 명령이 두 가지 형태를 가진다. 하나는 명령을 전송하고 상대 피어에서 응답이 올 때까지 기다리는 것(이때 명령을 전송한 피어는 Block 상태가 된다. 그리고 시간 제한을 둘 수가 있어서 응답이 지정한 시간 동안 오지 않으면 Block 상태가 해제되고 Fail Notify를 어플리케이션(1)에게 하게 된다)과, 또 하나는 전송 후 결과 데이터를 기다리지 않고 곧바로 어플리케이션(1)으로 복귀하는 경우다. 전자는 Sync. Command라 부르고 후자는 Async. Command라 부른다. 전자의 사용은 주로 그 결과를 받지 않고서는 Application(1)의 진행을 해서는 안 되거나 할 이유가 없는 경우에 사용된다. 후자 는 주로 상대 피어에게 요청한 서비스가 완료하는 데 시간이 많이 걸릴 경우 어플리케이션(1)이 필요 이상으로 대기하는 경우에 사용된다.In X-Talk, there are basically two types of service request commands to the peer. One is to send a command and wait for a response from the other peer (the peer that sent the command is in Block state, and you can set a time limit, so if the response does not come for a specified time, the Block state is released and Fail Notify And the other is the case of returning to the application 1 directly without waiting for the result data after transmission. The former is Sync. Called Command and the latter Async. Called Command. The former use is mainly used when there is no reason to proceed with Application (1) without receiving the result. The latter is mainly used when the application 1 waits more than necessary if the service requested by the peer takes a long time to complete.

명령전송과 결과 데이터 처리까지의 상세 과정은 다음과 같다. The detailed process from command transmission to result data processing is as follows.

- Sync. Command-Sync. Command

피어 A가 서비스 요청 데이터를 Sync. Coordinator(3)에 보내면 Sync. Coordinator(3)는 그 명령에 고유한 Key를 할당하고 메모리에 저장해 둔다. Command Packet을 전송한 후 상기 Packet Parser(4)로부터 결과 데이터가 분류되어 오기를 기다린다. Packet Parser(4)로부터 결과 데이터가 오면 거기에 포함된 Key가 명령전송 전에 저장한 키들 중에 존재하는가를 확인한 다음 어플리케이션(1)에 제어권을 돌려준다. 만약 정해진 시간 안에 상기 Packet Parser(4)로부터 데이터가 오지 않으면 time out을 선언하고 어플리케이션(1)에 fail을 통지한다.Peer A syncs service request data. Send to Coordinator (3). Coordinator (3) assigns a unique key to the command and stores it in memory. After transmitting the command packet, it waits for the result data to be classified from the packet parser 4. When the result data comes from the Packet Parser 4, it is checked whether the Key included therein exists among the keys stored before the command transmission, and then the control right is returned to the application 1. If data does not come from the Packet Parser 4 within a predetermined time, it declares time out and notifies the application 1 of fail.

- Async. CommandAsync. Command

피어 A가 서비스 요청 데이터를 요청할 때 command뿐만 아니라 완료 event Code도 함께 상기 Sync. Coordinator(3)에 보낸다. Sync. Coordinator(3)는 그 명령에 고유한 Key와 어플리케이션(1)에서 보내진 event code도 함께 메모리에 저장한다. 피어에 전송한 후 기다리지 않고 곧바로 어플리케이션(1)으로 복귀한다. 이후 상기 Packet Parser(4)로부터 결과 데이터가 오면 거기에 포함된 Key가 명령전송 전에 저장한 키들 중에 존재하는가를 확인한 후 함께 저장되었던 event code를 어플리케이션(1)에 통지한다.When Peer A requests service request data, the Sync. Send to Coordinator (3). Sync. The coordinator (3) also stores the key unique to the command and the event code sent from the application (1) in memory. After sending to the peer, it returns immediately to the application 1 without waiting. After that, when the result data comes from the packet parser 4, it is checked whether the key included therein is present among the keys stored before the command transmission, and the application 1 is notified of the stored event code.

X-Talk Server(5) X-Talk Server (5)

상대 피어가 요청한 서비스를 실행할 프로세스이며, 각각의 서비스마다 별도의 처리 스레드(thread)가 생성되며 결과 데이터 또한 개별적으로 생성된 채널을 통해 요청 피어로 되돌려 진다. X-Talk Server(5) 자체는 실행환경이며 실제 서비스에 해당하는 코드는 통합 서비스 라이브러리(6)에서 가져와서 실행한다.This is a process to execute the service requested by the peer. A separate processing thread is created for each service, and the result data is also returned to the request peer through the individually created channel. X-Talk Server (5) itself is an execution environment and the code corresponding to the actual service is taken from the integrated service library (6) and executed.

Service Library(6)Service Library (6)

본 발명의 통합 서비스 라이브러리(6)는 피어가 서버로서 역할을 할 때 즉 상대 피어가 요청한 서비스를 실행할 때 필요한 컨텐츠(Contents)를 포함하고 있는 장소이다. 파일정보 서비스, 파일 전송 서비스, 피어 관리 서비스, Audio/Video 처리, DB Transaction, Resources 관리 서비스, 메시지 및 이벤트 처리 등등의 루틴이 이에 해당하며, 종래의 네트워크에서는 각 피어들이 상기 루틴 중 어느 하나만을 수행하였던 것에 반하여, 본 발명의 통합 서비스 라이브러리(6)는 필요한 컨텐츠를 통합적으로 보유함으로써 다양한 서비스를 일원화하고 피어의 서버로서의 기능이 강화되며, 개별 서비스에 대한 개별적인 프로그래밍을 요구하지 않는다.The integrated service library 6 of the present invention is a place that contains contents necessary when a peer serves as a server, that is, when a peer performs a service requested. This includes routines such as file information service, file transfer service, peer management service, audio / video processing, DB transaction, resources management service, message and event processing, etc. In a conventional network, each peer performs only one of the routines. In contrast, the integrated service library 6 of the present invention unifies the various services by strengthening the functions as a server of the peer by integrating the necessary contents, and does not require individual programming for the individual services.

Resources(7)Resources (7)

통합 리소스(7)는 피어가 관리/통제할 수 있는 모든 자원이다. 피어가 실행되는 컴퓨터, 핸드폰, PDA, Embedded System의 파일들, 데이터베이스, 멀티미디어 콘텐츠, I/O 주변장치 등등이 이에 해당된다.The integrated resource 7 is all the resources that the peer can manage / control. This includes computers running peers, mobile phones, PDAs, embedded system files, databases, multimedia content, I / O peripherals, and so on.

X-Talk Local Name System(10) X-Talk Local Name System (10)

하나의 B-Server에 귀속된 피어들의 정보를 B-Server로부터 받아 자체적으로 보관하고 있어서 상대 피어의 정보를 확인할 때 B-Server로 부터 확인하기 전에 먼 저 검색하여 Peer ID에 해당하는 Peer Code를 주는 시스템이다.Receive peer information belonging to one B-Server from B-Server and keep it on its own. When checking the information of other peer, give peer code corresponding to Peer ID by searching first before checking from B-Server. System.

X-Talk Component Interface(2)X-Talk Component Interface (2)

X-Talk는 플랫폼에 따라 각기 다른 컴포넌트 및 인터페이스를 갖도록 구현하였으며 이에 대해서는 도 6이 개략적으로 나타내고 있다. X-Talk 컴포넌트는 Microsoft(이하 MS)사의 Win 98/NT/2000/XP, Pocket PC/ Win CE.Net 플랫폼용의 경우에는 COM(Component Object Model) 형태로 구현하였고, 모바일 디바이스인 핸드폰과 같이 제한된 리소스를 갖는 시스템의 경우에는 Java Virtual Machine(Java VM) 환경을 구성하기 위하여 J2ME(Java 2 Platform Micro Edition) 기반에서 컴포넌트를 구성하였다. MIDP(Mobile Information Device Profile)/CLDC(Connected Limited Device Configuration)은 J2ME의 핵심요소로서 표준 Java runtime 환경에서와 같은 형태로 모바일 응용프로그램에서 요구되는 핵심 응용프로그램 함수를 제공한다.X-Talk is implemented to have different components and interfaces according to the platform, and FIG. 6 schematically illustrates this. X-Talk components are implemented in the form of COM (Component Object Model) for Microsoft's Win 98 / NT / 2000 / XP and Pocket PC / Win CE.Net platforms. In the case of a system with resources, components were configured based on the Java 2 Platform Micro Edition (J2ME) to construct a Java Virtual Machine (Java VM) environment. The Mobile Information Device Profile (MIDP) / Connected Limited Device Configuration (CLDC) is a core element of J2ME and provides the core application functions required by mobile applications in the same form as the standard Java runtime environment.

두 X-Talk 피어 상호 간에 Date Communication & CollaborationDate Communication & Collaboration between two X-Talk peers

피어 A를 기준으로 피어 B와의 Date Communication과 Collaboration을 설명한다. X-Talk가 동작하는 플랫폼에 관계없이 피어들 사이의 Data Communication 및 Collaboration은 동일하다.Describes Date Communication and Collaboration with Peer B based on Peer A. Regardless of the platform on which X-Talk runs, data communication and collaboration between peers is the same.

- X-Talk에서의 기본 Service Request and Reply 체계는 다음과 같다:The basic Service Request and Reply mechanism in X-Talk is:

도 7을 참조하여 피어 B에게 특정 서비스를 요청하거나 Event/Message 를 보낼 때, 즉 피어 A가 클라이언트로서 작동할 때를 기술하면, 먼저 Applications(1)에서 Interface(2)의 Method를 호출한다(S11). 다음으로, Sync. Coordinator(3)은 어플리케이션(1)이 지정한 Peer Name에 해당하는 Peer ID를 X-Talk Name System에 의뢰하여 획득하고(S12), Sync. Coordinator(3)는 그 정보를 X-Talk P2P Connector(9)로 전달하면, X-Talk P2P Connector(9)는 X-Talk Packet을 만들어 지정한 목적지 Peer ID로 전송한다(S13). 피어 A가 피어 B에게 요청하는 서비스의 내용은 X-Talk Data Packet의 Command에 있고 관련 정보는 Data에 있기 된다. Referring to FIG. 7, when describing a request for a specific service or sending an event / message to peer B, that is, when peer A operates as a client, first, the method of interface 2 is called from applications 1 (S11). ). Next, Sync. Coordinator (3) obtains the Peer ID corresponding to the Peer Name designated by the application (1) by requesting the X-Talk Name System (S12), Sync. When the coordinator 3 transmits the information to the X-Talk P2P Connector 9, the X-Talk P2P Connector 9 creates an X-Talk Packet and transmits it to the designated destination Peer ID (S13). The contents of the service requested by peer A to peer B are in the command of the X-Talk Data Packet, and the related information is in the data.

이때 Sync. Coordinator(3)는 Applications(1)이 Sync 전송을 원하는지 아니면 Async 전송을 원하는지에 따라 다른 동작을 하게 된다(S14). 만약 Sync 전송이라면 목적지 피어에서 응답이 올 때까지 해당 루틴을 끝내지 않고 대기한다. 즉 Application(1)은 응답이 올 때까지 다른 동작을 하는 것이 불가능해질 것이다. 그러나 지정한 일정시간 동안 목적지 피어에서 응답이 없다면, 예컨대 t>to (to은 미리 결정된 대기 시간)인 경우에는 Error Code와 함께 제어권을 Application (1)에게 돌려준다. 이러한 Sync 전송 프로세스는 Message/Event 전송 또는 특정 서비스 요청이 목적지 피어에게 무사히 전달되는지를 Real-Time으로 확인할 필요가 있을 때 사용한다. 반면에 Asyn 전송 프로세스는 목적지 피어에 Event/Message/서비스 요청을 전송한 후 곧바로 Sync. Coordinator(3)가 출발지 피어 A의 Applications(1)에게 제어권을 돌려준다. 즉 피어 A의 어플리케이션(1)은 Interface(2)를 호출한 후 곧바로 제어권을 돌려받기 때문에 다른 작업을 수행할 수 있다. Sync. Coordinator (3) has a different operation depending on whether the application (1) wants to send a sync or Async (S14). If it is a Sync transmission, it waits without ending the routine until a response is received from the destination peer. In other words, Application (1) will not be able to perform other actions until a response is received. However, if there is no response from the destination peer for a specified period of time, for example t> t o (t o is a predetermined wait time), control is returned to the application (1) with an error code. This Sync transfer process is used when it is necessary to check in real time whether a Message / Event transmission or a specific service request is delivered to the destination peer. On the other hand, the Asyn transmission process sends an Event / Message / Service Request to the destination peer immediately after Sync. Coordinator (3) returns control to the application (1) of the source peer A. In other words, the application 1 of the peer A can return to the control right after the call to the interface 2, and thus can perform other tasks.

도 8은 목적지 피어 B로부터 출발지 피어 A에게로 Return Event/Return Data 를 전송하는 플로우에 대하여 개략적으로 도시하고 있다. 전송된 Event/Message/서비스 요청이 목적지 피어 B에 도착한 다음에(S21), 목적지 피어 B는 다시 Return Event/Return Data를 출발지 피어 A에게 전송한다(S22). 피어 A가 Return Event/Return Data를 받으면 이것이 어떤 Event/Message/서비스 요청에 관한 Return Event/Return Data인지를 Check Code for Command-Reply Pair를 보고 확인하고(S23), 그런 다음에 해당 Application(1)에 통지하게 된다(S24).8 schematically illustrates a flow for transmitting Return Event / Return Data from a destination peer B to a source peer A. FIG. After the transmitted Event / Message / Service Request arrives at the destination peer B (S21), the destination peer B transmits Return Event / Return Data to the source peer A again (S22). When peer A receives Return Event / Return Data, it checks with Check Code for Command-Reply Pair to see which Event / Message / Service Request is Return Event / Return Data (S23), and then the corresponding Application (1). A notification is made to (S24).

이상의 X-Talk가 제공하는 Functionality는 모두 위에서 설명된 플로우를 따라서 동작되며, 이러한 동작체계는 X-Talk 프로토콜과 밀접하게 결합되어 있다. 이하에서는 X-Talk 프로토콜 기반하에서 이루어지는 구체적인 프로세스에 대하여 상세히 설명한다.All of the functionalities provided by X-Talk above operate according to the flow described above, and this operating system is closely coupled with the X-Talk protocol. Hereinafter, a detailed process performed under the X-Talk protocol will be described in detail.

① Event/Message 전송① Event / Message transmission

도 9는 출발지 피어 A의 어플리케이션(1)에서 목적지 피어 B의 어플리케이션(1)으로 Event/Message를 전송할 때의 과정을 도시하고 있다.FIG. 9 shows a process for transmitting an Event / Message from the application 1 of the source peer A to the application 1 of the destination peer B. FIG.

먼저, 피어 A의 어플리케이션(1)에서 인터페이스(2) 및 Sync. Coordinator(3)를 거쳐 피어 A의 X-talk P2P Connector(9), 피어 B의 X-talk P2P Connector(9)를 경유하여 Packet Parser(4)에 도착하는 과정은 S31 단계에서부터 시작하여 S38 단계를 통해 이루어진다. 그 다음으로 피어 B의 Packet Parser(4)에서는 두 가지 방향으로 데이터 전송이 이루어진다. 하나는 피어 B의 인터페이스를 통해 어플리케이션에 Event/Message를 통지하는 것이며(S38, S39), 다른 하나는 피어 A에게 Event/Message가 도착했다는 결과 Return Signal을 전송하는 것이다 (S40). 한편 Return Signal 전송 과정은 상기 S40을 거쳐 최종적으로 피어 A의 어플리케이션(1)으로 통지된다(S41 ~ S43). 이상의 기능을 이용하여 핸드폰과, PDA, PC, Embedded System간에 실시간 텍스트와 이벤트를 교환할 수 있으며, 이를 채용한 응용프로그램으로 실시간 기기간 Messenger, Control 장치의 상태 감시 및 리모팅을 할 수 있다.First, the interface 2 and Sync. The process of arriving at the packet parser (4) via the coordinator (3) via the peer A's X-talk P2P connector (9) and peer B's X-talk P2P connector (9) starts from step S31 and proceeds to step S38. Is done through. Next, in the packet parser 4 of peer B, data transmission is performed in two directions. One is to notify the application of the Event / Message through the interface of the peer B (S38, S39), the other is to send a return signal that the Event / Message has arrived to the peer A (S40). Meanwhile, the return signal transmission process is finally notified to the application 1 of the peer A through S40 (S41 to S43). By using the above functions, real-time text and events can be exchanged between mobile phone, PDA, PC, and Embedded System. It is an application program that adopts them, and it can monitor and remotely monitor the status of messenger and control devices between real-time devices.

② File 전송② File transfer

X-Talk에서 파일 전송의 바람직한 실시형태를 개시하기 위하여 우리는 관여하는 세 개의 피어를 상정한다. 다시 말하면 피어 A가 피어 B에 있는 특정 파일을 피어 C에게 전송하도록 지정하는 방식이다. 이러한 방법은 자신의 피어에서 상대 피어로만 파일을 전송하는 즉 FTP 방식보다 더 많은 유연성을 준다. 예컨대 핸드폰이나 PDA처럼 네트워크 Bandwidth가 작은 망에 있는 Peer Device가 다른 두 개의 피어들 사이의 대용량 파일 전송을 제어할 수 있게 한다.In order to disclose the preferred embodiment of file transfer in X-Talk, we assume three peers involved. In other words, you specify that Peer A sends specific files on Peer B to Peer C. This gives you more flexibility than FTP, which means you can only transfer files from your peer to the peer. For example, a peer device in a network with a small network bandwidth, such as a cell phone or PDA, can control large file transfers between two other peers.

도 10은 세 개의 피어가 각각 Order Peer, Source Peer, Target Peer로 각각 구분되어 있는 경우를 나타내며, Order Peer인 피어 A가 Source Peer인 피어 B에게 피어 C를 타깃으로 하여 특정 파일을 전송할 것을 명령하면, 피어 B는 Target Peer인 피어 C에게 해당 특정 파일을 실제로 전송하게 된다. 도 11은 이러한 메커니즘과는 달리 Order Peer와 Source Peer가 같은 Peer 인 경우로서, 파일전송을 지령하는 피어 A가 자신의 파일을 Target Peer인 피어 C에 전송하게 된다.FIG. 10 illustrates a case where three peers are divided into an order peer, a source peer, and a target peer, respectively. When a peer A, an order peer, instructs peer B, a source peer, to transmit a specific file with peer C as a target, FIG. In this case, peer B actually transmits the specific file to peer C, the target peer. FIG. 11 illustrates a case in which the order peer and the source peer are the same peer, unlike the mechanism, and peer A, which commands file transfer, transfers its file to peer C, which is a target peer.

도 12는 위 도 10의 피어 A에서 피어 B에 명령하여 피어 B의 file을 피어 C에 전송하고자 할 때의 플로우를 보다 구체적으로 도시하고 있다(피어 A : order Peer, 피어 B : source Peer, 피어 C : target Peer)FIG. 12 illustrates the flow in which peer A in FIG. 10 instructs peer B to transfer a file of peer B to peer C in more detail (peer A: order peer, peer B: source peer, peer). C: target Peer)

피어 A의 Application(1)에서 Interface(2)의 file transfer method를 호출한다(S101). Interface(2)는 상기 Application(1)의 파일 전송 호출명령을 받아 이를 Sync. Coordinator(3)로 전달하고(S102), Sync. Coordinator(3)는 X-Talk Name System(10)에게 문의하여 상기 Application(1)에게서 받은 피어 B Name의 실제 Peer ID를 얻는다(S103). 다음으로, X-talk P2P Connector(9)로 전송하게 되는데, 그 전송방식은 피어 B로 소스 피어로 하여 타깃 피어인 피어 C로 파일 전송 서비스를 요청한 다음에 제어권을 다시 돌려받아 자신은 다른 작업을 수행할 필요성이 있으므로 Asyn 전송방식이 될 것이다(S104). 그리고 전송지령이 완료되면 그 완료된 사실을 상기 어플리케이션(1)에 통지한다(S105 ~ S105″).In the application A of peer A, the file transfer method of interface 2 is called (S101). Interface (2) receives the file transfer call command of the Application (1) and sync it. Coordinator (3) to pass (S102), Sync. The coordinator 3 inquires of the X-Talk Name System 10 to obtain the actual Peer ID of the peer B name received from the application 1 (S103). Next, it transmits to the X-talk P2P Connector (9). The transmission method is Peer B as the source peer, requesting the file transfer service to Peer C as the target peer, and then receiving control again. Since there is a need to perform the Asyn transmission method will be (S104). When the transmission command is completed, the application 1 is notified of the completion (S105 to S105 ″).

다음으로 상기 피어 A의 X-talk P2P Connector(9)를 거쳐 피어 B의 X-talk P2P Connector(9)로 command packet을 전송(S106)함으로써 피어 A에서 피어 B로의 프로세스가 개시된다. 상기 피어 B의 X-talk P2P Connector(9)는 상기 command packet을 Packet Parser(4)로 전달하며(S107), Packet Parser(4)는 Packet에 포함된 command를 확인하며 X-Talk Server(5)로 전달한다(S108). X-talk Server(5)에서는 요청받은 서비스에 대응하기 위하여 해당하는 Service Library(6)를 호출하고, Service Library(6)는 자신의 리소스(7)를 이용하여 피어 A에게서 요청받은 작업을 수행한다(S109). 이 경우 피어 B의 특정 File을 피어 C에게 전송하는 것이므로 피어 B의 X-Talk Server(5)는 새로운 프로세스를 만들고 또 다른 서비스 요청에 대응할 상태로 들어간다. 즉 파일 전송이란 작업 자체가 전송완료할 때까지 시간이 걸리므로 그 작업을 위한 새로운 프로세스를 생성하여 그것에 작업은 맡기고 X-Talk Server(5) 자신은 다른 Peer에게서 오는 서비스 요청을 위한 대기상태로 간다. 이는 피어 B의 CPU를 효율적으로 이용하는 방법이 된다. 새롭게 생성된 file 전송 프로세스는 background에서 파일 세그먼트를 피어 C에게 전송하게 된다(파일 세그먼트(file segment)란 커다란 파일을 특정한 단위의 크기로 쪼갠 파일 데이터이다). Next, a process from peer A to peer B is initiated by transmitting a command packet (S106) to peer B's X-talk P2P connector 9 via peer A's X-talk P2P connector 9. The peer B's X-talk P2P connector 9 forwards the command packet to the Packet Parser 4 (S107), and the Packet Parser 4 checks the command included in the Packet and the X-Talk Server (5). Transfer to (S108). X-talk Server (5) calls the corresponding Service Library (6) to respond to the requested service, and Service Library (6) uses the resource (7) of its own to perform the requested work from peer A (S109). In this case, since the specific file of peer B is transmitted to peer C, peer B's X-Talk Server (5) creates a new process and enters a state to respond to another service request. In other words, the file transfer takes time until the task itself completes the transfer, so create a new process for the task and leave it there and the X-Talk Server (5) itself goes to a waiting state for service requests from other peers. . This is a method of efficiently using the peer B CPU. The newly created file transfer process transfers the file segment to peer C in the background (a file segment is file data that is broken up into large units of specific size).

피어 C로의 전송준비를 위한 과정으로서, 상기 피어 B의 X-Talk Server(5)는 상기 Sync. Coordinator(3)에게 파일 세그먼트를 전송해줄 것을 의뢰하게 되며(S110), 상기 Sync. Coordinator(3)는 해당 파일 세그먼트를 X-Talk P2P Connector(9)로 전달하게 된다(S111).In order to prepare for transmission to peer C, the peer B's X-Talk Server (5) is the Sync. Coordinator 3 is requested to transmit the file segment (S110), the Sync. Coordinator (3) will deliver the file segment to the X-Talk P2P Connector (9) (S111).

다음으로, 상기 파일 세그먼트는 피어 B의 X-Talk P2P Connector(9)를 거쳐 피어 C의 X-Talk P2P Connector(9)로 들어간다(S112). 그리고 Packet Parser(4)에 도착한 다음에(S113), 피어 B가 보낸 command를 해석하여 X-Talk Server(5)로 보내진다(S114). 피어 C의 X-Talk Server(5)는 피어 B가 보낸 서비스 요청이 command와 함께 전송된 데이터가 자신의 특정 디렉토리에 파일로서 저장해야 하는것을 인식하며, 자신의 Service Library(6)의 SaveFileData를 호출하여 저장한다(S115). 한편, 피어 B의 X-Talk Server(5)와 피어 C의 X-Talk Server(5)는 모두 피어 A와 피어 B에게서 서비스 수행 요청을 받지만 그 내용은 다르다. 피어 B의 X-Talk Server(5)는 피어 A가 지정한 피어 B의 디렉토리의 파일을 세그먼트 단위로 쪼개서 피어 C로 보내도록 하는 것이고, 피어 C의 X-Talk Server(5)는 피어 B가 보낸 파일 세그먼트 를 피어 B가 지정한 디렉토리에 저장하는 것이다. Next, the file segment enters the peer C's X-Talk P2P connector 9 via peer B's X-Talk P2P connector 9 (S112). After arriving at the Packet Parser 4 (S113), the command sent by the peer B is interpreted and sent to the X-Talk Server 5 (S114). Peer C's X-Talk Server (5) recognizes that the service request sent by Peer B should store the data sent with the command as a file in its specific directory, and calls SaveFileData from its Service Library (6). To store (S115). On the other hand, peer B's X-Talk Server 5 and peer C's X-Talk Server 5 both receive service requests from peer A and peer B, but their contents are different. Peer B's X-Talk Server (5) breaks the files in Peer B's directory into peer C segments sent by Peer A to Peer C. Peer C's X-Talk Server (5) sends files sent by Peer B The segment is stored in the directory specified by peer B.

상기 X-Talk Server(5)는 해당 파일 세그먼트가 모두 전송되었다면 상기 Packet Parser(4)에 저장 완료 시그널을 피어 B에게 전송해 줄 것을 요청하고(S116), Packet Parser(4)는 세그먼트 저장 완료 시그널을 자신의 X-Talk P2P Connector(9)로 전달하게 된다(S117).If all of the file segments have been transmitted, the X-Talk Server 5 requests the Packet Parser 4 to transmit a storage completion signal to the peer B (S116), and the Packet Parser 4 receives the segment storage completion signal. To the X-Talk P2P Connector 9 (S117).

이러한 방식으로 모든 파일이 다 전송되면 피어 B는 전송완료 시그널을 피어 A에게 전송한다. 그리고 이를 위하여 먼저 피어 C의 X-Talk P2P Connector(9)가 피어 B의 X-Talk P2P Connector(9)에게 저장 완료 시그널의 리턴 데이터를 전송하고(S118), 피어 B의 X-Talk P2P Connector(9)는 이를 피어 B의 Packet Parser(4)에게 전송하며(S119), Packet Parser(4)는 전송받은 리턴 데이터를 파싱한 다음에 이를 자신의 Sync. Coordinator(3)로 전달하면(S120), Sync. Coordinator(3)는 리턴 데이터와 전송 명령 코드의 일치 여부를 확인하여 X-Talk Server(5)에게 전송한다(S121).In this way, when all files are sent, Peer B sends a completion signal to Peer A. To this end, the X-Talk P2P Connector 9 of peer C first transmits the return data of the storage completion signal to the X-Talk P2P Connector 9 of peer B (S118), and the X-Talk P2P Connector of peer B ( 9) transmits it to the packet parser 4 of peer B (S119), and the packet parser 4 parses the received return data and then transmits it to its Sync. If the transfer to the Coordinator (3) (S120), Sync. Coordinator (3) checks whether the return data and the transmission command code match and transmits to the X-Talk Server (5) (S121).

그리고 현재 파일의 전송이 세그먼트 단위로 이루어지고 있기 때문에, 파일 전체가 피어 C로 전송완료되었는지를 연산할 필요가 있으며, 따라서 X-Talk Server(5)가 상기 S121를 통해 리턴 데이터와 전송 명령 코드가 일치여부가 확인한 다음에 피어 A의 전송명령에 의하여 이루어진 피어 B의 피어 C로의 해당파일의 전송이 모두 완료되었는지 여부를 연산한 다음에(S122) 완료되지 않은 경우에는 상기 S109 단계부터 다시 시작하고, 완료된 경우에는 Packet Parser(4)와 X-Talk P2P Connector(9)를 거쳐 피어 A의 X-Talk P2P Connector(9)로 리턴 데이터로서 파일 전송 완료 시그널을 전송한다(S123, S124, S125). 그리고 피어 A의 X-Talk P2P Connector(9)는 수신받은 리턴 데이터를 자신의 Sync. Coordinator(3)에게 전달하고(S126), Sync. Coordinator(3)는 파일 전송 완료의 리턴 데이터와 전송명령 코드의 일치 여부를 확인하고 Notify event code를 획득하여 피어 A의 Application(1)에게 전송완료의 통지를 수행함으로써(S127, S128) 파일 전송은 끝나게 된다.Since the file is currently transmitted in segments, it is necessary to calculate whether the entire file has been transferred to peer C. Therefore, the X-Talk Server 5 returns the return data and the transfer command code through S121. After checking whether or not the matching is completed, the operation is calculated whether all the transfers of the corresponding file to the peer C of the peer B made by the transfer command of the peer A are completed (S122). If not, the process starts again from the step S109. When it is completed, the file transfer completion signal is transmitted as return data to the X-Talk P2P Connector 9 of peer A via the Packet Parser 4 and the X-Talk P2P Connector 9 (S123, S124, S125). Peer A's X-Talk P2P Connector 9 sends the received return data to its Sync. Transfer to Coordinator (3) (S126), Sync. The coordinator (3) checks whether the return data of the file transfer completion and the transfer command code match, acquires a Notify event code, and notifies the application 1 of the peer A of the transfer completion (S127, S128). It is over.

피어 A가 자신의 파일을 피어 B에게 전송할 경우는 마치 피어 A가 피어 A에게 피어 A의 파일을 피어 B에게 전송하라고 하는 것과 같다. 모든 전송과정은 위의 경우와 같다. 즉 order peer : A, source peer : A, target Peer : B가 된다.When peer A transfers its file to peer B, it is as if peer A tells peer A to transfer peer A's file to peer B. All transfers are the same as above. That is, order peer: A, source peer: A, target peer: B.

③ DB Access③ DB Access

P2P의 모델이 적용되는 분야는 자원이 여러 컴퓨터나 디바이스에 골고루 분포되어 있어서 서로간에 자원을 활용하기 위해서는 각각의 관련된 기기들이 Server와 Client의 모습을 둘 다 가지고 있어야 한다. 여기서 말하는 자원이라 함은 각각의 Peer들이 보유하고 있는 파일들, 그 디바이스에 연결되어 있는 또 다른 물리적인 장치들, 그리고 무엇보다도 Database를 뜻하게 되며, 따라서 DB의 공유는 Peer to Peer의 기능 중 중요한 부분을 차지한다.In the area where P2P model is applied, resources are distributed evenly among various computers or devices, so each related device must have both server and client in order to utilize each other's resources. Resource refers to files held by each peer, other physical devices connected to the device, and, above all, a database, so sharing a database is an important part of the function of a peer to peer. Occupies.

대부분의 DB는 CPU와 하드디스크의 용량이 큰 경우가 대부분이겠지만 최근에는 PDA와 핸드폰의 CPU와 저장장치도 급속도로 고기능화, 대용량화하고 있어서 이런 Mobile Device들도 자체 DB를 보유하고 관리하게 된다. 여기서 설명하는 DB Access란 'Peer 상호 간에 상대 방 Peer의 DB를 Access하는데 있어서 자유로울 뿐만 아니라 상대 Peer가 하고 있는 작업에 영향을 주지 않고 서비스가 가능해야 한 다.'라는 것이다. 이는 모바일 디바이스 조차도 background service(demon process)를 구현해야 함을 의미한다.Most DB's have large capacity of CPU and hard disk, but recently, CPU and storage devices of PDAs and mobile phones are rapidly becoming highly functional and large-capacity, so these mobile devices have their own DB. The DB Access described here means that the peers must not only be free in accessing the peer peer's DB, but also be able to provide services without affecting the work of the peer. This means that even mobile devices must implement a background service (demon process).

도 13에서는 피어 상호 간에 Database를 자유롭게 억세스하여 read/modify/insert 할 수 있는 기능에 대하여 나타내고 있다. S131부터 S148 단계로 이어지는 플로우는 위 ①과 ②의 실시예와 큰 차이가 없지만, 상대방 피어의 리소스(7)에 있는 파일을 전송하는 것과는 달리 S140 및 S141을 통하여 피어 B의 Resource(7)에 저장되어 있는 데이터베이스를 억세스하여 읽거나 수정하게 된다. 즉 도 13의 실시예는 피어 A가 피어 B의 DB의 데이터를 읽어오거나 특정 데이터를 피어 B의 DB에 추가/삭제/수정할 때의 flow이다. 또한, 하나의 record단위가 아니라 작업단위(transaction 단위)로 처리해야할 데이터의 처리에 대해서도 설명한다. In Fig. 13, the functions of freely accessing and reading / modifying / inserting a database between peers are shown. Although the flow from step S131 to step S148 is not significantly different from the above embodiments of ① and ②, unlike the transmission of the file in the resource 7 of the peer of the peer, the flow is stored in the resource of the peer B through S140 and S141. Accesses and reads or modifies the database. That is, the embodiment of FIG. 13 is a flow when peer A reads data of peer B's DB or adds / delete / modifies specific data to peer B's DB. It also describes the processing of data to be processed in units of work (transaction units) rather than in units of records.

즉, 피어 A의 Application (1)에서 Interface(2)의 ExecuteSQL method를 호출한다. Sync. Coordinator(3)에서 X-Talk Name System(10)에게 의뢰해서 피어 B ID를 얻는다. 다음으로, X-Talk P2P Connector(9)로 command packet을 전송하고, 피어 B의 X-Talk P2P Connector(9)를 경유하여 Packet Parser(4)에 전달되고, Packet Parser(4)는 받은 패킷이 서비스 요청임을 확인하고 X-Talk Server(5)로 넘긴다. X-Talk Server(5)는 요청 서비스가 SQL 문장 실행임을 인식하고 Service Library(6)의 Service Library 중에서 적절한 function을 호출하여 실행한다. 실행결과는 요청받은 records들의 결과 데이터이고 이것을 피어 A에 return한다. In other words, the ExecuteSQL method of Interface (2) is called from Application (1) of peer A. Sync. Coordinator (3) requests X-Talk Name System (10) to get Peer B ID. Next, the command packet is transmitted to the X-Talk P2P connector (9), and is delivered to the packet parser (4) via the peer B's X-Talk P2P connector (9), and the packet parser (4) receives the received packet. Confirm that it is a service request and pass it to the X-Talk Server (5). The X-Talk Server (5) recognizes that the request service is a SQL statement execution, and calls and executes an appropriate function among the Service Library of the Service Library (6). The execution result is the result data of the requested records and returns it to peer A.

한편, transaction단위 데이터 갱신인 경우, Application(1)에서는 여러 SQL 문장을 하나의 Packet으로 묶는다. 이는 처리해야할 여러 SQL 문장은 개별적으로 처리되어서는 안 되고 반드시 모두 one-time에 실행되어야 하기 때문이다. 즉 여러 sql 문장이 X-Talk의 one command에 처리되기 때문에 데이터 무결성을 보장할 수 있다.On the other hand, in case of transaction unit data update, Application (1) bundles several SQL statements into one packet. This is because multiple SQL statements to be processed must not be processed individually, but must all be executed one-time. In other words, multiple sql statements are processed in one command of X-Talk to ensure data integrity.

3. Bridging Server3. Bridging Server

도 14는 본 발명의 B-Server의 개략적인 구성을 나타내고 있으며, 그 주요한 구성으로서 Common Service Library(10), X-Talk Gateway(20), Manager of Peer Session Resources(40), Authentication Process(70)를 포함하고 있다.Fig. 14 shows a schematic configuration of the B-Server of the present invention, and the main configuration thereof is the Common Service Library (10), the X-Talk Gateway (20), the Manager of Peer Session Resources (40), and the Authentication Process (70). It includes.

X-Talk Gateway(20)X-Talk Gateway (20)

B-Server는 그에 속한 피어들과 함께 X-Talk Network을 형성한다. 또 다른 B-Server가 형성하는 X-Talk Network과 연결시키기 위해서 관련된 B-Server들은 서로에게 게이트웨이(Gate Way)로서 작동돼야 한다. B-Server는 소속된 피어를 위한 common service 이외에 위와 같은 게이트웨이로서의 역할도 수행한다.The B-Server forms an X-Talk Network with its peers. In order to connect to the X-Talk Network formed by another B-Server, the related B-Servers must act as a gateway to each other. In addition to the common service for its peers, the B-Server also acts as a gateway.

Manager of Peer Session Resources(40)Manager of Peer Session Resources (40)

이 요소는 공유자원(Shared Resources)과 Locking Resources를 포함한다. 공유자원은 B-Server가 관리하는 자원과 각각의 피어에 귀속된 자원 모두에 해당된다. 특정 피어에 속한 자원을 여러 다른 피어가 동시에 사용하려 할 때 이 자원은 Shared Resources(50)라 부른다. 이때 이 공유자원을 오염시키지 않고 정상적인 절차를 통해서 사용하려는 피어에게 질서있게 제어권을 주는 체계가 필요한데 이는 상기 Manager of Peer Session Resources(40)에 포함된 Locking Resources(60)를 통해 이루어진다. This element includes Shared Resources and Locking Resources. Shared resources correspond to both resources managed by the B-Server and resources belonging to each peer. When multiple peers try to use a resource belonging to a specific peer at the same time, this resource is called Shared Resources (50). At this time, it is necessary to provide a control system in order to control the peer without using polluting the shared resources in a normal procedure, which is achieved through the Locking Resources (60) included in the Manager of Peer Session Resources (40).

Common Service Library(10)Common Service Library (10)

X-Talk 서비스 중에 피어들 간에 이루어질 수 있는 서비스 이외에 1 : N(N은 1보다 큰 정수) 또는 N : 1로 이루어져야 하는 서비스가 있다. 이 경우는 B-server가 서비스에 관여할 수밖에 없는데 이때 처리에 관련된 라이브러리가 Common Service Library이다. 주로 특정 피어가 다수의 피어에게 동시에 메시지나 이벤트를 보내는 서비스인 경우가 이에 해당한다.In addition to the services that can be established between peers among X-Talk services, there are services that must be composed of 1: N (N is an integer greater than 1) or N: 1. In this case, the B-server has no choice but to participate in the service. The library related to processing is the Common Service Library. This is usually the case when a particular peer is a service that sends messages or events to multiple peers at the same time.

Authentication Process(70)Authentication Process (70)

피어가 X-Talk에 참여하기 위해서는 제일 먼저 B-Server에 인증을 받고 접속을 해야 한다. B-Server는 인증 이외에 새로운 Peer의 등록, 권한등급의 설정 등 피어를 위한 기본서비스를 수행한다.To participate in X-Talk, a peer must first authenticate and connect to a B-Server. In addition to authentication, B-Server performs basic services for peers such as registering new peers and setting permission levels.

도 15는 C/S 방식과 P2P 방식을 융합한 네트워크에 있어 이기종 디바이스 피어들이 B-Server를 매개로 네트워크가 형성되어 있는 구조를 개략적으로 나타내고 있다. 이러한 구조에서 B-Server는 위에서 설명한 상기 X-Talk Component와의 상호동작을 수행한다.FIG. 15 schematically illustrates a structure in which heterogeneous device peers form a network via a B-Server in a network in which a C / S scheme and a P2P scheme are converged. In this structure, the B-Server performs interaction with the X-Talk Component described above.

B-Server와 X-Talk Component와의 상호동작Interaction between B-Server and X-Talk Component

모든 X-Talk Component는 B-Server에 접속된 후 사용될 수 있다. X-Talk 네트워크에서의 B-Server의 주된 기능은 다음의 표 1과 같다.All X-Talk components can be used after connecting to the B-Server. The main functions of B-Server in X-Talk network are shown in Table 1 below.

[표 1]TABLE 1

1. 신규 X-Talk 클라이언트의 등록 및 정보관리1. Registration and Information Management of New X-Talk Client 2. X-Talk 접속에 대한 인증2. Authentication for X-Talk connection 3. 접속하고 있는 X-Talk의 상태 감시 및 제어3. Monitor and control the status of the connected X-Talk 4. 접속하고 있는 X-Talk들의 자원을 공유/조정해 주는 기능4. Ability to share / control resources of connected X-Talks 5. 하나의 X-Talk 네트워크에서 다른 X-Talk 네트워크로 연결해주는 Gateway 기능5. Gateway function to connect from one X-Talk network to another X-Talk network

① 신규 X-Talk 클라이언트의 등록 및 정보관리① Registration and information management of new X-Talk client

X-Talk는 사용하기 전에 B-Server에 새로운 X-Talk 클라이언트를 위한 계정을 생성하고 사용해야 한다. 계정이 생성되면 접속 Hostname, IP, OS type(Platform type), shared directory, alias 등 네트워크와 접속자와 관계된 상세 정보가 B-Server의 데이터베이스에 저장된다. 또한, 피어 그룹에 대한 내용, 계정의 사용권한에 대한 내용, X-Talk 상호 간에 friend 설정에 관한 내용도 함께 저장된다.Before using X-Talk, you must create and use an account for a new X-Talk client on the B-Server. When an account is created, detailed information related to network and accessor such as hostname, IP, OS type (platform type), shared directory, and alias is stored in the database of B-Server. It also stores information about peer groups, account permissions, and friend settings between X-Talk parties.

② X-Talk 접속에 대한 인증② Authentication for X-Talk Connection

모든 X-Talk는 하나의 X-Talk ID에 오직 하나의 X-Talk 네트워크 세션이 배정된다. 즉 어떤 X-Talk가 특정 ID 를 사용 중에 있다면 다른 X-Talk는 같은 ID를 사용할 수 없다.Every X-Talk has only one X-Talk network session assigned to one X-Talk ID. That is, if an X-Talk is using a specific ID, no other X-Talk can use the same ID.

③ 접속하고 있는 X-Talk의 상태 감시 및 제어③ Monitoring and control status of connected X-Talk

B-Server는 현재 접속하고 있는 X-Talk의 연결을 강제로 종료시킬 수 있고 또한, 사용을 제한할 수도 있다.The B-Server can forcibly terminate the connection of the currently connected X-Talk and limit the use.

④ 접속하고 있는 X-Talk들의 자원을 공유/조정해 주는 기능④ Ability to share / control resources of connected X-Talks

여러 피어들이 참여하고 있는 X-Talk 네트워크에서는 서로 간에 자원을 공유함에 있어서 자원 사용의 독점권한을 얻고 사용 후 권한을 다른 X-Talk가 사용할 수 있도록 release해주는 기능을 제공한다. 예컨대 피어 A가 피어 B로 파일을 전송하고 있는 경우 또 다른 피어 C가 피어 B로 같은 이름의 파일을 생성하려고 할 때 피어 A가 피어 B로의 전송이 끝날 때까지 안전하게 사용할 수 있는 권한을 주는 것이 필요하다. 또 다른 예로서, 피어 A가 피어 B의 I/O 장치에 어떤 sequential한 제어신호를 전송하고 있을 때, 그 sequential한 제어신호가 다른 피어에게 방해받아서는 안 될 경우에, 피어 A에게 피어 B의 I/O에 대하여 독점권을 줄 수 있는 기능이 있어야 하며, 이러한 기능을 B-Server가 수행한다.X-Talk network with multiple peers provides the ability to obtain the exclusive right of resource use in sharing resources with each other and release the right after use to other X-Talk. For example, if Peer A is transferring a file to Peer B, when another Peer C tries to create a file of the same name as Peer B, it needs to give Peer A permission to use it safely until the end of the transfer to Peer B. Do. As another example, when peer A is sending a sequential control signal to peer B's I / O device, peer s should be sent to peer A if the sequential control signal should not be interrupted by another peer. There must be a function to give monopoly rights to I / O, and this function is performed by the B-Server.

피어 A는 실시간으로 독점권한을 의미하는 문자열을 B-Server에 등록할 수 있다. 만약 다른 피어 즉 피어 B가 피어 A가 현재 사용하고 있는 자원을 사용하려면 먼저 B-Server에게 피어 A가 지정한 자원을 현재 사용할 수 있는지 문의해야 한다. 문의한 결과가 OK가 얻어지면(사실 문의에 대한 결과는 OK 시그널과 동시에 문의한 피어를 위해 Locking까지를 해서 전송한다) 사용할 수 있고, 그 결과가 not OK이면 현재 다른 피어가 사용 중에 있다는 것을 의미한다. 이러한 방식으로 구성하면 참여하고 있는 어플리케이션(X-Talk Component를 포함하는 어플리케이션)들은 서로간의 약속에 의하여 각각의 피어 자원을 안전하게 사용할 수 있으며, B-Server는 이와 같은 프로세스를 주관하게 된다.Peer A may register a string representing the exclusive authority with the B-Server in real time. If another peer, peer B, wants to use the resources currently used by peer A, first ask the B-Server if the resources specified by peer A are currently available. If the result of the inquiry is OK (in fact, the result of the inquiry will be sent by locking for the inquiring peer at the same time as the OK signal). If the result is not OK, it means that another peer is currently in use. do. If configured in this way, participating applications (applications including X-Talk Component) can use each peer resource securely by mutual promise, and B-Server manages this process.

⑤ 하나의 X-Talk 네트워크에서 다른 X-Talk 네트워크로 연결해주는 게이트웨이 기능⑤ Gateway function to connect from one X-Talk network to another X-Talk network

하나의 B-Server는 하나의 X-Talk 네트워크를 구성한다. 따라서 여러 개의 B-Server가 존재하는 경우 즉 여러 X-Talk 네트워크가 있는 경우에는, 서로 다른 X-Talk 네트워크에 속한 피어들을 연결하도록 하는 게이트웨이의 역할을 수행한다.One B-Server composes one X-Talk network. Therefore, when there are multiple B-Servers, that is, when there are multiple X-Talk networks, it serves as a gateway to connect peers belonging to different X-Talk networks.

이상의 실시예들은 단지 본 발명을 예시하기 위한 것이며, 본 발명의 보호범위가 이들 실시예에 의해 제한되는 것은 아니다.The above embodiments are merely for illustrating the present invention, and the protection scope of the present invention is not limited by these embodiments.

이상에서 자세히 설명한 본 발명에 따르면, P2P방식의 네트워크를 채용함으로써 기본적으로 각 피어들로 분산된 자원을 효과적으로 활용할 수 있을 뿐만 아니라, 각 피어들의 디바이스에 구현되어 있는 통합 미들웨어 컴포넌트에 클라이언트 영역뿐만 아니라 서버 영역을 구성하면서 각각의 피어들간에 자원의 송수신 프로세스가 클라이언트-서버 간의 그것과 같은 특징을 갖도록 하는 한편, 각 피어들의 네트워크 접속을 B-Server가 관리하도록 함으로써 전체 시스템을 통합적으로 관리할 수 있는 장점이 있다.According to the present invention described in detail above, by adopting a P2P network, not only can effectively utilize the resources distributed to each peer, but also the server area as well as the client area in the integrated middleware component implemented in each peer's device. The advantage of being able to manage the whole system collectively by allowing the B-Server to manage the network connection of each peer while allowing the process of sending and receiving resources between each peer while configuring the zone. There is this.

또한, 피어 상호 간에 분산되어 있는 데이터베이스를 원격에서 핸들링하거나, 다른 피어에 저장되어 있는 파일을 또 다른 피어에게 전송할 수 있도록 함으로써 네트워크 구성에 있어 높은 유연성을 구현하였으며, 각 피어는 자신에 저장되어 있는 데이터나 파일이 아니더라도 다른 피어에게 있는 자원을 컨트롤할 수 있기 때문에, 각 피어들이 PC가 아닌 모바일 다바이스라 하더라도 네트워킹에 별다른 장애가 없으며, 또한 업그레이드와 A/S가 피어들 상호 간에 자발적으로 이루어질 수 있는 유용한 효과가 있다.In addition, the network configuration can be remotely handled between peers, or a file stored in another peer can be transferred to another peer, thereby providing high flexibility in network configuration. Each peer stores data stored on its own. Even if it is not a file or a file, it can control the resources of other peers, so even if each peer is a mobile device rather than a PC, there is no obstacle in networking, and also a useful effect that upgrades and A / S can be done voluntarily among peers. There is.

또한, Sync & Async Mode 지원이 가능하기 때문에, 네트워크에서 요구되는 서비스의 특징이나 성질에 따라 각 피어들의 효과적인 작업수행이 가능한 장점이 있다.In addition, since Sync & Async Mode can be supported, each peer can perform an effective task according to the characteristics or characteristics of the service required in the network.

무엇보다도 본 발명의 통합 미들웨어는 특정 파일의 전송뿐만 아니라 이벤트 전송, 데이터베이스 핸들링, 업데이트, 리모팅, 스트리밍 등의 서비스를 통합하여 일원화하고 이를 피어 내에 서버 영역에 구현함으로써 각 피어의 서버로서의 기능을 강화하고 전체 네트워크의 유연성을 높였으며, 네트워크 기반의 프로그래밍을 지원하고 어플리케이션 레벨에서 컴포넌트로 구성되고, 유무선 관계없이 다양한 OS를 채용한 기기들간의 정보교환이 동일한 어플리케이션 인터페이스를 사용하기 때문에 기기의 물리적인 네트워킹 방법이나 사용환경에 관계없이 시스템 구축이 가능한 장점이 있으며, 이로써 네트워크를 위한 프로그램을 별도로 개발하지 않아도 되며, 개발에 투여되는 인원 및 시간을 절약할 수 있다. Above all, the integrated middleware of the present invention consolidates and centralizes services such as event transmission, database handling, update, remote, and streaming as well as transfer specific files, and implements them in the server area within the peer to enhance the functions of each peer as a server. Increase the flexibility of the entire network, support network-based programming, configure components at the application level, and exchange information between devices using various operating systems, whether wired or wireless, using the same application interface. However, there is an advantage that the system can be built regardless of the use environment, and thus, there is no need to develop a program for the network separately, and it saves the number of people and time to be developed.

나아가 본 발명의 컴포넌트 환경을 지원하기 위한 독립적인 관리서버(B-Server)가 제공됨으로써 운영을 위하여 IIS와 같은 웹 서버나 기타 다른 서버를 필요로 하지 않는다.Furthermore, an independent management server (B-Server) is provided to support the component environment of the present invention so that a web server such as IIS or other server is not required for operation.

그밖에 본 발명의 특유한 구성으로 말미암아 발생하는 특유한 효과는 발명의 구성에서 설명한 범위에서 용이하게 추고할 수 있으며, 본 발명의 효과는 이상에서 설명한 실시예 및 본 발명의 청구 범위에 기재된 사항뿐만 아니라, 이들로부터 용이하게 추고할 수 있는 범위 내에서 발생될 수 있는 효과 및 산업발전에 기여하는 잠정적 장점의 가능성들에 의해 더욱 넓은 범위로 포섭될 것임을 첨언한다.In addition, the unique effects generated by the peculiar constitution of the present invention can be easily estimated in the range described in the constitution of the present invention. It is noted that the scope will be encompassed by a wider range of potential effects that may occur within a range that can easily be derived from, and potential advantages that contribute to industrial development.

Claims (4)

각 피어(Peer) 단말에는 통합 서비스 라이브러리를 구비한 통합 미들웨어 컴포넌트가 미리 설치되고, 각 피어 단말에 피어 ID 코드를 부여하며 인증을 수행하는 B-Server가 구비되며, 각 피어 단말과 B-Server는 통합 미들웨어 P2P Connector 모듈을 통해 통신하는 네트워크 시스템을 이용하여, 피어 투 피어 기반에서의 클라이언트-서버 통합 네트워크를 통하여 일원화된 통합 서비스를 제공하는 방법으로서: Each peer terminal is provided with an integrated middleware component having an integrated service library in advance, and is provided with a B-Server which performs peer authentication and assigns a peer ID code to each peer terminal. As a method for providing a unified integrated service through a client-server integrated network on a peer-to-peer basis using a network system communicating through an integrated middleware P2P connector module: 요청 피어인 제 1 피어 단말의 어플리케이션을 매개로 인터페이스를 통해 통합 서비스의 특정 메쏘드(Method)를 호출하는 단계;Calling a specific method of an integrated service through an interface via an application of a first peer terminal that is a requesting peer; 상기 B-Server에 접속하여 제 1 피어 단말의 피어 ID를 획득하는 단계;Accessing the B-Server to obtain a peer ID of a first peer terminal; 상기 제 1 피어 단말이 목적지 피어인 제 2 피어 단말로 특정 서비스의 요청명령을 전송하는 단계;Transmitting a request command of a specific service to a second peer terminal in which the first peer terminal is a destination peer; 상기 특정 서비스의 요청명령의 전송이 Sync 전송인지 또는 Async 전송인지를 결정하고, Sync 전송의 경우에는 제 1 피어 단말의 미리 결정된 대기 시간까지는 제 2 피어 단말에서 응답이 올 때 까지 대기하며, Async 전송인 경우에는 제 2 피어 단말에게 명령을 전송한 다음에 대기하지 않고 곧바로 제어권을 제 1 클라이언트의 어플리케이션으로 돌려주는 단계;It is determined whether the transmission of the request command of the specific service is a Sync transmission or an Async transmission. In the case of Sync transmission, the second peer terminal waits until a response is received until a predetermined waiting time of the first peer terminal. In the case of the step of returning the control right to the application of the first client without waiting after sending a command to the second peer terminal; 상기 제 2 피어 단말이 요청받은 서비스에 대하여 자신의 통합 서비스 라이브러리를 통해 응답을 작성하여 제 1 피어 단말로 전송하는 단계; 및The second peer terminal creating a response to the requested service through its integrated service library and transmitting the response to the first peer terminal; And 상기 제 1 피어 단말이 상기 제 2 피어 단말로부터 수신한 응답을 체크한 후 자신의 어플리케이션에 통지하는 단계를 포함하며, Checking, by the first peer terminal, a response received from the second peer terminal, and notifying its application of the second peer terminal; 상기 특정 서비스의 요청명령은, 제 1 피어 단말이 제 3 피어 단말을 타깃 피어로 설정하고, 제 2 피어 단말로 하여금 자기가 가지고 있는 자원을 제 3 피어 단말로 전송해주도록 요청하는 것을 특징으로 하는, 피어 투 피어 기반에서의 클라이언트-서버 통합 네트워크를 통한 일원화된 통합 서비스 제공방법.The request for the specific service is characterized in that the first peer terminal sets the third peer terminal as the target peer, and requests the second peer terminal to transmit its own resources to the third peer terminal. , A method for providing unified integrated service through client-server integrated network on a peer-to-peer basis. 삭제delete 삭제delete 제 1 항에 있어서,The method of claim 1, 상기 통합 서비스 라이브러리에는 피어 단말 간의 데이터베이스 핸들링(DB Handling), 피어들에 저장되어 있는 파일의 억세스, 또는 데이터베이스의 업그레이드, 이벤트/메시지 전송, 파일 전송에 관한 모듈이 통합적으로 구비되며, The integrated service library is integrated with modules for database handling (DB Handling) between peer terminals, access to files stored in peers, or database upgrade, event / message transfer, file transfer, 제 1 피어 단말의 어플리케이션이 상기 통합 서비스 라이브러리에 모듈화되어 있는 어느 하나 이상을 선택하여 특정 메쏘드를 호출하는 것인, 피어 투 피어 기반에서의 클라이언트-서버 통합 네트워크를 통한 일원화된 통합 서비스 제공방법.The method of claim 1, wherein the application of the first peer terminal selects one or more that is modularized in the integrated service library to call a specific method.
KR1020050028437A 2005-04-06 2005-04-06 A service method with server-client unification network system based on peer to peer KR100698236B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050028437A KR100698236B1 (en) 2005-04-06 2005-04-06 A service method with server-client unification network system based on peer to peer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050028437A KR100698236B1 (en) 2005-04-06 2005-04-06 A service method with server-client unification network system based on peer to peer

Publications (2)

Publication Number Publication Date
KR20060107010A KR20060107010A (en) 2006-10-13
KR100698236B1 true KR100698236B1 (en) 2007-03-22

Family

ID=37627397

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050028437A KR100698236B1 (en) 2005-04-06 2005-04-06 A service method with server-client unification network system based on peer to peer

Country Status (1)

Country Link
KR (1) KR100698236B1 (en)

Also Published As

Publication number Publication date
KR20060107010A (en) 2006-10-13

Similar Documents

Publication Publication Date Title
JP7012836B2 (en) Network slice management method and equipment
US7257821B2 (en) Accessing an in home network through the internet
US9503957B2 (en) Low cost mesh network capability
KR100413684B1 (en) Gateway enabling data communication between devices each having different middleware, home network system thereby, and gateway relaying method
EP1511218B1 (en) A method to realize dynamic networking and resource sharing among equipments
US11929873B1 (en) OPC UA-based centralized user configuration method and system for time-sensitive network
KR100878934B1 (en) System of mobile online game and method for communication between mobile game terminals
JP2005539420A (en) Device equal connection method when realizing dynamic network configuration in home network
KR20110018248A (en) Method and apparatus for remote management in wireless terminal
CN101167327A (en) System and method for accessing multiple data sources by mobile applications
US20110105024A1 (en) Transport independent service discovery
CN102594886B (en) Method and device for direct communication between browsers, and communication system
CN111416723A (en) Equipment management method and related equipment
Rellermeyer et al. Services everywhere: Osgi in distributed environments
KR100571520B1 (en) The method of resource sharing in a home network system with unification middleware
KR100679865B1 (en) A System to Support the Heterogeneity in Ubiquitous Computing Environment
CN114189358A (en) Service security policy management method based on private cloud
CN113472637A (en) LORA gateway
CN112860462A (en) Method, device and system for realizing interconnection and intercommunication of IOT platform bases
KR100698234B1 (en) A server-client unification network system based on peer to peer
KR100698236B1 (en) A service method with server-client unification network system based on peer to peer
KR100715144B1 (en) Method comprising a mobile network system consisted of only pda
KR100728745B1 (en) A pos system using unification meddle ware based on peer to peer
KR101134791B1 (en) Home network system for supporting heterogeneous network or heterogeneous device based on multi-agent technology and home gateway apparatus for the same
JP2008021325A (en) Multi-agent system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130415

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140510

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee