マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Play Framework

【OSS情報アーカイブ】Play Framework

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Play Framework」とは

基本情報

概要

Play Framework(プレイフレームワーク)とは、オープンソースWebアプリケーションフレームワークです。肥大化したエンタープライズJavaを代替する洗練されたフレームワークで、「Ruby on Rails」ライクな生産性をもたらします。Java/Scalaで記述できるRESTfulなMVCフレームワークです。

既存のJavaフレームワークの問題点

既存のJavaのWebフレームワークは重厚長大であり生産性が高くないという問題があります。「開発生産性」と「柔軟性」が求められていました。

基本説明

Play frameworkは、「Ruby on Rails」哲学をJavaで実現することを目的としたフレームワークです。高い生産性が特徴です。

独自の組み込みWebサーバ(Netty)を搭載しており、簡単なコマンドの実行でアプリケーションの雛形を構築し、開発をスピーディーにスタートできます。

経緯

Play Frameworkは、Zenexity社のソフトウェア開発者であるGuillaume Bort氏によって作成されました。初版は2007年に発表されています。

主な特徴

モジュラー構造

「Ruby on Rails」や「Django」のようにモジュール構造を採用しています。

Scala言語のサポート

PlayはJavaとScalaでコーディングできます。Playは内部的にScalaを使用しており、ScalaAPI/JavaAPI双方を公開しています。Javaとも完全な互換性があります。

(参考)Scalaとは
→OSSニュース →OSS情報 →Scala

直接コンパイル、動的リロード

Play frameworkでは、ソースが更新されると即座に変更が反映されるようになっています。コンパイルやサーバ再起動の必要はありません。IDEがなくても軽量なエディタだけで開発可能です。

分かりやすいエラー表示

フレームワークはできる限りエラー原因を特定して表示します。

シンプルステートレスMVCアーキテクチャ「Share Nothing」

HTTPモデルをハックする必要はありません。「画面部品の同時レンダリング」や「画面の一部(段階的)更新」を容易に行えます。

効率的なテンプレートエンジン「Groovy」

Playのテンプレートエンジン「Groovy」は、Java構文と一貫性を持ちます。「HTMLレスポンスレンダリング」「emailメッセージ」「JSONレスポンス」などに対応します。

オブジェクトリレーショナルマッピングAPI「Java Persistence API」

Playは自動的にエンティティマネージャを起動し同期を行います。

テストランナー

標準搭載されているテストランナーは、「シンプルユニットテスト」から「完全受入テスト」まで、あらゆる種類のテストを記述でき、テスト駆動開発による作業を容易にします。

フルスタック・アプリケーションフレームワーク

フレームワークとして必要とされている一通りの機能を搭載しています。主に必要とされるAPIも標準で組み込まれています。

IDE連携

Play Frameworkのプロジェクトを、「Eclipse」「NetBeans」「IntelliJ IDEA」の各IDEのプロジェクトとして出力できます。

「Java EE」との関係

Play frameworkを動すためには、「Java SDK」(バージョン6以上)が必要です。それ以外の必要条件はありません。Java標準Webアプリケーション仕様である「Java EE」の中核機能は必要としません。

「JavaEE規約」よりも、W3Cの「World Wide Webアーキテクチャ」に沿うことを優先しています。

RESTful

完全なRESTfulです。Java EEのように接続ごとのセッションを利用しません。すべてCookieを使用します。

JSPは使用しない

JSPは使用せず、htmlとGroovyを組み合わせて使用します。

非同期IO

ノンブロッキングIOモデルに基づく非同期通信をサポートしています。

Webサーバ「Netty」を使用するため、非同期的に大きなリクエストを処理できます。HTTPスレッド数以上の処理を実行できます。

その他ポイント

・CRUD:モデルオブジェクトをシンプルに更新するためのモジュール
・Secure:単純なユーザ認証を実現するモジュール
・アノテーションを元としたバリデーションフレームワーク
・ジョブスケジューラ
・SMTPメーラー
・JSONとXMLの解析
・オブジェクトリレーショナルマッピング「Java Persistence API」を元とした永続化層
・素早いデプロイメント/テストのための組み込みDB
・完全に組み込まれたテスティングフレームワーク
・自動的なファイルアップロード機能
・複数環境向けの設定
・「Hibernate」「OpenID」「Memcached」などのサポート
・スケールしやすいステートレスモデルの採用

同様製品(概要情報)

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Java EE」など。

導入事例

Playは、地方政府/企業イントラネット/モバイル向けWebサイト/OSSなどの幅広いプロジェクトで採用されています。

ビジネス特化型SNS「LinkedIn」など、世界の多くの企業/行政機関で導入されています。

ライセンス情報

Play Frameworkのライセンスは、「Apache License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

ダウンロード

ダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【デジタル寺田の3分用語解説】経済産業省「 ダイバーシティ・コンパス 」とは?🧭

デジタル寺田の3分用語解説

2024.11.25

【デジタル寺田の3分用語解説】経済産業省「 ダイバーシティ・コンパス 」とは?🧭

経済産業省の「 ダイバーシティ・コンパス 」は、多様性を活かし企業の持続的成長を目指すためのツールです。企業が「目指す姿」や「行動指針」を整理し、未来へのビジョンを描く支援をします。また、診断ツールを活用し、「経営者」「人事」「現場」の取り組み状況を可視化することで、新たなステップを模索できます。

【デジタル寺田の3分用語解説】自然言語でアプリ開発「 GitHub Spark 」とは?⚡

デジタル寺田の3分用語解説

2024.11.25

【デジタル寺田の3分用語解説】自然言語でアプリ開発「 GitHub Spark 」とは?⚡

「 GitHub Spark 」は、コードを書かずに自然言語でアプリを作成できるAIツールです。アイデアを言葉で伝えるだけで、AIが自動的にアプリを作成します。リアルタイム編集や自動デプロイに対応し、初心者でも簡単にアプリ開発を楽しめます。

【デジタル寺田の3分用語解説】「企業によるベンダー、SIerへの 訴訟 」とは?〜日本通運がアクセンチュアを提訴〜🏢

デジタル寺田の3分用語解説

2024.11.25

【デジタル寺田の3分用語解説】「企業によるベンダー、SIerへの 訴訟 」とは?〜日本通運がアクセンチュアを提訴〜🏢

企業がベンダー(SIer)に対する 訴訟 の背景や原因を解説します。日本通運とアクセンチュアの125億円訴訟に加え、他の大規模な紛争事例も紹介します。プロジェクト管理や要件定義の重要性を具体例で説明し、成功への鍵を探ります。