DreamFactory

[본문스크랩] RSS와 컨텐츠 신디케이션에 대하여 PART-1

MSTOY™ 2006. 3. 20. 10:13

삼실 과장님 자리에 있던 XML관련책에서 얼핏 본 RSS...

음..디게 궁금하긴 했는데 읽어본다고 이해를 할 수 있을지 몰라 망설이다가

주말을 앞둔 금요일 점심 시간 후 나른함을 달래기? 위해서..펼쳐 들었다..얼마나 읽을 수 있을 란가.... (출처 : Beginning XML 3rd Edition)

-------------------------------------------------------------

RSS와 컨텐츠 신디케이션

컨텐츠 신디케이션 기술 : 웹의 링크 구조와 XML사용의 보편화에 따른 결과의 하나로 출현.

신디케이션 : 텔레비전이나 컴퓨터를 통해 네트워크상의 정보를 배급하는 것을 지칭.

신디케이션 피드 : 메타 데이터 엘리먼트와 콘텐츠로 구성된 단순한 XML파일이며, 여기에는

RSS 1.0, RSS 2.0, 그리고 Atom으로 대표되는 표준 형식이 존재.

XML형식으로 이들은 물론 신디케이션 피드의 기본 구조를 공유하고 있지만 서로 다른 문서 구조를

갖고 있기 때문에 서로 호환되지 않는다고 한다.

신디케이션 피드는 그 자체가 제목, 생성 일자와 같은 특성을 갖고 있다. 그리고

이 피드는 제목, 생성 일자에 대한 각각의 특성인 아이템 및 엔터티로 알려져 있는

개별 데이터 블록을 가지고 있다.

이 아이템들은 웹상의 자원을 설명하는 작은 정보의 집합이거나, 독립적으로 구축되어 콘텐츠들을 운반하는 단위라고 지칭할 수 있다.

신디케이션 시스템

모델 -> 클라이언트 - 서버 모델에 기반하고 있다.

HTTP를 사용하여 웹정보를 제공하며 클라이언트는 브라우저로 수신한다.

웹상의 서버는 IIS와 Apache를 이용하며, 클라이언트는 익스플로러나, 기타 브라우저를 사용한다.

서버측 생산자.

서버측 신디케이션 자료 생산자는 보통의 HTML 웹 페이지 제작에 사용되는 것과 차이가 없다.

웹서버에 존재하는 신디케이션 형식으로 존재하는 하나의 정적 XML 파일이라 할 수 있으며, XML 데이터는 각종 콘텐츠 관리 시스템에서 제작되어진다. 대표적인 시스템 전형은 웹 블로그 툴이다.

웹사이트의 기본 페이지는 일기와 같은 항목이 있을 수 있으며, 가장 최근에 작성한 페이지가 먼저 보여지고 그 뒤로 자료를 저장하는 각종 데이터 베이스가 존재하며, 시스템은 잘 구성된 웹페이지상에서 역시간 순서대로 이들을 표시한다. HTML을 제작하는 시스템과 신디케이션 피드(RSS/Atom)을 제작하는 시스템은 공존한다.

이 두 시스템은 최종 결과물(HTML과 RSS/Atom)이 형식적인 측면에서 상이한 것을 제외하면 몹시 유사하다. 수많은 블로그 시스템은 HTML과 신디케이션 피드 형식인 XML 기반의 문서를 동시에 생산하기 위한 템플릿 시스템을 내부에 폼함하고 있디.

클라이언트 측 소비자.

신디케이션 피드를 볼 수 있는 것은 가능하지만, 신디케이션의 주요 장점은 흔히 리더 프로그램이라 불리는 것을 이용한 행위에 있다. 리더 프로그램은 사용자가 통합 환경 하에서 피드를로부터 자료들을 제공 받고 구독할 수 있도록 한다.

리더 프로그램 사용자 인터페이스(UI)의 일반적 스타일은 두가지로 요약 할 수 잇다.

★ 하나의 창을 제공하는 스타일은 웹 블로그에 나타나는 순서대로 피드로부터 아이템을 표시

★ 여러 창을 제공하는 스타일은 종종 e-mail 프로그램에서 구현되는 것과 같이 한 창에서 선택 가능한 목록을, 다른 창에서는 선택된 내용을 표시

클라이언트 측 생산자.

기술적 문제.

통신을 할 때 서버측 생산자와 클라이언트 측 소비자의 시스템은 어떤 웹 서버가 그 클라이언트와 HTTP를 이용하여 통신을 하는 것과 동일하게 동작한다. 이때 신디케이션 피드는 RSS나 Atom의 형식 중 하나로 전달이 된다.

그러나 자료가 관리 시스템으로 전송될 때에는 다른 방법이 사용된다.

특히 Blogger의 블로그 서비스의 개발자는 사용자의 클라이언트에서 온라인 서비스로 블로그 자료를 전송하는 특별한 스펙을 제시했다.

이 스펙은 단지 프로토타입에 그쳤지만 'Blogger API' 는 블로그와 유사한 컴텐츠 관리 시스템에서 포스팅 방법에 대한 사실상 표준이 되었다.

Blogger API는 자료를 코드화하고 서버로 전송하는 XML-RPC 엘리먼트 신디케이션을 정의하였다.

이 스펙은 Userland의 Metaweblog API로 이어졌는데 Userland는 요청되는 모든 조각의 데이터를 전송하는 것이 가능하게끔 엘리먼트들을 확장하였다.

제작 도구로부터 전송된 데이터는 서버에서 리더 프로그램에 전달되는 자료와 같은 구조와 내용을 가진다. 이를 위해 Metaweblog API는 구조적인 엘리먼트를 설명하기 위해 RSS 2.0 언어를 사용한다.

신디케이션 자료를 서버에서 클라이언트로 전송받기 위해 클라이언트는 HTTP GET메시지를 서버에 전송하면, 서버는 일련의 RSS/Atom형식 데이터를 통해 응답한다.

반면에 클라이언트에서 서버로 자료를 전송할 시에는, 블로그 API는 컨텐츠를 XML-RPC메시지로 포장해 HTTP POST를 이용하여 전송한다.

최근의 연구는 XML-RPC 방식에서 HTTP를 이용해 바로 XML 데이터를 전송하는 방식으로의 변화를 보여주고 있다.

예를 들명 PUT(웹에 XML문서를 올리기 위해서 사용), DELETE(문서를 지우기 위해서 사용)와 같은 지금까지 덜 친숙했던 HTTP용어를 사용하는 방향으로 변화를 보여주고 있다.

서버측 소비자.

신디케이션 구성 요소 관점에서 서버 측 생산자를 바라보는 두 가지 측면.

먼저 블로그에 글을 올리는 것과 같이 클라이언트 측 생산자에서 서버로 전송된 잘를 수신하기 위해 필요한 기능 측면이 그 하나이며, 둘째로 다른 신디케이션 서버로부터의 자료를 수집해 어떤 작업을 하는 측면이다.

블로그에 글을 올릴 때 그 수신자로서의 서버 측 소비자와 온라인 정보 수집자로서의 서버 측 소비자와의 차이는 HTTP 기반의 신디케이션 형식을 만드는 클라이언트 측 시스템이 더 널리 사용되면서 점차 희석될 것이다.