HDE Controllerの歴史と内部構造
2003年8月30日
株式会社ホライズン・デジタル・エンタープライズ
上鍵 忠志

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

HDE Controllerとは

HDE Controllerは総数5万ライセンス以上（パッケージ・OEM・バンドル含む）の販売をしているサーバー管理ソフトウェア。
現在はサービス用のソフトウェアはapache 1.3.x・openssl・mod_ssl・PHP 4等がベースになっている。
各ソフトウェアはそれぞれのライセンスの元再配布している。

PHPスクリプトは弊社にて100%スクラッチで開発。
PHPスクリプトはHDEライセンスにて配布されている。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

HDE Controllerの歴史

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

HDE Controller開発のきっかけ

弊社では1997年よりLinuxサーバー販売を行っていた。
当時はコンソール作業で管理をしていた。
中小企業の管理者が管理出来る代物ではなかった。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

サーバー管理ツール開発着手「誰でも簡単にサーバー管理を」を目標に管理ツールを構想、開発に着手した。
GUIには MS Windowsからの操作を見据えて、XWindow Systemを利用するのではなく、ウェブベースにした。

過去にPHP/FI 2.0βとMySQLの組み合わせでメーリングリスト管理ツールを作成したことがあった経験からPHPを採用することに。（1997年頃）
for文すらないくらい言語仕様としてかなり貧弱だった。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

最初のサーバー管理ツール
RingBXというLinuxをプレインストールしたハードウェアを販売開始。（1998年3月）サーバー管理ツールも提供。
telnet・expect等を併用した構成だった。

このころCobalt Qubeも発表される。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

HDE WUI誕生

HDE ControllerのベースになるHDE WUI（WebUser Interface ）を開発。（1998年頃）
無償ダウンロードを開始。
PHP 3に移行する。
ApacheとPHP 3をスタティックリンクしたサーバー（wuiserver）を作成、利用していた。

廣川さんの日本語ドキュメントが大変参考になった。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

Linux Controller 1.0誕生

HDE Controller 1.0を開発・販売。（2000年1月）
Red Hat Linux 5.2/6.0 日本語版やTurboLinux 日本語版 4.0が販売されたころ。
Linuxの基本的なネットワーク項目・apache・sendmail等の基本的なサービスソフトウェア、ログチェックやdaemonの状態チェック等が行えた。
wuiserverを引き続き利用していた。
PHP 3での限界を感じ、新規開発の必要性が出てきた。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

Linux Controller 2.0誕生

Linux Contoller 1.0から完全に新規開発。（2000年5月）
画面レイアウトや権限管理などの機能性が向上。
PHP 3からPHP 4に移行した。（lcserver）以後このバージョンのコア（lccore）が引き続き利用される。
現在まで基本的にこのコアを利用することになる。

グループ単位でアクセス権限管理機能を持つようになった。
この頃サーバーの集中管理を行うLinuxController Enterprise Edition等の開発もされる。
（現在HDE Centerと呼ばれています）
Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

HDE Controllerファミリー

現在はLinux ControllerからHDE Controllerに改名。
現在はLinux Controllerのコアをベースに拡張され、さまざまな用途に向けたプロダクトを用意。
サーバー管理（HDE Controller 3.0シリーズ）
Linuxに加え、Solaris版（バージョン2.4.1）も開発・販売。

ファイルサーバー（HDE File Server）
アンチウィルス（HDE Anti-Virus）
メールフィルター（HDE Mail Filter）

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

HDE Controllerの内部構造

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

サービス基本アーキテクチャ

現在はサービスには下記のソフトウェアを利用。
apache 1.3ベース
Openssl
mod_sslPostgreSQL・unixODBC（HDE Mail Filter ）PHP 4
一部PECLも利用。（HDE Mail Filter）

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

アプリケーション階層

モジュール群

リソース群

プロファイルモジュール管理リソース管理プロファイル管理

lccore（認証処理・セッション管理・スキン管理）

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

コンポーネント構成

lccore・ライブラリ
認証とプロファイル管理・セッション管理・スキン管理。
その他各種補佐ライブラリ関数群とクラス群。

モジュール
設定ファイル入出力および解析処理。

リソース
画面レイアウト・フォーム検査・一時ファイルへの反映処理。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

コンポーネント構成

レジストリ
グループ毎のHDE Controllerの権限情報と各メニューの情報。メニューで利用するリソースの関連づけも行う。

プロファイル
個人毎の権限情報。実際に利用できるメニューについての情報になる。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

lccoreの特徴

処理の状態推移を「ファイルの読み込み」「画面の表示」「フォームの一時的反映」「ファイルの書き込み」に分けて考えることが出来る。
ひとつのメニューで処理をする複数画面の構成を、レジストリとリソースを記述することで実現出来る。
各リソース毎に必要なモジュール・セッション情報を適宜処理することが出来る。
OK・Cancelなどで前の画面の状態にセッション情報を戻すことも出来る。
Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.lccoreの特徴

グループ単位でのデフォルトアクセス権限の実装と、プロファイルによる個人毎のアクセス権限の管理をすることが出来る。
豊富なJavaScriptライブラリ。
ロケール機能でメッセージの国際化を容易に出来る。
ファイルセレクターによるMS Windowsライクなサーバー上のディレクトリ・ファイル選択機能。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

大まかな処理例

Web設定の例
1.
2.
3.
4.
5.

apacheの設定ファイルを入力し、解析する。解析内
容をセッションに反映。（モジュールの処理）
セッション内容から画面表示。（リソースの処理）
フォームの送信情報からセッションに反映。（リソースの処理）
2.3.を必要なだけ繰り返す。
セッション情報をファイルに出力。（モジュールの処理）

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

ArrayOperator

標準のArrayライブラリをより高度にしたクラスライブラリ。
配列キーをモジュール名、連想キーと二段階で利用することが可能。
配列に操作内容のプロパティを追加。（add/set、del/erase）
配列キーの取得時にqueryから見えなくする機能。
（hide、unhide）
コメントフラグ機能。（comment/uncomment）

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

ArrayOperator利用例1$ap = new ArrayOperator();$ap->AddConf( ‘example’, array());$ap->set( ‘example’ array( ‘key1’), 1);$ap->set( ‘example’ array( ‘key2’), “2”);$ap->set( ‘example’ array( ‘key2’), array( 3));$list = $ap->query( ‘example’, ‘’);print_r( $list);

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

ArrayOperator利用例2$ap->example( ‘example’, array( ‘key2’));$list = $ap->query( ‘example’, ‘’);print_r( $list);

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

画面モードlccoreはいくつかの画面モードを持っている。
index

通常の状態。

tab

indexにタブが付いた状態。

list

画面一杯を利用するモード。

flow

MS Windowsのウィザードのようなモード。

setup

flowの背景を豪華にした特殊なモード。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

widgetイメージボタン・イメージラジオボタン・イメージ
チェックボックス。
ポップアップヘルプ。
アイコンにマウスポインタを移動すると一時的な表示。
さらにクリックすると常駐し、ドラッグで移動できる。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

補佐的な機能

aplha_index
Arrayをある個数で分割して自動的に表のリンクを作成する機能。
同様な機能でnumber_indexというものもある。

スキンを意識した画像処理。
画面切り替えなしにIPアドレス・メールアドレス・ドメイ
ン名等を検査をするためのJavaScriptライブラリ。エラーのアラート出力等もすることが出来る。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

最近の拡張 – HDE Controller

自己監視機能PHPにて実装。
daemonとして動作。
各種サービスの状態・リソースの状態を監視することが出来る。
基本技術は定評あるHDE Centerのもの。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

最近の拡張 – HDE Controller

より多くの部分にスタイルシートの活用
アラートメッセージ等を全体で統一感を持たせ、よりアレンジしやすいようにスタイルシートを活用。
（widgetとして実装）その他HTMLサイズの減少にも努める。
apdによる分析、パフォーマンス改善に努める。
高速化のために一部モジュールのネイティブバ
イナリ化。（C言語でPHP searlize形式を扱うためのライブラリ等の開発）
モジュールの見直し。処理コストが高いモジュールは目的別に新たに追加作成した。
Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

最近の拡張 – HDE Mail Filter

RDBMS対応。PostgreSQLとunixODBCに対応した。
認証部分の汎用性を高める改造。（factory化等）

PECLからモジュールを取り込む。namazuモジュールを採用し、tcpserverと併用することでメール検索サーバーとして利用。
画面のフレーム化によるテーブルの大幅な軽減
HDE Controllerに比べ3・4段階ほどテーブルが減少している。
積極的なスタイルシート化でなるべく無駄にテーブルなどにならないように実装。
Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

HDE Controller 3.0 ISP Edition

全体的な処理の見直しによる高速化。
300ドメインを管理することが可能。
全ドメイン合計10000アカウントの管理が可能。
ドメイン・アカウント管理など、処理にかかった時間の大幅な削減。
vpopmail 5対応。rblsmtpd対応。
apacheの独自提供。帯域制限対応。
バーチャルドメイン管理機能の向上。
バーチャルドメイン管理者によるログ管理等。

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

余談

PHPの日本語ドキュメント作成に弊社取締役の小椋も参加していた。
php.gr.jpのドメイン管理も一部やっている。
代表取締役副社長の宮本はPHPの書籍を執筆した。（ホンキで学ぼう!PHPのキホン―PHP4によるWebアプリケーション構築のはじめの一歩）
HDEはイスラエルのZendプロジェクトに少額出資していたことがある。（企業としては二番目にの出資）

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

各種デモ

画面モードデモ各種widgetデモ
設定画面っぽいデモ

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.

Copyright © 2003 Horizon Digital Enterprise, Inc. All Rights Reserved.