IBM Cloud Blog

WebSphere 20年の歴史とこれからの進化に迫る

記事をシェアする:

WAS 20年の進化と今後の方向性

 

Webアプリケーションの構築、実行、管理を行うIBM WebSphere Application Server(以下、WAS)は、インターネット活用、分散システム、システム統合を実現するための技術を時代に先駆けて実装し、数多くのお客様にご活用いただいております。そのWASが、これまでの20年でどのような進化を遂げてきたのか、その時々に実装された技術を振り返りながら、WASのこれまでの歩みを解説させていただくとともに、これからの方向性についてご紹介いたします。

 

インターネット活用の動的処理を可能にしたWAS

WASがリリースされたのは1998年ですが、IBMではその前年からe-businessキャンペーンを始めております。当時のインターネットは、学校、研究機関、あるいは先進的な個人の活用にとどまっており、企業が積極的に取り組むといった状況ではありませんでしたが、この時すでにIBMは、「Web、インターネット技術が企業を変革する」という考えを持っておりました。この考えにもとづいて具体的な製品として送り出されたのがWASであり、その中心技術がサーブレットの仕組みです。

当時のインターネットの利用は、クライアントからのリクエストに対してHTMLページを表示するといった静的なものであり、ビジネスに活用するには限界がありました。そこで、リクエストを受け取るとサーバー側でプログラムを実行し、その結果をHTMLとして送り返すという動的な処理が求められるようになりました。当初は、この処理のためCGIという仕組みが用いられ、リクエスト→プログラム起動→処理→返信といった構造で処理をしていました。しかしこのような構造では、リクエストが多くなれば当然負荷が増大し、システムのレスポンスも悪くなります。そこでIBMでは、サーブレット技術を活用し、リクエストが増加しても負荷が増加しにくい仕組みを取り入れたWASを誕生させました。

 

分散処理技術の応用、SOAへの対応、高度運用化の実現

Ian Robinson: IBM Corporation, Distinguished Engineer, WebSphere Foundation Chief Architect

 

現在、ビジネスの世界でオープンソースの活用はごく当たり前のこととなっていますが、IBMでは1999年にApachを採用し、続いてLinuxへの対応も実施しました。この頃から多くの企業ではJavaを利用してアプリケーションを実装していくという動きが活発になってきますが、同じ時期IBMでは分散処理技術への対応を積極的に開始しました。IBMではWASを世に送り出す前からCICSやComponent Brokerという分散処理を行う製品を発売していましたが、この経験をWASに取り込み、複数のクラスターやサーバー環境で利用できるようにしました。このことにより、大量のリクエストを低負荷で処理できるようになりました。当時のこうした事例としてショッピング・サイトのeBayや、証券会社のCharles Schwabといった大規模処理をWAS上で実現されている企業を紹介させていただきました。また、テニスのウィンブルドンのサイトでは、試合が始まると急激にリクエストが増加しますが、このような急激な変化にも問題なく対応している事例としてご紹介させていただいています。

2001年から2004年にかけて、WASのバージョンは4、5、5.1とアップしていきます。この頃IBMではシステムを複数の独立したサービスとして実装し、それらを連携させることで業務システムを効率的に構築・運用するSOA(Service Oriented Architecture)という考え方を推進していました。このSOA実現のため、WASはバージョン4.0からWebサービスと呼ばれる技術の提供を始めますが、この技術は現在のマイクロサービス・アーキテクチャーに近いものでした。さらにIBMでは、こうしたシステム間連携をWAS同士だけではなく、複数のベンダーシステムをつなぐという、インターオペラビリティーを重視したシステムへとWASを成長させていきます。

さらにWASは2004年から2008年にかけて、バージョン6から7へと進化を続けます。この頃からWASは、お客様の中核業務、特にミッション・クリティカルな業務を担うようになります。そのため、さらなる安定性・可用性を目指し、さまざまな機能を実装しますが、その一つがHAマネージャー(High Availability Manager)です。このHAマネージャーは、複数間のWASでの情報共有や相互監視を行い、サイト運用に必要な環境を確実に動かし続ける機能を提供します。またこの頃、WASとあわせて活用する製品がいくつか出てきます。例えばWebSphere Virtual Enterpriseは運用をさらに高度化して、多くのリクエストを処理しながらも、システムを止めることなくメンテナンスを行うことを可能にしました。こうした高度な運用機能は、現在のコンテナ環境やKubernetesの機能として提供され、今でもWASと組み合わせてご利用いただいております。

 

オープンソース化によるWebSpher Libertyの誕生

そしてWASは、今日のクラウド環境に対応するため、大きな変革を成し遂げました。昨今のIT環境において、デジタル・トランスフォーメーションやシステムのモダナイズが注目を集めていますが、IBMにおいてもWASのモダナイズに取り組みました。その最も大きなチャレンジは、2016年のオープンソース化であり、そこから誕生したのがWebSphere Libertyです。WebSphereランタイムのコアをオープンソース化し、Open Libertyコミュニティーを形成しました。そして、すべての開発をオープン・ファーストで行い、2017年にWebSphere Libertyをリリースいたしました。

WebSphere Libertyは、新しく実装されたモジュール・システムであるLibertyカーネルの上に、これまでWASが保有していた機能をFutureというモジュールで移植していくものです。このFutureは、完全に分離・独立しており、お客様が必要なFutureだけを選択することで構築が可能となるため、システムの軽量化・高速化を図ることができます。またFutureという形でつぎつぎと新機能を追加することも可能となります。2017年にリリースしたWebSphere Liberty は、その後もイノベーションを加速させ、すべての四半期で新たな機能を追加しています。WebSphere Libertyのゴールは、お客様自身が新たなアプリケーションをクラウド・プラットフォームの中で開発・実行できるすべての環境を提供することです。

 

WebSpher Libertyによるクラウド・ネイティブ・アプリケーション開発

日本アイ・ビー・エム株式会社IBMクラウド事業本部クラウドSW第一テクニカルセールス 田中 孝清

WASの機能をクラウド環境で実行するには、2つのシナリオがあります。一つ目は、クラウド上のKubernetesベースのDocker環境で実行できるマイクロサービスの、クラウド・ネイティブにおける開発です。もう一つは、WAS ND Cellで稼働している既存のアプリケーションを、クラウド環境にモダナイゼーションするという方法です。続いてこれら2つのシナリオの違いや特徴についてお話しします。

クラウド・ネイティブ・アプリケーションの開発で大切なのは、アプリケーションのシンプル化です。このシンプル化が、迅速な開発を可能にします。WebSphere Libertyには、利用可能なコンポーネントが数多く搭載されています。開発者は、Open Libertyコミュニティーの中に設けられたOpen Libertyガイドから、目的に合致したコンポーネントを選択し、必要なものだけを組み合わせることで、最適化されたアプリケーションを迅速に構築することができます。

しかし、クラウド・ネイティブ・アプリケーションの開発には課題もあります。従来のアプリケーションは、いくつかのコンポーネントが密結合で構成されています。このような構成では一つのコンポーネントをバージョンアップ、あるいは改変した結果、別のコンポーネントに影響が出てシステムが動かない、あるいは影響を受けたコンポーネントに結合されている別のコンポーネントに障害が発生するといった、予期せぬトラブルの可能性があります。そのため、マイクロサービス・アーキテクチャーでは、アプリケーションを構成するコンポーネント間が疎結合となっており、あるコンポーネントを更新しても、アプリケーション全体に影響を与える可能性は少なくなります。しかし、それぞれが独立したコンポーネントであるため、耐障害性のためのミドルウェアが複雑になってしまいます。

こうした課題解決のためIBMは、Redhatを始めとするパートナーとの連携により、マイクロサービス開発者向けのJavaプラットフォームの定義を行いました。これまで耐障害性のあるアプリケーションを作るためのガイダンスがありませんでしたが、IBMでは、クラウド・ネイティブ環境でマイクロサービスで作るために必要なガイドラインを定義しました。このことにより耐障害性に必要な@Retry、@Timeout、@CircuitBreaker、@Bulkheadなどはクラウド・プラットフォーム側が受け持つこととなり、アプリケーション側では@Fallbackのみを受け持つことになりました。このガイドラインにより、開発者はアプリケーション開発により集中することができようになりました。

 

既存アプリケーションのモダナイゼーション支援と今後の取り組み

次に、既存のアプリケーションをクラウド環境に移行するシナリオですが、ここでもIBMはアプリケーションのモダナイゼーションの負荷を軽減しながら、開発をスピードアップするためのサービスをいくつか展開しています。その一つがIBM Cloud Transformation Adviserです。このサービスは、移行対象となるアプリケーションの移行難易度を分析し、シンプルに移行できるもの、リファクタリングが必要となるもの、リエンジニアリングが必要なものといった難易度を明示します。その結果、シンプルなアプリケーションの場合は、マイグレーションを自動化することも可能となります。また、そのままではクラウド環境への移行が困難なアプリケーションのため、IBM WAS for ICP VM Quickstarterという製品もリリースしました。この製品はWebSphere as a serviceとして、クラウド上で実行され、従来型のWebSphere ND CellのアプリケーションをVM Were上で稼働させることでクラウド・プラットフォームと連携します。

これからもIBMでは、クラウド環境でのアプリケーション開発の加速や、従来型アプリケーションをクラウド上で稼働させるための改善も引き続き進めていきます。また開発環境、開発ツール、運用環境など、アプリケーション開発から運用までのすべてのステージでWASは常に新しい技術、機能を取り込むことによって、さらなる成長を続けることをお約束します。これまで20年にわたり進化を続けてきたWASですが、これからの20年、そして将来にわたっても、お客様のアプリケーション・サーバーの実行基盤としてWASをご利用いただけるよう、提供を続けてまいります。

WebSpher Liberty製品詳細はこちら

2018年11月22日開催イベント『未来を拓くアプリケーション、メッセージング基盤 ~WebSphere 20年、MQ 25年の歴史とこれからの進化に迫る~』 より

日本総合研究所様事例『SMBCグループにおけるWAS/MQ活用のあゆみと、これから』はこちらから
『MQと歩んだ25年と、その先へ』はこちらからご覧ください。

More IBM Cloud Blog stories

Watson APIを使ってみよう!

IBM Cloud Blog

著者:西戸京子, Developer Advocate, 日本IBM デベロッパーアドボカシー事業部 IBMの ...続きを読む


マルチクラウドとは何か

IBM Cloud Blog, クラウドサービス

マルチクラウドとは、一時点で複数のクラウド環境を利用するクラウド活用法です。主に複数のクラウド・ベンダーから提 ...続きを読む


IBM Cloudカタログの通貨別料金変更のお知らせ

IBM Cloud Blog, IBM Cloud News, IBM Cloud アップデート情報...

IBM Cloudカタログの通貨別料金変更のお知らせ   米ドル以外の各国通貨利用時の価格差の軽減の ...続きを読む