Comingle : 분산 모바일 앙상블을위한 분산 로직 프로그래밍
Edmund Sl Lam ([email protected]) 및 iliano cervesato ([email protected]), ali elgazar ([email protected])와 함께
동문 개발자 :
우리 언어의 의미론에 관한 새로운 논문은 10 번째 국제 웹 규칙 심포지엄 (Ruleml) 2016, Best Paper Award (http://2016.ruleml.org/awards)에 실 렸습니다.
무선 및 모바일 컴퓨팅, 네트워크 및 커뮤니케이션 (WIMOB2015)에 관한 11 차 IEEE 국제 컨퍼런스의 선행에 새로운 논문이 실렸다.
NFC 감지 라이브러리가 추가되었습니다.
Mafia Party 게임 프로토 타입을 추가했습니다 (현재는 조금 추악 해 보이지만 작동합니다! = P 업데이트를 위해 계속 지켜봐 주시기 바랍니다!).
Comingle Android 라이브러리의 소스 코드가 추가되었습니다!
New Comingle Runtime은 이제 Wi-Fi-Direct 및 Local-Area-Networks와 함께 작동합니다!
Comingle은 여러 모바일 장치에 배포 된 응용 프로그램을 조정하기위한 CoorIndation 프로그래밍 프레임 워크입니다. 여러 당사자와 관련된 분산 계산은 기존 노드 중심 방식이 아닌 앙상블 중심 방식으로 단일 선언 프로그램으로 지정됩니다. 여기서 각 참여 노드에 대해 별도의 통신 코드가 작성됩니다.
Comingle은 조인 패턴, 제약 조건 처리 규칙 및 선형 로직의 영향을 크게받으며 분산 계산을 여러 가지 이벤트 중 재 작성 규칙으로 지정합니다. 이벤트는 컴퓨팅 위치에서 매개 변수로, 컴퓨팅 장치의 앙상블에서 분산 계산을 표현하는 Comingle의 능력을 정의합니다. 다른 기능으로는 멀티 세트 이해 패턴 및 비선형 패턴 매칭이 포함됩니다. 조합하여, 이것들은 복잡한 분산 계산을 오케스트레이션하기위한 고도로 선언적인 조정 언어로 만듭니다.
Comingle은 트리거 및 액추에이터로 알려진 메커니즘을 통해 안드로이드 응용 프로그램과 통합됩니다. 트리거 트리거는 안드로이드 애플리케이션이 로컬 이벤트 (예 : T 재 작성 중에 발생하는 이벤트와 관련된 Android 응용 프로그램 (콜백 작업을 통해)의 부작용. 이것은 Comingle이 Native Android SDK API와 협력하고 지역 운영 및 계산을 다르게 프로그래밍하도록 강요하지 않음을 의미합니다 (독립형 Android 앱 작성에 대해 좋아하고 싫어하는 모든 것이 있습니다!).
Comingle 프로그램은 분산 된 앙상블의 선언적 사양을 읽기 쉬운 대표를 나타내는 것뿐만 아니라 실행 가능하며 Android 응용 프로그램에 직관적 인 인터페이스를 제공합니다.
Comingle 규칙의 분산 된 실행에 대한 이론을 알고 싶다면 Ruleml'2016 논문 (최고의 종이 수여)을 확인하십시오.
Comingle에 대해 더 알고 싶고 Android SDK와 어떻게 통합되는지 알고 싶다면 기술 보고서 또는 조정 2015 Paper를 확인하십시오.
Comingle에서 분산 이벤트를 동기화하는 것에 대해 더 알고 싶다면 Wimob'2015 용지를 확인하십시오.
이해 패턴으로 분산 된 멀티 세트 재 작성의 이론에 대해 더 알고 싶다면 APLAS'2014 용지 및 PPDP'2013 용지를 참조하십시오.
이 저장소에는 Comingle Compiler 및 Runtime 시스템의 작업 사본이 포함되어 있으며 출시를 시작할 수있는 몇 가지 예제가 포함되어 있습니다. 다음은 포함 된 내용에 대한 요약입니다.
Comingle을 설치하고 사용하려면 아래의 '시작'지침을 따르십시오. Android 앱을 직접 플레이하려면 https://github.com/sllam/comingle/tree/mas
Comingle Compiler 및 Code Generator를 실행하려면 다음을 수행해야합니다.
Comingle 생성 코드를 실행하려면 다음이 필요합니다.
Comingle의 컴파일러가 작동하려면 먼저 Python 2.7을 실행해야합니다. 다음으로 비표준 비표준 파이썬 모듈 인 Ply 및 Z3py가 필요합니다. http://www.dabeaz.com/ply/ 및 https://github.com/z3prover/z3로 이동하여 해당 소스를 얻고 지침을 설치하십시오.
** 중요한! Z3 파이썬 바인딩을 설치해야합니다. https://github.com/z3prover/z3의 문서, 특히 Z3 바인딩 -> Python 참조
일단 있으면 https://github.com/sllam/pysetcomp로 이동하여 설치하십시오.
pysetcomp $ sudo python setup.py 설치
다음으로 MSRE의 컴파일러가 필요하고 https://github.com/sllam/msre로 진행하고 컴파일러 만 설치하십시오.
MSRE $ CD 컴파일러/MSREX
msre/compiler/msrex $ sudo python setup.py 설치
거의 설정되어 있습니다. 이제 Comingle 컴파일러를 설정하고 설치할 수 있어야합니다. Make File을 실행하여이를 수행하십시오.
Comingle $ sudo를 설치합니다
이것은 다음을 수행 할 것입니다.
Comingle을 테스트하려면 예제 디렉토리로 이동하여 시도해보십시오.
Comingle $ CD 예제
Comingle/예제 $ cmgc dragracing.cmg
당신은 많은 출력을 볼 수 있으며, 오류 메시지가 없습니다. 성공적으로 실행 된 경우 Java 소스 파일 'Dragracing.java'가있는 디렉토리 'Dragracing'이 표시됩니다. 이 Java 클래스는 Comingle 프로그램 'Dragracing.cmg'로 지정된 Comingle 런타임을 구현합니다. 이 Comingle 런타임이 실제 Android 게임과 어떻게 섞일 수 있는지에 대한 예를 보려면 https://github.com/sllam/comingle/mas
위의 단계에서 오류가 발생한 경우 ... [email protected] (edmund)에게 연락하십시오. 또한 내 사과를 받아들이십시오. Comingle 프로토 타입은 여전히 진행 중이지만, 나는 그것을 안정적이고 더 유용한 상태로 가져 오기 위해 열심히 노력하고 있습니다! =))
다음 덕분에 특별한 감사를드립니다.