Notes/Dominoの将来を考える
なんか今回はブログのタイトルをどうするか少し悩みました(笑)
2018年12月7日(金)にIBMから驚きの発表がされました。
IBMがNotes/Dominoを含むエンタープライズ向け製品をHCL Technologiesに18億ドルで売却すると発表がありました。
HCL Technologiesって?
今回のニュースを多くのメディアが一斉に取り上げたため、昔Notes/Dominoに携わっていたという人などにとっては、今回初めてHCLという会社を目にした人たちも多いかもしれません。
少し古いかもしれませんが手元にあるHCLのポートフォリオでは売上高で78.8憶米ドル7.2億ドル、社員数12万人、日本を含む世界39拠点を持つまさに巨大企業と言う感じです。
2018.12.14 訂正)7.2億ドルではなく78.8憶米ドルでした。お詫びして訂正いたします。
実は両社は既に去年の2017年10月にDominoの開発に関して「戦略的提携」を締結すると発表し、今回ほどのインパクトではないまでもNotes/Dominoを知る人たちを大きく驚かせたのでした。
戦略的提携って?
1年前に発表されたのはIBMとHCLの「戦略的提携」。つまり、IBMはNotes/Domino製品の販売を継続し、HCLはNotes/Dominoの開発・保守を行う、ということでした。それは言い換えるとHCLは開発・保守を行うために必要な開発リソースを全て取得したということであり、面白いのはそういったNotes/Dominoの開発リソースから独自に進化させたHCL版Notes/Dominoを開発して販売することなどは既に可能な状態でした。
※実際に2018年5月ロッテルダムで行われたEngageイベントではNotesクライアントのHCL版として挑戦的な試みであるHCL Placeという内容が発表されNotesクライアントみたいだけど動画が動いたり、Sametimeではないチャットが組み込まれていたりと見る者をワクワクさせました。
※今回の売却の発表でも、戦略的提携の発表でもNotes/Domino以外の製品も含まれていますが面倒なのでNotes/Domino以外は割愛しています。
HCLはNotes/Dominoを愛している?
ちょっと偏った切り口の表現ですかね?
これに関しては私は当事者ではないので「Yes」と答える資格はないのですが、「Yes」であると言うに足りるHCLのエンジニアを今まで世界で沢山見てきました。確信を持って言えるのは、現在HCLに在籍するNotes/Domino開発に携わるエンジニアの多くはNotes/Dominoに深い知見と開発ノウハウを有しています。
なぜか? 去年の戦略的提携の際、多くのNotes/DominoエンジニアがIBMからHCLに既に転籍しています。その中にはICSに20年以上の経験をもつStuart McKay氏(カナダのトロントが拠点)、同じく25年以上の経験をもつFrancois Nasser氏(USイリノイ州シカゴが拠点)をはじめ、去年Domino V10をリリースするにあたり、Domino 2025 Jamで世界各国からの要望を見聞して回ったBarry Max Rosen氏、IBM Connectionsを始めとしたソフトウェア開発責任者のJason Roy Gary氏、ICSエンジニアとして数々の開発を行ってきたAndrew Davis氏など、Lotusphere時代からのスーパースターと言えるそうそうたる メンバーがHCLに移籍後も継続してICS製品の開発を行っています。
HCLはNotes/Dominoを進化させるか?
「Yes」です。Domino V10が丁度2か月前の2018年10月10日に発表されました。
僅か1年にも満たない期間ですが、HCL開発のもとNotes/Dominoは既に目覚しい進化を遂げました。
・全く新しい全文検索の機能をもつ「Domino Query Language」
・(まずは) iPadで動作するNotesクライアント「Domino Mobile Apps」
・Node.JSからgRPC経由でDominoデータベースにアクセスできるnodeモジュール「domino-db」
・Domino 「OAuth」対応
等は全て去年の戦略的提携の後に発表され、現実された機能です。(※OAuth等は12月10日現在、App Dev Pack Ver1のリリース待ち。)
個人的にはIBMが行ってきた過去5年相当にあたる開発がこの1年足らずで行われたような感覚でいます。
Notes/Dominoはグループウェア(メール・カレンダー)にあらず
昔のNotes/Dominoを知る人たちは必ずNotes/Dominoを「グルーウェア」と表現します。
これに関して、Notes/Domino を7から触れた、(比較的)Notes/Domino経験が浅い開発者の私はずっと大きな違和感を覚えています。自分が思うNotes/Dominoが持つ真の力は「アプリケーション開発プラットフォーム」に他ならないからです。
ちなみに自分が一番好きな言語は今でも多分C++かもしれません。高校時代に初めてC言語に触れ、Java、C#、PHP、Node.JSなどいろいろな言語を学ぶ機会があり、いろんなフレームワークに触れる機会がありましたが、Notes/Dominoに惚れ込んだのは言語からではなく、ACL、クラスタリング、レプリケーション、シングルサインオン等のアプリケーション開発基盤が全て揃っているからでした。
「サーバーがクラウド・オンプレ含め世界中で数十台繋がっていて、それぞれ冗長化のためのクラスタリングが行われており、アプリ自体はエンタープライズが求める組織権限を柔軟に対応する必要がある。」などと聞くと、よっぼど経験豊富なSE、PMが集まらなければプロジェクトを成功に導けないでしょう。
Notes/Dominoであればこれら開発基盤が整っているため、大げさな話ではなく私一人で開発が可能なケースだってあります。
Notes/Dominoと日本
残念ながら、現時点では、海外ほどHCLのもつNotes/Domino開発実績を評価する人たちは日本には少ないように思います。自分は2018年3月のIBM THINK(US)、5月のEngage(オランダ)イベントを通して、海外ではHCLに在籍の元IBM(元Lotus)が自信に満ちた内容の素晴らしいセッションを行っているのを目の当たりにしてきました。
これからの日本にまず必要なことは、海外と同じようにHCLと繋がりを持ち、製品への正当な評価を行いながら一緒にNotes/Dominoを進化させていく環境を整えることだと思っています。
IBM THINK 2018 レビュー:Dominoアプリケーション on iPad
IBM THINK 2018イベントが3月19~22日ラスベガスで開催されたので参加してきました。
去年まではC&TSブランド(コラボレーション&タレントソリューションズ事業部)はLotusphere, IBM Connectと名前を変え単独でイベントを行ってきましたが今年からIBMの全てのブランドのイベントであるIBM THINKにマージされる形で開催されました。
そんな中、Notes/Domino関連の新しい発表でひと際インパクトの大きかった「Dominoアプリケーション on iPad」に関して得た情報を記事にしてみたいと思います。
実際に現地でiPadで動くNotesアプリを体験することが出来ました。(こちらの動画をご覧ください)
自分が参加したセッションでは実に4つのセッションでDominoアプリケーション on iPadが紹介され、その中でも「Domino Top-Secret and Domino Full-Stack Development」ラボでは実際にIBM, HCLの開発者たちとiPadのDominoアプリケーションに対する疑問をその場で検証し、なにが出来て何が出来ないかを一緒に確認するという実験的なアプローチがおこなわれました。
実際にラボのスピーカーであるAndrew Davis(IBM→HCL)が「このアプリをクラッシュさせる次の質問は?」と参加者に質問を投げかけていたのは面白かったです。本当に開発者、参加者が共にこの新しい発表をエキサイティングに捉えていて、みんなで楽しんでいることが分かる時間でした。
そんなDomino Apps on iPadに関して発表された情報を箇条書きにします。
- App Storeを通じてiPadにネイティブアプリケーションとしてインストールして使用
- 1つのIDと1つのDomino Serverへの接続のみが可能
- ID Vaultの設定が必須
- オフラインでの利用が可能(オンラインになって複製をするということが可能)
- iPadのアプリはノーツポート(NRPC、1352)で通信を行う
- LotusScriptがそのまま動く
- 複雑なフォームやロジックもそのまま動作可能
- Notes/Dominoが持つ暗号化、セキュリティをそのままiPadで利用可能
やはり、一番の驚きはLotusscriptがそのまま動くというところだと思います。ノーツポートで動作するアプリということからも今回IBMはNotesクライアントのアプリケーションが動作するプラットフォームをiPad上へごっそり移植することに成功した、というイメージにとらえています。ただAndrewは別のセッションでiPadで動作させるために表示をそのままではなくスペースを設けるなど手を加える必要があった、と説明をしていましたし、実際iPhoneでのアプリの開発はiPadよりも難易度が上がるようです。
さらにラボなど個人的に得た情報では
- フォームに記述されたJavaScriptは動作しない(Appleはアプリ上でJSを動作させることを許可していないことにも起因)
- XPiNC(XPages in Notes Client)は動作しない
- iOSのネイティブコントロールである日付ピッカーなどへの対応はまだ開発中
- タッチジェスチャーにも対応したい
- カメラやファイル連携などデバイスへのアクセスに対応したい
- GPSやコンパス、ライトセンサーなどにアクセス可能になるようLotusScriptを拡張したい
- Designer V10ではiOSであることを判断できる関数(?)をサポートしたい
- iPadの次はiPhone, 次のチャレンジはAndroid
- Android版の開発も進んでいるがWebGL(WEBASSEMBLY)というテクノロジー等を導入しなければならないかも
- WebGL(WEBASSEMBLY)での実装の先にはブラウザで動作させるという展望もあり得る
- フォーム上で右クリックでコンテキスト表示などにも対応(長押し)、(ただ現段階では操作性が良いとは言えなかった)
- リッチテキストフィールドにテーブル新規作成はまだ出来ないけど、コピペはできた
- リッチテキストの文字の装飾などは出来た
- リッチテキストに絵文字も追加出来た
- ダイアログ表示等、多言語へのサポートはまだ出来ていない点が散見された
- ハイパーリンクの追加も出来た
- 右クリック - コンテキストメニューからスペルチェックは動作しない
- 全文検索も動く
- ECLダイアログ表示や相互認証の警告なども再現
Domino Apps on iPadに触れてみた感想
ラボで開発者と使い倒しをしてみたり、実際に触れてみて感じた感想は、現時点でそれなりに良い出来に仕上がっていると感じました。動作が不安定になり再起動させることはありましたがクラッシュするような場面には今回遭遇しませんでした。
今回の発表が幾多ものノーツアプリを抱える企業にとって朗報になることは間違いないでしょう。これによってノーツアプリのWEB化が急速に萎んでしまうとは考えていませんし、ノーツのWEB化を推進してきた弊社としても今回の発表を歓迎しています。それはなによりエンドユーザーがノーツアプリの塩漬け状態から脱する機会となる、そんな選択肢が増えることはいいことですし、それによりNotes/Dominoを使い続けるユーザーが増えてくれることを期待するばかりです。
ただ、懸念を上げるとすれば、「ノーツの見た目は古い」と言う勢力がまた現れないか、ということです。弊社は新しいWEBテクノロジーを駆使してノーツアプリを刷新することを得意としてきました。そうすることで微力ながら「ノーツの見た目は古い」という誤解をもつ人たちが少しずつ減るよう努力してきました。
自分はアプリケーションのモダナイゼーションは必ずしもアプリケーションをWEB化することだとは考えていません。これからの時代、アプリケーションのExtensibility(拡張性)がよりビジネスを加速させるために必要不可欠になってきます。そのためにMicroserviceであったり、Dockerなどの仮想化技術がどんどんアプリケーションの疎結合を後押ししています。
Domino Apps on iPadを検討する場合にも、10年まえのアプリをただそのまま動かすのではなく、是非「見た目をよくする」、「アプリを拡張、成長させる」ということへの投資を惜しまないで頂きたいと思います。
IBM THINKフィードバックセッション 行います
「Domino Top-Secret and Domino Full-Stack Development」ラボへの参加者は日本人からは自分ひとりだったので恐らく現時点でここまで細かな内容を知っている日本人はあまりいないのではないかと思います(笑)、さらに夜に開発者と酒を飲み交わしながらDomino Apps on iPadの誕生秘話なんかも聞けたりして面白かったです。
よりDomino apps on iPadに関して興味がある場合は、2018年4月20日にIBM箱崎本社で開催されるテクてく Lotus 技術者夜会へ参加してみてください。私も含めてIBM THINKのフィードバックセッションをゆる~く行う予定となっています。 さらにDomino Full-Stack DevelopmentとしてDomino Node.jsに関する最新情報もお伝えする予定です。
申し込みはこちらから → https://www.ibm.com/developerworks/jp/offers/events/techtech/#com
Domino 10とアプリケーション開発
2月28日にIBMとHCLがホストするDomino 10に関する初のWebCast “Let’s Get Real: What’s in Domino v10.”が開催され、多くのIBM Notes/Domino Version 10 についての発表がありました。
以下のURLからリプレイが参照可能になりました。
その中でも今回はアプリケーション開発にフォーカスしてみたいと思います。
JavaScript Node.js
大きなアナウンスの1つとしてnode.jsとLoopBack(Node.JS API framework)のサポートの話がありました。Domino 10ではフルスタック開発環境としてnode.jsでの開発が可能となります。これはnode.jsの機能の一部分だけがDominoに取り込まれるというような限定的な話ではなくnode.jsがDominoバイナリーディレクトリに追加されるということらしく、NodeJsエンジニアがnpmから好きなオープンソースライブラリを使って開発するような通常と変わらない開発がDominoでも出来るようになります。
これにより多くのNodeJSエンジニアがDominoをプラットフォームにした開発へ乗り出す機会になることを期待できます。
またセッション中にはnode.jsとLoopBackのデモがありました。デモでは重たいと不評であるEclipseベースのDomino Designerではなく、自分も愛用するMS VSCodeがエディターとして使われていました。そして実際の中身はnode.jsからNSFへLoopBackを使いアクセスし一覧参照や新規で文書作成するというようなことをデモしていました。
ちなみにデモをしたのはIBMからHCLへ転籍したJason Gary氏でした。彼は1年前のIBM Connect 2017ハッカソン会場で我々にIBM Connections PINKがオープンソースを使い開発していることを熱く語ってくれた人で、彼がHCLでDomino、Connectionsの開発に引き続き携わっているということを知れたのは朗報でした。
自分がNode.JSでノーツ開発が出来ると聞いたときに真っ先に思い浮かんだ疑問は、「ACLはどのように扱うのか?」「非表示式にロールやグループで判断している箇所はどのように実装するのか?」というものでした。
こういった疑問を払拭する説明は残念ながら今回ありませんでしたが、デモで表示していたNode.JSファイルの中で興味深い設計を見つけました!
acls, validations という名のプロパティがある!!
うーん、しかし想像を膨らませてみてもこのプロパティの存在意義がなんなのかよく分かりません(笑) やはり理想はJavaのnotes.jarのように全てオブジェクト(json)でnode.jsが参照出来ることなのかなと思っていたのですがLoopBackのデモを見るともしかすると全然違うアプローチでの実装になるのかもしれません。
XPages、Java開発は?
今回のWebCastではXPages、Java開発に関しては多くを触れられませんでした。しかし自分はDominoでのXPages開発やJava開発が古いものとして取り残されるという話ではないと考えています。
XPagesの部分更新(Partial Update)機能だけを取り上げてもXPagesが他の開発プラットフォームと比較してRAD環境であることを証明するに足りると感じますし、なによりNotesフォームの表示、非表示式などとの親和性が高いのが魅力的です。
また、たまにXPagesで重たいアプリケーションになってしまっているケースを見ることがありますが、これはJSFのライフサイクルを理解せずに開発を行ってしまっていることが主な原因であることが多く、SSJSよりJava(w/ Managed Bean)での開発を積極的に取り入れることで必然的に無駄のない開発を行えるようになったりします。
OAuthベースの連携
これはスライドでサラッと振れられていただけでその中身までは説明はなかったですが、DominoログインがOAuthによって出来るようになるというような話であれば今後Dominoでのモバイルアプリ開発やクラウドアプリ開発で大いに活躍しそうです。この点は自分の完全な希望的観測です。
E-Search
Elastic Searchの説明が少しだけありました。今回、全文検索に関して「Full text auto-update on search and resilience」という機能強化が盛り込まれるという話がありましたが、Elastic Searchというものはおそらく現在のDomino全文検索とは別物で複数のDBにまたがった横断検索が出来る可能性を秘めているようです。興味がある方はElastic Searchで検索をしてみてください。
IBM THINK 2018
その他、様々な機能の説明がありましたが、自分が気になる機能の一部をブログにしてみました。興味がある方は是非ブログ最上部のリンクから動画をみてみてください。さらに深堀できるように3月20日から行われるIBM THINKでさらに情報収集をしてこようと思います。