'사물인터넷 플랫폼'에 해당되는 글 2건

  1. 2015.04.04 AllJoyn의 High-Level System Architecture (1)
  2. 2015.03.26 AllSeen Alliance 란



참고: https://allseenalliance.org/developers/learn/core/standard-core


High-Level System Architecture


먼저 Clients, Services 그리고 Peers의 아키텍쳐에 대해서 알아보자.

아래와 같이 아키텍쳐는 구성되어 있다.




System and Language Bindings (optional)
The AllJoyn system is written in C++, so for users of this language, no bindings are required. However, for users of other languages, such as Java or JavaScript, a relatively thin translation layer called a language binding is provided

http://sound79.tistory.com/admin/entry/post/

alljoyn은 기본적으로 C++로 구현이 되어 있다. 그러므로 상위 어플리케이션을 C++로 구현을 하면 상관이 없지만 Java와 같이 다른 언어로 구현을 해야 한다면 Binding이 필요하다. 아무래도 alljoyn 개발은 C++이 지원되면 환경이라면 C++로 하는것이 좋을 듯 하다.


Helper
The system and language bindings are built on a layer of helper objects which are designed to make common operations in the AllJoyn system easier


시스템 내부적으로는 당연히 Common한 동작 및 구현으로 되어 있다. 만약 Jave를 이용한다면 이 Helper와 같은 레이어를 이용하여 내부 시스템에 접근을 하여야 한다.


It is possible to use much of the AllJoyn system without using these helpers; however, their use is encouraged since it provides another level of abstract interface.



Bus 관련 Layer

Bus 관련한 Layer에 Bus Attachment, Proxy Bus Object, Bus Object, AllJoyn Bus 그리고 D-Bus가 있다. AllJoyn에서 Bus는 중요한 개념이다. 여기서는 간단하게 설명하고 이후에 좀더 상세하게 다루는 것이 좀더 이해하기 쉽지 않을까 합니다.


* The most basic abstraction of the AllJoyn system is the AllJoyn bus


즉 AllJoyn의 가장 핵심적인 부분에 AllJoyn Bus의 개념이 들어가 있다고 보면 되지 않을까 한다.



Messaging and Routing


This is an abstract communication endpoint from the perspective of the networking code

모든 데이터는  From Endpoint to another Endpoint 이다. 즉 Endpoint와 Endpoint와 통신을 한다고 생각하면 된다. Endpoint라는 개념은 정말 다양하게 사용되는 듯 하다. 하지만 확실한 것은 어떤 시스템, 모듈 혹은 Cocept에 대한 단일한 통로라고 생각하면 될 듯 하다.


This is the home of the functionality that marshals and unmarshals parameters and return values into messages that are sent across the bus.


아마 어떤 Object 형식을 XML과 같은 데이터 포맷으로 상호 변경하지 않을까 한다. 좀 더 자세한 내용은 소스를 좀더 분석해보고 나서야 알 수 있을 듯 하다.



Endpoints


Endpoints are specializations of transport mechanism-specific entities called transports, which provide basic networking functionality. In the case of a client, service, or peer, the only network transport used is the local transport. This is a local interprocess communication link to the local AllJoyn bus router. In Linux-based systems, this is a Unix-domain socket connection, and in Windows-based systems this is a TCP connection to the local router.


즉 네트워크 기능을 제공하는 내부 인터프로세스의 링크라고 보면 될듯 하다.


Local Network Transport


윗부분에서 설명하던 개념의 부족한 부분을 계속 아래에서 덧붙히는 형태인 듯 합니다만...

In Linux-based systems, this is a Unix-domain socket connection, and in Windows-based systems this is a TCP connection to the local router.


OS Abstraction Layer


The AllJoyn framework provides an OS abstraction layer to provide a platform on which the rest of the system is built, and at the lowest level is the native system.


당연한 애기이지만 특정 OS에 종속된다는 것은 IoT를 위한 프레임워크라는 특성을 잃어버리는 것과 마찬가지이다. 그러므로 특정 OS에 편협하지 않기 위하여, OS를 추상화 시키는 레이어가 필요하다.


Native System


기본적으로 Linux, Windows를 지원한다고 보면 된다. 좀더 구체적으로는...

Android, Darwin, Linux, OpenWRT, Windows, etc 이다...

좀더 찾아보니 RTOS, Embedded OS도 지원을 한다고는 하나?.... 그리고 iOS, MAC OSX까지 지원을 한다고는 문서에 나와 있으나??? 흠..






저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by sound79 사운드친구

댓글을 달아 주세요



AllSeen Alliance: https://allseenalliance.org/


Our Mission

To enable widespread adoption and help accelerate the development and evolution of an interoperable peer connectivity and communications framework based on AllJoyn for devices and applications in the Internet of Everything.


AllJoyn이라는 프레임워크를 기반으로 IoT를 개발해가는 단체이다.

메이저 업체로는 LG, Microsoft, Qualcomm, SHARP, SONY, Haier 등이 있으며 수많은 업체들이 멤버로 참여하고 있다.



9. The AllSeen Alliance manages the AllJoyn open source project with software code using open standards to enable all the ‘things’ in the Internet of Things to work together. The code is available for download today. 


앞서 언급했듯이 중요한 프레임워크 이름이 AllJoyn 이다

https://allseenalliance.org/developers/learn


간단히 Architecture 중 Network Architecture 부분만 일단 살펴보자



그림과 같이 크게 App과 Router가 보일것이다.

크게 3가지로 형태로 설명할 수 있다.


1. Bundled Router라고 불리어지는 라우터로써 현재 많이 사용되는 모바일 OS기반의 App : Router 매칭을 이룬다.

2. Standalone Router라고 불리어지는 라우터로써 백그라운드 데몬으로 동작되는 형태를 가지면서, 여러 App이 하나의 Router와 연결되는 형태이다

3. 충분한 CPU가 확보되지 않는 임베디드 디바이스를 위해서 Router가 없는 Thin variant of the AllJoyn framework를 사용하여 다른 디바이스의 Router와 연결이 된다.


  1. An App uses its own Router. In this case, the Router is called a "Bundled Router" as it is bundled with the App. AllJoyn Apps on mobile OSes like Android and iOS and desktop OSes like Mac OS X and Windows generally fall in this group.

  2. Multiple Apps on the same device use one Router. In this case, the Router is called a "Standalone Router" and it typically runs in a background/service process. This is common on Linux systems where the AllJoyn Router runs as a daemon process and other AllJoyn apps connect to the Standalone Router. By having multiple apps on the same device use the common AllJoyn Router, the device consumes less overall resources.

  3. An App uses a Router on a different device. Embedded devices (which use the Thin variant of the AllJoyn framework, more on this later) typically fall in this camp as the embedded device typically does not have enough CPU and memory to run the AllJoyn router.


다음편에 계속 ...


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by sound79 사운드친구

댓글을 달아 주세요



티스토리 툴바