NetBeans Eコマース(電子商取引)- はじめに

NetBeans 電子商取引のチュートリアルへようこそ。このいくつかの章から出来ているチュートリアルで、Java Web および Java EE 開発の様々な重要な機能を実際に試しながら、電子商取引アプリケーションを作成する方法をシンプルで効果的に学びます。そうして、あなたは NetBeans IDE に慣れあなた独自の開発ができるようになります。
IDEをマスターするには時間がかかりますが、最後には、より効率的で汎用性のある開発ができるようになります。チュートリアル単位で学習すれば IDE の機能やツールの使い方を最も効率的に学べます。IDE の機能には次のものがあります。
- さまざまな言語エディタのサポート: 構文の強調表示、コード補完、API ドキュメントのサポート、キーボードショートカット、リファクタリング機能、コードのテンプレート
- ウィンドウシステム:プロジェクト、ファイルとサービスウィンドウ、タスクウィンドウ、Javadoc ウィンドウ、HTTP モニター、ナビゲータとパレット
- 他のサービスとの統合: 登録されたサーバーへの自動配置、データベース接続、ブラウザの相互運用
- 開発ツール:デバッガ、プロファイラ、HTTP サーバーモニタ、ローカル履歴のサポート、グラフィカルな差分ビューア
チュートリアルはモジュール形式になっています。各モジュールの単元は特定の概念や技術および IDE の機能に焦点を当てています。
チュートリアルの単元で提供されたセットアップ手順とアプリケーションのスナップショット(単元5以降から)を使えば話についていくことができます。
ただし、すべての単元を最初から最後まで通して学んだ時に大きな効果があります。また開発プロセスを理解するにはこの方法が便利です。
単元3、開発環境を設定するで NetBeans IDE を紹介します。その中で、後のチュートリアルで行う作業の基礎となる Java Web プロジェクトを作成します。単元4では、データモデルの設計、主にMySQL WorkBench を使います。MySQL Workbench はビジュアルなデータベース設計ツールで、アプリケーションのデータモデルを作成するために使います。
一連の各チュートリアルには プロジェクトのスナップショット が載っています。スナップショットにはその前の単元の終了状態が保存されています。
これを使用すれば、電子商取引チュートリアルの前後関係に関係なく、チュートリアルの1単元だけを学ぶことが出来ます。
これらのスナップショットを使用するには、お使いのコンピュータにスナップショットをダウンロードし、IDEの「プロジェクトを開く」ウィザード( Ctrl-Shift-O、MACの場合は、⌘-Shift-O キー) で開きます。
あなたはこのチュートリアルで構築するアプリケーションのライブデモを見ることができます: NetBeans E コマースのチュートリアルデモアプリケーション。
この単元の残りの部分は、このチュートリアルに関連する情報と Java EE 開発に必要な基本的な概念ものせています。開発を始める前に概念を理解することが大切です。
このチュートリアルについて
誰のためのチュートリアルか
このチュートリアルの内容は4つの層の人々に提供しています:
- Java EE の技術も含めてスキルを広げたい Java 開発者
- NetBeans IDE 開発環境を試してみたい新人
- Java と他の Web ベース技術を比較して見てみたい Web 開発者
- シンプルな電子商取引アプリケーションの基本を理解して、この開発を実際のユースケースに適用する方法を理解したい学生。
あなたがこれらの分類に該当する場合、このチュートリアルは役に立つでしょう。あなたの経歴に応じて、特定のチュートリアルの単元が他よりも理解することが困難な場合があります。どのような技術が使われているかを理解することが、あなたの目的のためにIDEを活用するためのキーです。あなたがここで使われている技術に本当に興味があるなら、その場合はもちろんありますが、このチュートリアルの手引きとして Java EE チュートリアルが最適です。各チュートリアルの単元には、 Java EE チュートリアルへの関連リンクだけでなく、他の有用なリソースへのリンクがあるので、それらを使うことがベストです。
このチュートリアルは何をカバーしているか
あなたがこのチュートリアルで開発するアプリケーションには、多くの概念、技術、ツール部品があります。:
- 概念
- フロントエンドの開発
- Web アプリケーションプロジェクトの構造
- データモデリング
- データベース接続性
- オブジェクトリレーショナルマッピング
- セッション管理
- トランザクションビジネスロジック(取引業務の考え方)
- クライアントとサーバーサイドの検証
- ローカライゼーション
- Web アプリケーションのセキュリティ
- モデル、ビュー、コントローラ(MVC)と セッション・ファサード Session Facade を含むデザインパターン
- テクノロジ
- HTML、CSS、JavaScript の技術
- Servlet および JavaServer Pages(JSP)の技術
- エンタープライズ JavaBeans(EJB)の技術
- Java永続性の API(JPA)
- JavaServer Pages 標準タグライブラリ(JSTL)
- Java のデータベース接続(JDBC)
- 開発ツール
- NetBeans IDE
- GlassFish、Java EE アプリケーションサーバー
- MySQL、リレーショナルデータベース管理サーバ(RDBMS)
- MySQL Workbench、ビジュアルデータベース設計ツール
電子商取引アプリケーションとは?
電子商取引 e-commerce という用語で、我々が今日思いつくのは、インターネットの商品やサービスの販売・購入を指します。たとえば、あなたが思いつくAmazonは、書籍、音楽、電化製品など様々な製品分野のオンラインショッピングを提供しています。この電子商取引の形は、電子小売業、またはe-tailing として知られています。また通常の物理的な商品の輸送も含まれます。また、ビジネス対顧客 (B2C)とも呼ばれます。その他のよく知られた形としては、:
- 消費間取引(C2C): 通常は、オンラインオークションなどの第三者サイトでの個人間取引。C2C 取引の典型的な例は、 eBayです。
- 企業間取引(B2B): 企業間(B2B)の取引、例えば、小売業者と卸売業者、または卸売業者とメーカー間に発生する取引。
- 企業と政府・自治体間取引(B2G): 企業と政府機関の間で発生する取引。
このチュートリアルでは、企業対顧客(B2C)の電子商取引に焦点を当て、オンラインショップで買い物ができるウェブサイトを作ろうとしている小さな小売店という一般的なシナリオを採用します。B2C のシナリオに対応するソフトウェアは、一般的に2つのコンポーネントからできています:
- ストア フロント: お客様にアクセスされる Web サイトは、お客様がインターネット上で商品を購入することができるようにします。ストアカタログのデータは、通常データベースに保持され、このデータを必要とする web サイトページは動的に生成されます。
- 管理コンソール: パスワードで保護された領域で、ストアスタッフがオンラインで管理するためにセキュアな接続が出来るようになっています。管理コンソールには、通常、ストアカタログへの CRUD(作成、読込、更新、削除)アクセス、割引管理、出荷と支払いオプション、および顧客注文の評価があります。
Java とは?
コンピュータソフトウェア業界における "Java" という用語はJava プログラミング言語 と同様にJava プラットフォーム を指しています。
Duke, Java マスコット
プログラミング言語としての Java
Java言語は、James Gosling によって概念化されました。彼は 1991年にプロジェクト作業を始めました。言語は次の5つの設計原則を念頭に置いて作成されました。[1] :
- シンプル、オブジェクト指向、親しみやすい: Java は、すぐに把握可能な基本的な概念からなる矛盾のない小さなコアからできています。Java はもともと一般的な C++ 言語をモデルとしていました。その結果、プログラマは簡単に Java に移行することができました。また、オブジェクト指向 の枠組みを固く守っています。システムはカプセル化されたオブジェクトから構成されています。オブジェクトは他のオブジェクトにメッセージを渡すことによって交信します。
- 堅牢で安全: 言語はエラーを迅速に識別するためにコンパイル時と実行時にチェックをします。それはまた、ネットワークやファイルアクセスのセキュリティ機能を持っており、配置されたアプリケーションを不法侵入や改変による侵害を防いでいます。
- 中立で移植できるアーキテクチャ: Java の主な利点の一つは 移植性(portability) です。アプリケーションは、簡単に1つのプラットフォームから別のプラットフォームへ最小のまたは変更なしに移植することができます。スローガン”一度書けばどこでも動く”:1995年の Java 1.0 リリースに伴いこのスローガンができました。これは、クロスプラットフォーム言語の利点を示しています。
- ハイパフォーマンス: アプリケーションは、様々な低レベルの機能のおかげでより迅速かつ効率的に実行されます。低レベルの機能には、例えば、実行環境から独立して実行される Java インタプリタ、未使用のメモリを自動的に開放するガベージコレクタがあります。
- インタープリター、スレッド、動的: Java では開発者のソースコードは中間言語にコンパイルされ、 バイトコード として知られている書式を翻訳します。バイトコード命令セットは、Java 仮想マシン(JVM)で使用される機械語を参照します。適切な翻訳をすることで、この言語はプラットフォームで実行できる ネイティブコード に変換されます。マルチスレッド機能は、主に
スレッド(Thread) クラスによってサポートされます。スレッドクラスは、多数のタスクを同時に起動することを可能にします。言語とランタイムシステムは動的なので、アプリケーションは実行中に環境変化に適応していきます。
Java 言語について詳細を知りたい場合、Java チュートリアルを参照してください。
プラットフォームとしての Java
Java プラットフォームは、 ソフトウェアベースのプラットフォームで2つの部分から構成されています:
- Java仮想マシン(JVM):JVM は Java コンパイラによって生成された命令を実行するエンジンです。JVM は Java ランタイム環境のインスタンス、または JRE のインスタンスとして考えることができます。Web ブラウザ、サーバー、およびオペレーティングシステムなどの様々な製品に埋め込まれています。
- Java アプリケーションのプログラミングインターフェイス(API):既に用意されているコードは、似たような見出しをパッケージにして組み込まれています。例えば、アプレットと AWT のパッケージには、フォント、メニュー、ボタンを作成するためのクラスが含まれています。
Java Development Kit または JDK は Java SE 版を指し、他のキットでは”SDK"と呼ばれます。SDK は一般的にはソフトウェア開発キットと総称されています。たとえば、Java
EE SDK が該当します。[2]
コンポーネント技術の概念を一枚の図の形にしたので、Java プラットフォームを視覚的に見ることができます。JDK Documentation にその図があります。以下に示すように、図はインタラクティブになっており、個々の技術の詳細は図のコンポーネントをクリックして見ることができます。
図が示すように、JDK は Java ランタイム環境(JRE)をその中に持っています。あなたはソフトウェアを実行するために JRE を必要とし、ソフトウェアを開発するには JDK を必要とします。Java SE Downloads から両方取得することができます。
Javaプラットフォームにはいくつかの エディション があります。例えば
Java SE (スタンダード エディション),
Java ME (マイクロ エディション),
と Java EE (エンタープライズエディション).
Java EE
Java プラットフォームの Enterprise Edition(Java EE)は、Java SE プラットフォーム上に構築します。開発、移植性、堅牢、拡張性、信頼性の高いセキュアなサーバサイドアプリケーションを開発、実行するための一連の技術を提供します。
EE の技術は大まかに2つのカテゴリに分かれています:
お客様のニーズに応じて、いずれのカテゴリからも特定の技術を使用することができます。たとえば、このチュートリアルでは、以下のものを使用します。
サーブレット,
JSP/EL, と
JSTL "web"
テクノロジ、同様に
EJB と
JPA
"enterprise" テクノロジー
Java EE は、現在、特に金融セクターを中心に市場を支配しています。以下の図は下記資料から採用しました。
欧州市場の独立調査
independent survey for European markets 2007年実施。
最近では、Java EE と.NET の非公式な比較があります。次のブログの記事を参照してください。
Java EE か .NET -ほぼ公平な意見 Java EE コミュニティでは良く知られているメンバーによるものです。
双方の違いは何ですか?
多くの略語と頭字語があります。このすべてを知らない場合上記の説明を理解するにはやや苦労します。次の資料によく使われる用語の違いが説明してあります。
Java コミュニティプロセスとは何ですか?
Java コミュニティプロセス(JCP) は、Java の標準技術仕様の開発を管理するプログラムです。JCP は「 Java への要求仕様 Java Specification Request (JSR)」をカタログします。JSR は Java プラットフォームに追加されるべき技術をドキュメント化して正式な提案としています。JSR を運営している 専門家グループ は、通常は、業界の利害関係者で企業の代表者から構成されています。JCP はニーズや社会の動向に適応させることでJava テクノロジを成長させることができます。
このチュートリアルで参照し、使用したJSR技術は次のとおりです:
JCP website を使用して個々の JSR を検索できます 。また、現在のすべての EE 技術(Java EE 6)は、以下で見ることができます:
Java EE 5 技術がリストされています:
JSR 最終リリースは、技術のフリー実装の リファレンス実装 を提供しています。このチュートリアルでは、これらの実装を利用して、電子商取引アプリケーションのサンプルを開発します。たとえば、 NetBeans
6.8 の Java の標準ダウンロードにバンドルされている GlassFish v3 アプリケーションサーバーは、Java EE 6 プラットフォーム仕様(JSR 316) のリファレンス実装です。Java EE プラットフォームのリファレンス実装としては、サーブレット、EJB と JPA の技術などのプラットフォームに関連した技術のリファレンス実装も含まれています。
なぜ IDE を使用するのですか?
まず、IDE という用語は integrated development environment 統合開発環境 から来ています。伝統的な IDE の目的は、下記のようなツールとサポートを提供することにより開発者の生産性を最大化することです。:
- ソースコードエディタ
- コンパイラとビルドの自動化ツール
- プロジェクトおよびプロジェクトの成果物を表示するウィンドウシステム
- 他の一般的に使用されるサービスとの統合
- デバッグサポート
- 解析のサポート
手動でJavaベースのWebアプリケーションを作成する場合に何が必要になる考えてみます。 Java
Development Kit (JDK) をインストール後、次の手順を実行して、開発環境をセットアップする必要があります。[3]
- JDK インストール場所を指定する
PATH 環境変数を設定します。
- 使う予定の技術を実装するサーバーをダウンロードし設定します。
- Web アプリケーションを作成し作業する予定の開発用ディレクトリを作ります。さらに、責任をもって、サーバーが理解できるアプリケーションのディレクトリ構造を設定します。(たとえば、 Java 青写真 Web アプリケーション戦略の推奨される構造を参照してください)。
-
CLASSPATH 環境変数に、開発ディレクトリだけでなく、必要な JAR ファイルも同様に設定します。
- 配置方法(すなわち、開発ディレクトリからサーバーの配置領域にリソースをコピーする方法)を決めます。
- ブックマーク、または関連する API のドキュメントをインストールします。
教育的目的のために、Java Web プロジェクトを手動で作成し実行することには価値があります。そうすることで必要な手順を知ることができるからです。しかし、最後には、退屈で繰り返しの多いタスクを実行しなければならない必要性を減らしたり、削減するためにツールの活用を検討するでしょう。ツールを使用した結果、特定のビジネスニーズを解決するコード開発に集中できます。以上のべたように、IDE はプロセスの無駄をなくし合理化します。単元3で示すように開発環境を設定する場合は、GlassFish アプリケーションサーバー付きの NetBeans IDE をインストールします。シンプルな3ステップのウィザードを使用して、従来のディレクトリ構造を持つ Web アプリケーション プロジェクトを構築することができます。また、IDE が提供する組み込みの API ドキュメントを使い、コードと同じように API をエディタで呼び出すしたり、外部ウィンドウを開いて API を呼び出すことができます。
IDE はまた、開発者であるあなたにとって見える方法で、プロジェクトのコンパイルと配置をいつも通りに処理します。たとえば、NetBeans で作成した Web プロジェクトには Ant のビルドスクリプトが含まれます。Ant はコンパイルや不要なものを取り除き、パッケージ化とプロジェクト配置に使用されます。このことは IDE からプロジェクトを実行することができることを意味し、自動的にコンパイルと配置を行います。そしてデフォルトのブラウザに開きます。この手順については後で扱います。多くの IDE は保存機能と配置をサポートします。言い換えれば、いつでもあなたのプロジェクトの変更を保存し、あなたのサーバー上に配置し、バージョンが自動的に更新されます。あなたは簡単にブラウザへ切り替えることができますし、変更を見るためにページを更読込みできます。
IDE はまた、様々なファイルタイプのテンプレートを提供し、共通の場所を指定することによりプロジェクトにテンプレートを追加できます。そして必要に応じてデフォルト設定情報を取り込みます。
上記で述べた"基本的なサポート"以外にも、IDE は通常、外部のツールやサービスへのインターフェイスを提供します。(例えば、アプリケーションとデータベースサーバー、 Web サービス、デバッグとハードのプロファイリング、コラボレーションツールなど)。Java 開発があなたの専門の職業なら、これらのインターフェースはあなたの仕事に欠かせないでしょう。
最後に、 IDE は、通常、エディタの拡張サポートを提供します。エディタはあなたの大半の時間を過ごす所です。IDE エディタは、構文の強調表示、リファクタリング機能、キーボードショートカット、コード補完、ヒントやエラーメッセージを標準で持っており、すべてはあなたを助け作業をより効率的にかつインテリジェントに行うためにあります。
なぜ NetBeans を使うのか?
NetBeans IDE は、無料でオープンソースの統合開発環境ですべて Java で書かれています。それにより、プロフェッショナルデスクトップ、エンタープライズ、 Web、モバイルアプリケーションを作成するための各言語に対応した幅広いツールを提供します。言語には、Java、C/C++、さらに PHP, JavaScript, Groovy, Rubyなどのスクリプト言語にも対応しています。
人々は NetBeans の素晴らしい点を言っています。推薦状の一覧は、 NetBeans IDE 推薦状を参照してください。開発者の多くが、アプリケーション開発を他の IDE から NetBeans に切り替えています。その理由については、 人々が NetBeans IDE へ切り替えた本当にあった話をみてください。
IDE は多くの ウェブ開発のための機能を提供し、また他の IDE よりいくつかの優れている点があります。ここにいくつかの注目すべき点を載せます:
- その日から使える: 単にダウンロードし、インストールして IDE を実行します。ダウンロードサイズが小さいのでインストールは簡単です。IDE は Windows や Linux、Mac OS X と Solaris を含む多くのプラットフォームで実行できます。すべての IDE ツールや機能は完全に統合されており-プラグインを探す必要はありません-IDE を起動すればプラグインも一緒に機能します。
- 無料とオープンソース: NetBeans IDE を使用すると、活気のあるオープンソースコミュニティへ参加し、数千のユーザーが手助けしてくれるとともに貢献もしています。NetBeans プロジェクトメーリングリストでの議論、プラネット NetBeansのブログ、コミュニティwiki にはよくある質問とチュートリアルが用意されています。
- プロファイリングとデバッグツール: NetBeans IDE のプロファイラーで、メモリ使用量と潜在的な性能のボトルネックをリアルタイムで見抜くことができます。さらに、プロファイリングを通して、パフォーマンスの低下を避けるためにコードの特定の部分を計測することができます。 HeapWalker ツールを使って Java ヒープの内容を診断してメモリリークを見つけることができます。
- カスタマイズ可能なプロジェクト: NetBeans IDE のビルドプロセスはApache Ant、make、Maven、rake などの業界標準に頼っているので、独自のプロセスを構築することなく、簡単にプロジェクトのカスタマイズと機能の追加ができます。あなたは、ビルドし、実行し、プロジェクトを IDE 外のサーバーに配置します。
- コラボレーションツール: IDE は CVS や Subversion、Mercurial などのバージョン管理システムの組み込みをサポートしています。
- 豊富なドキュメント: またヒントや説明書 IDE に組み込みのヘルプセットの入った説明書は有用です。単に F1( fn-F1, Mac の場合)キーを IDE の中で押すだけでヘルプセットが呼び出されます。また、 IDE の公式知識ベースには、何百のオンラインチュートリアル、記事、スクリーンショットがあり、継続的に更新されています。
>
NetBeans を選択して検討すべき理由のより広範囲なリストは、 NetBeans IDE は開発者をつなぐを参照してください
関連参照
参考文献