◆ WinViewインフォメーション特集
「NCAの全貌と今後の製品展開の方向性」


 本コラムは、去る1月20日に行われた「Oracle Developer Conference Japan 1997」記者コンファレンスでの取材内容を基に作成しております。文責はWindowsコンソーシアムにあります。

● デリー・カブセネル(Derry Kabcenell)氏による講演
  米国オラクル社 製品部門 エクゼクティブ・バイスプレジデント

 

 

 今回私がOracle Developer Conferenceに出席できたことをうれしく思います。また、皆様方の参加に感謝いたします。これは非常に我社にとって重要なことです。というのは、強力なデベロッパーの社会を作らなければならないからです。戦略的にも我社にとってデベロッパーを育成することは重要であります。このようにネットワーク・コンピューティングの環境の中では、ただ単に1社で一枚岩的なアプリケーションを提供することはあり得ませんし、1つの会社でアプリケーションのすべての要素を構築することもできません。そこですべてのアプリケーションは、いろいろなものから組み合わせていかなければなりません。システムソフトをある場所からとって、ユーザーインターフェイスは別のところからとって、いろいろなコンポーネントをいろいろなベンダーから集めていかなければなりません。そのため単独の1社で、完全なるソリューションをお客様に提供することは考えられません。むしろ我々としては、デベロッパーの社会を育成することによって、ソフトの最もいいところを、いろいろなところから集められるようにしなければなりません。
 そこでオラクル社はデベロッパーの方々と共に、ソリューションを提供するわけですが、単独よりも良いものを作ろうというのが狙いです。そのためにもデベロッパーのプログラムが戦略的にも我社にとって重要であります。そのためにも私どもは相当力を入れて、ツールを構築したり、アーキテクチャを構築して、簡単にデベロッパーが仕事ができるようにしたい考えております。
 ネットワーク・コンピューティング ・アーキテクチャ(NCA)について紹介しますが、これは我々が業界標準を基にして開発したものです。これにより、デベロッパーの方々が最高のアプリケーションを構築し、ネットワーク・コンピューティングの環境の中で働き、そして拡張可能であり、クライアント/サーバーと同じような強靭性を実現したいという狙いであります。マーク・ジャービスからその説明があります。そのためにも私どもはデベロッパーの皆様方に対して、相当の力を入れることにしたわけです。米国本社から多くのスタッフが日本に来てデベロッパーの方々に対して、我々の戦略を紹介していきたいと考えております。また、我々のプロダクトのアーキテクチャについても説明して、最高のネットワーク・コンピューティングにおけるアプリケーション構築のための協力をしていきたいと考えております。
 デベロッパーの成功を実現することができれば、すばらしいアプリケーションはオラクルプロダクトの上に実現されていくと思います。そしてその結果、オラクル社も成功することを願っているわけです。


● マーク・ジャービス(Mark Jarvis)氏による講演
   米国オラクル社 サーバー・テクノロジー部門
   サーバー・マーケティング担当バイスプレジデント

 

 

Enabling the Information Age through Network Computing

 まず、ネットワーク・コンピューティング・アーキテクチャ(NCA)、それからJavaについての我々の戦略、最後に我々が全社的にどうJavaを支持しているかを説明していきたいと思います。

◆ The Mainstream Has Changed
 今、1つの大きなシフトが業界の中で見られます。皆様方もそれを見てきているかと思いますが、過去にはメインフレームがビジネスの中心となっていました。メインフレームを使うことによっ て、ビジネスのプロセスを推進することができ、それによって自動化されておりました。
 しかし15年ほど前、パソコンが出現したわけです。そこでビジネスオートメーションのフォーカスは、バックオフィスのデータセンターからデスクトップへ移行しました。そしてタイプライターの代わりにコンピュータが使われるようになりました。またワープロとかスプレッドシートも利用されるようになりました。その結果、ビジネスは前進し、収益が上がったわけです。そして自動化を進めることができるようになりました。
 しかし再び1つのシフトが見られます。そしてネットワーク・コンピューティングへの移行が進んでおります。ネットワークという技術が、これからビジネスを前進させるものになります。そしてこれによってコスト削減を図ることができ、収益を上げることができるようになります。
 業界の中でシフトが発生する場合に、必ず不確実性が発生します。何を開発すればよいか、あるいはあるプロダクトをどう構築すればよいか、分からなくなります。あるいはソリューションの構築の仕方も、いろいろ相反するスタンダードが入り乱れるから分からなくなるわけです。そのために業界の中で、アプリケーションの展開の仕方のアーキテクチャというものが必要であり、それでシフトしていかなければならないと考えております。

◆ Trends Driving Network Computing
 これからネットワーク・コンピューティングへのシフトについて、またどういうアーキテクチャでこれを実現しようとしているかについてもお話ししたいと思います。
 今現在の傾向を見た場合、ネットワーク・コンピューティングにおいて4つの主な動きが見られます。
 (1) まず最初に、軽装備のクライアント・ソフト(Thin client software)が出てきております。ブラウザなども導入されておりますが、非常に複雑な、重装備のアプリケーション・ソフトをPCに入れるのではなく、むしろ軽装備のThin client softwareが求められております。そして複雑性、あるいは処理能力は、ネットワークあるいはサーバーにおいて、そこで管理しようとしております。Thin clientの良い例としてWebがありますが、そこにはPC上にブラウザがあります。そして強力なサーバーをアクセスして、それによって情報へのアクセスが実現され、世界全体に対するリンクが実現されます 。
 (2)もう一つの動きとして、ネットワーク・コンピュータ(Network Computer)があげられます。これは別のトレンドと関連もありますし、また独立したところもあります。人々は非常に高価なPCに飽きております。今現在パソコン産業を見た場合には、そこは技術が進むにつれてどんどんと複雑なものになっております。ビデオカセットレコーダーやあるいは電子レンジなどは、どんどんとシンプルなものになっていきます。それに対してパソコンというのは、益々複雑化しております。しかしネットワーク・コンピュータではハードのコストを下げることができるだけではなく、デスクトップの複雑性とを省くことができるのです。すなわちいろいろな管理なども必要なくなるわけです。
 (3)展開の視点から見た場合には、もう一つのトレンドとして、クライアント/サーバー・コンピューティングから多重の層のコンピューティング(Multi Tire Computing )へ移行しております。過去はクライアント/サーバー・コンピューティングであったのに対し、クライアント側にアプリケーション・サーバーがあって、データベースがあるという仕組みになってきています。そして複数の層からなるような仕組みになっております。
 (4)さらに最後のトレンドとして、オープンスタンダード(Open standards)が普及しております。オラクル社は従来からスタンダードを支持してきたわけですが、今オープンスタンダードで物事を進めております。私は前々からオープンスタンダードを支持し、今後ともオープンスタンダードを実装していきたいと考えております。

◆ Oracle's Software Technology Strategy

 

図1
 

 アーキテクチャとしての戦略を見てみます。 そのあとでJavaのコンポーネントについて説明いたします。
 まず戦略の第1部分として、もしコンピューティングの新しい時代を迎えようとする場合には、多くの人たちは過去を忘れようとします。しかし今ではそんなことはできなくなりました。あまりにも技術に対 して今まで投資してきたものがあるからです。ソフトもハードも、また人的資源に対しても投資を相当してきたわけですから、過去の技術をそう簡単に捨てることはできません。
 そのためオラクル社はネットワーク・コンピューティングに向うにあたって、非常にシンプルな戦略をとっておりますが、クライアント/サーバーの最も良いところを取ろうとしております。10年も前からこれは展開されておりますので、殆どのビジネス界において、クライアント/サーバーのテクノロジーが利用されています。クライアント/サーバー・テクノロジーというのはトランザクションのために実証されていますし、また非常に強靭であることが分かっています。しかし展開しやすいインターネットも取り入れたいわけです。 Thin Clientとか強力なサーバーをアクセスするとか、管理しやすい、展開しやすい、そして運営しやすいものもあります。そして一つの台頭しているオブジェクト・テクノロジーのための市場が出てきておりますが、それによって簡単にアプリケーションの拡張を図ることができます。特にネットワークの環境の中でこれは実現できるわけです。
 最後の戦略といたしまして、多くの企業では、こういった方面で1つぐらいは活躍しておりますが、我々は3つの分野すべてに活躍しています。そしてそれを1つに統一化されたアーキテクチャにまとめようとしています。これをネットワーク・コンピューティング・アーキテクチャと呼んでおります。

◆ Network Computing Architecture

 

図2
 

 ここでネットワーク・コンピューティング・アーキテクチャはどういうものであるかを説明します。まず最初にクライアントがあります。クライアントはパソコンであったり、 あるいはネットワーク・コンピュータであったりしてもいいわけです。あるいは キヨスクやテレビ、 電話、ページャーなどのいわゆる情報を確保する場所です。こういったようなデバイスすべてを我々はサポートしています。
 2つめはデータベースです。これをユニバーサル・サーバーと呼んでいます。 これはデータベースとしてデータを管理することができるものです。そこでリレーショナル・データベースだけではありません。データベースやビデオを保管することもできますし、テキスト、あるいは空間情報を入れることもできますし、画像とかいろいろな種類のデータに対応することができます。
 それから3番めにアプリケーション・サーバーがあります。これはアプリケーションを実装するところです。過去においてアプリケーションはクライアント側に置かれていました。あるいはデータベースの中に置かれていたわけです。しかし今やアプリケーション・サーバーの中に入れて、アクセスするユーザーの数に応じて展開することができます。またどの位のロードを扱うかによって決めることができます。
 アーキテクチャの中でソフトの展開の仕方としてカートリッジを使います。今現在、業界の中では170社以上の企業がカートリッジを構築しています。オラクル社自身でもカートリッジを製作してお客様に提供しようとしております。お客様の中でもカートリッジを作っている所もあります。カートリッジの考え方はシンプルなものですが、非常に大きな一枚岩的なアプリケーションを作るのではなく、コンポーネントというものを構築します。そしてコンポーネントをリンクすることによって、アプリケーションを構築します。この場合、クライアント・カートリッジというものがあり、これによってユーザーインターフェイスを強化することができます。それからアプリケーション・サーバー・カートリッジというものがあって、アプリケーションを実行したり、あるいは環境を結び付けて、例えば既存のデータベース、既存のアプリケーションと接続することができます。そしてデータカートリッジというものがあり、これによってデータベースに対して新しいデータを加えて強化することができます。アプリケーションによっては特殊なデータが必要であったりするわけです。金融サービスの業界において、時系列データが必要とされております。別の業界ではそういったものは必要ないこともあります。データカートリッジを使うことによって、データベースの拡張を図り、アプリケーションに対応することができ、また業界への対応もできるわけです。
 スタンダードは重要ですので、私どもはオープンスタンダードをコミュニケーションのために使うことにしたわけです。 CORBA(Common Object Request Broker Architecture) というのは技術として絶対的に正しい方向性であると考えておりますので、IIOP(Internet Inter ORB Protocol)というものを実装しております。そしてこれがアーキテクチャの重要なプロトコルです。またHTTPも展開しております。これも1つのスタンダードとしてオープン化されており、しかもインターネットでは業界標準として展開されております。これらでもってカートリッジをつなげております。どんなOS上でも、どんなデスクトップでも対応することができますし、どんなプラットフォームでも対応が可能ですので、本当の意味でのネットワーク・コンピューティング及び分散型のアプリケーションの展開が可能になります。そしてこれらをすべてまとめるために、管理の環境と開発環境を揃えております。
 クライアント/サーバーの場合には、展開しても管理が難しい問題がありました。我々はそういった教訓から学んで、展開の前に管理のコンポーネントをとり揃えております。そして展開したものを管理しやすくしています。またカートリッジを構築するための開発環境を整備しております。そしてこれでもって環境全体の中で作業を進めることができます。このアーキテクチャは、今現在オラクル社のプロダクトすべての中で実装されております。今回のコンファレンスの間だけではなく、この記者会見におきましてもいろいろなコンポーネントの話をいたします。

◆ Java Today
 本日はJavaのコンポーネントにフォーカスをあててお話しいたします。言語としてのJavaの弱点はどういうところにあるかを見てみたいと思います。
 Javaは、最も急成長しているコンピューティング言語であります。20万人のJavaプログラマーが世界で活躍しております。それに対してCプログラマーはどうでしょうか。 Cプログラマーの数がそれだけになるまで10年間もかかったのに対して、Javaプログラマーの数がこれだけまで伸びるのに、2年で実現できたわけです。 Javaというのはこれからは最も重要な言語の1つですが、まだ未熟なものであります。Javaにいくつかの要素があって、まだ基幹業務の言語になっていません。すなわち組織の中で、ビジネスを運営するための言語にはまだなっていないわけです。まずデー タベース・アクセスが効率が悪いという点です。データベース・アクセスの言語としてデザインされておりません。そして我々データベースの会社としては、是非効率の良いデータベース・アクセスをJavaに入れたいと考えております。
 それから2番めに、ツールはまだ未熟です。本当の基幹業務の開発のためのツールというものは未熟であり、Javaのツールの多くは今現在はシンプルなアプレットをブラウザの中で実行するためのものとして展開されているわけですが、本当の意味でのアプリケーションでデータベースに対して実行したいものをつくるのであれば、また違った種類のツールが必要です。我々がJavaをアーキテクチャの中に実装する際に、特にこの2点に目を向けております。

◆ Oracle Support for Java Today
 次にJavaの現状について見たいと思います。またJavaに関してどういう製品を我社が展開しようとしているかを説明したいと思います。
 まずオラクルWebアプリケーション・サーバーというのがあります。これはWebサーバーですが、NCAが全面的に実装されております。そして初めてJavaバーチャル・マシンが実装されているWebサーバーです。そして本当にWeb向けのJavaのアプリケーションが構築できるようになったわけですが、半年前からこれが出ております。
 それから2番めに、Developer/2000があります。これを使うことによってクライアント側でJavaを利用することができます。3番めに、電子商取引(Electronic Commerce)のプロダクトがJavaに実現されております。完全にJavaで書かれたアプリケーションが、サーバー上で実行され、ブラウザに対して情報を提供しております。
 それから最後にアプリケーションですが、Webブラウザで実行できるようにしております。 Oracle Application Suite全体がNCAの中で実行できるようにしております。そしてJavaアプレットがクライアント側で実行され、ユーザーに対するインターフェイスを強化しております。

◆ Extending Java Further into the Enterprise
 今のが現状です。しかしあらゆる面でJavaに真剣に取り組ん でおりますので、今現在どういう努力を進めているかを説明します。まずJ/SQLというものを実装しております。J/SQLというのは新しいやり方として、Javaアプリケーションをデータベースとつなぐことができます。非常に効率の良いSQLアプリケーションの書き方であり、Java言語でできるわけです。そしてJavaのアプリケーションの中に組み込むことができます。そしてデータベースとリンクすることができます。後でデモンストレーションで細かく説明したいと思います。
 それから2番めに、Thin Client JDBCというのがあります。これによって1つのアプリケーション・サーバーはアプリケーションをダウンロードすることができます。そしてブラウザにもってくることができます。そしてブラウザが直接データベースをアクセスすることになります。すなわちJavaのアプリケーションが直接データベースと接続され、ブラウザからダウンロードされます。すなわち非常に容易にThin Clientが実現できるわけであり、強力なサーバーをアクセスすることができます。そしてJavaがアクセス・メカニズムになり、そして直接データベースにいきます。Webサーバーを経由しないということです。
 3番めに、Javaをデータベースそのものの中に入れております。現在のデータベースを見ていただきますと、データベースのプログラミングの方法なのですが、オラクルの場合には、PL/SQLという言語を使っています。まもなくJavaアプリケーションを取り出して、それをこのデータベースの中で、プロシジャーとして保存することができるようになります。そしてデータベースとJavaバーチャルマシンによって、データベースをJavaに対して、あくまでもデータベースそのものの一部として走らせることができるようになります。プログラマーがJavaアプリケーションをクライアント用に、そしてアプリケーション・サーバー用に、さらに直接データベースの中で扱えるようになるということになります。
 それからもう1つ、Javaプログラムの自動生成の技術も開発しております。ここで特に強調したいのは、プログラマーがコードを理解するというよりは、生産性を改善し、アプリケーション開発のコストを削減したいということで、Javaアプリケーションの生成をこの開発ツールから直接切り離して、自動生成できるよう にしたいと考えています。

◆ J/SQL

 

図3
 

 ここではJ/SQLに焦点を当てて、生産性の改善のお話をします。最近Javaソフト、そしてデータベースの会社が協力してJDBCなるものを作ろうとしています。これによってJavaアプリケーションをデータベースと接続することができるようになります。この実装はいろいろなデータベースで機能するわけですが、問題が1つあります。その問題とは、かなりのデータベースの知識を必要とすることになりますし、またこのエクゼキューションの順番も理解しなければなりません。すなわちかなり技術的な知識がなければ、このソリューションを実現できないことになります。
 そこでオラクルとしましては、 J/SQL precompilerなるものを開発いたしました。 これにはデータのコールを標準のJavaアプリケーションで持っています。新しいJavaのアプリケーションをデータベース・アクセスのために書く必要はありません。それはあくまでもSQLの部分の中に入っております。そしてこれはprecompilerになっておりますので、そのコードを取り出して、データベースに必要なすべてのコードを書いてくれます。どのデータベースに接続されるのか気にする必要がありませんし、またそのほかにも技術的な詳細情報を知る必要はありません。precompilerが機能してくれます。そして効率的なアクセスを提供してくれます。必要なコードの量は非常に限られています。これもデモでお見せしたいと思っております。

◆ InsertaSingle Row into the Database

 

図4
 

 ここに、2つのコードを使って書いたアプリケーションがあります。
 1つはJDBCを使って56行のコードでできており、そしてもう1つはJ/SQLをprecompilerを使って15行のコードで書いています。JDBCの56行に対して、J/SQL precompilerでは15行で済んでいるわけです。
 デベロッパーにとってどうでしょうか、56行のコードを書く方がいいのか、それとも15行の方がいいのか。どちらがスピードアップをは かることができるでしょうか。生産性がいいのはどちらでしょうか。また、どちらがエラーの発生率が低いと考えられますか。多分、やはりCompilerの方がいいということになります。シンタックスのチェックも自動的にやってくれるからです。

◆ Demonstration
  J/SQLで開発したアプリケーションを見ていただきます。こちらのデモですが、標準のWebブラウザです。このブラウザの中に、いくつかJavaのアプレットが入っています。これはブラウザの中でダウンロードし、実行したものです。そしてこれとデータベースを結びます。標準のSQLのコードを使って、トランザクションをデータベースに対して行っています。
 <ジャズフェスティバルのチケットを買うアプリケーションのデモ>

◆ Network Computing Architecture with Java ◆
 こちらはオラクルJavaストーリーの一部でしかないわけですが、Javaを現在このアプリケーションのどこで実装しているかが分かります。例えばデータベースですが、カートリッジをデータベースの中で実装しておりますし、さらに開発ツールのところでもやっております。アプリケーション・サーバーですが、これによりJavaをアプリケーション・サーバーの中で既に走らせています。JDBCを使っていただくこともできますし、また数多くのオラクルがJavaで実装したアプリケーションを使っていただくことができるようになっています。
 次にクライアント側ですが、もちろんネットワーク・コンピュータだけでなく、Thinクライアント、JDBC、さらに数多くのオラクルのアプリケーションおよびツールも取り込んでいますので、非常にダイナミックなJavaベースのクライアント・ユーザー・インターフェイスができ上がりつつあります。すなわち我々は本当にJavaにコミットしています。 Javaを企業全域で実装することによって、本当の意味でのMission critical、Business critical言語に仕上げたいと考えています。

 ネットワーク・コンピューティング・アーキテクチャおよびJavaについてお話しいたしました。もし本当の意味での企業全体のアプリケーションを作りたい場合には、ネットワーク・コンピューティング・ アーキテクチャが唯一の方法であり、それを強力にサポートするのがJava言語であると考えております。このデベロッパー・コンファレンスはまさしくその詳細を提供する重要な場所なのであります。


Contents         Windows Consortium ホームページ