10월, 2015의 게시물 표시

Virtual Box에서 공유폴더 설정하기

Virtual Box 상에서 간단하게 공유 폴더 설정하기 Host OS : 윈도우 XP 와 맥OS에서 확인함. Guest OS : Ubuntu 15.04 자동 마운트로 공유 폴더 사용하기 1. VritualBox 관리자를 실행해서 설치된 Guest OS (Ubuntu_15.04) 마우스 우측 클릭한 후, 설정... 을 선택합니다. 좌측 메뉴리스트 하단의 공유폴더를 선택하고 우측의 폴더추가 아이콘을 클릭해서 Host OS의 공유폴더를 지정하고  자동마운트, 항상 사용하기를 체크 합니다. (ex, 공유 폴더는 d:\Share 로 지정) 2. 게스트 확장 이미지가 설치되어야 합니다. 사전에 설치되지 않았다면, Guest OS인 우분투를 부팅하고 로그인한 후, VirtualBox 윈도우의 메뉴 장치/게스트 확장 CD이미지 삽입..을 선택하고 설치 후 다시 재부팅 합니다. 3. 우분투 로그인 후, 지정된 공유 디렉토리는 /media 밑에 하위 디렉토리로 mount 됩니다. 디폴트로 root 엑세스 권한이 설정되어 있으므로 추가하고자 하는 사용자를 지정합니다. ls 로 확인시, "sf_Share"로 보입니다. $ sudo usermod -G vboxsf -a 추가할사용자명 재시작 $ sudo shutdown -r now 적용 후 재시작하면 해당 사용자의 공유 디렉토리가 자동 마운트되어 접근 권한이 적용 되어 Host OS와 Geust OS간에 설정된 디렉토가 서로 공유 됩니다. 필요시 임의의 폴더를 동적으로 마운트해서 사용하기 위의 1번 과정 처럼, 추가하고자 하는 공유 디렉토리를 Host OS에 만듭니다. 우분투 상에서 필요에 따라 동적으로 마운트할 용도면, 자동 마운트 체크를 하지 않고 설정합니다. 이후 우분투 상에서 동적으로 사용자가 원하는 디렉토리를 공유 디렉토리로 마운트시키면 Host OS 의 공유 디렉토리를 쉐어할 수 있습니다. 가령, Host OS에 Share2 라는 공유디렉토리를 만들어 두고

Ubuntu에 AllJoyn 프레임워크 개발 환경 설정, 소스 빌드, 기본 샘플 구동 확인하기

이미지
이번 포스팅은 설치된 우분투 리눅스에서 AllJoyn 프레임워크 설치 및 기본 샘플 구동을 확인하는 내용을 기술했습니다. Host OS는 맥OS상에서 VirtualBox로 Guest OS로 Ubuntu 15.04 버전이 설치된 환경에서 확인한 사항입니다. Host OS가 윈도우나 기타 다른 OS일지라도 Guest OS가 Ubuntu 15.04 기준으로 설치된 환경이라면 동일한 환경의 설치과정으로 이해하면 됩니다. VirtualBox를 이용한 Ubuntu 15.04의 설치는 이전 포스팅을 참조하세요. VirtualBox를 이용하여 Guest OS로 Ubuntu 15.04 설치하기 1. AllJoyn 프레임워크(v15.04) 개발 환경 설정 먼저 Ubuntu가 설치된 상태라면, 기본 package 내용을 update하고 upgrade 합니다. $ sudo apt-get update $ sudo apt-get upgrade 빌드 툴과 라이브러리 설치 $ sudo apt-get install build-essential $ sudo apt-get install libgtk2.0-dev $ sudo apt-get install xsltproc $ sudo apt-get install libxml2-dev $ sudo apt-get install libcap-dev 또는 각각의 패키지 명칭을 연속해서 붙여서 한번에 인스톨 진행해도 됩니다. $ sudo apt-get install build-essential libgtk2.0-dev libssl-dev xsltproc libxml2-dev libcap-dev 설치중에 패키지에 따라 종속된 다른 패키지의 설치가 필요할 경우 계속할 건지 물어봅니다. Do you want to continue[Y/n]?  프롬프트가 나타나면 y를 입력하고 계속 진행하도록 합니다. AllJoyn 리눅스 빌드 가이드에 ia32-libs도 설치하라고 명시되어 있지만, 현재 ia32-libs 패키지는 설치가능하지

AllJoyn 이해 - Base Service의 Audio Streaming 개념 정리

Allseen Alliance에 소개되어 있는 AllJoyn Base Service의 Audio Streaming 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다. (원문 참조 :  https://allseenalliance.org/developers/learn/base-services/audiostreaming  ) AUDIO STREAMING AllJoyn® 오디오 서비스 프레임워크는 하나 또는 다수의 기기들 상에서 동기화된 오디오 재생을 가능하게 하기 위해 AllJoyn 프레임워크를 사용한 기능 구현입니다. 오디오 서비스 프레임워크를 사용한 어플리케이션은 근처의 기기를 발견할 수 있고 그기기를 추가해서 모든 추가된 기기들 상에서 재생을 위한 단일 명령 호출로 오디오(PCM 데이타)를 스트리밍할 수 있는 능력을 가집니다. 이 서비스는 포즈,정지,재생, 볼륨 조절 그리고 뮤트의 컨트롤을 제공합니다. Concepts and Terminology Skin and Source 두가지 역할이 존재합니다. Sink. 이것은 raw 오디오 데이타를 수신하는 쪽입니다.  Source. 이것은 raw 오디오 데이타를 보내는 쪽입니다.  How Does It Work? 오디오 서비스 프레임워크는 각 디바이스에 PCM 데이타를 전송하기 위해 소프트웨어 프레임워크내의 표준화된 인터페이스들을 사용합니다. Source는 오디오를 보내기를 원하는 각각의 Sink에 포인트-투-포인트 세션을 형성할 것입니다. 각각의 세션상에서 오디오 데이타 청크와 타임스탬프를 포함하는 신호를 보낼 것입니다. 타임스탬프는 여러 스피커들간에 단순한 동기화를 제공하기 위해 사용됩니다. 오디오를 보낼 수 있게 되기전에, Source는 전송

AllJoyn 이해 - Base Service의 Control Panel 개념 정리

Allseen Alliance에 소개되어 있는 AllJoyn Base Service의 Control Panel 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다. (원문 참조 :  https://allseenalliance.org/developers/learn/base-services/controlpanel  ) CONTROL PANEL SERVICE  AllJoyn® Control Panel Service 프레임워크는 어플리케이션이 원격 디바이스들과 상호작용 하도록 설정하는 UI위젯을 만들수 있는 간단한 방법을 제공합니다. 프레임워크는 특정한 개체 경로에 구현될때, 원격 디바이스의 UI상에 위젯들의 동적인 표현을 할 수 있는 인터페이스들의 표준 셋으로 구성됩니다. 컨트롤 패널 서비스는 위젯 요소들을 생성하기 위한 코드 생성기와 하이레벨 API의 사용을 허용함으로써 AllJoyn 컨트롤 패널 인터페이스의 세부사항을 추상화 합니다. 컨트롤 패널은 어떻게 UI를 보여야한다고 지시하지 않습니다. 단지 무엇을 할 수 있는 요소인지, 스크린상에 어디에 표시해야하는지, 다른 어플리케이션들과 동기화와 관련된 힌트/정보를 제공합니다. Concepts and Terminology Contoller 와 Controllee 두가지 역할이 있습니다. Controller. 이것은 컨트롤 패널을 표시하는 어플리케이션 입니다.  Controlee. 이것은 컨트롤 패널을 광고하는 어플리케이션 입니다.  Control Panel 사용자가 디바이스들과 상호작용하도록 하게 하는 것은 위젯들의 컬렉션입니다. 컨트롤 패널은 Controlee에 의해 정의되고 공표됩니다. 그리고 Controller에 의해 발견되고 디스플레이 됩니다. 디바이스는 Controller나

AllJoyn 이해 - Base Service의 Notification 개념 정리

Allseen Alliance에 소개되어 있는 AllJoyn Base Service의 Notification 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다. (원문 참조 :  https://allseenalliance.org/developers/learn/base-services/notification  ) NOTIFICATION AllJoyn® Notification 서비스 프레임워크는 디바이스나 앱들에서 사람이 읽을 수 있는 텍스트를 디스플레이하거나 또는 재생하거나(즉, 오디오와 같은 Text to Speech로 표현할 수 있는)하는 일반 매카니즘을 제공합니다. Notifications은 AllJoyn 네트워크상에서 모든 디바이스와 앱들이 수신할 수 있도록 방송됩니다. 그리고 알림은 만든이에 의해 정의된 특정 생존시간(Time to Live)을 유지할 수 있습니다. 텍스트외에도, 오디오, 이미지, 컨트롤패널 객체 또는 다른 사용자 정의 속성들을 보낼 수 있습니다. 사용자 정의 속성들을 제어하고 표현하기 위한 최선의 방법을 결정하는 것은 처리방법에 달려있습니다. 또한 Notifications은 모든 소비자들에 범용적으로 거부될 수도 있습니다. Concepts and Terminology Producer and Consumer 두가지 역할이 존재합니다. Producer. 생산자는 알림을 보내는 쪽입니다.  Consumer. 소비자는 알림을 수신하는 쪽입니다.  Message Types Notifications는 정보(Info), 경고(Warning), 긴급(Emergency) 등의 세가지 중 하나로 될 수 있습니다. 정보는 가장 많이 사용됩니다. 경고는 좀더 주의를 요하는 알림에 사용될 수 있습니다.

AllJoyn 이해 - Base Service의 Configuration 개념 정리

Allseen Alliance에 소개되어 있는 AllJoyn Base Service의 Configuration Service 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다. (원문 참조 :  https://allseenalliance.org/developers/learn/base-services/configuration  ) CONFIGURATION SERVICE Configuration 서비스는 디바이스 이름이나 패스워드 같은 디바이스를 구성할 수 있는 능력을 제공합니다. Concepts and Terminology 두가지 역할이 존재합니다: Config Server . 이것은 설정되는 디바이스상에서 동작하며, 이 디바이스는 Configuration 서비스를 제공하는 디바이스 입니다. Config Client . 이것은 원격 디바이스를 설정하기 위한 디바이스나 앱상에서 동작합니다.  아래 구성들이 설정될 수 있습니다. Factory Reset . 디바이스의 원본 공장 설정으로 복원합니다. 모든 설정가능한 데이타는 원복됩니다. 디바이스가 Onboarding 서비스를 지원하는 경우, 디바이스는 자신의 원래 상태인 내장되지 않은 상태(offboarded)로 됩니다.  Set Passcode . 디바이스들의 패쓰워드를 설정합니다. 이것은 보안 인터페이스를 접근할때 사용됩니다.  Default Language . 특정 언어가 요구되지 않는다면, 디바이스에 의해 사용되는 기본 언어를 설정합니다.  Device Name . 디바이스의 이름을 설정 합니다.  Configuration 서비스는 이 서비스를 제공하는 간단한 보안 인터페이스를 제공합니다. 자세한 내용은 Configuration 인터페

AllJoyn 이해 - Base Service의 Onboarding Service 개념 정리

이미지
Allseen Alliance에 소개되어 있는 AllJoyn Base Service의 Onboarding Service 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다. (원문 참조 :  https://allseenalliance.org/developers/learn/base-services/onboarding  ) ONBOARDING SERVICE Onboarding 서비스는 새로운 디바이스를 Wi-Fi 네트워크 상으로 가져다놓을 수 있는 일반적이고 간단한 방법을 제공합니다. 이는 SmartPlug와 같이 제한된 사용자 인터페이스를 가지는 디바이스에 특히 유용합니다. How Does it Work? 현재 Onboarding 매커니즘은 와이파이만을 지원합니다. 디바이스들의 이런 클래스에 좀더 적합하게 되는 BTLE(Bluetooth Low Energy)와 같은 추가적인 하드웨어를 지원하는 방향으로 진화할 수 있습니다. 두가지 역할이 지원됩니다. Onboardee . 이것은 Wi-Fi 네트워크상에 가져다놓아야 하고 구성되지 않은 디바이스 입니다.  Onboarder . 이것은 일반적으로 모바일 어플리케이션 또는 PC와 같은 Onboardee 디바이스를 구성하는 디바이스 입니다.  아래는 디바이스를 내장(onboard)하는 단계 입니다. 1. Onboardee broadcasts its SSID Onboardee 장치가 처음 연결될때, Wi-Fi 상에서 자신의 SSID를 광고할 것입니다. SSID는 이 디바이스가 AllJoyn® Onboarding 서비스를 지원하는 것을 나타내기 위해   "AJ_"의 접두어나 "_AJ"의 접미어로 표시됩니다. 2.

AllJoyn 이해 - Core Framework 개념 정리

이미지
Allseen Alliance에 소개되어 있는 AllJoyn의 Core Framework 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다. (원문 참조 :  https://allseenalliance.org/developers/learn/core  ) CORE FRAMEWORK 이 섹션에서는  AllJoyn ™의 핵심 개념을 설명합니다. 기본적인 하이-레벨 이해는  올조인 서비스 프레임워크만 사용하는 어플리케이션 뿐만이 아니라 올조인 어플리케이션을 개발하는 모든 이들에게 추천합니다. Bus Attachment 올조인 어플리케이션들은 구동시 생성하는 Alljoyn Bus Attachment 객체를 이용하여 AllJoyn Router에 연결하고 AllJoyn network 에서 서로 상호작용합니다. Advertisement and Discovery AllJoyn 어플리케이션들은 두가지 매커니즘(About Announcement 와 Well-Known Name)으로 자기 자신이 가진 서비스를 광고(알림)할 수 있습니다. 가능한 전송방식에 따라서, 올조인 어플리케이션을 다른 올조인 어플리케이션들이 발견하기를 보장하기 위해 올조인 프레임워크는 서로다른 방식을 사용할 수 있습니다. IP-기반 전송, mDNS, 멀티캐스트와 UDP 패킷의 브로드캐스트 조합 등이 그 예 입니다. About Announcements는 광고를 위한 매커니즘 입니다. About Announcements는 어플리케이션들이 가진 매타데이타 형식의 일관된 구성(제조사, 모델, 제공되는 인터페이스 종류, 그래픽 아이콘 등등의 정보)을 광고할 수 있는 일반적인 방법을 제공합니다. Well-Known Name 은 어플리케이션들이 서로 공지하고 발견하기 위한 좀더

AllJoyn 이해 - Architecture 개념 정리

이미지
Allseen Alliance에 소개되어 있는 AllJoyn의 Architecture 내용을 이해하기 위해 아래와 같이 해석해서 정리해 보았습니다. 개발자 입장에서 볼 때 새로운 용어나 개념의 이해가 선행되어야 코드상에서의 접근이 용이하다는 것은 중요한 점입니다. 많은 용어와 개념들을 가능한한 원문 형태로 이해하는것이 가장 빠른 방법입니다. (원문 참조 :  https://allseenalliance.org/developers/learn/architecture  ) ARCHITECTURE Network Architecture AllJoyn™ 프레임워크는 로컬 네트웍 상에서 동작 합니다. 디바이스들과 앱들이 서로를 광고(advertise)하고 발견(discover)하는 것을 가능하게 합니다. 이 섹션은 네트웍 아키텍쳐와 다양한 AllJoyn 컴포넌트들 사이에서의 관계를 설명합니다. Apps and Routers AllJoyn 프레임워크는 AllJoyn Apps와 AllJoyn Routers ,짧게 얘기하면 Apps 와 Routers 로 구성됩니다. 앱들(Apps)은 라우터들(Routers)과 라우터들은 앱들과  통신하게 됩니다. 앱들은 다른 앱들과 통신하기 위해서 오직 라우터를 통해서만 가능합니다. 앱들과 라우터들은 동일한 물리적인 디바이스 혹은 서로 다른 디바이스 상에서 존재할 수 있습니다. AllJoyn관점에서 이것은 중요하지 않습니다. 실제 아래와 같이 일반적인 3가지의 토폴로지가 존재합니다. 1. 앱이 라우터를 소유하고 있는 경우 이 경우, 라우터는 어플리케이션에 번들로 동봉된 개념으로 "Bundled Router"라고 합니다.  안드로이드나 애플의 iOS 및 윈도우즈나 맥의 OS X와 같은 데스크탑 OS 상의 앱들이 일반적으로 이 그룹에 속합니다.  2. 여러 앱들이 같은 디바이스 상에서 하나의 라우터를 사용하는 경우 이 경우,  라우터는 "Standalone Router"