タグ

2015年4月8日のブックマーク (13件)

  • [ThinkIT] 第5回:HTTPセッションの永続性確保 (1/2)

    HTTPセッションの永続性確保は、ロードバランサに任せるのが一般的です。しかし、スケールアウトが可能な仕様で、Webアプリケーションの機能の一部として実装することも可能です。PHPの場合、HTTPセッション情報を任意のシステムに保存するしくみを提供しています。このしくみを使用すれば、複数のWebサーバーにアクセスの分散を行い、システム全体のスケーラビリティを確保しつつ、HTTPセッションの永続性を維持するしくみが簡単に実装できます。 商用ロードバランサによるレイヤー7スイッチは、アクセスするWebサーバーを固定化することにより、HTTPセッションの永続性を確保しています。HTTPセッション情報をデータベースに保存すると、複数のWebサーバーを利用している場合も常に同じセッション情報にアクセスでき、商用のロードバランサでスイッチングするのと同じように永続性を維持することが可能になります(図1

  • Servlet/JSP+MySQLでアプリケーションサーバ その3

    Servlet/JSP+MySQLでアプリケーションサーバ その3:快速MySQLでデータベースアプリ!(10)(1/3 ページ) 今回は、前回作成したServletをJSPに書き直してみよう。しかし、HTML+JSPだけでは十分な柔軟性が得られない。JavaBeansを組み合わせれば、コンテンツの変更や運用にも柔軟に対応できるシステムになる。 ServletソースのJSP化 Javaコードがそのまま使えて豊富なAPI群を利用でき、CGIよりも高速で動作するServletは確かに利点も多く、大規模なサイトにも適用可能です。しかし、その一方でコンパイルの手間を考慮しなくてはいけません。また、Servletが出力するHTMLはServletの中に埋め込まれています。そのため、少々の変更でもコンパイルし直す必要があります。 第5、6回で取り上げたPHPPerlを使ったCGIならコンパイルの手間

    Servlet/JSP+MySQLでアプリケーションサーバ その3
  • データベースを用いたセッションデータ管理について - LukeSilvia’s diary

    Web アプリケーションとは切っても切れないセッション機構。DB ベースでセッション管理を行なって得られた知見と、それを元に考察した結果をまとめてみます。 セッションデータの特性 DB で管理される他のデータに比べ、セッションデータはかなり特殊です。主な特徴は次のような感じ。 データが増加するのが速い 定期的な削除が必要 頻繁に更新される リクエスト毎に読みに行く必要がある このデータを読めないとアプリケーション全体にアクセスできない アクセス頻度が高いということです。あと、1つ目の特徴からセッションデータについては意識的に管理してやる必要があります。 現在の環境 アプリケーションの領域が少し特殊で、セッションデータがやたらたまります(ユーザ数何百万のサービスとかそういうのではないです)。 RDBMS MySQL 4.0.22 ストレージエンジン InnoDB レコード数 6千万 テータサ

    データベースを用いたセッションデータ管理について - LukeSilvia’s diary
  • サーブレットの様々なサンプル - セッションの管理 -

    セッションについて Java サーブレットは HTTP プロトコルを使用します。HTTP はステートレスプロトコルです。 サーバは、リクエストを受け取ってレスポンスを返すと、クライアント ( ブラウザ ) との接続を終了します。 サーバにはクライアントを一意に識別できる情報を持っていないため、クライアントの情報は維持されません。 ( サーバはどのクライアントがどの情報を持っていたかを判断できない。 ) 上記の問題を解決するための仕組みがセッション管理となります。 セッションとは、簡単に説明するとクライアントがサーバに接続してから切断するまでの 1 接続単位です。 一般的には 1 リクエスト単位ではなく、例えば、ユーザがログインしてからログアウトもしくは、 ブラウザを閉じるなどの操作を行うまでの間を表します。 1 セッションの間には、複数回のリクエスト送信、レスポンス受信が

  • セッションとセッション永続性の使用

    セッションとセッション永続性の使用 この章では、セッションとセッションの永続性を設定および使用する方法について説明します。 HTTP セッションの概要 セッション トラッキングを使用すると、複数のサーブレットか HTML ページにわたって、来はステートレスであるユーザの状況を追跡できます。セッションとは、ある期間中に同じクライアントから出される一連の関連性のあるブラウザ リクエストのことです。セッション トラッキングは、ショッピング カート アプリケーションのように、全体として何らかの意味を持つ一連のブラウザ リクエスト (これをページと見なす) を結合します。 セッション管理の設定 WebLogic Server は、デフォルトによってセッション トラッキングを処理するよう設定されています。セッション トラッキングを使用する際にプロパティを設定する必要はありません。ただし、WebLog

    Itisango
    Itisango 2015/04/08
    #Oracle #WebLogic の #独自 #仕様
  • システム方式設計とは - IT用語辞典

    概要 システム方式設計(system architectural design)とは、情報システム開発の設計工程の一部で、システムに必要とされる各要件をハードウェア、ソフトウェア、利用者による手作業のいずれによって実現するかを確定し、全体の構成や構造を決定すること。 システム開発の各段階を順番に実施するウォーターフォールモデルの開発方式の序盤で実施される。要件定義によってシステムの要件が定義された後、設計工程の最も初期の段階で行われる工程で、システムの最上位の構成や方式を確定する。 システムが処理・実行する機能や範囲を明確化し、利用者がシステムを使用するために手作業で何をするべきかもこの段階で策定する。ハードウェアやソフトウェアの大枠の構成、外部システムとの連携方式、クラウドサービスなど外部資源の利用方式なども決定し、通信ネットワークを利用する場合にはハードウェア構成の一環として記述する。

    システム方式設計とは - IT用語辞典
  • Part1 今こそ「基本設計」のスキルを見直す

    システムの構造や実装方針を決定し,アプリケーションの機能,データ,画面などを定義する「基設計」。ITエンジニアの「コア中のコア」と言えるスキルだが,「最近弱体化している」と指摘する声が増えている。今こそすべてのITエンジニアが,ユーザーの高品質,短納期の要求に応えるために,「基設計」のスキルを改めて見直すべきだ。 「ベテランのエンジニアは基設計の一般的な手順は理解しているが,高度化・専門化した実装技術を駆使したアーキテクチャの設計でとまどう。一方,若手エンジニアは実装技術には詳しいものの,肝心の基設計の基礎的な方法論を理解していないことが多い」――。 こうした悩みは,多くの開発現場に共通する。これは,基設計そのものが難しくなっているからにほかならない(図1)。 メインフレーム時代は,ウォーターフォール型の開発プロセスと自社の製品の知識さえあれば基設計をこなせた。しかし,システム

    Part1 今こそ「基本設計」のスキルを見直す
  • 猿でも分かる! Dependency Injection: 依存性の注入 - Qiita

    はじめに アホでもわかるように解説してみるテスト。 あらゆる方向で説明してみる。 大雑把にまとめると「依存していた部分を、外から注入すること」です。 勘違い、間違いが沢山ありそうなので、是非ご指摘を! 登場人物 (用語) 依存性の注入 (日語) Dependency Injection (英語) DI (Dependency Injectionの略語) 依存関係を設定ファイル等で定義してよろしくやってくれる「DIコンテナ」については書いておりません! 何が問題なの? クラス内などで固定化されたものがあると 柔軟性がない テストしにくい 解決方法 「依存している部分を外から注入する」 DIにおける「依存性」と「注入」の意味 依存性 (大雑把に)とあるクラスに、固定の定数、変数、インスタンスが入っちゃっている状態 つまりそのクラスは、その定数、変数、インスタンスに依存している 注入 そのクラ

    猿でも分かる! Dependency Injection: 依存性の注入 - Qiita
  • Java開発を変える最新の設計思想「Dependency Injection(DI)」とは:ITpro

    「DIする」,「インジェクション(注入)する」──新しい技術に敏感なソフトウエア開発者たちの間で使われている言葉である。DIとは,「軽量コンテナ」を実現する新しい設計思想Dependency Injection(依存性注入)の略称である。同じ概念をIoC(Inversion of Control,制御の反転)と呼ぶ場合もある(詳細は後述)。「DIする」と言えば開発者の間では通用するぐらいに,この設計思想は注目されているのだ。 DIが注目される理由は簡単だ。ソフトウエア開発者の開発サイクルを大幅に改善するからだ。筆者が司会を担当した「軽量コンテナ」に関するパネル・ディスカッション(注1)では,DIを適用した軽量コンテナ「Spring Framework」のおかげで「睡眠時間が確保できるようになりました」と複数のパネリストが真顔でコメントしたほどである。DIは,それだけ有効な技術なのだ。 注1

    Java開発を変える最新の設計思想「Dependency Injection(DI)」とは:ITpro
  • O/Rマッピングとは?

    皆さん、はじめまして。連載を担当するビーブレイクシステムズの山之内と申します。連載ではO/Rマッピングについて検討していきます。 O/Rマッピング機能を提供してくれるフレームワーク(O/Rマッピングツール)はデータベースと連携するJavaアプリケーション開発において、既に必須となりつつありますが、O/Rマッピングツールはたくさん存在します。 しかし、各O/Rマッピングツールには特徴やクセがあり、実際の開発現場においてどのO/Rマッピングツールを導入すべきか迷っている人も多くいることでしょう。目的にあわせて適切なツールを選択しないと、思ったような効果が得られなかったり、かえって工数が増えたりする状況にもなりかねません。 そこで連載では、代表的な3つのO/Rマッピングツール(iBATIS、Torque、Hibernate)を取り上げて、実際に各O/Rマッピングツールを利用したサンプルを作

  • O/Rマッピングの役割とメリット

    O/Rマッピングは、従来の煩雑なデータベースに関する処理の記述をスマートにし、、柔軟なアプリケーションの構築を可能にします。連載ではオープンソースのO/Rマッピングフレームワーク「Hibernate」を用いてO/Rマッピングの基礎を解説します。そしてさらに、J2EEアプリケーションへの実践的な適用方法とそのメリットも紹介していきます。(編集局)

    O/Rマッピングの役割とメリット
  • JDBC API ( Servlet )

    データベースの一連の更新処理がトランザクションです。Java の JDBC API を Aplication 版で、MySQL を前提に説明します。 更新処理では、connection インタフェースの commit と rollback メソッドが使われます。これらのメソッドは、自動コミットモードが無効のときに使用します。 尚、MySQL は COMMIT-ROLLBACK をサポートしていません。Exception error が発生し、ROLLBACK を実行した時点で、エラーになります。ACCESS データベースなら動作します。MySQL はトランザクション処理を省く (commit/rollback ができない) ことによって高速化を実現しています .. ・public void commit() throws SQLException 直前のコミット/ロールバック以降に行われた

  • prepareStatementの使用 - データベース接続 - サーブレット入門

    「PreparedStatement」は「Statement」と同じくデータベースに対するSQL文を実行するために使われますが、「PreparedStatement」で使うSQLは事前にコンパイルが行われています。その為高速に実行することが出来るようになっています。 ただ全てを事前にコンパイルしてしまっては同じ問い合わせにしか利用出来ません。そこでSQLの中でも変更が行われる部分を後からパラメータとして指定することが出来るようになっています。 「PreparedStatement」は例えば大量のINSERTを実行するような場合など基的に同じSQL文で挿入する値の部分だけが違うようなSQLを実行する場合に便利なステートメントになっています。 PreparedStatementの作成 プリペアドステートメントは「java.sql.PreparedStatement」インターフェースのオブジェ