검색 전체 메뉴
PDF
맨 위로
OA 학술지
ElggSpace: 협업 워크스페이스를 지원하는 Elgg SNS의 확장 ElggSpace: Extension of Elgg SNS for Supporting Collaborative Workspace
  • 비영리 CC BY-NC
  • 비영리 CC BY-NC
ABSTRACT
ElggSpace: 협업 워크스페이스를 지원하는 Elgg SNS의 확장

Recently, SNS is widely used for various purposes such as fast decision making or effective business process in educational institutions or enterprise as well as general services for social networking. Unfortunately, all of existing general SNS platforms do not provide user groups with workspaces for sharing information in a hierarchical way, nor support the functionality of workspace backup for migrations.

In this paper, we present a collaborative workspace environment named ElggSpace which extends the Elgg SNS platform with the C3ware collaborative middleware. With the help of C3ware, ElggSpace systematically supports collaborative workspaces that enable user groups to share massive resource in cloud storages. In addition, ElggSpace allows high-level access controls for resources management and the functionality of resource backup, supporting effective collaboration.

KEYWORD
Elgg , SNS 플랫폼 , 협업 워크스페이스 , 대용량 자원 공유 , LDAP 인증 모듈
  • Ⅰ. 서 론

    현재 SNS는 기존의 소셜 커뮤니케이션 기능과 더불어 회사나 교육기관 등에서 빠른 의사결정이나 효율적인 업무처리 등의 다양한 목적으로 활용되고 있다[1]. 이러한 SNS는 개방성이 뛰어난 오픈소스 SNS 플랫폼을 이용하여 목적에 맞도록 구축할 수 있으며 대표적인 플랫폼으로 Elgg[2]와 디아스포라[3]가 있다.

    Elgg는 사용자와 그룹의 활동정보를 보여주는 대시 보드와 내부 및 외부 콘텐츠에 손쉽게 접근할 수 있는 위젯(widgets) 기능을 제공한다. 또한 그룹 멤버간의 자원공유를 위하여 저장소(Repository) 기능을 제공하고 있지만 그룹 멤버는 자원을 계층적으로 관리할 수 없다는 단점이 있다. 또한 그룹 멤버 개별적으로 읽기나 쓰기 권한을 설정할 수 없으며 저장소 백업 기능을 지원하지 않아서 다른 시스템과의 자원 공유가 불가능하다.

    네트워크 인프라의 급속한 발전으로 클라우드 스토리지 사용자들이 급속히 늘어남에 따라 이를 활용한 공동 작업이 많은 관심을 받고 있다[4]. 클라우드 스토리지 기반의 공동 작업을 지원하는 C3ware[5]는 다양한 유형의 워크스페이스와 실시간으로 자원을 관리하고 공유할 수 있는 환경을 제공하는 미들웨어이다.

    본 논문에서는 Elgg를 확장하여 효과적인 협업 워크 스페이스 환경을 지원하는 플러그인인 ElggSpace의 개발에 대해서 설명한다. ElggSpace는 C3ware를 활용하여 대용량의 자원공유를 지원하고 공유되는 자원의 접근 권한 제어를 통하여 사용자 그룹을 위한 고수준의 자원관리를 제공한다. 또한 자원 백업 기능을 통하여 자원을 다른 시스템과 공유할 수 있다. 따라서 사용자들은 ElggSpace를 활용하여 다양한 협업 환경에서 자원을 효과적으로 관리할 수 있다.

    본 논문의 구성은 다음과 같다. 서론에 이어 2장에서는 오픈소스 SNS 플랫폼인 Elgg와 클라우드 스토리지 기반의 C3ware에 대해 소개하고, 주요 특징에 대하여 설명한다. 3장에서는 Elgg에서의 협업 워크스페이스를 지원하기 위한 설계방법에 대하여 기술한다. 4장에서는 ElggSpace의 구현 결과에 대하여 설명하고 마지막 5장에서는 결론을 다룬다.

    Ⅱ. 배경 지식

    본 장에서는 오픈 소스 SNS 플랫폼 Elgg와 협업 미들웨어인 C3ware에 대해서 살펴본다.

       2.1. Elgg

    Elgg는 리눅스 환경에서 AMP(Apache, MySQL, PHP)기반으로 개발된 오픈소스 SNS 플랫폼으로 정보 공유와 같은 기본 SNS 기능과 더불어 팟캐스트와 블로그, RSS, 태깅 같은 다양한 커뮤니케이션 기능을 제공한다. 또한, Elgg는 그림 1과 같이 그룹(groups), 친구(friends), 위젯 같은 핵심 소셜 네트워크 서비스를 제공하고 새로운 서비스를 추가하기 위하여 플러그인 확장 기능을 제공한다. 플러그인 확장은 Elgg에서 제공하는 Plugin Skeleton[6]을 이용하여 구현할 수 있다.

    Elgg는 사용자와 그룹 정보를 데이터베이스에 각각의 테이블로 구성하여 관리한다. 사용자는 여러 그룹에 참여할 수 있으며 관심 그룹에 가입하여 해당 그룹의 저장소를 이용하여 자원을 공유할 수 있다. 최근 Elgg는 오픈소스 SNS로서 특정 기업에 대한 소셜 네트워킹[7]이나 교육 및 취업의 목적[8]으로 널리 사용되고 있다.

       2.2. C3ware

    C3ware는 클라우드 스토리지 기반의 협업 서비스와 워크스페이스를 지원하는 미들웨어이다. C3ware는 사용자들에게 개인 워크스페이스와 그룹 워크스페이스, 공개 워크스페이스를 각각 제공하여 구조적으로 자원을 관리한다. 표 1은 C3ware에서 제공하는 워크스페이스의 3가지 유형에 대해서 설명한다.

    [표 1.] 협업 워크스페이스 유형

    label

    협업 워크스페이스 유형

    C3ware는 JAX-WS/SOAP 기반의 웹 서비스를 통하여 이기종의 클라이언트에게 협업 환경을 제공하며 각 스토리지의 오퍼레이션을 추상화하여 단일화된 방법으로 접근하도록 개발되어 있어 Walrus[9], Dropbox[10], Swift[11] 등의 클라우드 스토리지와 연동할 수 있다.

    C3ware의 웹서비스는 UserService, GroupService, WorkspaceService의 서비스 패키지로 정의된다. UserService는 사용자 추가나 삭제와 같이 그룹 작업 수행 시 사용자들을 처리하기 위한 오퍼레이션 패키지이다. GroupService는 사용자들이 그룹을 생성하고 사용자와 그룹 사이의 멤버십을 처리할 수 있는 오퍼레이션을 제공한다. WorkspaceService는 자원을 공유하는 공간인 협업 워크스페이스에 접근하여 자원을 저장하고 관리할 수 있는 오퍼레이션을 제공한다.

    Ⅲ. Elgg에서의 협업 워크스페이스 지원

    본 장에서는 C3ware와 연동하여 협업 워크스페이스를 지원하는 ElggSpace에 대해 설명한다.

       3.1. Elgg와 C3ware의 그룹 정보 연동

    Elgg는 사용자와 그룹 관계를 표 2와 같이 표현한다.

    [표 2.] Elgg의 사용자와 그룹 정보

    label

    Elgg의 사용자와 그룹 정보

    ElggSpace는 그룹 멤버에 대한 정보가 갱신되면 경량 디렉터리 액세스 프로토콜인 LDAP[12] 서버를 통하여 그룹 정보를 연동한다.

    Elgg와 C3ware에서의 사용자 계정 정보를 체계적으로 연동하기 위하여 LDAP 인증 모듈을 이용한다. LDAP의 인증 기능을 웹 서비스로 제공하고 확장된 서버에서는 LDAP 인증 모듈을 Restful 기법으로 제공한다.

    제공되는 Rest API는 여러 종류의 미들웨어에서 사용자 정보를 연동하는데 대한 오버헤드를 줄이는데 독립적으로 사용될 수 있다. 다음 과정은 Elgg와 C3ware에서의 사용자 계정 정보 연동을 보여준다.

    ① 등록하는 부분

    · ElggSpace의 LDAP 클라이언트 모듈은 Elgg 사용자 정보를 LDAP 서버에 등록한다. · 등록된 사용자가 Elgg 그룹을 생성하면 Elgg Space 의 LDAP 클라이언트 모듈은 LDAP 서버에 그룹 정보를 등록한다.

    ② 사용하는 부분

    · 그룹 멤버가 협업 워크스페이스를 호출하면 Elgg Space는 LDAP 서버를 통하여 사용자 인증을 거친다. · ElggSpace는 LDAP에 등록된 그룹 정보를 통하여 그룹 멤버에게 협업 워크스페이스를 제공한다.

    위와 같은 과정을 거친 Elgg 그룹 멤버는 C3ware의 협업 서비스를 호출하여 그룹 워크스페이스를 제공받을 수 있다. 그림 2는 LDAP 인증 모듈을 이용한 Elgg와 C3ware의 전체 시스템 구조에 대하여 보여준다.

    위의 그림 2와 같이 ElggSpace는 LDAP 인증 모듈을 이용하여 C3ware의 워크스페이스를 사용자에게 제공한다.

       3.2. 협업 워크스페이스 지원

    ElggSpace는 Elgg에서 협업 워크스페이스를 제공하는 Elgg 확장 플러그인으로 웹 서비스 모듈과 LDAP 인증 모듈의 Rest API, C3ware 모듈로 구성된다. 그림 3은 ElggSpace 플러그인 구조를 보여준다.

    웹 서비스 모듈은 SOAP Client와 Web Socket으로 구성된다. C3ware의 협업서비스 처리 결과를 SOAP 프로토콜로 전달받기 때문에 ElggSpace의 비즈니스 로직에서 활용하기 위해서는 Elgg 구현 언어인 PHP 객체로 변환해야 한다. 표 3은 ElggSpace에서 웹서비스를 통하여 C3ware의 협업 서비스를 요청하는 과정을 보여준다.

    [표 3.] 협업서비스 요청

    label

    협업서비스 요청

    표 4는 SOAP 프로토콜 기반의 응답 내용을 처리하는 과정을 보여준다.

    [표 4.] 협업서비스 응답

    label

    협업서비스 응답

    SOAP Client의 UserService는 C3ware의 UserService 협업서비스를 호출하여 사용자의 생성이나 접속과 같은 기능을 처리한다. 표 4와 같이 요청에 따라 응답받은 SOAP 메시지는 XML 형태로 구성되며, 처리결과에 대한 내용을 담고 있다.

    Ⅳ. ElggSpace 구현

    본 장에서는 Elgg에서의 플러그인 구현과 이에 따른 기능과 인터페이스에 대해 설명한다.

       4.1. Elgg의 확장 플러그인

    ElggSpace는 플러그인 확장을 위하여 Elgg에서 제공하는 Plugin Skeleton에 따라 “mod” 폴더를 구성하였다. 표 5는 mod폴더 하위에 있는 일부 구조와 코드를 보여준다.

    [표 5.] Plugin Skeleton 구현

    label

    Plugin Skeleton 구현

    “elggspace/start.php”는 Elgg 그룹 멤버가 Elggspace를 호출 하였을 때 실행된다. 표 5의 소스는 사용자 세션을 초기화하고 메인 화면으로 이동을 나타낸다.

    “elggspace/pages/resource.php”는 C3ware에서 관리하는 구조적인 자원을 트리로 구성하는 코드이다. 이후 그룹 멤버가 자원을 선택하면 자원의 id, 자원의 이름 등의 정보를 담은 객체가 “elggspace/pages/resource.php”로 전송된다.

       4.2. ElggSpace 주요 기능과 인터페이스

    ElggSpace는 C3ware의 협업 서비스를 활용하기 위하여 SOAP 라이브러리를 이용하여 클라이언트를 구현하였으며 사용자 중심의 인터페이스를 제공한다.

    ElggSpace는 Elgg에서 기본적으로 제공하는 SNS 기능과 더불어 협업 워크스페이스에서 다운로드, 업로드, 이동, 복사, 삭제, 디렉터리 생성, 자원 정보 확인 등의 자원 관리 기능을 제공하여 구조적인 자원관리가 가능하다. 또한 ElggSpace는 멀티 클라우드 스토리지를 지원하는 C3ware를 활용한 워크스페이스를 제공하여 용량 제한 없이 자원을 효율적으로 공유할 수 있다. 이와 더불어 공유되는 자원의 접근 권한 제어를 통해 그룹멤버 개별적으로 읽기나 쓰기 권한을 설정할 수 있다. 또한 C3ware의 멀티 클라우드 스토리지를 활용하여 백업 기능을 지원한다. 그림 4는 ElggSpace 인터페이스를 보여준다.

    ElggSpace는 한 화면에서 협업 워크스페이스의 모든 기능을 사용할 수 있는 간편한 사용자 인터페이스를 지원한다. 화면의 상단에는 현재 워크스페이스의 경로를 보여줌으로써 사용자가 계층적인 파일관리를 할 수 있도록 제공한다. 또한 화면의 중앙에는 현재 경로에 공유된 자원을 나타낸다. 화면의 좌측에는 현재 워크스페이스의 디렉터리를 계층적으로 구성하여 관리할 수 있다. 사용자는 공유된 자원의 유형, 이름, 업로드 날짜, 파일 용량을 확인할 수 있다.

       4.3. 타 시스템과의 비교

    페이스북은 사용자 간의 메시징 기능과 그룹 작업기능을 지원한다. 사용자들은 웹사이트에서 영상회의와 메신저를 이용할 수 있고 모바일로도 이용이 가능하다는 장점이 있다. 또한 페이스북은 Dropbox를 연동하여 사용자의 Dropbox의 파일을 업로드 할 수 있다. 하지만 파일 당 25MB의 업로드 용량 제한이 있고 백업 기능을 지원하지 않는다.

    구글 플러스는 그룹을 서클이라고 표현한다. 서클 단위로 제공하는 작업장에 구글 드라이브의 사진과 동영상을 업로드 할 수 있다. 하지만 총 용량을 늘리려면 비용이 발생하고 계층적 파일 관리 기능을 지원하지 않는다. 표 6은 세부 기능 비교를 보여준다.

    [표 6.] 타 SNS와의 비교

    label

    타 SNS와의 비교

    ElggSpace는 구조적 자원 관리가 가능하고 멀티 클라우드 스토리지를 지원하는 C3ware를 활용한 자원 백업 기능은 다양한 협업 환경에서 정보의 이동을 보장해준다는 점에서 매우 유용하다. 또한 그룹 멤버 간의 메시징 서비스 및 공유 화이트보드를 지원하는 SyncNote[13]는 C3ware 워크스페이스를 사용할 수 있도록 확장한 버전을 이용하여 Elgg 그룹 멤버 간의 메시징 서비스를 지원한다.

    Ⅴ. 결 론

    본 논문에서는 오픈소스 SNS 플랫폼인 Elgg에서 협업 워크스페이스를 지원하는 ElggSpace의 설계와 개발에 대하여 기술하였다. ElggSpace는 SNS기반의 협업 워크스페이스를 체계적으로 제공하기 위하여 Elgg의 확장 플러그인으로 개발되었으며, C3ware에서 지원하는 그룹 워크스페이스를 제공하여 사용자들 간의 협업 환경을 제공한다. 또한, ElggSpace는 고유의 접근권한제어 기능과 여러 클라우드 스토리지를 활용한 대용량의 자원 공유를 통하여 다양한 형태의 자원 공유를 제 공하며 백업 기능으로 자원의 이동성을 보장한다. 이와 더불어 개발된 웹서비스기반의 LDAP 인증 모듈은 여러 시스템 사이에서 사용자 정보 연동에 대한 오버헤드를 줄일 수 있으며 C3ware를 비롯한 미들웨어에서 독립적으로 활용될 수 있다.

참고문헌
  • 1. Kim K. S., Yi S. Y. 2011 “A Case Study of informal Learning on Office Workers utilize SNS” [The Korean Association of Human Resource Development] Vol.13 P.31-61 google
  • 2. A powerful open source social networking engine [Internet] google
  • 3. The Community-run, Distributed Social-network [Internet] google
  • 4. 2013 “Collaborating in the cloud: Leaders in Today's Collaborative Revolution Report Significant Benefits From a Cloud-Based Approach” google
  • 5. Lee H. C., Park J. E., Lee M. J. 2013 “C3ware: A Middleware Supporting Collaborative Services over Cloud Storage” [Computer Journal] Vol.57 P.1093-1100 google
  • 6. Plugin Skeleton [Internet] google
  • 7. International social network for businesses [Internet] google
  • 8. Get job ready online [Internet] google
  • 9. Open Source AWS compatible private clouds [Internet] google
  • 10. Dropbox [Internet] google
  • 11. OpenStack Object Storage API Reference [Internet] google
  • 12. LDAP. J. Sermersheim Ed. 2006 Lightweight Directory Access Protocol [Internet] google
  • 13. Jin J. H., Park J. M., Lee M. J. 2013 “SyncNote: A Shared Whiteboard Android Application Supporting the XMPP” [Journal of the Korea Institute of Information and Communication Engineering] Vol.17 P.1375-1382 google cross ref
OAK XML 통계
이미지 / 테이블
  • [ 그림 1. ]  Elgg 특징
    Elgg 특징
  • [ 표 1. ]  협업 워크스페이스 유형
    협업 워크스페이스 유형
  • [ 표 2. ]  Elgg의 사용자와 그룹 정보
    Elgg의 사용자와 그룹 정보
  • [ 그림 2. ]  전체 시스템 구조
    전체 시스템 구조
  • [ 그림 3. ]  ElggSpace 플러그인 구조
    ElggSpace 플러그인 구조
  • [ 표 3. ]  협업서비스 요청
    협업서비스 요청
  • [ 표 4. ]  협업서비스 응답
    협업서비스 응답
  • [ 표 5. ]  Plugin Skeleton 구현
    Plugin Skeleton 구현
  • [ 그림 4. ]  ElggSpace 화면 구성
    ElggSpace 화면 구성
  • [ 표 6. ]  타 SNS와의 비교
    타 SNS와의 비교
(우)06579 서울시 서초구 반포대로 201(반포동)
Tel. 02-537-6389 | Fax. 02-590-0571 | 문의 : oak2014@korea.kr
Copyright(c) National Library of Korea. All rights reserved.