몇 년 전부터 갑자기 화제가 되고 있는 P2P 컴퓨팅은 이제 단순히 냅스터나 그누텔라와 같은 파일 공유, SETI@home과 같은 CPU 공유에서 벗어나, B2B나 e-마켓플레이스에서부터, 그룹웨어 등의 기업 핵심 업무에까지 진출하고 있다.
처음 선보인 P2P 솔루션은 P2P 컴퓨팅 기술을 이용해 단순한 작업을 수행하는데 그쳤지만, 최근 선보이고 있는 솔루션은 여기서 벗어나 하나의 요소 기술로 사용되거나 P2P 기술을 활용할 수 있는 여러 가지 기술을 모두 모아 총체적인 솔루션으로 제공하는 경향이 늘고 있다.
피어 사이의 직접 연결이 핵심
우선 P2P 컴퓨팅이 무엇인가에 대해 알아보자. P2P 컴퓨팅은 시스템 간의 직접적인 교환을 통해 컴퓨터의 자원과 서비스를 공유하는 것이다. 다시 말해 각종 데이터뿐 아니라 CPU 프로세스, 디스크, 메모리 등의 자원을 모아서 분산처리함으로써 슈퍼컴퓨터를 능가하는 성능을 얻을 수도 있으며, 채팅이나 메시지 전달, 데이터 공유 등의 기능을 제공하는 커뮤니티를 구성할 수도 있다.
P2P 컴퓨팅 이미 한세대 전의 컴퓨팅 기술이지만 다시 화제가 되고 있는 데는 몇가지 이유가 있다. 무엇보다도 가장 큰 이유는 최근의 PC 성능이 CPU 뿐 아니라 I/O 성능, 디스크와 메모리의 용량 등 모든 면에서 예전 서버의 성능을 상회하고 있으며, LAN 환경 뿐 아니라 인터넷 환경조차도 예전에 비해 수십배 이상의 대역폭을 제공하고 있기 때문이다. 이같은 성능과 속도의 향상 뿐 아니라 용량의 확장으로 인해 기본적인 컴퓨팅 처리 외에도 P2P 환경에 필요한 별도의 서비스를 처리할 수 있는 여건이 마련됐다. 또한 여기에 PC의 보급률이 예전과는 비교할 수 없을 정도로 높아졌으며, 언제 어디서라도 인터넷에 연결할 수 있을 정도의 네트워크 인프라가 확산됐기 때문에 P2P 컴퓨팅을 위한 기반이 조성됐다고 평가하고 있다.
여기에 다양한 보완 기술이 등장해 P2P의 급격한 확산을 도왔다. 예를 들면 소프트웨어 에이전트의 발전을 들 수 있는데, 이런 에이전트를 통해 여러 가지 새로운 P2P 애플리케이션을 만들 수 있는 방법이 개발됐다.
예전에는 서버를 중심으로 컴퓨터들이 개별적으로 클라이언트 역할을 수행했지만, P2P 컴퓨팅에서는 서로간에 직접 통신이 가능하기 때문에 클라이언트와 서버의 구별이 없어진다.
특히 기존의 클라이언트/서버 환경으로 구성된 네트워크 내부에서도 별도의 P2P 구조를 구성할 수 있기 때문에 서로 공존하고 상호작용하면서 서로를 보완할 수 있는 관계를 구축한다.
기존의 클라이언트/서버 컴퓨팅 모델에서는 클라이언트가 다른 클라이언트와 네트워킹을 하기 위해서는 서비스를 제공하는 중앙의 서버가 위치하고 있어야 하며, 서버는 각 클라이언트의 요구에 응답하고 이에 따라 동작한다. 하지만 P2P 컴퓨팅에서는, 피어라고 불리는 모든 각각의 컴퓨터들이 서버와 클라이언트로의 이중적인 역할을 담당한다. 따라서 P2P 애플리케이션은 피어간에 직접적인 데이터 교환을 통해 처리돼며, 저장, 계산, 메시지 송수신, 보안, 파일 분산 등의 기능을 제공한다.
이같은 사용자 사이의 직접적인 교환이라는 특성 때문에 P2P 사용자들은 자신이 활용하는 서비스에 대해 제한 없는 자율성과 통제성을 갖게 된다. 이로써 커뮤니티 형성이라는 뛰어난 장점을 제공하게 되는 것이다. 예를 들면 P2P를 통해 사용자들은 특별한 목적을 위해 일시적으로 그룹을 형성해, 요구 사항을 전달하고, 자원을 공유하며, 협업하고, 통신할 수 있다. 따라서 P2P 컴퓨팅이 발전할수록 더욱 다양한 온라인 커뮤니티를 형성하고 발전해 나갈 수 있을 것이다.
심지어 최근에는 지금까지 유선 컴퓨팅 환경에서 벗어나 휴대폰이나 PDA 등의 모바일 장비를 이용해 P2P 기반 커뮤니티를 구성하는 솔루션도 선보이고 있다.
P2P 컴퓨팅 모델은 구성에 따라 크게 두가지로 나눌 수 있다. 중앙의 서버 유무로 구별되는 두가지 컴퓨팅 모델은 순수 P2P 컴퓨팅 모델과 혼합형 P2P 모델로 불리우고 있다.
다양한 분야에서 활용
순수 P2P 컴퓨팅 모델은 중앙의 서버없이 모든 컴퓨터가 피어로 동작하는 컴퓨팅 모델을 말한다. 반면 혼합형 P2P 모델은 애플리케이션이 필요한 기능 중 일부를 중앙 서버에 의존해 수행하는 방식이다. 서버의 역할은 애플리케이션에 따라 다르다. 예들 들면 냅스터나 소리바다의 경우는 먼저 서버에 접속해야 파일 등록이나 검색이나 다운로드 등의 기능을 사용할 수 있다.
이같은 P2P 컴퓨팅 모델은 다양한 분야에 적용할 수 있어 더욱 주목을 받고 있다. 현재 가장 대표적인 적용 분야로는 협업, 에지 서비스, 분산 컴퓨팅과 자원 공유, 지능형 에이전트 등이 있다.
P2P의 도입으로 기존의 그룹웨어나 커뮤니티 솔루션의 도움없이도 협업은 간단한 커뮤니티 운영에서부터 대형 프로젝트 진행까지 참가자들이 자유롭게 관리하고 운영할 수 있게 됐다. 만약 지역적으로 멀리 떨어져있는 사용자들이 공동의 프로젝트를 진행한다고 생각하면, 이를 위해 별도의 서버를 구축할 필요없이 편의에 따라 간단히 P2P 솔루션으로 파일을 공유하고, 원격 회의를 진행하거나 메시지를 주고 받을 수 있다. 이를 통해 서버 자원과 네트워크 트래픽을 절약할 수 있으며, 편의에 따라 몇 개의 서브 커뮤니티를 구성하거나, 프로젝트의 진행 상황에 따라 커뮤니티의 관리까지도 간단히 해결할 수 있다.
또한 커뮤니티 웹 네트워크를 구축해 가족 모임이나 동호인들처럼 공통된 관심사를 가진 그룹이 리스트와 웹 사이트를 이용해 자신들만의 인트라넷을 구축할 수도 있다. 이를 e-비즈니스에 접목시킨다면 공급망, 유통 정보, 컨텐츠, 소프트웨어의 연결을 간단히 해결할 수 있으며, 중앙 디렉토리나 검색 기능을 제공하는 원래의 노드에 아이템 데이터를 보관하는 등, 새로운 기능을 제공할 수 있다.
<표1> P2P의 기능적 분류
또한 P2P 인프라는 중앙의 통제를 받지 않는 온라인 커뮤니티 게임을 개발할 수 있게 될 것으로 기대된다. 따라서 개발자는 통신 프로토콜이나 인터페이스에 신경쓸 필요없이 게임의 특징에 초점을 맞출 수 있다.
에지 서비스는 P2P 컴퓨팅 모델을 이용한 배포 솔루션이라고 할 수 있는데, 만약 어떤 기업이 전세계의 지사에 동일한 내용의 교육을 실시하기 위해 본사에서 직접 온라인 교육을 실시한다고 하면 엄청난 트래픽으로 인해 네트워크 사용 효율이 급격히 떨어질 것이다. 그러나 P2P 솔루션을 통해 네트워크 캐시 메커니즘처럼 동작해 실제 사용될 지점에 데이터를 미리 이동시켜 놓는다면 이같은 비효율을 상당부분 줄일 수 있을 것이다.
한편 최근 그리드(GRID)라고 알려진 몇몇 대형 프로젝트를 보면 개인용 PC나 지역 서버의 유휴 CPU 프로세스와 디스크 공간을 이용해 슈퍼컴퓨터급의 연산 능력을 제공하는 분산 컴퓨팅과 자원 공유에도 많은 관심이 몰리고 있다는 것을 알 수 있다. 이를 이용하면 새로 서버를 증설하지 않고 기존의 자원을 이용할 수 있다는 점에서 많은 기업과 단체에서 관심을 갖고 프로젝트를 진행하고 있다.
마지막으로 P2P 컴퓨팅은 지능형 에이전트를 통해 네트워크에 연결된 컴퓨터들이 역동적으로 작동하도록 해 준다. 에이전트는 피어 컴퓨터에 상주하면서 다양한 정보를 주고 받으며, 다른 피어 시스템을 대신해 작업을 주도할 수 있다. 예를 들면, 지능형 에이전트를 사용해 네트워크에서 작업의 우선순위를 정하고 트래픽의 흐름을 바꾸며, 로컬에서 파일을 찾거나, 바이러스 등의 비정상적인 행위를 판단하고 이들이 네트워크에 영향을 주기 전에 중단시킬 수 있다. 특히 P2P 커뮤니티의 노드 간 관계를 이용하면, 앞으로 발생할 바이러스를 자가 검사할 수 있을 뿐 아니라 협업을 통해 바이러스를 검사하고 경고해 줄 수 있다.
무제한의 자율성 보장하는 P2P
P2P의 등장으로 얻을 수 있는 이점은 기술적인 면과 사회적인 면에서 찾아볼 수 있다.
기술적 이점은 P2P가 없이는 사용할 수 없었던 광대한 자원을 사용할 기회를 얻게 된 것이다. 이 자원에는 대규모 컴퓨터 작업을 위한 처리 능력과 막대한 저장 용량이 포함된다.
또한 P2P는 단일 소스로 인한 병목 현상 등의 문제점을 해결할 수 있다. 즉, P2P를 사용해 네트워크에서 데이터를 분배하고 로드밸런싱을 수행할 수 있는 것이다. P2P 메커니즘은 성능을 최적화하는데 도움이 될 뿐 아니라, 단일 지점에서 발생하는 장애로 인한 위험을 제거할 수도 있다. P2P를 기업에서 사용할 때는, 값비싼 데이터 센터의 기능을 클라이언트간의 분산된 서비스로 대체할 수 있다. 그리고 클라이언트에 데이터 검색과 백업을 위한 저장 작업을 할 수 있다. 또한 P2P 인프라는 피어간 직접 연결이나 네트워크를 통한 자원 공유가 가능해, 결과적으로 원격 유지 보수를 할 수 있다.
이외에 사회 심리적인 이점으로는 사용자의 자율성을 최대한 보장한다는 것이다. 예를 들어 사용자가 자율적으로 온라인 커뮤니티를 형성해 그들의 결정에 따라 커뮤니티를 운영할 수 있다. 이런 P2P 커뮤니티에는 사용자가 드나들면서 활동에 참여하기도 하고 중단하기도 하므로, 대체로 변화가 많고 역동적이다. 더구나 사용자들은 중앙의 통제를 받지 않기 때문에 사용에 자율성을 부여한다는 것이다.
킬러 애플리케이션의 부재
인터넷 컴퓨팅의 패러다임을 뒤바꿔 버릴 듯 급격한 성장세를 보여주고 있는 P2P 컴퓨팅 모델이라고는 하지만, 문제가 없는 것은 아니다. P2P의 바람을 몰고 온 냅스터나 소리바다, 그누텔라 등 특정 애플리케이션을 제외하고는 P2P의 대표적인 애플리케이션이라고 불릴만한 솔루션이 없다는 것이다.
어떤 새로운 기술이 제대로 적용되기 위해서는 이를 촉진시키기 위한 애플리케이션의 등장은 중요한 문제다. 스프레드 시트나 워드프로세서 프로그램이 PC의 확산을 유발하고, 모자이크나 넷스케이프 등의 웹 브라우저와 전자우편이 인터넷의 보급률을 끌어 올린 것과 마찬가지로, P2P에서도 이같은 애플리케이션이 필요한 것이다.
이미 수많은 업체들이 P2P에 기반한 솔루션을 개발하고 있으며, 여러 연구 프로젝트의 성공적인 수행으로 P2P 컴퓨팅 모델을 활성화시킬 수 있는 킬러 애플리케이션이 등장할 것으로 기대되고 있다.
특히 최근에는 P2P에 기반한 요소 기술이 적용된 솔루션이 등장해 P2P의 새로운 모습에 대한 기대를 모으고 있다. P2P가 비즈니스 모델로는 효용성이 떨어지자 e-마켓플레이스 등의 B2B 솔루션이나 그룹웨어, 인스턴트 메시징 등에서 사용자를 직접 연결해 거래를 하거나 파일 공유를 할 수 있는 기능을 제공하는 모듈로서 재탄생하고 있는 것이다.
P2P 표준이 몰고올 두 번째 바람
한편 수많은 업체들이 P2P를 표방하고 이를 이용한 솔루션 개발에 힘을 쏟으면서 P2P의 표준화에 대한 이야기가 심심치 않게 나오고 있다. 현재 선보이고 있는 P2P 솔루션들은 저마다 독특한 방식으로 상호간의 통신을 하기 때문에 서로 다른 솔루션과는 호환이 전혀 불가능한 상태다. 따라서 사용자들은 서로 다른 서비스를 이용하기 위해서는 여러 개의 P2P 솔루션을 각각 설치해 사용해야 하는 단점이 있다.
이에 대한 해결책으로 등장한 것이 P2P의 표준 플랫폼을 만들고 인터페이스와 몇몇 특화된 부분만을 직접 설계해 사용하는 표준화에 대한 논의가 한참이다. P2P 워킹그룹(www.peer-to-peerwg.com)에서 주도하고 있는 표준화가 이뤄진다면 애플리케이션 개발자들은 솔루션의 특정 부분에 대한 설계와 제작만으로 쉽게 P2P 솔루션을 만들 수 있고, 심지어 워드프로세서나 스프레드 시트 등의 애플리케이션에도 P2P 기술을 접목시킬 수 있을 것으로 기대된다.
특히 P2P 기술은 서로 공통적인 서비스 부분이 존재하기 때문에 이를 미들웨어 계층으로 구성하면, 개발자들은 여기에 기반해 직접 하나하나 제작하던 부분에 대한 부담을 덜 수 있기 때문에 빠른 시간에 안정적인 P2P 솔루션을 제작할 수 있으며, 서로 다른 운영체제에서 동작하는 각각의 애플리케이션들이 상호간에 통신할 수 있는 기반을 만들 수 있게 된다.
운영체제와 개발 플랫폼에 상관 없이 미들웨어 계층을 통해 통신할 수 있기 때문에 더욱 많은 피어를 확보할 수 있다는 것도 장점이다. 또한 공통된 미들웨어 계층은 단순히 컴퓨터 뿐 아니라 모바일 장비나 PDA, 네트워크 장비 등에도 그대로 제공될 수 있기 때문에 표준과 공통된 인프라 개발은 사용자와 개발자 모두에게 혜택을 제공할 수 있을 것으로 기대된다.
지난 20여년 동안 많은 사람들이 비교적 작고 통제된 환경에서 P2P 기술을 사용하며 실험해왔다. 그러나 최근 수많은 사용자들이 사용할 수 있는 P2P 애플리케이션이 탄생했다.
인터넷을 통해 공유하고 협업한다는 생각은 대량으로 컴퓨터 작업을 하는 부담을 줄이고, 협업을 통해 미디어나 소프트웨어를 제작하며, 온라인으로 직접 대화하면서 온라인 커뮤니티를 형성한다는 것으로까지 확장됐다. 그 밖에 흥미를 끄는 가능성들이 얼마든지 있으며, 이런 가능성의 실현은 애플리케이션 개발자와 사용자의 상상력에 달려있다. P2P 컴퓨팅은 계속 발전해, GUI를 사용하고 클라이언트/서버 모델이 처음 등장하였을 때 경험했던 것과 같은 엄청난 영향력을 미치고 있다.
컴퓨터와 인터넷 커뮤니케이션의 물리적인 인프라가 마련됐고, 주류 컴퓨팅에서 P2P 개념도 증명됐다. 이제 초기의 실험 단계를 벗어나 확실한 컴퓨팅 모델을 만들 때다. @