• Ubuntu Precise Pangolin 12.04 Test 완료. (2012-05-22)
    (apache2-mpm-prefork 2.2.22, OpenJDK 6 1.6.0_24, OpenKM 5.1.9)
  • Ubuntu Oneiric Ocelot 11.10 Test 완료. (2012-04-24)
    (apache2-mpm-prefork 2.2.20, Oracle Java 1.6.0_26, OpenKM 5.1.9)

1. OpenKM?

OpenKM은 Electronic Document Management System(EDMS)를 구축하기 위한 Solution으로 Community Version은 Open-source License(GPLv2)로 배포되며, 그 외에 Cloud Service나 Professional Support는 유료로 이용할 수 있습니다.

여기서 말하는 EDMS는 회사나 업무에서 사용하는 종이문서 대신 전자문서(Office files, images, etc.)를 사용하도록 함으로서 비용을 절감하고, 쉽게 문서를 관리할 수 있도록 돕는 System을 의미합니다.

OpenKM은 Java로 개발되어 있으며, JBoss, Lucene, jBPM등의 Open-source Package와 이 외의 Third-party Tool을 통하여 기능이 확장됩니다.

OpenKM이 지원하는 기능은 다음과 같습니다.

  • 문서 관리
  • 문서 Version 관리 (SCM과 유사한 저장소와 Revision 개념)
  • Image 관리
  • WebDAV로 문서 저장소에 접근 가능
  • Workflow 지원 (jBPM)
  • Lucene 검색 (문서 내부 검색 지원)
  • Multi-platform, Multi-database 지원
  • Web 2.0 UI, Mobile Web UI
  • 다국어 지원
  • 유의어 사전(Thesaurus) 지원

OpenKM에 대해서 더 자세히 알기 원한다면, OpenKM의 Demo Site에 접속해서 직접 사용해 보기 바랍니다.

2. 설치

OpenKM은 WAS인 JBoss를 사용하며 그 외에 여러 Library를 포함하고 있기 때문에 WAS와 Library를 포함한 통합 Package 형태로 Source를 배포합니다.

이번 항목에서는 OpenKM을 설치하는 방법과 Apache와 연동하여 사용하는 방법을 알아봅니다.

2.1. JDK 설치

OpenKM은 Java로 구현되어 있기 때문에 JDK가 필요합니다. JDK가 System에 설치되어 있지 않다면, 이전 Post의 5.3. Oracle Java 6 설치를 참고하기 바랍니다.

2.2. OpenKM 설치

이미 언급했지만 JBoss와 여러 Library가 포함된 형태로 배포되기 때문에 OpenKM을 설치할 Server에 Tomcat과 같은 다른 WAS가 설치되어 있다면 설치에 유의해야 합니다.

가급적이면 WAS가 설치된 Server에서는 설치하지 않는 것이 좋습니다. (그래도 설치해야 할 경우 OpenKM의 Wiki Page를 참고하기 바랍니다.)

OpenKM을 Download하기 위해서 아래의 Link에 접속합니다. OpenKM-5.1.x_JBoss-4.2.3.GA.zip 중에서 최신 Version을 Download하면 됩니다.

File을 Download한 다음, 다음과 같이 Terminal에서 입력하여 설치합니다.

1
$ sudo unzip OpenKM*.zip -d /opt

설치된 OpenKM을 위한 Start-up Script를 만들기 위해서 Terminal에서 다음과 같이 입력합니다.

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
$ sudo vi /etc/init.d/jbossokm

#! /bin/sh
# /etc/init.d/jbossokm: Start and stop JBoss Application Service

ECHO=/bin/echo
TEST=/usr/bin/test
JBOSS_START_SCRIPT=/opt/jboss-4.2.3.GA/bin/run.sh
JBOSS_STOP_SCRIPT=/opt/jboss-4.2.3.GA/bin/shutdown.sh

$TEST -x $JBOSS_START_SCRIPT || exit 0
$TEST -x $JBOSS_STOP_SCRIPT || exit 0

start() (
   $ECHO -n "Starting JBoss"
   su -c "$JBOSS_START_SCRIPT -b 0.0.0.0 > /dev/null 2> /dev/null &"
   $ECHO "."
   )

stop () (
   $ECHO -n "Stopping JBoss"
   su -c "$JBOSS_STOP_SCRIPT -S > /dev/null &"
   $ECHO "."
   )

case "$1" in
      start )
            start
            ;;
      stop )
            stop
            ;;
      restart )
            stop
            sleep 30
            start
            ;;
      * )
            $ECHO "Usage: jbossokm {start|stop|restart}"
            exit 1
esac

exit 0

$ sudo chmod 755 /etc/init.d/jbossokm

이제 OpenKM을 실행해 봅시다. 다음과 같이 입력합니다.

1
$ sudo service jbossokm start

System Booting 시에 자동으로 실행하도록 설정하려면 다음과 같이 입력합니다.

1
$ sudo update-rc.d jbossokm defaults
OpenKM - First Run

OpenKM - First Run

이제 OpenKM이 제대로 실행되었는지 확인해 봅시다. http://localhost:8080/OpenKM/에 Browser로 접속하여 위와 같은 화면이 나온다면 정상적으로 실행된 것입니다.

위의 그림에 아래쪽을 보면 Warning이 표시되어 있습니다. 설치한 후 처음 실행했기 때문에 발생하는 Message로 이 문제를 해결하기 위해 Terminal에서 다음과 같이 입력합니다.

1
2
3
4
5
6
7
$ sudo service jbossokm stop
$ sudo vi /opt/jboss*/OpenKM.cfg

# hibernate.hbm2ddl의 값을 create에서 none으로 변경
hibernate.hbm2ddl=none

$ sudo service jbossokm start
OpenKM - Login

OpenKM - Login

변경 후, OpenKM에 다시 접속하면 위와 같이 Warning Message가 사라지는 것을 확인할 수 있습니다.

2.3. Apache와 연결

외부에서 Internet을 통해 OpenKM이 설치된 Server에 접근을 허용할 경우, OpenKM의 JBoss에 직접 접근하게 된다면 보안상 위험할 수 있습니다. JBoss의 보안 Issue 때문에 http port를 통해서 OpenKM에 접근하는 것이 조금 더 안전합니다.

다음은 Apache의 AJP13 Protocol을 이용하여 Apache와 OpenKM의 JBoss가 통신하도록 설정하는 방법을 설명합니다.

먼저 Apache가 설치되어 있지 않다면 설치해야 합니다. 다음과 같이 Terminal에서 입력합니다.

1
$ sudo apt-get install apache2

그 다음, 필요한 Apache Module을 활성화합니다.

1
2
3
$ sudo a2enmod proxy_ajp
$ sudo a2enmod proxy_http
$ sudo a2enmod headers

Apache의 mod_proxy 설정을 위해서 다음과 같이 입력합니다.

1
$ sudo vi /etc/apache2/mods-available/proxy.conf

<IfModule>과 </IfModule> 사이에 아래와 같은 내용을 입력하고 저장합니다.

1
2
3
4
5
6
7
8
9
  ProxyRequests Off
 
  <Proxy *>
    AddDefaultCharset off
    Order deny,allow
    Allow from all
  </Proxy>
 
  ProxyVia On

그리고 Apache의 Virtual Host 설정을 변경하기 위해서 다음과 같이 입력합니다.

1
$ sudo vi /etc/apache2/sites-enabled/000-default

<VirtualHost>와 </VirtualHost> 사이에 다음과 같이 입력하고 저장합니다.

1
2
3
4
<Location /OpenKM>
         ProxyPass ajp://127.0.0.1:8009/OpenKM
         ProxyPassReverse http://localhost/OpenKM
</Location>

설정을 적용하기 위해 Apache를 다시 시작합니다.

1
$ sudo service apache2 restart

만약 UFW 방화벽이 System에 활성화 되어 있다면 외부에서 접속이 가능하도록 다음과 같이 입력하여 설정합니다.

1
$ sudo ufw allow http
OpenKM - via Apache

OpenKM - via Apache

마지막으로 Test를 위해 Browser에서 http://localhost/OpenKM으로 접속합니다. 제대로 설정이 되었다면 위와 같이 정상적으로 Login Page가 표시될 것입니다.

3. 설정

이번 항목에서는 OpenKM을 설치한 후 기본적으로 설정해야 할 것들을 설명합니다.

3.1. OpenKM 설정

OpenKM - Login (Admin)

OpenKM - Login (Admin)

OpenKM을 설정하기 위해서는 OpenKM에 접속하여 Administrator 권한으로 Login해야 합니다. 설치 후, 기본적으로 제공되는 Admin ID는 okmAdmin, Password는 admin입니다.

OpenKM - Main (Admin)

OpenKM - Main (Admin)

Login하면 위와 같은 Main 화면이 표시될 것입니다. okmAdmin 계정으로 Login하면 왼쪽 아래의 빨간색 사각형 안에 okmAdmin 계정으로 접속했다는 Message가 표시됩니다.

OpenKM의 설정을 변경하기 위해서 오른쪽 위의 Administration Tab을 Click합니다.

OpenKM - Administration

OpenKM - Administration

Administration Tab은 okmAdmin 계정이나 관리자 권한을 가진 계정으로 Login했을 때만 표시가 됩니다.

먼저, 기본적으로 설정된 okmAdmin 계정의 비밀번호를 변경하기 위해서 상단 가운데의 User List Icon을 Click합니다.

OpenKM - User List

OpenKM - User List

User List에서 okmAdmin의 정보를 변경하기 위해 위의 그림에 표시한 것과 같이 연필 모양의 Icon을 Click합니다.

OpenKM - Edit User

OpenKM - Edit User

Edit User에서 Password에 새로 변경할 비밀번호를 입력하고 Confirm password에 한번 더 입력한 다음, Send를 눌러 저장합니다.

OpenKM - Configuration

OpenKM - Configuration

이번에는 Upload할 File의 크기를 변경해 봅시다. 상단 왼쪽의 Configuration Icon을 클릭한 다음, File 크기에 대한 Option인 max.file.size를 변경하기 위해 연필 Icon을 Click합니다.

OpenKM - Edit Configuration

OpenKM - Edit Configuration

Edit Configuration에서 Value에 원하는 값(MB 단위)를 넣고 Send를 누르면 Upload할 File의 크기가 변경됩니다.

이 밖에도 대부분의 OpenKM과 관련된 설정은 Administration의 Configuration에서 변경하면 됩니다. 하지만 Performance나 Unicode와 관련된 설정들이 이미 기본적으로 되어 있기 때문에 위에 언급한 정도만 수정하면 될 것 같습니다.

또한, OpenKM을 더 유용하게 만들어 주는 Third-party Tool에 대한 설정도 Configuration에서 설정합니다. 하지만 내용이 많은 관계로 다음 Post에서 좀 더 자세하게 설명하도록 하겠습니다.

3.2. 새 User 추가

okmAdmin 계정으로 사용하는 것 보다는 일반 User로 사용하는 것이 더 안전할 것입니다. 새로운 계정은 okmAdmin 계정과 같은 관리자 권한을 가진 계정에서만 만들 수 있습니다.

계정을 만드는 방법은 다음과 같습니다.

OpenKM - User List

OpenKM - User List

Administration Tab의 User List에서 위의 그림과 같이 + Button을 Click합니다.

OpenKM - Create User

OpenKM - Create User

Create User에서 ID, Password, Name, Mail을 입력하고, Active를 Check합니다. 그리고 Roles에서 UserRole을 선택하면 일반 계정이, AdminRole을 선택하면 관리자 계정이 됩니다.

모두 입력한 다음 Send를 눌러 저장합니다.

OpenKM - User List (Added)

OpenKM - User List (Added)

추가 되면 위와 같이 새로운 계정이 List에 등록된 것을 확인할 수 있습니다.

OpenKM - Main (User)

OpenKM - Main (User)

File -> Exit를 Click하여 Log out한 다음, 새로 생성한 일반 계정으로 Login하면 위와 같은 Main화면이 표시됩니다. 관리자 계정이 아니기 때문에 Administration Tab이 표시되지 않는 것을 확인할 수 있습니다.

4. 사용법

이번 항목에서는 OpenKM을 사용하여 문서를 관리하는 기본적인 방법에 대해서 간단하게 설명합니다.

4.1. 문서 추가

OpenKM에서 말하는 문서는 사실 모든 File을 의미합니다. 다만 지원하는 Office Format(doc, xls, ppt, odt, etc.)이나 PDF, Image(png, gif, jpg, etc.)에 대해서는 Preview와 같은 기능들을 지원하여 사용자가 Web Browser에서 해당 문서를 열람하거나 문서의 내용을 검색할 수 있기 때문에 좀 더 장점을 가지고 있습니다.

OpenKM - Add Document

OpenKM - Add Document

OpenKM에 Login하면 위와 같은 Main 화면이 표시될 것입니다. 먼저 문서를 Taxonomy에 올려봅시다.

Taxonomy는 우리가 흔히 사용하는 Folder Tree 구조를 의미합니다. 때문에 여기에 문서를 올리면 Folder 별로 문서를 나누어 관리할 수 있습니다.

문서를 추가하기 위해서 File -> Add document를 Click합니다.

OpenKM - Add New Documents

OpenKM - Add New Documents

Add new documents에서 파일 선택 Button을 눌러 Upload할 문서를 선택합니다. 그리고 Upload Button을 눌러서 문서를 Upload합니다.

OpenKM - Add New Documents (Uploaded)

OpenKM - Add New Documents (Uploaded)

Upload가 성공하면 위와 같은 화면이 표시됩니다. Add another file을 눌러서 문서를 더 추가하거나 Close를 눌러 문서 추가를 종료할 수 있습니다.

OpenKM - Main (Uploaded)

OpenKM - Main (Uploaded)

추가된 문서는 Taxonomy의 Folder 안에 추가됩니다. 왼쪽의 okm:root는 Root Directory를 의미합니다. File -> Create Folder를 눌러 새로운 Folder를 추가한 다음, Folder를 선택한 상태에서 문서를 추가할 경우에는 문서가 해당 Folder안에 존재하게 됩니다.

추가된 문서를 선택하면, 아래에 정보들이 표시됩니다. Properties Tab에서는 Keyword, Category를 설정할 수 있고, Notes Tab에서는 문서에 대한 설명이나 Memo를 적을 수 있습니다.

그리고 Security Tab에서는 문서의 권한을 보거나 설정할 수 있으며, History Tab에서는 문서의 변경사항을 보거나 변경 전으로 복구할 수 있습니다. 마지막으로 Preview Tab에서는 문서의 내용을 Flash를 통해 열람할 수 있습니다.

4.1.1. 여러 문서를 한 번에 추가하는 방법

위의 방법으로 여러 개의 문서를 추가하려면 각각의 File을 개별적으로 Upload하기 때문에 불편합니다. 한 번에 여러 개의 문서를 추가하기를 원한다면 먼저 추가할 문서를 ZIP Format으로 압축합니다. 미리 Folder를 만들어서 압축하면 추가 시에 Taxonomy에 Folder도 같이 추가됩니다.

OpenKM - Add New Documents (ZIP)

OpenKM - Add New Documents (ZIP)

문서를 압축한 ZIP File을 Upload하기 위해 File -> Add Document를 Click하면 위와 같은 화면이 나옵니다.

여기서 압축한 ZIP File을 선택한 다음, Import Documents from ZIP을 Check하고 Upload를 누릅니다. (압축된 File에 문서가 많다면 시간이 좀 걸릴 수 있습니다.)

OpenKM - Main (ZIP Uploaded)

OpenKM - Main (ZIP Uploaded)

Upload가 완료되면 위의 그림과 같이 ZIP File 내부의 Folder가 추가되면서 그 안에 들어있던 문서들도 그대로 Upload되는 것을 확인할 수 있습니다.

이 방법 외에도 WebDAV Protocol을 사용하면 DropBox나 다른 Cloud Service와 같이 Explorer나 Nautilus를 이용하여 OpenKM의 문서 저장소에 접근하여 간편하게 문서를 Upload하거나 지울 수 있습니다. 이것에 대해서는 다음 Post에서 WebDAV 설정과 함께 설명하도록 하겠습니다.

4.2. Check Out/Check In

OpenKM에서는 SCM인 Subversion과 유사한 저장소의 개념을 가지고 있기 때문에 문서를 Version 별로 관리할 수 있습니다. 이번 항목에서는 Check Out과 Check In을 통해 문서를 갱신하는 방법을 알아보겠습니다.

OpenKM - Check Out

OpenKM - Check Out

Check Out이라는 기능은 OpenKM에 등록된 문서를 변경하겠다는 것을 OpenKM에 알리고 Download하는 기능입니다.

먼저 변경할 문서를 선택한 다음, Edit -> Check out을 Click합니다.

OpenKM - Check In

OpenKM - Check In

Check Out이 되면 해당 문서는 Browser를 통해 Download됩니다. 그리고 그 문서는 Check Out 상태로 Check In을 기다리게 됩니다. Check In은 Check Out의 반대로 Check Out한 문서를 다시 OpenKM에 Upload하여 갱신하는 것을 의미합니다.

Check Out한 문서는 반드시 Check In이 되어야 합니다. 만약 Check Out을 중단하려면 Check Out한 문서를 선택하고 Edit -> Cancel check out을 Click하면 Check Out이 중단됩니다.

Download한 문서를 변경했다면 이제 Check In을 통해 Upload하여 OpenKM에 등록된 문서를 갱신해 봅시다. Check In할 문서를 선택하고 Edit -> Check in을 Click합니다.

OpenKM - Update Documents

OpenKM - Update Documents

Update Documents 창에서 변경한 문서를 선택하고 변경된 내용에 대해서 간단한 Comment를 입력한 다음, Upload를 누르면 Check In이 완료됩니다.

OpenKM - Main (Updated)

OpenKM - Main (Updated)

Check In이 완료되면 Check In한 문서는 위의 그림처럼 Version이 올라가게 됩니다.

OpenKM - Document History

OpenKM - Document History

그리고 해당 문서를 선택하고 아래쪽의 History Tab을 Click하면 Check Out/Check In을 통해서 갱신된 내역이 표시됩니다. 갱신되기 이전의 문서로 돌리기를 원하다면 여기서 Restore를 눌러 복구하면 됩니다.

4.3. Keyword

Keyword는 문서를 분류하기 위한 다른 방법입니다. 문서를 대표하는 단어로 문서를 분류하기 위한 기능인데 이것은 Blog에서 사용하는 Tag와 동일합니다.

OpenKM - Keywords

OpenKM - Keywords

Keyword를 추가하기 위한 문서를 선택한 다음, 아래의 Properties Tab에서 추가할 Keyword를 입력합니다. 여러 개의 Keyword를 동시에 추가하기를 원한다면 위의 그림과 같이 Space Bar로 구분하여 입력하면 됩니다.

OpenKM - Keywords (Added)

OpenKM - Keywords (Added)

Keyword가 추가되면 위의 그림과 같은 모습이 됩니다. 추가된 Keyword 옆의 -를 누르면 해당 Keyword를 제거할 수 있습니다.

그리고 Keywords cloud에서는 Blog의 Tag Cloud와 같이 Keyword에 포함된 문서의 개수에 따라 Keyword의 크기를 다르게 해서 보여줍니다.

OpenKM - Dashboard (Keyword Map)

OpenKM - Dashboard (Keyword Map)

문서에 Keyword를 추가해 놓으면 Keyword를 통해서 문서를 검색할 수 있습니다.

오른쪽 상단의 Dashboard Tab에서 Keyword map을 선택하면 위와 같은 화면이 표시됩니다. 여기서는 주로 사용된 Keyword를 확인하거나 Keyword가 적용된 문서를 검색할 수 있습니다.

OpenKM - Dashboard (Keyword Map, Selected)

OpenKM - Dashboard (Keyword Map, Selected)

위의 그림은 Opensource라는 Keyword를 선택한 모습입니다. 여러 개의 Keyword를 선택하면 해당 Keyword를 포함하는 문서를 List로 표시합니다.

4.4. Category

Category는 위에서 설명한 Taxonomy, Keyword외에 문서를 분류하는 또 다른 방법입니다.

Taxonomy가 기존의 문서를 Folder 구조로 관리한다면 Category는 Taxonomy에 등록된 문서들을 Taxonomy의 Folder 구조와는 상관없는 또 다른 Folder(Category) 구조로 문서를 분류할 수 있도록 도와주는 것입니다.

때문에 Category에서는 문서를 추가할 수가 없습니다. 단지 Folder를 생성하여 그것을 Category로 사용할 수 있게 만들어 줄 뿐입니다. 아래에서는 Category를 사용하는 방법을 설명합니다.

OpenKM - Categories

OpenKM - Categories

왼쪽의 Categories를 Click하면 위의 그림과 같이 Category가 Folder 구조로 표시됩니다. okm:categories는 Category들의 Root입니다.

OpenKM - Create Folder

OpenKM - Create Folder

Category를 새로 추가하기 위해서 File -> Create folder를 눌러서 새로운 Folder를 만들고 이름을 입력합니다.

OpenKM - Categories (Added)

OpenKM - Categories (Added)

이렇게 Categories에 만들어진 Folder는 그대로 하나의 Category가 됩니다.

OpenKM - Set Categories

OpenKM - Set Categories

이제 만들어진 Category에 문서를 추가해 봅시다. Taxonomy로 다시 넘어와서 Category에 추가하고 싶은 문서를 선택한 다음, 아래의 Properties Tab에 Categories Icon을 Click합니다.

OpenKM - Add Category

OpenKM - Add Category

Add Category 창이 표시되면 여기서 방금 전 생성한 Category를 선택하고 Add를 누릅니다. 여러 개의 Category에 추가하고 싶다면 다른 Category를 선택하고 Add를 누르면 됩니다.

Category 추가가 끝났다면 Close를 누릅니다.

OpenKM - Category Added

OpenKM - Category Added

Category가 추가된 모습입니다. Properties Tab의 Categories에 추가한 Category가 표시되는 것을 확인할 수 있습니다.

OpenKM - Categories (Added)

OpenKM - Categories (Added)

이제 Categories로 돌아와서 추가한 Category를 선택해 봅시다. 그러면 해당 Category에 속하는 Taxonomy의 문서가 표시될 것입니다.

4.5. Search

OpenKM의 Search 기능은 상당히 유용합니다. 문서 이름이나 Keyword 뿐만 아니라, 문서 내부의 Text도 검색할 수 있습니다. (다국어 지원)

OpenKM - Search

OpenKM - Search

오른쪽 상단의 Search Tab을 Click하면 문서 검색화면이 표시됩니다. 위의 검색항목에서 Context에는 검색할 문서 저장소를 선택합니다. 일반적으로 Taxonomy로 설정하면 됩니다.

Content에서 검색할 단어를 입력하고 Enter나 Search Button을 누르면 검색할 단어가 문서 내부에 포함되어 있는 지를 검색하여 해당 문서를 List로 표시합니다.

그리고 Name에서는 문서 이름으로, Keywords에서는 문서의 Keyword로 검색합니다.

마지막으로 검색을 초기화하려면 Clean을 누르면 됩니다.

OpenKM - Search Results

OpenKM - Search Results

위의 그림은 Taxonomy에 등록된 문서들 중에서 소프트웨어라는 단어가 내용에 들어간 문서를 검색한 결과입니다.

이 외에도 지면상 소개하지 않은 여러가지 기능들이 있습니다. OpenKM의 자세한 사용법은 OpenKM Wiki의 User Guide를 참고하기 바랍니다.

5. 마치면서…

이상으로 간단하게 OpenKM을 설치하는 방법과 사용법을 알아봤습니다. 개인적으로 문서들을 많이 취급하게 되는 터라 관리하기에 편한 Solution을 찾다보니 이렇게까지 삽질을 하게 되었네요. Enterprise 급의 문서 관리에 적용하는데는 부족하겠지만 작은 기업이나 개인적으로 사용하기에는 부족함이 없는 것 같습니다.

다음 Post에서는 OpenKM을 좀 더 편리하고 유용하게 사용하는 방법과 Migration, Backup에 대해서 알아보도록 하겠습니다. :)