読者です 読者をやめる 読者になる 読者になる

コーヒーカップは貝殻で。

仕事とか、趣味とか、育児とか、思いつくままに書いみます。

知ってますか??Lotus Notes/Domino

のっけからマニアックですが…
IBMさんが出されてる、Lotus Notesというグループウェアをご存知でしょうか??
私はこのLotus Notesに携わった期間が長く、一時はこいつと心中しようとさえ思っていました。
もちろん今でも現役バリバリなグループウェアですので、ご紹介します。 今後こいつの技術情報など載せることもあると思うので…

Lotus Notesって結局何なの??

Lotus Notesグループウェアです。
グループウェアとは、組織内の個々のユーザーのスケジュールやタスクなどの共有、ワークフローや文書管理などを目的としたソフトウェアで、要は社員のメール、スケジュール、タスクの管理や共有、そのほか勤怠管理や審査承認などの業務をこのソフトウェア1つの中で出来ちゃうという企業さんのバックオフィスの土台となるソフトウェアです。

もとはロータス社が開発、販売していたものなんですが、IBMが企業買収をしてという経緯がありますが、要はグループウェアなんです。
日本においては90年代後半からグループウェアの圧倒的なシェア率を誇ってきた化け物です。

古くから愛されてきた歴史から、海外はもちろん、日本国内にも多くの、そしてマニアックなファン(というか信者)がいらっしゃいます。
しかも彼らの結束力が強い(笑)
私は人見知りなので、そんな彼らの活動を遠くから盗み見、盗み聞きするくらいの距離感です…

どんな構成??

情報はDominoというサーバーに集約し、ユーザーは自端末にインストールしたNotesというクライアントソフトからアクセスする仕組みです。
(一応HTTPサービスをサポートしているので、Notesクライアントではなく、ブラウザから利用することもできます。)
情報はデータベース(俗に言う"NotesDB")単位にまとめられており、それぞれのNotesDBにアクセス制御を設定できます。

情報はどんな構造??

このデータベースは"カード型"または"文書型"と呼ばれており、MS SQLのようなRDB(リレーショナルデータベース)とは異なる独特の構造をもちます。
NotesDBにはRDBで言うところのレコードであるデータ群がもちろん存在していますが、それらを表示するためのフォーム定義、ビュー定義、ワークフローなどのビジネスロジック、定期実行されるようなタスク実行処理など、単なる情報の塊だけではなく、それを利用する機能も含まれています。
超簡単に説明すると、「NotesDBはデータベースであり、アプリケーションである」ということです。

ユーザーはNotesクライアントからこのNotesDBにアクセスし、情報を見たり、追加したり、編集したり、業務処理を実行したりします。
また情報とその利用定義が1つの塊になっているため、複製する際はこのNotesDBをNotesクライアントのUIに従ってコピーするだけでいいんです。

何が良いの??

いくつかの良い点を書いてみます。開発者の視点と利用者の視点が混ざりそうだけど(汗)

1. 操作性が恐ろしく高いリッチテキストエディタ

Webサービスも含め、いろんなサービスやアプリケーションにリッチテキストエディタは搭載されていますが、Notesのリッチテキストの操作性は群を抜いて高いです。
Microsoft Office Wordと同様の使い勝手、セクションやタブ付きリストなどの様々な標準オブジェクト、添付ファイルの直接貼り付けなどなど、ほんとに一度触って欲しいくらい!
他のリッチテキストエディタ(特にWeb部ライザ系の)が決して劣っているわけではないんですが、Notesのリッチテキストエディタが便利すぎて他のリッチテキストエディタを使うのが嫌になるくらいです。

2. セットアップの容易性(特にDominoサーバー)

様々な機能を持ち合わせているNotes/Dominoですが、セットアップは非常に簡単です。
標準的な開発用の環境であればインストーラをほぼ機械的にポチポチするだけで終わってしまいます。
他サービスとのSSO連携やDominoサーバー同士の相互認証、HTTPサービスの有効化やプロキシの設定、ポートの設定、パフォーマンスチューニングなど、設定項目は少なくありませんが、ほとんどすべてUI上の設定値入力で可能です。
内部的な呼び出し先の切り替え設定などは何もしなくてもOKです。

3. エンドユーザーコンピューティング1の容易性と自由度の高さ

これはエンジニアとしての最大のメリットですね。Notesの開発というとほぼ「≒NotesDBを作る」ということです。
掲示板のような非常に簡単な情報共有用のNotesDBはもちろん、恐ろしく複雑なワークフロー業務機能の実装まで行うことができます。
NotesDB同士であればデータの相互参照や更新も簡単ですので、利用企業によっては、経費精算や人事管理など、社内の基幹業務から末端の軽微な情報共有板まで全てをNotesでまかなっています。
NotesDBの開発に用いられるのは、Notes独自の「式言語」、独自スクリプト言語である「LotusScript」、他には「javaScript」や「java」です。
非常にレガシーな時代からNotesに携わっている方はほとんどの処理を式言語で記述されるそうですが、現在のオーソドックスな実装スタイルは、「基本はLotusScriptで、シンプルな処理は式言語」ですね。

逆に良くないところは??

良いことばかりではダメなので、良くない点もいくつかあげます。

1. 「古くから安定してる」の裏返しである「古臭さ」

その長い歴史から、Notesは非常に安定した普遍のグループウェアであり、プラットフォームです。
裏を返すと非常にレガシーで、それらはNotesクライアントのUI面もそうです。端的に言うと、NotesDBは古臭い画面なんです。
この数年よく耳にするUXという意味でも、旧世代レベルです。 工夫をこらした画面設計を行えばいくらかはかっこよくなりますが、あくまで旧来の"型にはまった"感じになってしまいます。
ただしNotes/Domino 8.5系からは新世代のブラウザ利用を考慮した、XPagesと呼ばれる開発技術が搭載されました。
それまでにサポートされていたWebアクセス技術とは違い、Web2.0準拠のajaxにも対応したもので、HTML5/CSS3を利用したアプリケーションも作れるようになりました。
とはいえ、この「XPagesを利用してNotesをブラウザから利用する」という文化は日本ではまだまだ浸透しきっていません。
なので古くから利用している方は「古いんだよねぇ…」とよくぼやきます…

2. クローズドな情報連携

Notes/Dominoはそれだけでいろんなことができる反面、Notes以外のものとの連携が結構苦手です。
例えばSQLサーバーのレコードの値を操作したり、反対に他のサービスからNotesDBの情報を操作したりといったことが簡単にできません。「今更そんなコーディングしないと接続できないの!?」的な解決を強いられることもありますし、場合によっては諦めなければならない時もあります。
またSSOについても制約や指向性があり、特に最近主流のSAML認証についてはつい最近対応されたばかりです。 昨今の企業では複数のサービスやシステムを組み合わせて運用することが増えているので、こういった場合にちょっと不便です。
(例えば「別ベンダー製のポータルサイトにNotesDBでできた社内掲示板の新着情報を載せたい」とか…)

3. クラウドサービスの台頭

Notes/Dominoはそもそもオンプレミス2での運用が前提でした。この社内の情報を社内のネットワーク内に閉じ込める運用はセキュリティの観点からもこれまでほとんどの企業が採用していましたが、反対に管理コストがかさみます。
また昨今では働き方が大きく変わり、社外からもPCやスマートフォンでアクセスするようなニーズが高まってきました。またセキュリティの考え方の変化やハードウェア、ネットワークなど技術的な進化の観点などから、MicrosoftのOffice365やサイボウズのkintoneなどのクラウドサービスが注目を集め、台頭し、また社内システムをそれらに乗り換え、クラウド化する企業が実際に増えています。
Notes/Dominoに関連するサービスも徐々にクラウド化されていますが、現状はまだまだです。
とは言えNotes/Dominoほどの機能性がなく、「Notesのほうが良かったじゃん」と嘆くユーザーさんもいるとかいないとか…

いかがでしたでしょうか??Notes/Dominoのこと、知っていただけましたか??
私個人としても思い入れの強いヤツですので、これからちょくちょく登場するかもしれません。

「クセがすごい!!」やつですが、どうぞ宜しくです。(ステマではないですよ(汗))

www-03.ibm.com

www-03.ibm.com


  1. 情報システム部などのシステム管理者ではなく、当該コンピュータシステムを利用する業務部門(エンドユーザー)が、主体的にシステムの構築や運用・管理に携わること。(EUCとは|エンドユーザコンピューティング|End User Computing : 意味/定義 - IT用語辞典)

  2. 自社施設の構内に機器を設置してシステムを導入・運用すること。(オンプレミスとは|自社運用|on-premises : 意味/定義 - IT用語辞典