본문 바로가기

Software&Platform

Avro Avro(에이브로)는 이기종간 데이터 타입을 교환할 수 있는 체계를 제공하는 프레임워크로 아파치 하둡 프로젝트의 서브 프로젝트로 시작된 후 아파치 메인 프로젝트로 승격된 프로젝트다. 쓰리프트가 RPC요청을 안정적으로 처리하면서 이기종 간 RPC 호출을 지원하는 개념으로 접근했다면, 에이브로는 데이터 직렬화를 기본 개념으로 해 RPC 호출을 이기종간에 가능하게 하는 개념으로 접근한다. 따라서 에이브로의 이기종 간 데이터 접근은 RPC 뿐만 파일에 데이터를 저장하는 등의 용도로도 사용할 수 있다. (출처:클라우드 컴퓨팅 구현 기술) Avro는 Apache Hadoop project에서 개발된 RPC와 Serialization 프레임워크이다. 데이터와 프로토콜 정의에 JSON을 이용하며 간단한 바이너리 포멧 .. 더보기
Thrift Thrift(쓰리프트)는 다양한 언어를 지원하는 RPC 서버와 이 서버에서 제공하는 서비스를 호출하는 클라이언트 코드를 생성해주는 소프트웨어 프레임워크다. 쓰리프트를 이용하면 개발자는 프로그래밍 언어별 소켓 서버에 대한 구현을 알 필요 없으며 RPC 기반이기 때문에 함수 호출 형태로 원격 서버에서 제공하는 서비스를 호출 할 수 있으며, 사용자 정의 데이터 타입을 이용할 수 있다. 또한 서버 측과 클라이언트 측 모두 다양한 프로그래밍 언어를 지워하며, 서버/클라이언트 간 구현된 언어가 틀려도 서버의 메소드를 호출할 수 있다. 따라서 어플리케이션 서버를 쉽게 개발할 수 있으며, 프로그ㅐ림 언어에 대한 제약도 없다. (출처:클라우드 컴퓨팅 구현기술) Thrift는 IDL(Interface definition .. 더보기
RPC Remote Procedure Call(RPC, 원격 프로시저 호출)은 컴푸터 프로그램이 다른 주소 공간에서 원격 제어를 위한 프로그래머의 세세한 코딩 없이 함수나 프로시저의 실행을 허용하는 기술이다. 다시 말해, 프로그래머는 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있뜬 간에 반드시 동일한 코드를 짜게 된다. 어떠한 소프트웨어가 객체 지향의 원칙을 사용하여 프로그래밍 때, RPC는 원격 호출(remote invocation) 또는 원격 메소드 호출(remote method invocation)이라고 일컫는다. 가끔 ONC RPC와 DCE/PRC와 같은 비호환 대상을 수행하기 위해 쓰이는 다른 수 많은 기술이 있다. (출처:wikipedia) 이 글은 스프링노트에서 작성되었습니다. 더보기
MapReduce 정리중 2011.12.14 MapReduce는 구글이 2004년에 클러스터 환경의 큰 데이터셋의 분산 컴퓨팅을 지원하기 위해 구현한 Software 프레임워크이다. MapReduce 라이브러리는 C++, C#, Erlang, Java, LabVIEW, OCaml, Perl, Python, PHP, Ruby, F#, R 등의 언어로 사용할 수 있다. MapReduce는 많은 컴퓨터(Nodes)를 사용하여 거대한 데이터셋간 고 분산 처리 프레임워크이다. 다시 말하면 클러스터(모든 노드가 같은 하드웨어인 경우) 또는 Grid(노드가 다른 하드위어를 사용)를 말하는 것이다. 프로세스는 비정형적인 파일시스템이나 구조적인 데이터베이터에 데이터를 저장 관리할 수 있다. Map : Master 노드는 입력 Proble.. 더보기
BSON 가.개요 BSON은 컴퓨터 데이터를 상호 교환하기 위한 양식이다. 이것은 간단한 구조화 결합된 배열을 나타내는 Binary 폼이다. BSON은 Binary JSON의 약어이다. 나.Data Type and Syntax BSON 문서(혹은 객체)는 element들의 리스트로 구성되어 있다. 각각의 Element는 field name, type, value로 구성되어 있다. field name은 문자열이다. type은 string, integer, double, date, byte array(binary), boolean(true/false), null, BSON object, BSON array 을 포함한다. 이는 JSON을 포함한다. (예를 들면, JSON은 byte array가 없다.). 그러나 길이 .. 더보기
JSON 가.개요 JSON (JavaScript Object Notation )은 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법이다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램의 변수값을 표현하는데 적합하다. 나.문법 자바스크립트 표준인 ECMA-262 3판의 객체 문법에 바탕을 두며, 인코딩은 유니코드로 한다. 표현할 수 있는 자료형에는 수, 문자열, 참/거짓이 있고, 또 배열과 객체도 표현할 수 있다. 배열은 대괄호로 나타낸다. 배열의 각 요소는 기본자료형이거나 배열, 객체이다. 객체는 이름/값 쌍의 집합으로, 중괄호로 싼다. 이름은 문자열이기 때문에 반드시 따옴표를 하여, 값은 기본자료형이거나 배열, 객체이다. 각 쌍이 나오는 순서는 의미가 없다. 다. 장점 JSON은 텍스트로 이루어져.. 더보기
REST (Representational State Transfer) 가.REST(Representational State Transfer) 란 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다. 엄격한 의미로 REST는 네트워크 아키텍처 원리의 모음이다. 여기서 네트워크 아키텍처 원리란 리소스를 정의하고 리소스에 대한 주소를 지정하는 방법에 대한 개괄을 말한다. 간단한 의미로는, 도메인 지향 데이터를 HTTP위에서 SOAP이나 쿠키를 통한 세션 트랙킹 같은 부가적인 전송 레이어 없이, 전송하기 위한 아주 간단한 인터페이스를 말한다. 이 두 가지의 의미는 당연히 겹치는 부분과 충돌되는 부분이 있다. REST 아키텍처 형식을 따르면 HTTP 프로토콜을 사용하지 않은 채로 또 월드 와이드 웹에서 전송하지 않고도 아주 커다란 소프트웨어 시.. 더보기