오픈소셜 환경의 기술적 이해

2008.03.21 오픈소셜 세미나 발표 자료
(Opera 브라우저에서 F11을 눌러 OperaShow를 이용한 프레젠테이션을 보실 수 있습니다.)

오픈소셜이란?

  • 많은 사이트 + 단일 API
  • 사이트별로 존재하는 회원간의 관계 +
    모든 사이트에서 동작하는 가젯(어플리케이션)
  • 어플리케이션을 외부에서 만들어 공급 받을 수 있음
오픈소셜 컨테이너

소셜 네트워크를 제공하는 사이트는 많아지며, 이들 소셜 네트워크를 지원하기 위한 수많은 API가 존재할 수 있습니다. 이들을 지원하는데 한계가 생길 수 있는 점을 공통의 프레임웍을 만들어 개발 비용을 줄이는 것을 기술적 목표로 합니다.

현재 오픈소셜 스펙 기준으로 소셜 네트워크를 초월한 관계를 만드는 것은 아니며, 소셜 네크워크를 하나의 생태계로 보고, 각 체계에서 데이터를 제공하는 방식을 일원화하는 것입니다.

둘러보기


서비스 제공자와 어플리케이션 제작자

  • 서비스 제공자: 회원들과 그 친구관계를 공급
  • 어플리케이션: 공급된 데이터(회원정보,친구관계)를 이용한 프로그램
    • 자바스크립트 혹은 플래시로 작성
    • 개발자가 발행하여 공개되는 어플리케이션 디렉토리
    • 회원이 선택한 어플리케이션을 구동시키는 오픈소셜 컨테이너

용어 간단 정리

  • 가젯, 위젯, 어플리케이션 - 오픈소셜 프로그램
  • 컨테이너
  • 주인
  • 방문자
  • 주인의 친구, 방문자의 친구
  • 어플리케이션 디렉토리
  • 어플리케이션 프락시

IDtail: Open API

  • http://dev.idtail.com/docs/OpenAPI
  • 개인정보: 인증과 공개정도에 따라서 적절하게 가져옴
    • http://api.idtail.com/get_user_info/<USERNAME>.json?callback=
  • 네트워크(친구): IDtail의 네트워크 관계는 누구나 열람
    • http://api.idtail.com/get_network/<USERNAME>.json?callback=
  • 개인 알림 정보: 친구들의 활동정보 및 공지 사항 등 (IDtail 안테나)
    • http://api.idtail.com/get_notification/<USERNAME>
  • 기타
    • 사용자 이미지 사용
    • 통합 검색
    • 방문자 정보

IDtail: Access Control

  • 방문자 인증 방식
    • API용 User key
    • HTTP Basic Auth
    • OAuth
  • 접근 제어
    • 공개 / 비공개 / 친구 공개 (친구 그룹별 공개)
  • 접근 제어 대상
    • 학교, 회사, 메신저, 이메일, 전화번호

OSoc: JavaScript API 1

  • http://code.google.com/apis/opensocial/docs/0.7/spec.html
  • opensocial 네임스페이스로 만들어지는 오픈소셜 데이터 핸들링 클래스
    • var req = opensocial.newDataRequest();
      req.add(
      req.newFetchPersonRequest('OWNER'), 'pageOwner' );
      req.add( req.newFetchPersonRequest('VIEWER'), 'pageViewer' );
      req.send( onDataLoad );
    • title = viewer.getDisplayName()+"님이 "+owner.getDisplayName()+"님을 방문하였습니다.";
      var activity = opensocial.newActivity(title);
      opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, hello_done);

OSoc: JavaScript API 2

  • gadget 네임스페이스로 만들어지는 화면 및 통신 라이브러리
    • 높이 조절
    • 플래시
    • 위젯 모드 검출, 제목 설정 등등
    • rpc
    • json

OSoc: RESTful API

  • 아직 공식적인 스펙 발표되지 않음
  • Opensocial API가 JavaScript API인데 반해 HTTP 를 통한 접근도 통일시키려는 시도
  • Javascript 환경이 아닌 데스크탑 어플리케이션, 모바일 기기 등에서 사용할 수 있는 어플리케이션을 지원하기 위함
  • Atom Publishing Protocol 기반으로 제안이 됨
    • http://domain/feeds/people/UserID
    • http://domain/feeds/people/UserID/friends
    • http://domain/feeds/apps/appID/persistence/userId/instance/instanceID/partKey

OSoc: 사용자 행동 로그

  • 활동 내역을 공유하는 것은 SNS의 촉매제
    • 일종의 단방향 커뮤니케이션 도구
  • 자신의 행동을 기록함
    • 친구들은 그 행동을 열람할 수 있음
  • 어플리케이션의 실행 결과를 남겨 친구들이 볼 수 있게함

OSoc: 어플리케이션의 데이터 저장

  • 데이터 저장 규칙
    • (사용자 ID, Key, Value) 쌍을 하나의 단위로 저장
    • 하나의 어플리케이션에서 여러 Key 저장 가능
    • 여러 어플리케이션이 하나의 Key를 읽을 수 있음
    • 방문자 자신의 Key, Value 외에는 저장/변경 금지
    • 친구의 Key, Value 쌍은 읽을 수 있음
  • 저장 및 응용
    • 게임 어플리케이션의 최고 점수
      • 친구들의 최고 점수를 보여주어 경쟁 유도
    • 오늘의 한 마디

OSoc: 행동로그-데이터 저장의 한계

  • 타인의 사이트에서 내 친구 목록이?
  • 자신의 데이터만 수정 가능
    • 주인에게 뭔가를 남기는 일이 안된다.
  • 나의 행동을 남김으로써 친구들과 공유하는 것일 뿐

OSoc: 어플리케이션 글로벌 데이터

  • 아주 기능이 풍부한 어플리케이션은 데이터의 양도 많다.
    • 오픈소셜 공급자의 DB에 남기는 것보다, 제작자의 서버에 남겨라
  • 공유하는 데이터로 이루어진 것일 경우 제작자의 서버에 남겨라
  • 어플리케이션 키/값 쌍의 길이의 한계는 구현하기 나름으로 정해졌다

IDtail: OpenSocial 기능 구현 정도

IDtail: OpenSocial 어플리케이션 시연

  • 간단한 예제를 통한 어플리케이션의 구조 소개
  • 주인/방문자 정보 예제
  • 주인/방문자 친구 예제
  • 데이터 저장 예제
  • 행동 남기기 예제
  • 타 오픈소셜 사이트에서 동작

생각

  • OpenID 간의 SNS를 이용한 컨테이너
  • OpenID + XFN, OpenID + FOAF 기반의 컨테이너
  • Google의 소셜 그래프 응용 컨테이너
    • http://code.google.com/apis/socialgraph/



Posted by 고슴도치플러스

2008/03/21 13:33 2008/03/21 13:33

Trackback URL : http://hedgeplus.net/trackback/187

Leave a comment
[로그인][오픈아이디란?]
« Previous : 1 : ... 50 : 51 : 52 : 53 : 54 : 55 : 56 : 57 : 58 : ... 208 : Next »

블로그 이미지

" The fox knows many things, but the hedgehog knows one big thing. " 너무 많은 꾀를 지닌 여우보다는 "큰 한가지"만을 아는 고슴도치처럼 변하지 않는 그것을 항상 잊지 않는 고슴도치플러스가 되겠습니다.

Calendar

«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Bookmarks

Site Stats

Total hits:
537085
Today:
34
Yesterday:
381