「企業向けアプリケーション」と聞いて何を思う?
「企業向けアプリケーションの常識」と聞いて、読者の皆さんは何を想像しますか? 企業の規模を問わず「企業向けアプリケーション」「企業システム」と聞くと、BtoCやBtoBなどの電子商取引や基幹系システム、または、業界・業態によってさまざまなシステムを想像するのではないのでしょうか。
これらを構築するうえで、企業向けアプリケーションには、ある程度の共通点があります。例えば、システムの画面や内部処理、データベースとの連携などが挙げられます。システムの運用面では、どうでしょうか。セキュリティ対策やデータベース・ネットワーク管理などの業務も同じことがいえます。
これらは、企業向けアプリケーションを構築するうえで常識的なものになっています。本連載では、このような企業向けアプリケーション(企業システム)のさまざまな“常識”をJavaのオープンソース・フレームワーク群である「JBoss」から学んでいきたいと思います。
本連載は、Javaの文法やJSP/サーブレット、StrutsなどWebアプリケーションの作り方などを一通り覚え、企業向けアプリケーション開発を行うことになったが、企業向けアプリケーション開発の知識がまったくない新人・中級者プログラマーを対象としています。Javaの文法やJSP/サーブレット、StrutsなどWebアプリケーションの作り方などを確認しておきたい読者は、以下の記事を参照してください。
JBossを、まったく知らないという方や、JBossを使ったプロジェクトで活躍しているがあまり理解していないという方は、JBossの基礎を勉強する意味で読んでみてください。JBossを使って大規模なWebアプリケーションを構築するうえでの基礎となる知識をリファレンス感覚で説明していきます。
今回は、連載第1回目ということで、企業向けアプリケーションに不可欠な「フレームワーク」と、「アプリケーションサーバ」(以下、APサーバ)の1つとして、JBossの概要を説明し、JBoss Application Serverの環境構築まで行います。
企業向けアプリケーションに必要な要素とは
大規模なプロジェクト開発では、これらを満たすことがプロジェクトの課題となっております。
では、これらの課題を解決するにはどうすればよいのでしょうか。その1つの解消方法として、Webアプリケーションを構築する“フレームワーク”の導入があります。
フレームワークとは、アプリケーションの土台となる部分です。共通の処理などがまとめてあり、フレームワークの規約に従えば、誰が開発を行ったとしても一定の水準を保ってアプリケーションの実装ができます。一口にフレームワークといってもさまざまな種類やプロジェクトの用途によって向き不向きがあり、適材適所で導入を検討する必要があります。そのようなことからフレームワークを導入することによって、開発の生産性や品質の向上につながり、結果として運用コストも抑えられます。
では、Javaのフレームワークには、どのようなものがあるのでしょうか。代表的なものとして、Struts、Spring、JSF、EJB、Seasar2などさまざまなものがあります。その中で本連載のJBossに関するものとして、JBoss Seam、JBoss AOP、JBoss Hibernate、JBoss Rulesなどのフレームワークがあり、これらも同じ位置付けにあるといえます。これらのフレームワークの導入による企業システムの構築に関しては、今後の連載で説明していきたいと思います。
では、このJBossとは一体何なのでしょうか? 次項より、JBossの概要について説明していきたいと思います。
Javaのボス的な存在? 「JBoss」とは
JBossとは、Javaによるオープンソースソフトウェアの総称です。JBossは一口に、Java EE(J2EE)標準準拠のAPサーバとして認識されることが多いです。
もともとは、米JBoss社が開発していたオープンソースソフトウェアでしたが、米レッドハットが米JBoss社を買収しました。それによりJBossには、JBoss.orgのコミュニティ版とレッドハットがサポートするエンタープライズ版による提供が行われています。
JBoss.orgが運営するJBossプロジェクトには、40以上のさまざまなプロジェクトがあり、JBoss.orgのWebサイトより自由にダウンロードして、各ソフトウェアを使用できます。LGPLライセンスで配布されているため、商用目的としての利用可能です。
レッドハットでは、ミドルウェア製品群であるJBoss Enterprise Middlewareを提供しています。これは、JBoss.orgのオープンソースプロジェクトに基づいて構築されており、品質改善とパフォーマンスチューニングを施して提供しています。具体的には、下記のコンポーネント群で構成されています。
これらの製品群は、レッドハットからリリースしているので有償でサポートを受けることが可能です。また、すべてLGPLに準拠したオープンソースで提供される製品であるため、ライセンス費用は発生しません。
本連載に関しては、JBoss.orgが運営するJBossプロジェクトの製品を中心に企業システムの常識を身に付けていきたいと思います。今後の連載予定とJBossの関連について以下に挙げます。
テーマ | Javaの一般的技術 | JBoss.orgの対象製品 |
---|---|---|
企業向けアプリケーションの常識 | − | JBoss Application Server |
統合開発環境の常識 | Eclipse、NetBeans | JBoss Tools |
DI×AOPの常識 | Javassist、Spring、Seasar、Google Guice | JBoss Seam、JBoss AOP |
ポータルの常識 | Java Portlets | JBoss Portal |
メッセージングの常識 | JMS | JBoss Messaging |
Webサービスの常識 | JAX-WS | JBoss Web Service |
分散コンピューティングの常識 | CORBA、Java-RMI | JBoss Remoting |
クラスタリングの常識 | − | JBoss Cache、mod_cluster |
トランザクションの常識 | JTA/JTS | JBoss Transactions |
セキュリティ、ID管理の常識 | Java標準のSecurityAPI | JBoss Security and Identity Management |
認証・シングルサインオンの常識 | Java標準の認証API | JBoss Federated SSO |
企業内情報共有の常識 | − | JGroups |
エンタープライズ・サーチの常識 | Apache Luchene | Hibernate Search |
ビジネスプロセス・BPMの常識 | − | jBPM |
ビジネスルール・ESB・SOAの常識 | − | JBoss Rules、Drools、JBoss ESB |
表 今後の連載予定 |
今後の連載の前に、ご自身で各製品を確認してみるのも勉強になると思います。また、上記以外にもJBossにはさまざまな製品がありますので、いろいろと探ってみてください。
なぜ、JBossを使うのか?
では、なぜJBossを使うのでしょうか?
JBossの開発環境は、All in Oneのインストーラなどが提供されており、環境構築が容易であることです。Strutsなどの環境構築の際には、さまざまなソフトウェアを個別にインストールする必要があります。JBossの場合、All in Oneを用いることでフルスタックな環境を実現できることがJBossの人気を博しています。このAll in Oneに関しては、次回の連載で詳しく説明したいと思います。
それ以外の要因としては、前述の説明にもあるように、JBossがオープンソースであるため基本的に無償で利用できることや、レッドハットの提供するJBoss製品群は、サブスクリプションが低価格でハイレベルなサポートがさまざまなサポートベンダから実現されているので、プロジェクトにおいて運用コストを抑えられることが挙げられます。また、そのほかの商用ミドルウェアと比較しても劣らない高機能な性能や安定性があるためです。そのため、多くの大企業がJBossの製品を扱っています。
企業向けAPサーバ「JBoss Application Server」とは
JBoss Application Serverとは、JBoss.orgを中心にオープンソースで開発されているJava EEのAPサーバです。以下のような形で構成されています。
またレッドハットでは、JBoss Enterprise Middlewareの中核となるコンポーネントとなっています。オープンソースでありながら、さまざまな高機能や高い安定性が特徴であり、Java EEの使用経験がある開発者なら問題なく扱うことができます。機能の特長として以下のものが挙げられます。
- 100% Pure Java
- Tomcatベース
- EJBコンテナを搭載コンテナを搭載
- SOA(サービス指向アーキテクチャ)に基づいている(HibernateやJPA、JMS、Transactionなど)
次ページでは、実際にJBoss Application Serverをインストールして、APサーバを起動してみましょう。
コラム 「TomcatなのにJBoss? JBoss Web Serverとは」
JBoss Web Serverとは、Apache Web ServerとApache Tomcatベースのアプリケーションサーバです。前述で説明したJBoss Application Serverのコンポーネントに含まれており、Webサーバとしての機能に加えJSP/サーブレット、PHP、CGIなどにも対応しています。
また、Tomcatのアプリケーションサーバに比べて、パフォーマンスや機能に関しても向上しています。
Copyright © ITmedia, Inc. All Rights Reserved.