Advanced
ElggSpace: Extension of Elgg SNS for Supporting Collaborative Workspace
ElggSpace: Extension of Elgg SNS for Supporting Collaborative Workspace
Journal of the Korea Institute of Information and Communication Engineering. 2014. Mar, 18(3): 631-637
Copyright © 2014, The Korea Institute of Information and Commucation Engineering
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License(http://creativecommons.org/li-censes/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
  • Received : January 15, 2014
  • Accepted : February 17, 2014
  • Published : March 31, 2014
Download
PDF
e-PUB
PubReader
PPT
Export by style
Share
Article
Author
Metrics
Cited by
TagCloud
About the Authors
원준 차
종문 박
명준 이
mjlee@ulsan.ac.kr

Abstract
현재 SNS는 일반적인 소셜 커뮤니케이션 기능과 더불어 회사나 교육기관 등의 다양한 분야에서 빠른 의사결정이나 효율적인 업무처리 등에 널리 활용되고 있다. 하지만 기존의 일반적인 SNS 플랫폼들은 사용자 그룹을 위한 계층적인 협업 워크스페이스 환경이나 마이그레이션을 위한 워크스페이스 백업 기능을 제공하지 못한다. 본 논문에서는 협업 미들웨어인 C3ware를 이용하여 Elgg SNS 플랫폼을 확장한 협업 워크스페이스 환경인 ElggSpace에 대해서 설명한다. ElggSpace는 클라우드 스토리지 기반의 C3ware와 연동하여 사용자 그룹의 대용량 자원 공유를 위한 협업 워크스페이스를 체계적으로 지원한다. 이와 더불어 ElggSpace는 자원 관리를 위한 고수준의 접근제어와 워크스페이스 백업기능을 제공하여 효과적인 협업을 가능하게 한다.
Keywords
Ⅰ. 서 론
현재 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] 을 이용하여 구현할 수 있다.
PPT Slide
Lager Image
Elgg 특징 Fig. 1 Features of Elgg
Elgg는 사용자와 그룹 정보를 데이터베이스에 각각의 테이블로 구성하여 관리한다. 사용자는 여러 그룹에 참여할 수 있으며 관심 그룹에 가입하여 해당 그룹 의 저장소를 이용하여 자원을 공유할 수 있다. 최근 Elgg는 오픈소스 SNS로서 특정 기업에 대한 소셜 네트워킹 [7] 이나 교육 및 취업의 목적 [8] 으로 널리 사용되고 있다.
- 2.2. C3ware
C3ware는 클라우드 스토리지 기반의 협업 서비스와 워크스페이스를 지원하는 미들웨어이다. C3ware는 사용자들에게 개인 워크스페이스와 그룹 워크스페이스, 공개 워크스페이스를 각각 제공하여 구조적으로 자원을 관리한다. 표 1 은 C3ware에서 제공하는 워크스페이스의 3가지 유형에 대해서 설명한다.
협업 워크스페이스 유형Table. 1Types of Collaborative Workspace
PPT Slide
Lager Image
협업 워크스페이스 유형 Table. 1 Types of Collaborative Workspace
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 와 같이 표현한다.
Elgg의 사용자와 그룹 정보Table. 2User and Group Information on Elgg
PPT Slide
Lager Image
Elgg의 사용자와 그룹 정보 Table. 2 User and Group Information on 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의 전체 시스템 구조에 대하여 보여준다.
PPT Slide
Lager Image
전체 시스템 구조 Fig. 2 The System Architecture of ElggSpace
위의 그림 2 와 같이 ElggSpace는 LDAP 인증 모듈을 이용하여 C3ware의 워크스페이스를 사용자에게 제공한다.
- 3.2. 협업 워크스페이스 지원
ElggSpace는 Elgg에서 협업 워크스페이스를 제공하는 Elgg 확장 플러그인으로 웹 서비스 모듈과 LDAP 인증 모듈의 Rest API, C3ware 모듈로 구성된다. 그림 3 은 ElggSpace 플러그인 구조를 보여준다.
PPT Slide
Lager Image
ElggSpace 플러그인 구조 Fig. 3 The Internal Structure of the ElggSpace Plugin
웹 서비스 모듈은 SOAP Client와 Web Socket으로 구성된다. C3ware의 협업서비스 처리 결과를 SOAP 프로토콜로 전달받기 때문에 ElggSpace의 비즈니스 로직에서 활용하기 위해서는 Elgg 구현 언어인 PHP 객체로 변환해야 한다. 표 3 은 ElggSpace에서 웹서비스를 통하여 C3ware의 협업 서비스를 요청하는 과정을 보여준다.
협업서비스 요청Table. 3Request Message for a Collaboration Service
PPT Slide
Lager Image
협업서비스 요청 Table. 3 Request Message for a Collaboration Service
표 4 는 SOAP 프로토콜 기반의 응답 내용을 처리하는 과정을 보여준다.
협업서비스 응답Table. 4Response message of the Collaboration Service
PPT Slide
Lager Image
협업서비스 응답 Table. 4 Response message of the Collaboration Service
SOAP Client의 UserService는 C3ware의 UserService 협업서비스를 호출하여 사용자의 생성이나 접속과 같은 기능을 처리한다. 표 4 와 같이 요청에 따라 응답받은 SOAP 메시지는 XML 형태로 구성되며, 처리결과에 대한 내용을 담고 있다.
Ⅳ. ElggSpace 구현
본 장에서는 Elgg에서의 플러그인 구현과 이에 따른 기능과 인터페이스에 대해 설명한다.
- 4.1. Elgg의 확장 플러그인
ElggSpace는 플러그인 확장을 위하여 Elgg에서 제공하는 Plugin Skeleton에 따라 “mod” 폴더를 구성하였다. 표 5 는 mod폴더 하위에 있는 일부 구조와 코드를 보여준다.
Plugin Skeleton 구현Table. 5Implemetation of Plugin Skeleton
PPT Slide
Lager Image
Plugin Skeleton 구현 Table. 5 Implemetation of 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 인터페이스를 보여준다.
PPT Slide
Lager Image
ElggSpace 화면 구성 Fig. 4 The User Interface of the ElggSpace Plugin
ElggSpace는 한 화면에서 협업 워크스페이스의 모든 기능을 사용할 수 있는 간편한 사용자 인터페이스를 지원한다. 화면의 상단에는 현재 워크스페이스의 경로를 보여줌으로써 사용자가 계층적인 파일관리를 할 수 있도록 제공한다. 또한 화면의 중앙에는 현재 경로에 공유된 자원을 나타낸다. 화면의 좌측에는 현재 워크스페이스의 디렉터리를 계층적으로 구성하여 관리할 수 있다. 사용자는 공유된 자원의 유형, 이름, 업로드 날짜, 파일 용량을 확인할 수 있다.
- 4.3. 타 시스템과의 비교
페이스북은 사용자 간의 메시징 기능과 그룹 작업기능을 지원한다. 사용자들은 웹사이트에서 영상회의와 메신저를 이용할 수 있고 모바일로도 이용이 가능하다는 장점이 있다. 또한 페이스북은 Dropbox를 연동하여 사용자의 Dropbox의 파일을 업로드 할 수 있다. 하지만 파일 당 25MB의 업로드 용량 제한이 있고 백업 기능을 지원하지 않는다.
구글 플러스는 그룹을 서클이라고 표현한다. 서클 단위로 제공하는 작업장에 구글 드라이브의 사진과 동영상을 업로드 할 수 있다. 하지만 총 용량을 늘리려면 비용이 발생하고 계층적 파일 관리 기능을 지원하지 않는다. 표 6 은 세부 기능 비교를 보여준다.
타 SNS와의 비교Table. 6Comparison with other SNS
PPT Slide
Lager Image
타 SNS와의 비교 Table. 6 Comparison with other SNS
ElggSpace는 구조적 자원 관리가 가능하고 멀티 클라우드 스토리지를 지원하는 C3ware를 활용한 자원 백업 기능은 다양한 협업 환경에서 정보의 이동을 보장해준다는 점에서 매우 유용하다. 또한 그룹 멤버 간의 메시징 서비스 및 공유 화이트보드를 지원하는 SyncNote [13] 는 C3ware 워크스페이스를 사용할 수 있도록 확장한 버전을 이용하여 Elgg 그룹 멤버 간의 메시징 서비스를 지원한다.
Ⅴ. 결 론
본 논문에서는 오픈소스 SNS 플랫폼인 Elgg에서 협업 워크스페이스를 지원하는 ElggSpace의 설계와 개발에 대하여 기술하였다. ElggSpace는 SNS기반의 협업 워크스페이스를 체계적으로 제공하기 위하여 Elgg의 확장 플러그인으로 개발되었으며, C3ware에서 지원하는 그룹 워크스페이스를 제공하여 사용자들 간의 협업 환경을 제공한다. 또한, ElggSpace는 고유의 접근권한제어 기능과 여러 클라우드 스토리지를 활용한 대용량의 자원 공유를 통하여 다양한 형태의 자원 공유를 제 공하며 백업 기능으로 자원의 이동성을 보장한다. 이와 더불어 개발된 웹서비스기반의 LDAP 인증 모듈은 여러 시스템 사이에서 사용자 정보 연동에 대한 오버헤드를 줄일 수 있으며 C3ware를 비롯한 미들웨어에서 독립적으로 활용될 수 있다.
Acknowledgements
본 연구는 2013년도 정부(교육부)의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구사업으로서, 관계부처에 감사드립니다. (No. 2013R1A1A4A01004459)
BIO
차원준(Won-Jun Cha)
2014년 울산대학교 컴퓨터정보통신 공학부 졸업(학사)
2014년 ~ 현재 울산대학교 정보통신 공학 석사 과정
※관심분야 : 웹 서비스, 협업시스템, 모바일 프로그래밍
※Email : ckghrms@naver.com
박종문(Jongmoon Park)
2010년 울산대학교 컴퓨터정보통신 공학부 졸업 (석사)
2012년 ~ 현재 울산대학교 정보통신 공학 박사 과정
※관심분야 : 웹 서비스, 만물 인터넷, 상황인식 시스템
※Email : monster28g@gmail.com
이명준(Myung-Joon Lee)
1980년 서울대학교 수학과 졸업(학사)
1982년 학국과학기술원 전산학과 졸업(석사)
1991년 한국과학기술원 전산학과 졸업(박사)
1993 ~ 1994년 미국 버지니아대학 전산학과 교환교수
2005 ~ 2006년 미국 캘리포니아 주립대학 교환교수
1982 ~ 현재 울산대학 컴퓨터 정보통신공학부/전기 공학부 교수
※관심분야 : 웹기반 정보시스템, 프로그래밍언어, 분산 프로그래밍 시스템
※Email : mjlee@ulsan.ac.kr
References
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 13 (4) 31 - 61
A powerful open source social networking engine [Internet] http://elgg.org
The Community-run, Distributed Social-network [Internet] http://joindiaspora.com/
2013 “Collaborating in the cloud: Leaders in Today's Collaborative Revolution Report Significant Benefits From a Cloud-Based Approach” Forbes
Lee H. C. , Park J. E. , Lee M. J. 2013 “C3ware: A Middleware Supporting Collaborative Services over Cloud Storage” Computer Journal 57 1093 - 1100
Plugin Skeleton [Internet] http://docs.elgg.org/wiki/Plugin_skeleton
International social network for businesses [Internet] http://www.centillien.com/
Get job ready online [Internet] http://firstplanet.in/
Open Source AWS compatible private clouds [Internet] https://www.eucalyptus.com/
Dropbox [Internet] http://dropbox.com
OpenStack Object Storage API Reference [Internet] http://docs.openstack.org/developer/swift/
LDAP. J. Sermersheim Ed. 2006 Lightweight Directory Access Protocol [Internet] http://tools.ietf.org/search/rfc4511
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 http://dx.doi.org/10.6109/jkiice.2013.17.6.1375 17 (6) 1375 - 1382    DOI : 10.6109/jkiice.2013.17.6.1375