[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR101288137B1 - Policy based conflict resolution in community computing - Google Patents

Policy based conflict resolution in community computing Download PDF

Info

Publication number
KR101288137B1
KR101288137B1 KR1020070006234A KR20070006234A KR101288137B1 KR 101288137 B1 KR101288137 B1 KR 101288137B1 KR 1020070006234 A KR1020070006234 A KR 1020070006234A KR 20070006234 A KR20070006234 A KR 20070006234A KR 101288137 B1 KR101288137 B1 KR 101288137B1
Authority
KR
South Korea
Prior art keywords
community
model
cim
policy
computing
Prior art date
Application number
KR1020070006234A
Other languages
Korean (ko)
Other versions
KR20090000157A (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 KR1020070006234A priority Critical patent/KR101288137B1/en
Publication of KR20090000157A publication Critical patent/KR20090000157A/en
Application granted granted Critical
Publication of KR101288137B1 publication Critical patent/KR101288137B1/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/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Primary Health Care (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

커뮤니티 컴퓨팅 시스템에서의 충돌 방지 방법 및 이를 이용한 커뮤니티 컴퓨팅 개발 시스템이 개시된다. 본 발명의 실시예에 따른 커뮤니티 컴퓨팅 개발 시스템은 사용자 인터페이스 및 커뮤니티 개발부를 포함한다. 사용자 인터페이스는 커뮤니티 컴퓨팅 시스템을 구현하기 위한 정보가 입력된다. 커뮤니티 개발부는 상기 정보를 이용하여 커뮤니티 컴퓨팅 시스템 모델을 개발하고, 개발된 커뮤니티 컴퓨팅 시스템 모델이 각각의 컴퓨팅 요소에 배치되도록 모델 스크립트(model script)를 각각의 컴퓨팅 요소로 출력한다. 이 때 상기 정보는 상기 커뮤니티 컴퓨팅 시스템에서 발생할 수 있는 충돌을 해결하기 위한 정책을 포함한다. 본 발명의 실시예에 따른 충돌 방지 방법은 정책을 이용하여 해결하므로, 커뮤니티 컴퓨팅 시스템에서 동적으로 발생하는 충돌을 해결하여 커뮤니티 컴퓨팅 시스템의 장점을 극대화할 수 있는 장점이 있다. A method for preventing collision in a community computing system and a community computing development system using the method are disclosed. The community computing development system according to an embodiment of the present invention includes a user interface and a community development unit. The user interface inputs information for implementing the community computing system. The community development department develops a community computing system model using the information and outputs a model script to each computing element so that the developed community computing system model is placed in each computing element. Wherein the information includes a policy for resolving conflicts that may occur in the community computing system. Since the conflict prevention method according to the embodiment of the present invention is solved by using the policy, there is an advantage that the advantages of the community computing system can be maximized by resolving conflicts occurring dynamically in the community computing system.

Description

커뮤니티 컴퓨팅을 위한 정책 기반 충돌 해결 방법{Policy based conflict resolution in community computing}[0002] Policy-based conflict resolution for community computing [

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다. BRIEF DESCRIPTION OF THE DRAWINGS A brief description of each drawing is provided to more fully understand the drawings recited in the description of the invention.

도 1은 커뮤니티 컴퓨팅의 개념을 설명하기 위한 도면이다. 1 is a diagram for explaining the concept of community computing.

도 2는 CIL-PI에 의해 기술된 커뮤니티 모델의 예를 나타내는 도면이다. 2 is a diagram showing an example of a community model described by CIL-PI.

도 3은 Rei 언어로 표현된 정책의 예를 나타내는 도면이다. 3 is a diagram showing an example of a policy expressed in the Rei language.

도 4는 Ponder 언어로 작성된 정책의 예를 나타내는 도면이다. 4 is a diagram showing an example of a policy written in the Ponder language.

도 5는 커뮤니티 컴퓨팅의 수행 과정을 나타내는 도면이다. 5 is a diagram illustrating a process of performing community computing.

도 6은 본 발명의 실시예에 따른 커뮤니티 컴퓨팅 시스템의 블록도이다. 6 is a block diagram of a community computing system according to an embodiment of the present invention.

본 발명은 커뮤니티 컴퓨팅 시스템에 관한 것으로서, 특히 커뮤니티 컴퓨팅 시스템에서 정책을 이용하여 충돌을 방지하는 방법 및 이를 이용한 커뮤니티 컴퓨 팅 개발 시스템에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a community computing system, and more particularly, to a method for preventing conflicts using a policy in a community computing system and a community computing development system using the method.

커뮤니티 컴퓨팅(community computing)은 유비쿼터스 환경에 존재하는 스마트 객체들 간에 상호 작용하는 협력 시스템 개발을 위해 제안되었다. 커뮤니티 컴퓨팅은 특정 상황에서의 목표(goal) 해결을 위한 컴퓨팅 요소들의 집합인 커뮤니티(community)라는 개념을 사용하여, 이를 구성하는 컴퓨팅 요소들 간의 상호 작용을 통해 커뮤니티의 목표를 달성하고자 하는 접근방법이다. Community computing has been proposed for the development of collaborative systems that interact with smart objects in ubiquitous environments. Community computing is an approach to achieve the goals of the community through the interaction of the computing elements that make up the community, which is a set of computing elements for solving goals in specific situations .

커뮤니티를 구성하는 컴퓨팅 요소들은 자신의 능력과 상황에 따라 다양한 역할(role)을 가질 수 있으며, 커뮤니티의 요청에 따라 다양한 커뮤니티의 구성원(member)이 될 수 있다. 이렇게 역할과 커뮤니티의 변화가 잦은 동적인 상황에서는 컴퓨팅 요소들 간에 충돌이 발생할 가능성이 존재한다. 현재까지의 커뮤니티 컴퓨팅 모델링(community computing model: CCM)에서는 시스템의 설계 시점에서 충돌에 대해서는 고려되지 않고 있어, 실제 구현 단계인 플랫폼에 독립적인 커뮤니티 구현 모델(community implementation model-platform independent: CIM-PI) 시, 즉 특정 언어로 개발을 하는 개발자가 직접 컴퓨팅 요소를 프로그래밍 할 때 개발자 임의로 처리를 해줘야 한다.   The computing elements that make up a community can have different roles depending on their own abilities and situations, and can become members of various communities at the request of the community. In dynamic situations where roles and communities change frequently, there is a possibility of conflict between computing elements. In the current community computing model (CCM), there is no consideration of collision at the design stage of the system. Therefore, a community implementation model-platform independent (CIM-PI) Developers who are developing in a specific language need to deal with the computing elements at their discretion when programming their own computing elements.

그러나 실제 개발 시에 충돌이 발생할 수 있는 요소 하나하나를 고려하여 처음부터 프로그래밍 하기란 쉬운 작업이 아니다. 또한 새로운 충돌 요인이 발생했을 때마다 다시 프로그래밍 하고 컴파일 하여야 하는 문제점이 있다. 따라서 이러한 부분을 설계 단계에서부터 고려해야 하며, 이를 위한 해결 방안이 필요하다. However, it is not an easy task to program from the beginning considering the factors that may cause conflicts in actual development. Also, there is a problem in that it is reprogrammed and compiled every time a new conflict factor occurs. Therefore, this part should be considered from the design stage, and a solution for this is needed.

본 발명이 이루고자하는 기술적 과제는 커뮤니티 컴퓨팅 시스템에서 정책을 이용하여 충돌을 방지할 수 있는 커뮤니티 컴퓨팅 개발 시스템을 제공하는데 있다. Disclosure of Invention Technical Problem [8] The present invention provides a community computing development system that can prevent a conflict using a policy in a community computing system.

본 발명이 이루고자하는 다른 기술적 과제는 커뮤니티 컴퓨팅 시스템에서 정책을 이용하여 충돌을 방지하는 방법을 제공하는데 있다. It is another object of the present invention to provide a method for preventing a conflict by using a policy in a community computing system.

상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 커뮤니티 컴퓨팅 개발 시스템은 사용자 인터페이스 및 커뮤니티 개발부를 포함한다. 사용자 인터페이스는 커뮤니티 컴퓨팅 시스템을 구현하기 위한 정보가 입력된다. 커뮤니티 개발부는 상기 정보를 이용하여 커뮤니티 컴퓨팅 시스템 모델을 개발하고, 개발된 커뮤니티 컴퓨팅 시스템 모델이 각각의 컴퓨팅 요소에 배치되도록 모델 스크립트(model script)를 각각의 컴퓨팅 요소로 출력한다. 이 때 상기 정보는 상기 커뮤니티 컴퓨팅 시스템에서 발생할 수 있는 충돌을 해결하기 위한 정책을 포함한다. According to an aspect of the present invention, there is provided a community computing development system including a user interface and a community development unit. The user interface inputs information for implementing the community computing system. The community development department develops a community computing system model using the information and outputs a model script to each computing element so that the developed community computing system model is placed in each computing element. Wherein the information includes a policy for resolving conflicts that may occur in the community computing system.

이 때 상기 정보는 CML(community computing modeling language) 형태로 기술되는 것이 바람직하다. At this time, the information is preferably described in a CML (Community Computing Modeling Language) format.

또한 상기 정보는 CIM-PI(community implement model-platform independent) 형태로 기술되는 것이 바람직하다. Also, the information is preferably described in a CIM-PI (Community Implementation Model-Platform Independent) format.

한편 상기 정책은 CIM-PI 형태로 기술되는 것이 바람직하다. Meanwhile, the policy is preferably described in the CIM-PI format.

한편 상기 커뮤니티 개발부는 모델 구축부, 커뮤니티 모델 저장부, 및 모델 변환부를 포함한다. 모델 구축부는 상기 사용자 인터페이스로부터 입력된 정보가 CML 형태인지 또는 CIM-PI 형태인지 판단하고, 판단된 결과에 따라 커뮤니티 모델을 생성한다. 커뮤니티 모델 저장부는 상기 생성된 커뮤니티 모델을 저장한다. 모델 변환부는 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 사용자가 원하는 형태의 스크립트로 변환하여 출력한다. The community development unit includes a model building unit, a community model storing unit, and a model converting unit. The model building unit determines whether the information input from the user interface is a CML form or a CIM-PI form, and generates a community model according to the determined result. The community model storage unit stores the generated community model. The model conversion unit converts the community model stored in the community model storage unit into a script desired by the user and outputs the converted script.

또한 상기 모델 구축부는 CML 구축부 및 PI 구축부를 포함한다. CML구축부는 상기 사용자 인터페이스로부터 입력된 정보가 CML 형태인 경우 상기 CML 형태의 입력 정보에 적합한 커뮤니티 모델을 생성한다. PI구축부는 상기 사용자 인터페이스로부터 입력된 정보가 CIM-PI 형태인 경우 상기 CIMM-PI 형태의 입력 정보에 적합한 커뮤니티 모델을 생성한다. The model construction unit includes a CML construction unit and a PI construction unit. The CML building unit generates a community model suitable for the CML type input information when the information input from the user interface is a CML type. The PI construction unit generates a community model suitable for the CIMM-PI type input information when the information input from the user interface is CIM-PI type.

또한 상기 모델 변환부는 CML 변환부, PI 변환부, 및 PS 변환부를 포함한다. CML 변환부는 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CML 형태의 스크립트로 변환하여 출력한다. PI 변환부는 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CIM-PI 형태의 스크립트로 변환하여 출력한다. PS 변환부는 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CIM-PS 형태의 스크립트로 변환하여 출력한다. The model conversion unit may include a CML conversion unit, a PI conversion unit, and a PS conversion unit. The CML conversion unit converts the community model stored in the community model storage unit into a script of the CML type and outputs the converted community model. The PI conversion unit converts the community model stored in the community model storage unit into a CIM-PI type script and outputs the same. The PS conversion unit converts the community model stored in the community model storage unit into a CIM-PS type script and outputs it.

이 때 상기 PS 변환부는 상기 PI 변환부에 의해 변환된 CIM-PI 형태의 스크립트를 CIM-PS 형태의 스크립트로 변환하는 것이 바람직하다. In this case, the PS conversion unit preferably converts the CIM-PI type script converted by the PI conversion unit into a CIM-PS type script.

또한 상기 PS 변환부는 CIM-PI 형태로 기술된 정책을 CIM-PS 형태로 변환하는 것이 바람직하다. Also, it is preferable that the PS conversion unit converts the policy described in the CIM-PI format into the CIM-PS format.

상기 다른 기술적 과제를 달성하기 위한 커뮤니티 컴퓨팅 시스템에서의 충돌 방지 방법은 커뮤니티 컴퓨팅 시스템을 구현하기 위한 정보를 입력하는 단계, 및 상기 정보를 이용하여 커뮤니티 컴퓨팅 시스템 모델을 개발하고, 개발된 커뮤니티 컴퓨팅 시스템 모델이 각각의 컴퓨팅 요소에 배치되도록 모델스크립트(model script)를 각각의 컴퓨팅 요소로 출력하는 단계를 포함하며, 상기 정보는 상기 커뮤니티 컴퓨팅 시스템에서 발생할 수 있는 충돌을 해결하기 위한 정책을 포함한다. According to another aspect of the present invention, there is provided a method for preventing a collision in a community computing system, the method comprising: inputting information for implementing a community computing system; developing a community computing system model using the information; And outputting a model script to each computing element to be placed in each computing element, the information comprising policies for resolving conflicts that may occur in the community computing system.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다. In order to fully understand the present invention, operational advantages of the present invention, and objects achieved by the practice of the present invention, reference should be made to the accompanying drawings and the accompanying drawings which illustrate preferred embodiments of the present invention.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, the present invention will be described in detail with reference to the preferred embodiments of the present invention with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.

유비쿼터스 환경은 복잡한 분산 환경 중의 하나로 생각할 수 있다. 일반적인 분산 환경의 특징 외에 유비쿼터스 환경은 서비스 주체의 동적인 배치, 목표 지향의 구성 등의 유비쿼터스 환경 자체만의 특징을 가진다. 기존의 모델링 방법들은 이러한 유비쿼터스 환경의 특징에 대해 고려할 수 없었기 때문에 모델링 시 이러한 특징을 충분히 반영하지 못한다. 커뮤니티 컴퓨팅은 기존의 방법들에 비해 유비쿼터스 시스템의 특징을 반영하여 유비쿼터스 환경에서의 협력 시스템을 개발하기 위한 모델링 기법이다. The ubiquitous environment can be considered as one of complex distributed environments. In addition to the characteristics of general distributed environment, the ubiquitous environment has the characteristics of the ubiquitous environment itself such as dynamic arrangement of service subjects, goal-oriented configuration, and the like. Since existing modeling methods can not consider the characteristics of such ubiquitous environment, they do not fully reflect these characteristics in modeling. Community computing is a modeling technique for developing a collaborative system in a ubiquitous environment, reflecting characteristics of ubiquitous systems compared to existing methods.

커뮤니티 컴퓨팅은 유비쿼터스 환경에서의 협업 시스템(cooperative Systems) 개발을 위해 제안된 방법이다. 커뮤니티 컴퓨팅은 유비쿼터스 환경을 하나의 사회(society)로 보고 이 사회 내에서 발생하는 목표(goal)에 따라 커뮤니티(community)라고 하는 가상의 조직을 구성하여 커뮤니티 구성원간의 상호작용을 통해 목표를 달성하려는 방법이다. 커뮤니티 컴퓨팅을 통해 유비쿼터스 환경의 특징을 반영한 모델링을 할 수 있으며, 유비쿼터스 환경을 구성하는 요소들 간의 관계를 설명할 수 있다. Community computing is a proposed method for developing cooperative systems in the ubiquitous environment. Community computing refers to the way in which a ubiquitous environment is regarded as a society and a virtual organization called a community is formed according to the goals that occur within the community to achieve goals through interaction among community members to be. Through community computing, modeling that reflects the characteristics of the ubiquitous environment can be performed, and the relationship between the elements constituting the ubiquitous environment can be explained.

그러나 현재의 커뮤니티 컴퓨팅은 시스템의 실행 시에 발생할 수 있는 충돌 요인이나 예외 상황을 고려하지 않고 있다. 이는 시스템의 수행 시 예상치 못한 문제를 발생시킬 수 있으며, 구현단계에서 개발자는 이러한 예상치 못한 상황을 고려하여 프로그래밍 해야 한다. 만약 새로운 상황이 또 발생한다면 다시 구성원에 대한 프로그래밍 작업과 컴파일 작업을 거쳐야 한다. 이러한 요인을 해결하기 위해 커뮤니티 컴퓨팅에서 발생하는 충돌 요인을 분석하고, 이를 모델에 적용시키는 방안에 대한 논의가 필요하다. However, current community computing does not take into account any conflicts or exceptions that can occur when the system is running. This can lead to unexpected problems in the execution of the system, and in the implementation phase, the developer should program in consideration of these unexpected situations. If a new situation occurs again, you will have to program and compile the member again. In order to solve these problems, it is necessary to analyze the conflict factors in community computing and discuss how to apply it to the model.

본 발명에서는, 시스템에 따라 권한의 변화가 잦은 분산 환경에서의 접근 조절(access control)을 위한 방법 사용되는 정책(policy)을 이용하여 커뮤니티 컴퓨팅에서 발생하는 충돌을 방지하는 방법을 제안한다. 이러한 방법을 이용한다면, 설계 단계에서부터 상황에 따라 필요한 정책을 기술함으로써 이를 구현 단계에서 참고 할 수 있도록 하여 개발 효율을 높일 수 있을 것이다. In the present invention, a method for access control in a distributed environment with frequent privilege changes according to a system is proposed, and a method for preventing a conflict occurring in a community computing is proposed. Using this method, it is possible to improve the development efficiency by describing necessary policies according to the situation from the design stage, and making reference to them in the implementation stage.

이를 위해 이하의 설명에서는, 커뮤니티 컴퓨팅에서 컴퓨팅 요소들이 목표 달성을 위해 동적으로 커뮤니티를 구성하고 상호작용을 수행하는 과정에서 발생할 수 있는 충돌 요인에 대해 설명하고, 이를 커뮤니티 컴퓨팅을 구성하는 각 요소들(society, community, member)에 따라 분류하고, 이에 맞는 정책의 실시예들에 대해 설명한다. 또한 본 발명에서는 예시적인 정책 표현을 위해 기존의 정책 언어들을 비교 분석하여 커뮤니티 컴퓨팅에 적절한 정책 언어를 제안하고, 정책 수행을 위해 표현된 정책을 변환할 수 있는 정책 변환기를 제안한다. To this end, the following discussion explains the factors that can arise in the process of constructing and interacting with communities dynamically in order to achieve the goals of the computing elements in the community computing, society, community, and member), and explains examples of policies that are appropriate. Also, the present invention proposes a policy language suitable for community computing by comparing and analyzing existing policy languages for an exemplary policy expression, and proposes a policy converter capable of converting a policy expressed for policy execution.

1. 커뮤니티 컴퓨팅1. Community computing

커뮤니티 컴퓨팅은 유비쿼터스 환경에서의 협업 시스템 개발을 위해 제안된 기법이다. 도 1은 커뮤니티 컴퓨팅의 개념을 설명하기 위한 도면으로, 실제 영역을 유비쿼터스 영역으로 모델링하는 과정을 나타낸다. 커뮤니티 컴퓨팅 방법은 특정 유비쿼터스 도메인(도 1에서 유비쿼터스 영역)을 하나의 사회(society)로 보고, 이 사회 내에서 발생하는 목표(goal)는 컴퓨팅 요소들의 협업을 통해 해결될 수 있는 것으로 생각한다. 커뮤니티 컴퓨팅에서는 동적으로 발생하는 목표의 달성을 위해 커뮤니티라는 개념을 이용하여 접근하고 있다. 커뮤니티는 목표 달성을 위한 컴퓨팅 주체들의 집합이며, 필요에 따라 동적으로 생성되고 목표가 달성되면 동적으로 소멸된다. Community computing is a proposed method for collaborative system development in ubiquitous environment. FIG. 1 is a diagram for explaining the concept of community computing, and shows a process of modeling an actual domain into a ubiquitous domain. The community computing method considers a specific ubiquitous domain (the ubiquitous domain in FIG. 1) as a society, and a goal generated in the society can be solved through collaboration of computing elements. In community computing, the concept of community is used to achieve dynamically generated goals. A community is a collection of computing entities for achieving goals, dynamically generated as needed, and dynamically destroyed when goals are achieved.

커뮤니티 컴퓨팅에서 모델을 기술하는 방식은 다음과 같다. 모델에서는 일단 모델링 하고자 하는 도메인을 나타내는 사회와 도메인 내에 나타날 수 있는 컴퓨팅 요소들 즉 사회 구성원(member)에 대해 기술한다. 도 1에 도시된 바와 같이, 커뮤 니티는 커뮤니티 템플릿(community template)의 역할(role)들로 기술될 수 있다. 실제 유비쿼터스 영역에서는 커뮤니티 템플릿에 대응하는 커뮤니티 인스턴스(community instance)로 나타나며, 커뮤니티 인스턴스는 커뮤니티 템플릿의 역할들에 대응하는 구성원(member)들로 구성된다. The way to describe a model in community computing is as follows. In the model, we describe the social elements that represent the domains we want to model, and the computing elements that can appear in the domain, namely, social members. As shown in FIG. 1, the community can be described as roles of a community template. In a real ubiquitous area, a community instance corresponds to a community template, and a community instance includes members corresponding to roles of a community template.

도메인에 대한 기술이 끝나면, 다음은 커뮤니티라는 개념으로 사상될 수 있는, 도메인 내에서 발생할 수 있는 문제들에 대해 기술한다. 이 문제의 기술에서는 문제에서 해결하고자 하는 목표와 목표 달성을 위해 필요한 커뮤니티 구성원, 그리고 목표 달성을 위한 커뮤니티 내의 각 구성원 간의 상호작용(interaction)에 대해 기술된다. After the description of the domain is finished, the following describes problems that may occur within the domain, which can be thought of as a community. The description of the problem describes the goal of the problem, the community members needed to achieve the goal, and the interaction between each member in the community to achieve the goal.

커뮤니티 컴퓨팅에서는 모델의 기술을 위해 CML(community computing modeling language)과 CIL-PI(community computing implementation language-platform independent)의 두 가지 언어를 정의하고 있다. 각 언어는 모델링 단계에 따라 그 쓰임이 다르며, 커뮤니티 컴퓨팅을 위한 구체적인 모델은 CIM-PI단계에서 CIL-PI를 통해 기술된다. 도 2는 CIL-PI에 의해 기술된 커뮤니티 모델의 예를 나타내는 도면이다. 이 단계에서 각 커뮤니티와 커뮤니티를 구성하는 역할들 간에 일어나는 일들이 상세하게 기술된다. In community computing, two languages are defined for the description of the model: community computing modeling language (CML) and community computing implementation language-platform independent (CIL-PI). Each language differs according to the modeling phase, and a specific model for community computing is described through CIL-PI in the CIM-PI phase. 2 is a diagram showing an example of a community model described by CIL-PI. At this stage, what happens between each community and the roles that make up the community is described in detail.

이러한 모델 기술을 통해 유비쿼터스 환경에서 동적으로 배치되는 컴퓨팅 요소들과 목표지향적인 특징이 반영될 수 있다. 그러나 도 2의 예로부터 알 수 있듯이, 현재의 커뮤니티 컴퓨팅은 구성요소들이 실행될 때 발생할 수 있는 충돌 상황이나 예외적인 상황에 대한 기술이 없다. 분산 환경에서 상호작용하는 요소들 간에 는 충돌이 발생하며, 충돌에 대한 처리는 필수적이다. 커뮤니티 컴퓨팅에서는 이러한 충돌에 대한 처리가 개발자의 몫으로 남겨져 있어 새로운 충돌요인이 발생되면 컴퓨팅 요소의 내부를 변화시켜야 하는 문제점이 발생한다. 이는 효율적인 시스템 개발의 저해요인이 되므로, 충돌의 문제를 해결할 필요성이 있다. This modeling technique can reflect computing elements that are dynamically placed in the ubiquitous environment and goal-oriented characteristics. However, as can be seen from the example of FIG. 2, current community computing has no description of the conflict situation or exceptional situation that may occur when the components are executed. In a distributed environment, conflicts occur between interacting elements, and processing of conflicts is essential. In the community computing, the processing of such a conflict is left as a part of the developer, causing a problem that the inside of the computing element must be changed when a new conflict factor occurs. This is an obstacle to efficient system development, so there is a need to solve the problem of collision.

2. 분산 환경에서의 충돌해결2. Resolving Conflicts in a Distributed Environment

분산 환경에서 각 컴퓨팅 요소들이 독립적인 행동을 수행하다보면 요소들 간의 충돌이 발생하는 상황이 발생한다. 지난 수년간 이러한 충돌 해결을 위한 많은 연구들이 진행되어 왔으며 접근 방법에 따라 여러 가지로 구분된다. 대표적으로, 협상(Negotiation), 중재(Arbitration), 투표(Voting) 등을 들 수 있으며, 이 방법들을 실제 운용함에 있어 크게 알고리즘 기반으로 수행하거나 혹은 정책 기반으로 수행하는 방법이 있다. In a distributed environment, when each computing element performs an independent action, a collision occurs between elements. Over the past several years, many studies have been conducted to resolve these conflicts and are divided into several approaches depending on the approach. Negotiation, arbitration, and voting are typical examples. In actual operation, these methods are largely algorithm-based or policy-based.

알고리즘 기반 수행방법은 수행속도가 빠른 장점이 있는 반면, 충돌 해결을 위한 방법이 바뀔 때마다 컴퓨팅 요소의 내부를 변경해야하는 문제점이 있다. 또한 알고리즘 기반 수행방법은 컴퓨팅 요소의 수가 많아진 상태에서 알고리즘의 변화가 생기면 각 요소에 대한 변환 작업에 많은 시간이 필요한 단점이 있다. 따라서 알고리즘 기반 수행방법은 컴퓨팅 요소들이 고정되어 있는 분산 환경에 적합하다. Algorithm based execution method has a merit that execution speed is fast, but there is a problem that the inside of a computing element must be changed whenever a method for resolving conflict is changed. In addition, the algorithm-based performance method has a disadvantage in that it takes much time to convert each element when the number of computing elements increases and the algorithm changes. Therefore, the algorithm-based performance method is suitable for distributed environments where computing elements are fixed.

이에 비해 정책 기반 수행방법은 정책을 수행하는 부분이 한 번 만들어지면 거의 변화가 없으며 충돌 해결 방법이 바뀌어도 정책을 수정하기만 하면 되기 때문에, 컴퓨팅 요소 내부 코드에 대한 수정을 고려하지 않아도 되는 장점이 있다. 따 라서 정책 기반 수행방법은 컴퓨팅 요소들이 동적으로 변화하는 환경에 적합하다. On the other hand, the policy-based execution method is advantageous in that it does not need to consider modification of the internal code of the computing element since the policy execution is hardly changed once the execution part of the policy is created and the policy is modified only when the conflict resolution method is changed . Thus, policy-based practices are appropriate for environments where computing elements change dynamically.

일반적으로 유비쿼터스 환경을 기반으로 하고 있는 커뮤니티 컴퓨팅에서는 컴퓨팅 요소들이 동적으로 변화하고, 커뮤니티가 동적으로 생성하고 소멸한다. 따라서 이러한 커뮤니티 컴퓨팅에서는 알고리즘 기반 수행방법보다 정책 기반 수행방법이 더 적합할 것이다. Generally, in the community computing based on the ubiquitous environment, computing elements change dynamically and the community dynamically generates and disappears. Therefore, in this community computing, the policy-based performance method is more suitable than the algorithm-based performance method.

2-1. 정책2-1. Policy

정책은 시스템의 행동을 변화시키는데 이용될 수 있는 정보로 정의된다. 일반적으로 정책은 주체(subject)와 자원(target resource) 간에 필요한 권한(authorization)과 의무(obligation), 그리고 이러한 정책을 수행하면서 발생할 수 있는 충돌(conflict)을 해결하기 위한 부분으로 구성된다. 한편, 위임을 통해 정책을 분산시키면 중앙 집중 형으로 정책을 수행할 때의 오버헤드를 줄일 수 있으므로, 분산 환경의 경우 이에 덧붙여 위임(delegation)을 위한 정책이 추가적으로 필요하다. Policies are defined as information that can be used to change the behavior of the system. In general, policies consist of the necessary authorization and obligation between the subject and the target resource, and a part for resolving conflicts that may occur while performing such a policy. On the other hand, if the policy is distributed through delegation, it is possible to reduce the overhead of centralized policy execution. Therefore, a policy for delegation is additionally required in the distributed environment.

커뮤니티 컴퓨팅을 위해서는 의무와 위임, 그리고 정책 간의 충돌을 해결할 수 있는 메타정책(meta policy)에 대해 논의가 필요하다. 권한은 리소스에 대한 접근 제어를 위해 이용되는데 커뮤니티 컴퓨팅에서는 자신의 리소스를 가지고 있는 구성원 간의 상호 작용에 대해 기술하고 있기 때문에 권한에 관한 정책은 고려하지 않아도 될 것이다. For com- munity computing, it is necessary to discuss meta-policies that can resolve conflicts between duties, delegations, and policies. Privileges are used to control access to resources. In community computing, there is no need to consider policies about privileges because they describe the interactions among members who have their own resources.

2-2. 정책 언어2-2. Policy language

정책 언어는 정책을 표현하기 위한 언어로, 정책의 표현을 위해서는 정책언어가 필수적이다. 정책 표현을 위한 표준 언어는 아직 존재하지 않지만 정책의 필요성에 의해 개별적인 연구가 진행되고 있다. 현재 연구 중인 정책 언어로는 Rei와 Ponder가 있다. Rei는 분산 환경에서의 보안 정책 표현을 위한 정책 언어로 분산 환경을 위해 필요한 위임에 관한 정책을 다양하게 표현할 수 있도록 지원하고 있다. 하지만 보안 정책에 초점이 맞추어져 있어 커뮤니티 컴퓨팅에서 사용하기에는 적절하지 않은 문제점이 있다. A policy language is a language for expressing a policy, and a policy language is essential for expressing a policy. There is no standard language for policy expression yet, but individual studies are under way due to the necessity of policy. Policy languages currently under study include Rei and Ponder. Rei is a policy language for security policy representation in a distributed environment. It supports various delegation policies for distributed environments. However, there is a problem that is not suitable for use in community computing because it focuses on security policy.

도 3은 Rei 언어로 표현된 정책의 예를 나타내는 도면이다. Rei 언어는 의무에 관련된 개념(deontic concepts)에 기반하여 언어를 정의한다. 이는 접근 제어를 위해 컴퓨팅 요소가 할 수 있는 일과 할 수 없는 일을 구분 짓는 기초 개념이 되며, 이를 위한 온톨로지도 함께 정의함으로써 정책 관리에 도움을 준다. 3 is a diagram showing an example of a policy expressed in the Rei language. The Rei language defines language based on deontic concepts. This is a basic concept that distinguishes between what a computing element can and can not do for access control. It also helps policy management by defining an ontology for this.

Ponder는 일반적인 목적으로 개발된 정책 언어로 모든 도메인에서 사용할 수 있도록 다양한 표현력을 제공한다. 위임 정책에 대해서는 가장 기본적인 위임에 관한 표현력을 제공한다. 모든 도메인에서 사용할 용도로 제안된 언어이기 때문에 언어의 표현력이 풍부하지만, 특정 도메인에서만 사용하기에는 언어 및 정책 실행기의 크기가 커지는 단점이 있다. 도 4는 Ponder 언어로 작성된 정책의 예를 나타내는 도면이다. Ponder is a general-purpose policy language that provides a variety of expressive power for use in all domains. The delegation policy provides the most basic expressions of delegation. Since the language is proposed for use in all domains, the language is expressive, but it has a disadvantage in that the size of the language and policy launcher increases for only a specific domain. 4 is a diagram showing an example of a policy written in the Ponder language.

3. 커뮤니티 컴퓨팅에서의 충돌3. Conflicts in Community Computing

3-1. 커뮤니티 컴퓨팅의 수행 과정3-1. Process of Community Computing

도 5는 커뮤니티 컴퓨팅의 수행 과정을 나타내는 도면이다. 초기화 단계에서, 사회 관리자와 어느 사회에도 속하지 않은 구성원들이 생성되고, 구성원들은 사회로의 등록을 요청하고(1, 2) 사회는 구성원들을 등록한다. 구성원들의 사회로의 등록이 완료된 후, 커뮤니티 생성 조건이 발생하지 않는 한 구성원들은 각자의 행동(own action)을 수행한다. 5 is a diagram illustrating a process of performing community computing. In the initialization phase, social administrators and members not belonging to any society are created, members request registration to society (1, 2), and society registers members. After the registration of the members into the society is completed, the members perform their own actions unless a community creation condition occurs.

커뮤니티 생성 조건이 발생하면(3) 이를 인지한 특정 구성원이 사회 관리자에게 커뮤니티 생성을 요청하고(4), 이 요청에 따라 사회 관리자는 해당 커뮤니티를 위한 커뮤니티 매니저를 생성하고(4.1) 커뮤니티에 목표를 전달한다. 목표를 받은 커뮤니티 매니저는 커뮤니티의 목표 달성을 위해 필요한 구성원들을 캐스팅하여(5, 6) 각 구성원의 역할에 필요한 프로토콜을 전송한다(9, 10). 이 과정에서 구성원들은 캐스팅에 대해 지원을 하고(7, 8) 커뮤니티 매니저는 필요한 구성원들이 캐스팅되었는지 체크한다(8.1). (4) the community manager creates a community manager for the community (4.1), and (4) requests the community to create a community. . The target community manager casts necessary members to achieve the goals of the community (5, 6) and transmits the necessary protocols to each member's roles (9, 10). In this process, the members provide support for casting (7, 8) and the community manager checks whether the required members are cast (8.1).

프로토콜이 모두 전달된 후 목표 달성을 위한 초기 행동을 시작으로 커뮤니티 구성원들 간의 통신을 통해 각 프로토콜을 수행한다(11). 이 과정에서 커뮤니티에 캐스팅된 각 구성원들은 서로 상호작용함으로써(11.1) 커뮤니티의 목표가 달성된다(11.2). 프로토콜의 수행이 모두 끝나면 목표가 달성되었다는 뜻이며, 목표 달성을 인지한 구성원은 사회 관리자에게 커뮤니티 소멸을 요청한다. 이 과정에서, 커뮤니티 매니저는 목표가 달성되었는지 확인하여(12) 사회 관리자에게 목표가 되었음을 알리고(13), 사회관리자는 목표가 달성된 커뮤니티를 소멸시킨다(14). After all the protocols have been communicated, each protocol is performed through communication among the community members, starting with the initial action to achieve the goal (11). In this process, each member cast into the community interacts with each other (11.1) and the community's goals are achieved (11.2). When the implementation of the protocol is completed, it means that the goal has been achieved. The member who recognizes the achievement of the goal requests the community manager to annul the community. In this process, the community manager confirms that the goal has been achieved (12) informs the social manager that he has become the target (13), and the social manager annihilates the community in which the goal has been achieved (14).

커뮤니티가 소멸되면 사회 관리자와 구성원들이 존재하던 초기의 상태로 돌아간다. 기술된 목표를 위한 조건이 생길 때마다 이러한 과정이 반복되며 커뮤니티가 동적으로 생성되거나 소멸된다. When the community disappears, it returns to the initial state where the social administrators and members were present. Every time a condition for a stated goal occurs, this process is repeated and the community is created or destroyed dynamically.

그러나 이러한 커뮤니티 컴퓨팅 모델은 커뮤니티의 생성과 소멸 등에 관한 프로세스에 대해 기술되어 있을 뿐, 해당 프로세스를 수행함에 있어 고려되어야 할 사항에 대한 기술은 부족한 실정이다. 특히 커뮤니티 컴퓨팅 모델에서 발생될 수 있는 충돌에 대해서는 전혀 기술되어 있지 않는 문제점이 있다. 이하에서는 커뮤니티 컴퓨팅에서 발생할 수 있는 충돌 요인들에 대해 설명한다. However, this community computing model describes the process of community creation and destruction, and there is a lack of description of what should be considered in carrying out the process. In particular, there is a problem in that there is no description about a collision that may occur in the community computing model. Hereinafter, conflict factors that may occur in community computing will be described.

3-2 커뮤니티 컴퓨팅에서의 충돌 요인3-2 Conflict Factors in Community Computing

도 5를 참조하여 설명한 커뮤니티 컴퓨팅의 수행 과정은 아무런 문제도 없을 경우의 성공 시나리오(success scenario)이다. 그러나 커뮤니티 컴퓨팅의 수행 과정에서 예상하지 못한 충돌이 발생할 수 있으며, 커뮤니티 컴퓨팅에서 발생할 수 있는 충돌은 커뮤니티 컴퓨팅 구성요소에 따라 크게 사회, 커뮤니티, 구성원에서 발생할 수 있는 충돌로 나누어 생각해 볼 수 있다. 위의 수행 과정을 단계 별로 살펴보면서 커뮤니티 컴퓨팅에서 발행할 수 있는 충돌 요인을 각 구성요소에 따라 분류하면 다음과 같다. The process of performing the community computing described with reference to FIG. 5 is a success scenario in the case where there is no problem. However, unexpected conflicts can occur in the process of community computing, and the conflicts that may arise in community computing can be divided into conflicts that can occur in society, community, and members depending on the components of community computing. The following is the classification of the conflict factors that can be issued by community computing according to each component.

3-2-1. 사회(Society)에서의 충돌3-2-1. Collision in Society

사회는 사회 내의 구성원과 커뮤니티들을 관리해야 한다. 따라서 사회 단계 에서의 주요 정책들은 그들의 관리를 위한 정책이다. 사회는 구성원의 등록과 탈퇴, 커뮤니티의 생성과 소멸, 프로토콜 전송, 그리고 유비쿼터스 시스템 내의 전역적인 정보들을 관리할 수 있어야 한다. 사회 수준의 충돌을 나열하면 다음과 같다. Society must manage its members and communities within society. Therefore, major policies at the social level are policies for their management. Society should be able to manage the registration and withdrawal of members, creation and destruction of communities, protocol transmission, and global information in ubiquitous systems. The collision at the level of society is as follows.

구성원의 등록 충돌: 구성원의 기본 행동이 배타적인 경우, 두 구성원의 행동은 멈추거나 충돌할 수 있다.  Member's registration conflict: If the member's default behavior is exclusive, the actions of both members may stop or conflict.

커뮤니티 생성 충돌: 커뮤니티 A와 B가 배타적인 경우, 두 커뮤니티의 생성이 동시에 요청될 수 있다. 예를 들어, 어떤 학생을 위한 공부 커뮤니티와 방학 커뮤니티는 배타적이다. 이런 상황에서 커뮤니티 생성에는 아무런 제약 조건이 없기 때문에 사회는 두 커뮤니티에 대한 커뮤니티 매니저를 생성하게 된다. 그러나 이 경우에는 하나의 커뮤니티만 생성되어야 하며, 이에 대한 처리가 필요하다.  Community Creation Conflicts: When communities A and B are exclusive, the creation of both communities can be requested at the same time. For example, the study community and vacation community for some students are exclusive. In this situation, there is no constraint on community creation, so society creates a community manager for both communities. However, in this case, only one community needs to be created, and processing is required.

커뮤니티의 목표 충돌: 서로 배타적인 커뮤니티가 이미 생성되어 있는 경우, 두 커뮤니티에서 요구하는 목표가 달라서 충돌이 발생할 수 있다. 예를 들어 A를 위한 화재 진화 커뮤니티와 B의 난방을 위해 불을 지펴야 하는 커뮤니티가 생성되어 있는 경우, A와 B의 요구를 모두 충족시킬 수 없게 된다. 이러한 경우 어떤 커뮤니티의 목표를 먼저 수행해야 하는지에 대한 지표가 필요하게 된다.  Community Goal Conflicts: If communities are already created that are mutually exclusive, conflicts can arise because the two communities require different goals. For example, if a fire evolving community for A and a community that needs to fire fire for B have been created, they will not be able to meet both A and B requirements. In this case, it is necessary to provide an indicator of what community goals should be implemented first.

3-2-2 커뮤니티에서의 충돌3-2-2 Collision in the community

커뮤니티 매니저는 커뮤니티 구성원과 구성원들 간의 프로토콜을 관리해야 한다. 따라서 커뮤니티 수준의 정책은 구성원 관리와 프로토콜 전송에 관한 정책이 주가 된다. 커뮤니티 수준의 충돌을 나열하면 다음과 같다. The community manager must manage the protocol between community members and members. Therefore, policy at the community level is mainly concerned with member management and protocol transmission. Here are the community level conflicts:

구성원 섭외 충돌: 커뮤니티가 만들어지면 커뮤니티 매니저는 커뮤니티의 목표 달성을 위해 구성원들을 섭외하게 된다. 이런 과정은 여러 커뮤니티에서 동시에 일어나며, 둘 이상의 커뮤니티가 하나의 구성원을 섭외하려고 하는 경우가 발생할 수 있다. 구성원은 여러 커뮤니티에 동시에 속할 수도 있고 속하지 못할 수도 있다. 따라서 이를 위한 부가적인 정보가 필요하게 된다. 또한 어떤 역할을 할 수 있다고 무작정 구성원을 섭외하면 목표 달성의 시간이 증가하거나 시스템 전체의 성능을 저하시킬 수 있기 때문에, 커뮤니티 매니저는 커뮤니티에 적절한 구성원을 선택해야 한다.  Conflicts with members: When a community is created, the community manager will contact members to achieve the community's goals. This process occurs in multiple communities at the same time, and it can happen that two or more communities are trying to engage one member. Members may or may not belong to multiple communities at the same time. Therefore, additional information is required for this. In addition, if you hire a member that you can play a role, the community manager should choose the right member for the community, because it can increase the time to achieve the goal or degrade the overall system performance.

구성원 간의 통신 문제: 일반적으로 커뮤니티 매니저는 구성원들 간에는 통신 문제가 없다고 가정하므로, 통신 문제가 발생하면 커뮤니티의 수행이 정지될 수 있다. 많은 경우 예기치 못한 이유로 통신 문제가 발생하게 되면 메시지를 보낸 구성원은 응답이 있을 때까지 기다리게 된다. 따라서 이에 대한 처리가 반드시 필요하다.  COMMUNICATIONS BETWEEN MEMBERS: Generally, community managers assume that there are no communication problems between the members, so if a communication problem occurs, the community may stop performing. In many cases, when a communication problem occurs for unexpected reasons, the sending member waits for a response. Therefore, it is necessary to deal with this.

구성원의 기본 행동 간의 충돌 : 모든 구성원은 서로 독립적으로 자신의 행동을 수행하게 된다. 따라서 두 개 이상의 구성원의 행동은 독립적으로 수행되는 과정에서 서로 충돌을 일으킬 수 있다. 충돌이 일어났을 경우, 급한 일을 수행하는 구성원의 행동은 먼저 보장되어야 한다. 그러나 일반적으로 커뮤니티 매니저는 모든 구성원에 대해 우선순위를 두지 않기 때문에, 이와 같은 문제가 해결될 수 없다.  Conflicts between basic behavior of members: All members perform their actions independently of each other. Thus, the behavior of two or more members can conflict with each other in the course of being performed independently. In the event of a conflict, the actions of the members performing the urgent task must first be ensured. In general, however, this problem can not be solved because the community manager does not prioritize all members.

3-2-3. 구성원에서의 충돌3-2-3. Collision at member

구성원은 충돌 해결을 위해 자신의 기본 행동과 전송받은 프로토콜을 제어해야 한다. 구성원 수준에서 관리해야 할 충돌은 다음과 같다. Members must control their default behavior and the protocol they receive to resolve the conflict. The conflicts that need to be managed at the member level are:

섭외 응답 충돌: 구성원은 여러 커뮤니티 매니저로부터 섭외 메시지를 받을 수 있다. 이 때 구성원은 자신이 그 커뮤니티에 속할 수 있는지 여부를 판단해야 한다. 일반적으로 구성원은 커뮤니티 매니저로부터 섭외 메시지가 오면 바로 응답을 하게 되어 있으므로, 중복된 커뮤니티 관계가 생성될 수 있는 문제점이 있다. 구성원에 따라 여러 커뮤니티에 중복적으로 속할 수도 있고 그렇지 않을 수도 있으므로, 이를 위한 부가적인 정보가 필요하다.  Outbound Response Collision: A member may receive an outgoing message from multiple community managers. At this time, the member must determine whether he or she can belong to the community. Generally, a member is required to respond immediately when a message is received from the community manager, so that there is a problem that a duplicate community relationship can be created. Depending on the member, it may or may not belong to multiple communities redundantly, so additional information is needed.

기본 행동과 프로토콜 간의 충돌: 커뮤니티 구성원은 자신의 기본행동과 커뮤니티 매니저로부터 전송받은 프로토콜을 가지고 있게 된다. 구성원의 기본 행동과 프로토콜은 동시에 같이 수행될 수 있는 것이 있을 수도 있고, 그렇지 않을 수도 있다. 동시에 같이 수행될 수 없는 경우에는 구성원의 행동과 프로토콜 간에 충돌이 발생할 수 있으며, 이를 위한 처리가 필요하다.  Conflicts between basic behavior and protocols: Community members have their own default behavior and protocols received from the community manager. The basic behavior and the protocol of the member may or may not be performed at the same time. If it can not be performed at the same time, there may be a conflict between the behavior of the member and the protocol, and processing is required for that.

4. 커뮤니티 컴퓨팅을 위한 정책 언어 및 변환 모듈4. Policy language and transformation module for community computing

4-1. 정책 언어4-1. Policy language

커뮤니티 컴퓨팅에서 사용되는 정책을 표현하기 위해서 기존에 사용되는 언어들이 사용될 수도 있다. Rei와 Ponder와 같은 기존의 정책 언어들은 언어의 표현력이 높기는 하나, 정책 수행을 위한 정책 수행기의 크기가 크기 때문에 유비쿼터 스 환경에서 사용되는 휴대장치에서 사용되기에 적절하지 않다. 따라서 커뮤니티 컴퓨팅을 위한 새로운 정책 언어가 필요성하다. Existing languages may be used to represent policies used in community computing. Although existing policy languages such as Rei and Ponder have high expressive power of language, they are not suitable for use in portable devices used in ubiquitous environment due to the large size of policy implementors for policy execution. Therefore, there is a need for a new policy language for community computing.

기존의 언어들은 객체들의 행동을 제약하는 정책(obligation), 다른 객체에게 권한을 위임하는 정책(delegation), 정책과 정책간의 관계를 관리하는 메타정책(meta-policy)과 같은 것들 이외에도 객체와 자원간의 접근제어(Access Control)를 위한 정책 표현들이 포함되어 있다. 그러나 커뮤니티 컴퓨팅에서는 각각의 구성원이 자신에게 필요한 자원을 소유하고 있으므로 자원에 대한 접근제어를 표현할 필요가 없다. Existing languages include obligation to restrict the behavior of objects, delegation to delegate authority to other objects, meta-policy to manage the relationship between policy and policy, Policy expressions for access control are included. However, in community computing, each member does not need to express access control to resources because he owns the resources he needs.

종래에는, 커뮤니티 컴퓨팅을 위해서 상황에 따라 각 컴퓨팅 요소의 행동을 제약하거나 행동 제약을 위한 정책들의 충돌에 대비한 메타 정책에 관한 기술만으로 충분하다고 가정한다. 실제로 컴퓨팅 요소들은 각자의 행동을 위한 자원을 독자적으로 가지고 있는 상태이기 때문에, 자원에 관한 접근제어는 현재 커뮤니티 컴퓨팅에서 고려하고 있지 않은 사항이므로 정책에서 기술될 필요가 없다. 이하에서는 커뮤니티 컴퓨팅을 위한 간단한 정책 언어의 문법과 문법이 가지는 의미에 대해 설명한다. In the past, it is assumed that, for the purpose of community computing, only the technology related to the meta-policy for limiting the behavior of each computing element according to the situation or against the conflict of policies for behavior restriction is sufficient. Since the computing elements actually have their own resources for their actions, access control on resources is not considered in the current community computing, so it need not be described in the policy. The following paragraphs describe the meaning of simple policy language grammar and grammar for community computing.

커뮤니티 컴퓨팅을 위한 정책 언어의 문법은 다음과 같다. The grammar of policy language for community computing is as follows.

<Policy_Description> <Policy_Description>

::= <CC_entity> {:: = <CC_entity> {

<Policy_Body><Policy_Body>

}}

<CC_entity> ::= <Entity_type><Identifier><CC_entity> :: = <Entity_type> <Identifier>

<Entity_type> ::= <Society>|<Community>|<Member><Entity_type> :: = <Society> | <Community> | <Member>

<Policy_Body> ::=<Policy_Body> :: =

{{

<Construct><Construct>

on <Conflict_Condition>on <Conflict_Condition>

Action <Action_Body>Action <Action_Body>

}}

<Construct> ::= Obligation|Delegation|Meta<Construct> :: = Obligation | Delegation | Meta

<Conflict_Condition> :==<Conflict_Condition>: ==

Member_Registration |Member_Registration |

Community_Creation |Community_Creation |

Member_Casting |Member_Casting |

Member_Communication |Member_Communication |

Member_Action |Member_Action |

Casting_Response |Casting_Response |

Protocol_ExecutionProtocol_Execution

<Action_Body> ::=<Action_Body> :: =

{{

<Run_Highest_Priority> <Identifier> |<Run_Highest_Priority> <Identifier> |

<Run_Shortest_Value> <Identifier> |<Run_Shortest_Value> <Identifier> |

<Try_Several_Times> <Identifier> |<Try_Several_Times> <Identifier> |

<Wait_Limited_Period> <Identifier> |<Wait_Limited_Period> <Identifier> |

}}

<Identifier>::=<String><Identifier> :: = <String>

<String>::= {<letter>| <digit>}1+<String> :: = {<letter> | <digit>} 1+

<letter>::= <lowercase_letter>|<uppercase_letter><letter> :: = <lowercase_letter> | <uppercase_letter>

<lowercase_letter>::= a|b|c|….. |z<lowercase_letter> :: = a | b | c | ... .. | z

<uppercase_letter>::= A|B|C|….. |Z<uppercase_letter> :: = A | B | C | ... .. | Z

<digit>::= 0|1|2|3|4|5|6|7|8|9<digit> :: = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<non_zero_digit> ::= 1|2|3|4|5|6|7|8|9<non_zero_digit> :: = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<positive_integer> ::= <non_zero_digit><digit>0+<positive_integer> :: = <non_zero_digit> <digit> 0+

<negative_integer> ::= -<non_zero_digit><digit>0+<negative_integer> :: = - <non_zero_digit> <digit> 0+

< integer> ::= 0|<positive_integer>|<negative_integer><integer> :: = 0 | <positive_integer> | <negative_integer>

4-2. 정책 언어 변환 모듈4-2. Policy language conversion module

실제로 정책 기반 수행방법은 정책 수행 모듈을 이용하여 수행된다. 본 발명 에서는 제안된 정책 언어의 적용 가능성을 알아보기 위하여 정책 변환 모듈을 이용한다. 본 발명에서는, 이상에서 제안된 정책언어를 수행하기 위해서 기존의 시스템 개발 도구(community computing system development toolkit: CDTK)에서 모델 변환 과정 시에 정책의 내용을 변환하여 삽입할 수 있는 구조로 정책 변환 모듈을 구현하였다. 즉 본 발명에서, 커뮤니티 정책은 CIM-PI의 기술 시점에 모델과 함께 기술하도록 하였으며, CDTK에서 변환과정을 거칠 때 커뮤니티 정책도 함께 CIM-PS(community implementation model-platform specific) 즉, 특정 프로그래밍 언어로 변환하도록 하였다. Actually, the policy based execution method is performed using the policy execution module. In the present invention, a policy conversion module is used to check the applicability of the proposed policy language. In the present invention, in order to implement the policy language proposed above, a policy conversion module is inserted into a structure that can be inserted into the existing system development tool (CDTK) Respectively. In the present invention, the community policy is described together with the model at the time of the description of the CIM-PI, and when the conversion process is performed in the CDTK, the community policy is also applied to the community implementation model-platform specific (CIM-PS) Respectively.

4-2-1. 정책 언어 변환 모듈 개요4-2-1. Policy Language Conversion Module Overview

정책을 시스템에 반영하기 위해서는 먼저 정책을 읽어 들여야 한다. 본 발명의 실시예에서 CDTK의 입력 부분이 정책 부분까지 읽어 들이도록 구현된다. 그 후, 읽어 들인 모델과 정책 정보를 기반으로 내부적으로 커뮤니티 모델이 생성되며, 생성된 모델을 기반으로 특정 플랫폼에 맞는 언어로 변환하기 위해 정의된 코드들을 거쳐 최종적으로 플랫폼에 맞는 프로그래밍 코드가 생성된다. 종래에 사용되는 CDTK 는 JADE 플랫폼을 기반으로 하고 있기 때문에, 설명의 편의를 위해 본 발명의 실시예는 자바 기반의 JADE 코드가 생성하도록 되나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 이에 제한되지 않음을 알 수 있을 것이다. In order to reflect the policy into the system, the policy must first be read. In an embodiment of the present invention, the input portion of CDTK is implemented to read up to the policy portion. After that, a community model is created internally based on the loaded model and policy information, and programming codes suitable for the platform are finally generated through codes defined to convert into a language suitable for a specific platform based on the generated model . Since the CDTK used in the prior art is based on the JADE platform, for convenience of description, the embodiment of the present invention generates a Java-based JADE code. However, those skilled in the art will recognize that It will be understood that the invention is not limited thereto.

4-2-2. 변환 모듈 개발 환경4-2-2. Conversion module development environment

표 1은 본 발명이 적용될 수 있는 정책 변환 모듈 개발 환경의 일 예를 요약한 것이다. FIPA(Foundation for Intelligent Physical Agent)의 표준을 따르는 에이전트 플랫폼은 멀티 에이전트 환경을 위한 다양한 라이브러리를 제공해야 한다. 본 발명의 실시예에서 이용되는 에이전트 플랫폼은 커뮤니티 컴퓨팅의 시나리오 확인을 위해 사용하고 있는 플랫폼이므로, 변환 모듈을 위해 JADE 플랫폼을 이용한다. Table 1 summarizes an example of a policy conversion module development environment to which the present invention may be applied. Agent platforms conforming to the FIPA (Foundation for Intelligent Physical Agent) standard should provide various libraries for multi-agent environments. Since the agent platform used in the embodiment of the present invention is a platform used for confirming the scenario of community computing, the JADE platform is used for the conversion module.

Figure 112007005852821-pat00001
Figure 112007005852821-pat00001

4-2-3. 본 발명의 실시예에 따른 커뮤니티 컴퓨팅 시스템4-2-3. The community computing system &lt; RTI ID = 0.0 &gt;

도 6은 본 발명의 실시예에 따른 커뮤니티 컴퓨팅 시스템의 블록도이다. 본 발명의 실시예에 따른 커뮤니티 컴퓨팅 시스템(600)은 사용자 인터페이스(610), 및 커뮤니티 개발부(620)를 포함한다. 6 is a block diagram of a community computing system according to an embodiment of the present invention. The community computing system 600 according to an exemplary embodiment of the present invention includes a user interface 610 and a community development unit 620.

커뮤니티 컴퓨팅 시스템을 구현하기 위한 정보는 사용자 인터페이스(610)를 통해 입력된다. 즉, 사용자는 사용자 인터페이스(610)를 이용하여 자신이 구현하고자 하는 커뮤니티 컴퓨팅 시스템에 대한 정보를 CML 또는 CIM-PI 형태로 기술한다. 커뮤니티 개발부(620)는 사용자 인터페이스(610)로부터의 정보를 이용하여 커뮤니티 컴퓨팅 시스템 모델을 개발하고, 개발된 커뮤니티 컴퓨팅 시스템 모델이 각각의 컴퓨팅 요소에 배치되도록 모델스크립트(model script, 630)를 각각의 컴퓨팅 요소로 출력한다. Information for implementing the community computing system is input via the user interface 610. [ That is, the user uses the user interface 610 to describe the information about the community computing system to be implemented by the user in the form of CML or CIM-PI. The community development unit 620 develops a community computing system model using information from the user interface 610 and generates a model script 630 so that the developed community computing system model is placed in each computing element. And outputs it to the computing element.

한편 커뮤니티 개발부(620)는 커뮤니티 모델 저장부(621), 모델 구축부(623), 및 모델 변환부(625)를 포함한다. 모델 구축부(623)는 사용자 인터페이스(610)로부터 입력된 정보가 CML 형태인지 또는 CIM-PI 형태인지 판단하고, 판단된 결과에 따라 커뮤니티 모델을 생성한다. Meanwhile, the community development unit 620 includes a community model storage unit 621, a model building unit 623, and a model conversion unit 625. The model building unit 623 determines whether the information input from the user interface 610 is a CML type or a CIM-PI type, and generates a community model according to the determined result.

모델 구축부(623)에 대해 좀 더 구체적으로 설명하면, 모델 구축부(623)는 CML 구축부(6231) 및 PI 구축부(6233)를 포함한다. 이 때 사용자 인터페이스(610)로부터 입력된 정보가 CML 형태이면 CML 구축부(6231)가 CML 형태의 입력 정보에 적합한 커뮤니티 모델을 생성한다. 한편 사용자 인터페이스(610)로부터 입력된 정보가 CIM-PI 형태이면 PI 구축부(6233)가 CIM-PI 형태의 입력 정보에 적합한 커뮤니티 모델을 생성한다. More specifically, the model building unit 623 includes a CML building unit 6231 and a PI building unit 6233. [ At this time, if the information input from the user interface 610 is in the CML form, the CML establishing unit 6231 creates a community model suitable for input information in the form of CML. If the information input from the user interface 610 is in the CIM-PI format, the PI construction unit 6233 generates a community model suitable for CIM-PI type input information.

커뮤니티 모델 저장부(621)는 모델 구축부(620)에 의해 생성된 커뮤니티 모델을 저장하며, 다른 구성요소들(예를 들어, 모델 변환부(625)에 포함되는 구성요소들)이 커뮤니티 모델을 필요로 하는 경우 저장된 커뮤니티 모델을 해당 구성요소로 제공한다. The community model storage unit 621 stores the community model generated by the model building unit 620 and stores the community model generated by the other components (for example, the components included in the model conversion unit 625) If necessary, provide the saved community model to that component.

모델 변환부(625)는 커뮤니티 모델 저장부(621)에 저장된 커뮤니티 모델을 사용자가 원하는 형태의 스크립트로 변환하여 출력한다. 예를 들어 사용자가 원하는 형태의 커뮤니티 모델 스크립트가 CML 형태인 경우, CML 변환부(6251) 커뮤니티 모델 저장부(610)에 저장된 커뮤니티 모델을 CML 형태의 스크립트로 변환하여 모델 스크립트(630)로 출력한다. The model conversion unit 625 converts the community model stored in the community model storage unit 621 into a script of a form desired by the user and outputs the script. For example, if the user wants a community model script of the CML type, the CML conversion unit 6251 converts the community model stored in the community model storage unit 610 into a script of the CML type, and outputs the script to the model script 630 .

유사하게 사용자가 원하는 형태의 커뮤니티 모델 스크립트가 CIM-PI 태인 경우, PI 변환부(6253)는 커뮤니티 모델 저장부(610)에 저장된 커뮤니티 모델을 CIM-PI 형태의 스크립트로 변환하여 모델 스크립트(630)로 출력하며, 사용자가 원하는 형태의 커뮤니티 모델 스크립트가 CIM-PS 형태인 경우, PS 변환부(6255)는 커뮤니티 모델 저장부(610)에 저장된 커뮤니티 모델을 CIM-PS 형태의 스크립트로 변환하여 모델 스크립트(630)로 출력한다. Similarly, if the desired community model script is CIM-PI, the PI conversion unit 6253 converts the community model stored in the community model storage unit 610 into a CIM-PI type script, PS format, the PS conversion unit 6255 converts the community model stored in the community model storage unit 610 into a script of the CIM-PS type, (630).

통상적으로 커뮤니티 컴퓨팅 시스템 개발에서, 모델 개발부(620)에서 출력되는 모델 스크립트(630)는 해당 시스템에 종속적이므로, PS 변환부(6255)에서 변환된 CIM-PS 형태의 스크립트가 출력되나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 이에 제한되지 않음을 알 수 있을 것이다. Generally, in the development of a community computing system, since the model script 630 output from the model development unit 620 is dependent on the system, the converted CIM-PS type script is output from the PS conversion unit 6255. However, Those skilled in the art will appreciate that the present invention is not limited thereto.

또한 통상적으로 커뮤니티 모델 시스템 개발에서, 각각의 형태의 스크립트들은 CML 형태, CIM-PI 형태, CIM-PS 형태로 순차적으로 변환되므로, 커뮤니티 모델 저장부(621)에 저장된 커뮤니티 모델은 CML 형태, CIM-PI 형태, CIM-PS 형태로 순차적으로 변환되어 CIM-PS 형태의 스크립트로 출력되나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 이에 제한되지 않음을 알 수 있을 것이다. In general, in the development of the community model system, since the respective types of scripts are sequentially converted into the CML form, the CIM-PI form, and the CIM-PS form, the community model stored in the community model storage unit 621 is a CML form, a CIM- PI type, and CIM-PS type, and output as a CIM-PS type script. However, those skilled in the art will appreciate that the present invention is not limited thereto.

한편 본 발명의 실시예에서는, 커뮤니티 컴퓨팅 시스템에서 발생할 수 있는 충돌을 해결하기 위해서 정책이 기술되는데, 기술되는 정책은 CIM-PI 형태이다. 따라서 PI 구축부(623)는 사용자 인터페이스(610)로부터 입력되는 CIM-PI 형태의 정책을 커뮤니티 모델에 포함시켜 커뮤니티 모델 저장부(610)에 저장한다. Meanwhile, in the embodiment of the present invention, a policy is described in order to solve a conflict that may occur in a community computing system. The policy described is a CIM-PI form. Therefore, the PI construction unit 623 stores the CIM-PI type policy input from the user interface 610 into the community model storage unit 610.

PS 변환부(6255)에 포함된 정책 변환부(6257)는 커뮤니티 모델에 포함된 CIM-PI 형태의 정책을 CIM-PS 형태로 변환하여 출력한다. The policy conversion unit 6257 included in the PS conversion unit 6255 converts the CIM-PI type policy included in the community model into the CIM-PS type and outputs the converted CIM-PI type policy.

본 발명의 실시예에서는, CIM-PI 단계에서 정책이 기술되므로, 커뮤니티 컴퓨팅 시스템에 관한 전체적인 정보를 가지고 있는 커뮤니티 모델 저장부 및 모델 구축부가 정책에 관한 내용을 함께 처리한다. 즉 커뮤니티 모델 저장부에 저장된 커뮤니티 모델이 CIM-PI 형태에서 CIM-PS 형태로 변경될 때 정책들 또한 플랫폼에 맞도록 변환된다. In the embodiment of the present invention, since the policy is described in the CIM-PI step, the community model storage unit and the model building unit, which have overall information on the community computing system, process the contents of the policy together. That is, when the community model stored in the community model storage unit is changed from the CIM-PI type to the CIM-PS type, the policies are also converted to fit the platform.

이하에서는, 구체적인 예를 이용하여, 본 발명의 실시예에 따른 커뮤니티 컴퓨팅 시스템의 구성 및 동작에 대해 구체적으로 설명한다. 설명을 위해 이하에서는, 본 발명의 실시예에 의해 제안된 정책 언어와 정책 언어 변환 모듈의 유용성을 확인하기 위한 방법으로 충돌이 발생할 수 있는 시나리오가 작성되고 충돌의 해결을 위한 정책을 구상되고 정책언어로 표현된다. 또한 실제 표현된 정책은 본 발명의 실시예에 따른 변환 모듈을 이용하여 변환되어 실행됨으로써 정책 언어의 타당성이 검증된다. Hereinafter, the configuration and operation of the community computing system according to the embodiment of the present invention will be described in detail using concrete examples. For the sake of explanation, scenarios in which a conflict may occur are created by a method for confirming the usefulness of the policy language and the policy language conversion module proposed by the embodiment of the present invention, a policy for resolving the conflict is envisaged, Lt; / RTI &gt; Also, the actually expressed policy is converted and executed by using the conversion module according to the embodiment of the present invention, thereby verifying the validity of the policy language.

시나리오scenario

COEXCOEX 와 같은 쇼핑몰에 경비로봇이 있다. 이 로봇은 순찰 업무 및 쇼핑객들에게 길안내를 해주는 역할을 수행한다. 로봇 A에게 한 여인이 다가와 길 안내를 요청하자 로봇 A는 길 안내를 위한 커뮤니티 생성을 사회 관리자에게 전달한다. 동시에 다른 한쪽에서는 로봇 B가 도둑을 발견하여 도둑을 잡기위한 커뮤니티 생성을 요청하였다. 사회 관리자는 두 커뮤니티를 위한 커뮤니티 매니저를 실행시킨다. 두 커뮤니티 매니저는 로봇 A에게 섭외 메시지를 보낸다. 두 일을 모두 수행할 수 있다고 판단한 로봇 A는 두 커뮤니티의 섭외에 모두 응답한다. 도망가던 도둑은 길 안내를 해주던 경비 로봇과 마주치고, 자신을 잡으려는 줄 알고 로봇을 There is a security robot in a shopping mall like. The robot performs guiding tasks to patrol workers and shoppers. When a woman approaches Robot A and asks for directions, Robot A sends the community manager to the community manager for guidance. At the same time, on the other side, Robot B found a thief and asked to create a community to catch the thief. The social administrator runs a community manager for both communities. The two community managers send out a message to robot A. Robot A, who has decided to do both, responds to both communities. The thief who ran away confronted the guard robot who guided the route, 파괴시킨다Destroy . 로봇이 파괴된 길 안내 커뮤니티의 커뮤니티 매니저는 대용의 경비로봇을 다시 섭외하고 길 안내 커뮤니티를 . The community manager of the roadblocking community where the robot was destroyed will be able to contact the guard robot again, 재가동 한다Restart . 또한 도둑을 잡기 위한 새로운 로봇을 섭외하여 도둑을 계속 추격하여 경찰에 알려 도둑 잡는 일을 . Also, we have a new robot to catch the thief, keep chasing the thief, let the police know 마무리 하게To finish 된다.  do.

시나리오에서는 여러 가지 충돌 상황이 발생할 수 있으며, 이러한 충돌 상황에 대해 프로그래밍적인 처리를 해주지 않을 경우 커뮤니티 컴퓨팅 시스템의 동작이 원활하게 이루어지지 않을 수 있다. 시나리오에서 발생할 수 있는 충돌 상황을 나열하면 다음과 같다. In a scenario, there may be several conflict situations, and the behavior of the community computing system may not work smoothly if the conflict situation is not handled programmatically. Here is a list of possible crash scenarios:

두 구성원이 동시에 커뮤니티 생성을 요청할 때 사화 관리자는 어떤 커뮤니티를 먼저 생성해야 하는가?  Which community should be first created by the firearms administrator when two members request to create a community at the same time?

로봇 A는 두 커뮤니티로부터 동시에 섭외 메시지를 받았을 때 어떻게 행동해야 하는가?  How should robot A behave when it receives messages from both communities at the same time?

로봇 A가 두 커뮤니티로부터 전송받은 프로토콜을 수행하려 할 때 어떠한 기준으로 수행해야 하는가?  What criteria should be used when robot A is to carry out the protocol transmitted from the two communities?

커뮤니티에 속해있던 로봇 A가 망가져서 통신이 되지 않을 때 두 커뮤니티 매니저는 어떻게 해야 하는가?  What should two community managers do when Robot A belonging to the community is broken and communication is not possible?

커뮤니티에 속해 있던 구성원과의 통신 문제가 발생했을 경우 커뮤니티 매니저는 어떻게 행동해야 하는가?  How should the community manager behave if there is a problem communicating with members of the community?

위와 같은 충돌 상황을 해결하기 위해서, 본 발명에서 제안된 정책 언어를 이용하여 다양한 정책들이 제시될 수 있다. 본 발명에서는 다음과 같은 정책을 제안하나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 이러한 정책에 의해 제한되지 않음을 알 수 있을 것이다. In order to solve the above-mentioned conflict situation, various policies can be presented using the policy language proposed in the present invention. The present invention proposes the following policies, but those skilled in the art will recognize that the present invention is not limited by these policies.

<Policy_Description> <Policy_Description>

{ {

Society ShoppingMall      Society ShoppingMall

{      {

Obligation on Community_Creation             Obligation on Community_Creation

ActionAction

Run_Highest_Value community.priorityRun_Highest_Value community.priority

}      }

Community Robbery       Community Robbery

{       {

Obligation on Member_Casting               Obligation on Member_Casting

Action               Action

Run_Lowest_Value members.distance                       Run_Lowest_Value members.distance

}       }

Member Patrol_Robot       Member Patrol_Robot

{       {

Obligation on Casting_Response               Obligation on Casting_Response

Action               Action

Wait_Limited_Period responseTime 10                      Wait_Limited_Period responseTime 10

}       }

}}

본 발명의 실시예에 따른 정책 변환 모듈을 이용하여 상술한 정책을 JADE 기반의 코드를 생성한 결과는 다음과 같다. The result of generating the JADE-based code using the policy conversion module according to the embodiment of the present invention is as follows.

AID highest;AID highest;

for(int j = 0; j < members.size - 1; j++)for (int j = 0; j < members.size - 1; j ++)

{{

if(members[j].priority > members[j].priority)if (members [j] .priority> members [j] .priority)

highest = members[i].getAID();highest = members [i] .getAID ();

} }

message.sender = highest;message.sender = highest;

--------------------------------------------------------------------------------------------------------- -----

private class ReplyToCast extends CyclicBehaviour { private class ReplyToCast extends CyclicBehaviour {

public void action() {     public void action () {

MessageTemplate mt = MessageTemplate.MatchPerformative(ACLMessage.CFP);       MessageTemplate mt = MessageTemplate.MatchPerformative (ACLMessage.CFP);

ACLMessage msg = myAgent.receive(mt);       ACLMessage msg = myAgent.receive (mt);

if (msg != null) {       if (msg! = null) {

if(CheckHighest(msg.getContent()))         if (CheckHighest (msg.getContent ()))

ACLMessage reply = msg.createReply();              ACLMessage reply = msg.createReply ();

reply.setPerformative(ACLMessage.PROPOSE);              reply.setPerformative (ACLMessage.PROPOSE);

reply.setContent("3");              reply.setContent ("3");

myAgent.send(reply);              myAgent.send (reply);

}        }

}       }

else {       else {

block();         block ();

}       }

}    }

case 1: case 1:

while(true) {while (true) {

reply = myAgent.receive(template);          reply = myAgent.receive (template);

if (reply != null) {          if (reply! = null) {

String cid = reply.getConversationId();              String cid = reply.getConversationId ();

if (cid.equalsIgnoreCase(Resource.ACCEPT + Resource.MEMBERCASTING) && findHighestValue(sender.priority)) {              if (cid.equalsIgnoreCase (Resource.ACCEPT + Resource.MEMBERCASTING) && findHighestValue (sender.priority)) {

Community.updateMemberList(reply.getSender());Community.updateMemberList (reply.getSender ());

castedMember.put(roleBinding[roleBindingIndex].getRoleName(), reply.getSender());                            castedMember.put (roleBinding [roleBindingIndex] .getRoleName (), reply.getSender ());

System.out.println("Success casting : " +                    System.out.println ("Success casting:" +

reply.getSender());                                              reply.getSender ());

break;                            break;

}                        }

}                    }

}                }

break;                break;

}            }

5-1. 커뮤니티 컴퓨팅에서의 충돌요인 분석5-1. Analysis of Conflict Factors in Community Computing

종래의 커뮤니티 컴퓨팅에서 발생할 수 있는 충돌 요인들을 분석한 결과, 정책의 분산과 수행을 위해 충돌 요인들은 각 컴퓨팅 요소에 따라 분류될 수 있다. 분류된 결과를 요약하면 다음의 [표 2]와 같다. As a result of analyzing the conflict factors that may occur in conventional community computing, conflict factors can be classified according to each computing element for policy distribution and performance. Table 2 summarizes the results of classification.

Figure 112007005852821-pat00002
Figure 112007005852821-pat00002

[표 2]에 나열된 충돌들은 커뮤니티 컴퓨팅에서 일반적으로 발생할 수 있는 충돌 요인들만을 정리한 것이다. The conflicts listed in [Table 2] summarize only the conflict factors that can be commonly encountered in community computing.

5-2. 정책 언어와 정책 변환 모듈 분석5-2. Policy language and policy conversion module analysis

본 발명의 실시예에서 정책 언어는 정책의 적용 가능성을 확인하기 위해 만든 언어라는 점에서 가치가 있다. 또한 본 발명의 실시예에서 정책의 내용은, 예를 들어 ‘이 컴퓨팅 요소는 어떤 상황일 때 이런 일을 해야 한다.’와 같이 조건문의 형태로 표현될 수 있다. In an embodiment of the present invention, the policy language is valuable in that it is a language created to confirm the applicability of the policy. Also, in the embodiment of the present invention, the content of the policy may be expressed in the form of a condition inquiry, for example, 'This computing element should do this when a certain situation occurs.'

한편 본 발명의 실시예에서, 정책 변환기는 정책 언어를 통해 표현된 내용을 Java를 기반으로 하고 있는 JADE 플랫폼에 맞는 형태로 변환해 주는 역할을 한다. 실제로 변경되는 코드의 내용 또한 반복문과 조건문의 형태로의 변환이 주를 이룬다. Meanwhile, in the embodiment of the present invention, the policy converter converts the contents expressed through the policy language into a form suitable for the JADE platform based on Java. The content of the actually changed code is also in the form of conversion into the form of loop statements and conditional statements.

6-1 정책기반 커뮤니티 컴퓨팅 분석6-1 Policy Based Community Computing Analysis

[표 3]은 정책 기반의 커뮤니티 컴퓨팅과 기존 커뮤니티 컴퓨팅을 비교한 비교표이다. [Table 3] compares policy-based community computing with existing community computing.

Figure 112007005852821-pat00003
Figure 112007005852821-pat00003

기존의 커뮤니티 컴퓨팅과 비교할 때, 정책 기반의 커뮤니티 컴퓨팅은 고려되지 않은 상황에 대해서도 기술할 뿐만 아니라, 정책에 관한 코드를 자동적으로 생성함으로써 시스템의 생산성이나 유지보수 측면에서 사용자의 노력을 줄일 수 있는 장점이 있다. Compared with existing community computing, policy-based community computing not only describes situations that are not taken into consideration, but also automatically generates code for the policy, thereby reducing user's efforts in terms of productivity and maintenance of the system .

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. As described above, an optimal embodiment has been disclosed in the drawings and specification. Although specific terms have been employed herein, they are used for purposes of illustration only and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will appreciate that various modifications and equivalent embodiments are possible without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

상술한 바와 같이 본 발명의 실시예에 따른 충돌 방지 방법은 정책을 이용하여 해결하므로, 커뮤니티 컴퓨팅 시스템에서 동적으로 발생하는 충돌을 해결하여 커뮤니티 컴퓨팅 시스템의 장점을 극대화할 수 있는 장점이 있다. As described above, since the conflict prevention method according to the embodiment of the present invention is solved by using the policy, there is an advantage that the advantages of the community computing system can be maximized by resolving conflicts occurring dynamically in the community computing system.

또한 본 발명의 실시예에 따른 충돌 방지 방법은 종래의 커뮤니티 컴퓨팅에서는 고려되지 않았던 상황에 대해 기술할 수 있을 뿐만 아니라 정책에 관한 코드를 자동적으로 생성함으로써 기존의 커뮤니티 컴퓨팅 시스템에 비해 생산성과 유지보수 측면에서 사용자의 노력을 줄일 수 있는 장점이 있다. In addition, the collision avoidance method according to an embodiment of the present invention not only can describe a situation that is not considered in conventional community computing but also automatically generates a code for a policy, thereby improving productivity and maintenance There is an advantage that the user's efforts can be reduced.

Claims (17)

커뮤니티 컴퓨팅 시스템을 구현하기 위한 정보를 입력하기 위한 사용자 인터페이스; 및 A user interface for entering information for implementing a community computing system; And 상기 정보를 이용하여 커뮤니티 컴퓨팅 시스템 모델을 개발하고, 개발된 커뮤니티 컴퓨팅 시스템 모델이 각각의 컴퓨팅 요소에 배치되도록 모델스크립트(model script)를 각각의 컴퓨팅 요소로 출력하는 커뮤니티 개발부를 포함하며, A community development unit that develops a community computing system model using the information and outputs a model script to each computing element so that the developed community computing system model is placed in each computing element, 상기 정보는 상기 커뮤니티 컴퓨팅 시스템에서 발생할 수 있는 충돌을 해결하기 위한 정책을 포함하며, CML(community computing modeling language) 형태 또는 CIM-PI(community implement model-platform independent) 형태로 기술되며,The information includes a policy for resolving conflicts that may occur in the community computing system and is described in a form of a community computing modeling language (CML) or a community implement model-platform independent (CIM-PI) 상기 커뮤니티 개발부는, The community development department, 상기 사용자 인터페이스로부터 입력된 정보가 CML 형태인지 또는 CIM-PI 형태인지 판단하고, 판단된 결과에 따라 커뮤니티 모델을 생성하는 모델 구축부; A model building unit for determining whether the information input from the user interface is a CML form or a CIM-PI form and generating a community model according to the determined result; 상기 생성된 커뮤니티 모델을 저장하는 커뮤니티 모델 저장부; 및 A community model storage unit for storing the generated community model; And 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 사용자가 원하는 형태의 스크립트로 변환하여 출력하는 모델 변환부를 포함하는 것을 특징으로 하는 커뮤니티 컴퓨팅 개발 시스템. And a model conversion unit for converting the community model stored in the community model storage unit into a script of a desired form and outputting the converted script. 삭제delete 삭제delete 제 1 항에 있어서, The method according to claim 1, 상기 정책은 CIM-PI 형태로 기술되는 것을 특징으로 하는 커뮤니티 컴퓨팅 개발 시스템. Wherein the policy is described in a CIM-PI format. 삭제delete 제 1 항에 있어서, 상기 모델 구축부는, 2. The image processing apparatus according to claim 1, 상기 사용자 인터페이스로부터 입력된 정보가 CML 형태인 경우 상기 CML 형태의 입력 정보에 적합한 커뮤니티 모델을 생성하는 CML 구축부; 및 A CML building unit for generating a community model suitable for the input information of the CML type when the information input from the user interface is a CML form; And 상기 사용자 인터페이스로부터 입력된 정보가 CIM-PI 형태인 경우 상기 CIMM-PI 형태의 입력 정보에 적합한 커뮤니티 모델을 생성하는 PI 구축부를 포함하는 것을 특징으로 하는 커뮤니티 컴퓨팅 개발 시스템. And a PI construction unit for generating a community model suitable for the CIMM-PI type input information when the information input from the user interface is a CIM-PI form. 제 1 항에 있어서, 상기 모델 변환부는, 2. The image processing apparatus according to claim 1, 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CML 형태의 스크립트로 변환하여 출력하는 CML 변환부; A CML conversion unit for converting the community model stored in the community model storage unit into a CML type script and outputting the script; 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CIM-PI 형태의 스크립트로 변환하여 출력하는 PI 변환부; 및 A PI conversion unit converting the community model stored in the community model storage unit into a CIM-PI type script and outputting the script; And 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CIM-PS 형태의 스크립트로 변환하여 출력하는 PS 변환부를 포함하는 것을 특징으로 하는 커뮤니티 컴퓨팅 개발 시스템. And a PS converting unit converting the community model stored in the community model storing unit into a CIM-PS type script and outputting the converted result. 제 7 항에 있어서, 8. The method of claim 7, 상기 PS 변환부는 상기 PI 변환부에 의해 변환된 CIM-PI 형태의 스크립트를 CIM-PS 형태의 스크립트로 변환하는 것을 특징으로 하는 커뮤니티 컴퓨팅 개발 시스템. Wherein the PS conversion unit converts the CIM-PI type script converted by the PI conversion unit into a CIM-PS type script. 제 7 항에 있어서, 상기 PS 변환부는, 8. The apparatus of claim 7, CIM-PI 형태로 기술된 정책을 CIM-PS 형태로 변환하는 것을 특징으로 하는 커뮤니티 컴퓨팅 개발 시스템. And converting the policy described in the CIM-PI format into the CIM-PS format. 사용자 인터페이스가 커뮤니티 컴퓨팅 시스템을 구현하기 위한 정보를 입력받는 단계; 및 Receiving a user interface for inputting information for implementing a community computing system; And 커뮤니티 개발부가 상기 정보를 이용하여 커뮤니티 컴퓨팅 시스템 모델을 개발하고, 개발된 커뮤니티 컴퓨팅 시스템 모델이 각각의 컴퓨팅 요소에 배치되도록 모델스크립트(model script)를 각각의 컴퓨팅 요소로 출력하는 단계를 포함하며, And outputting a model script to each computing element so that the community development department develops a community computing system model using the information and a developed community computing system model is placed in each computing element, 상기 정보는 상기 커뮤니티 컴퓨팅 시스템에서 발생할 수 있는 충돌을 해결하기 위한 정책을 포함하며, CML(community computing modeling language) 형태 또는 CIM-PI(community implement model-platform independent) 형태로 기술되며,The information includes a policy for resolving conflicts that may occur in the community computing system and is described in a form of a community computing modeling language (CML) or a community implement model-platform independent (CIM-PI) 상기 출력하는 단계는, Wherein the outputting step comprises: 모델 구축부가 상기 사용자 인터페이스로부터 입력된 정보가 CML 형태인지 또는 CIM-PI 형태인지 판단하고, 판단된 결과에 따라 커뮤니티 모델을 생성하는 단계; Determining whether the information input from the user interface is CML type or CIM-PI type, and generating a community model according to the determined result; 커뮤니티 모델 저장부가 상기 생성된 커뮤니티 모델을 저장하는 단계; 및 The community model storage unit storing the generated community model; And 모델 변환부가 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 사용자가 원하는 형태의 스크립트로 변환하여 출력하는 단계를 포함하는 것을 특징으로 하는 충동 방지 방법.And converting the community model stored in the community model storage unit into a script desired by the user and outputting the converted community model. 삭제delete 삭제delete 제 10 항에 있어서, 11. The method of claim 10, 상기 정책은 CIM-PI 형태로 기술되는 것을 특징으로 하는 충돌 방지 방법. Wherein the policy is described in a CIM-PI format. 삭제delete 제 10 항에 있어서, 상기 생성하는 단계는, 11. The method of claim 10, CML 구축부가 상기 사용자 인터페이스로부터 입력된 정보가 CML 형태인 경우 상기 CML 형태의 입력 정보에 적합한 커뮤니티 모델을 생성하는 CML 모델 생성 단계; 및 A CML model generation step of generating a community model suitable for the CML type input information when the CML building unit inputs the information input from the user interface as a CML type; And PI 구축부가 상기 사용자 인터페이스로부터 입력된 정보가 CIM-PI 형태인 경우 상기 CIMM-PI 형태의 입력 정보에 적합한 커뮤니티 모델을 생성하는 PI 모델 생성 단계를 포함하는 것을 특징으로 하는 충돌 방지 방법. And a PI model generation step of generating a community model suitable for the input information of the CIMM-PI type when the PI construction unit inputs the information input from the user interface in the form of CIM-PI. 제 10 항에 있어서, 상기 변환하여 출력하는 단계는, 11. The method of claim 10, wherein the converting and outputting comprises: CML 변환부가 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CML 형태의 스크립트로 변환하여 출력하는 단계; Converting the community model stored in the community model storage unit into a CML type script and outputting the converted community model; PI 변환부가 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CIM-PI 형태의 스크립트로 변환하여 출력하는 단계; 및 Converting the community model stored in the community model storage unit into a CIM-PI type script and outputting the script; And PS 변환부가 상기 커뮤니티 모델 저장부에 저장된 커뮤니티 모델을 CIM-PS 형태의 스크립트로 변환하여 출력하는 단계를 포함하는 것을 특징으로 하는 충돌 방지 방법. PS conversion unit converts the community model stored in the community model storage unit into a CIM-PS type script, and outputs the converted community model. 제 16 항에 있어서, 상기 PS 변환부가 CIM-PS 형태의 스크립트로 변환하여 출력하는 단계는, 17. The method of claim 16, wherein the step of converting the PS conversion unit into a CIM- CIM-PI 형태로 기술된 정책을 CIM-PS 형태로 변환하는 단계를 포함하는 것을 특징으로 하는 충돌 방지 방법. And converting the policy described in the CIM-PI format into the CIM-PS format.
KR1020070006234A 2007-01-19 2007-01-19 Policy based conflict resolution in community computing KR101288137B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070006234A KR101288137B1 (en) 2007-01-19 2007-01-19 Policy based conflict resolution in community computing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070006234A KR101288137B1 (en) 2007-01-19 2007-01-19 Policy based conflict resolution in community computing

Publications (2)

Publication Number Publication Date
KR20090000157A KR20090000157A (en) 2009-01-07
KR101288137B1 true KR101288137B1 (en) 2013-07-18

Family

ID=40483383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070006234A KR101288137B1 (en) 2007-01-19 2007-01-19 Policy based conflict resolution in community computing

Country Status (1)

Country Link
KR (1) KR101288137B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249877A (en) 2000-03-07 2001-09-14 Ntt Docomo Inc Community formation support method, communication system and server device
KR20030065058A (en) * 2002-01-29 2003-08-06 삼성전자주식회사 Method and apparatus for preventing collision between appliances in the network
KR20060091405A (en) * 2005-02-14 2006-08-21 삼성전기주식회사 Conflict Control Method between Application Programs Using the Meaning of Abstract Service for Group Context Information Management and Its System

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001249877A (en) 2000-03-07 2001-09-14 Ntt Docomo Inc Community formation support method, communication system and server device
KR20030065058A (en) * 2002-01-29 2003-08-06 삼성전자주식회사 Method and apparatus for preventing collision between appliances in the network
KR20060091405A (en) * 2005-02-14 2006-08-21 삼성전기주식회사 Conflict Control Method between Application Programs Using the Meaning of Abstract Service for Group Context Information Management and Its System

Also Published As

Publication number Publication date
KR20090000157A (en) 2009-01-07

Similar Documents

Publication Publication Date Title
Twidle et al. Ponder2: A policy system for autonomous pervasive environments
Yamin et al. Towards merging context-aware, mobile and grid computing
Pantsar-Syväniemi et al. Situation-based and self-adaptive applications for the smart environment
Fiege et al. 'Publish-subscribe grows up: support for management, visibility control, and heterogeneity
García et al. A user-oriented language for specifying interconnections between heterogeneous objects in the Internet of Things
Cranefield et al. Ontologies for interaction protocols
Juan et al. Assembling agent oriented software engineering methodologies from features
Li et al. Deploying mobile computation in cloud service
WO2008061113A2 (en) System and method for utilizing xml documents to transfer programmatic requests in a service oriented architecture
Yau et al. Support for situation awareness in trustworthy ubiquitous computing application software
KR101288137B1 (en) Policy based conflict resolution in community computing
Correa da Silva Knowledge-based interaction protocols for intelligent interactive environments
Janicke et al. Analysis and run-time verification of dynamic security policies
González et al. Run-time verification of behaviour-aware mashups in the internet of things
Fischer et al. Agent-oriented software engineering: a model-driven approach
Yamin et al. A framework for exploiting adaptation in high heterogeneous distributed processing
Arts et al. System description: Verification of distributed Erlang programs
Arief et al. On using the CAMA framework for developing open mobile fault tolerant agent systems
Gouin-Vallerand et al. A software self-organizing middleware for smart spaces based on fuzzy logic
Bandini et al. A spatially dependent communication model for ubiquitous systems
Lillo et al. An ECA-based semantic architecture for IoT building automation systems
Madani et al. MC-ABAC: An ABAC-based Model for Collaboration in Multi-Cloud Environment
Rosado et al. Applying a UML Extension to build Use Cases diagrams in a secure mobile Grid application
Hughes et al. A loosely-coupled binding model for Wireless Sensor Networks
Wang et al. Dynamic interaction protocol load in multi-agent system collaboration

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20070119

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20120113

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20070119

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20130222

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20130626

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20130715

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20130715

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20160719

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20160719

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20170717

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20170717

Start annual number: 5

End annual number: 5

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20190426