ZK (フレームワーク)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > ZK (フレームワーク)の意味・解説 

ZK (フレームワーク)

(ZK Framework から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/06/27 07:15 UTC 版)

ZK
開発元 Potix
最新版
10.1.0 / 2024年11月12日 (19か月前) (2024-11-12)[1]
リポジトリ
プラットフォーム クロスプラットフォーム (JVM)
サポート状況 サポート中
種別 Ajax Webフレームワーク
ライセンス GNU Lesser General Public License
公式サイト www.zkoss.org 
テンプレートを表示

ZKは、Javaで書かれたオープンソースのAjaxWebアプリケーションフレームワークであり[2][3][4][5]、プログラミング知識がほとんどなくともJavaScriptを使うことなくウェブアプリケーションのリッチなGUIを作成できる。

ZKの中核はAjaxベースのイベント駆動機構であり、123以上のXULと83のXHTMLベースのコンポーネントから成り[6]、ユーザインタフェースを設計するためのマークアップ言語を備えている。高機能なXUL/XHTMLコンポーネントを使ってWebページを設計でき、エンドユーザーの活動を契機とするイベントによってそれらを操作できる。デスクトップのGUIアプリケーションのプログラミングモデルとよく似ている。

ZKの方式はサーバ中心型の手法と呼ばれ、コンポーネント間の同期やクライアント/サーバ間のイベントパイプラインはエンジン部が自動的に行い、Ajaxの組み立て用コードはアプリケーション開発者に対して完全に透過的である。したがって、エンドユーザーから見ればデスクトップアプリケーションのような操作性を提供し、一方で開発者にはデスクトップアプリケーションと同様の単純さを保持している。

Swingのようなコンポーネントベースのプログラミング作法に加え、ZKはリッチなユーザインタフェース定義のためのマークアップ言語ZUMLをサポートしている。

特徴

  • (単なるHTMLに比べて)リッチなユーザインタフェースを高い抽象レベルで宣言的に記述できる。例えばXULウィジェットセットには、ツリー、コンボボックス、バンドボックス、スライダーなどがある[7]。
  • Javaへのスクリプト埋め込みをサポート[8]。これにより、ユーザインタフェースとバックエンドのプログラミングを統一的に同じ言語で開発できる。オプションでその他のサーバサイドJavaスクリプトとしてJavaScript (Rhino)[9]、Ruby (JRuby)[10]、Python (Jython)[11]、Groovy[12]も使える。
  • 高度なAjaxサポート。ユーザーのブラウザへの入力はAjax経由でサーバ側のデスクトップモデルに渡される。
  • イベント駆動コンポーネントベースモデル(デスクトッププログラミングモデルと類似)
  • いくつかのパターンでユーザインタフェースを生成できる。MVCプログラミングを採用した場合は、全てのイベントは中心となるコントローラクラスにフォワードされる[13]。それとは別に zscript を使ってページ内にイベントハンドラを定義できる[14]。前者はSwingに近く、後者はDHTMLに近い。
  • JSPカスタムタグライブラリ、JSFサポート、サーブレットフィルタにより、既存のWebプレームワークとの連携が可能。SpringやHibernateをサポート。
  • 新たにUIコンポーネントを作成して拡張することができる。コントロールのグループをマクロコンポーネントとして再利用できる。
  • ページ内アノテーションによるデータバインディング機能。画面上のコントロールとサーバ上のPOJOのフィールドを透過的にバインドできる。

XULとの違い

  • ZKはサーバサイドでHTMLを生成するフレームワークであり、クライアント側にGeckoが存在する必要がないため、任意のブラウザで機能する。ZKはZUMLで書かれたサーバサイドのページを入力とし、ブラウザにはDHTMLを出力する。
  • ZKはユーザインタフェースのロジックをサーバ上のJava環境で実行する。このため、ロジック生成に様々なスクリプティングエンジンやアプリケーションライブラリを使える。プレゼンテーションはDHTMLによりクライアント側で実行され、サーバ側負荷を軽減している。アプリケーションを単一のアプリケーションコンテナで実行することで、DOMを多用してブラウザで実行させるよりもブラウザ間の互換性確認の手間が少なくて済む。
  • ZKとXULはコンポーネントが一部オーバーラップしているが、ZKには固有のコンポーネントもある。コンポーネントライブラリは拡張可能である。コンポーネントを組み合わせたマクロコンポーネントを定義できる。
  • UIコンポーネントとサーバサイドのデータを宣言的にバインドすることで、サーバサイドのデータバインドを提供する。
  • ルック・アンド・フィールが異なる。

システムの要求仕様

  • JRE version 5 かそれ以降
  • Servlet 2.3 かそれ以降をサポートするWebサーバ

必要なプログラミングスキル

必須

  • JavaまたはJavaスクリプティングエンジン言語(Groovy、Rhino、JRuby、Jython)に関する基本的知識が必要。
  • HTMLとXULに関する基本的知識が必要。

任意

  • サーバ上で動作するグルーロジックを書くには、スクリプト言語(現在サポートしているのはBeanShell、JavaScript、Groovy、Ruby、Python)の知識を要する。
  • オブジェクト指向プログラミングの知識があれば、AWT/Swingスタイルのプログラミング、JavaでカスタムUIコントローラクラスを書くことなどができる。もちろん、そういった知識がなくとも zscript を使ってDHTML風のUIロジックが書ける。
  • Servletプログラミング。ZKは Servlet API 上に構築されている。ZUMLをページ言語として使って、正統的なServletプログラミングを選択することもできる。
  • Ajax。ZKはAjaxも基盤としているが、それによってユーザーの入力はブラウザ上でJavaのイベントに自動的に変換されるので、基本的にはブラウザで何をしているかを知らなくてもサーバ上のプログラムは書ける。
  • クライアント側のJavaScript。コンポーネントのクライアント側アクションをDHTMLロジックで実行することもできるが、ほとんどの場合不要である。
  • 宣言的データバインディング。ZKにはオプションでUIコントロールをPOJO Java Beansにバインドできる機能がある。その場合ZKはプログラマが作ったPOJOのsetter/getterメソッドを自動的に呼び出すので、ブラウザでのユーザー入力に対応したプログラミングが不要になる。
  • EL言語。ZKはJSTLスタイルのELをサポートしている。

ZUML

ZUML (ZK User Interface Markup Language) は、リッチなUI定義のためのマークアップ言語である。

  • ZUMLはプログラマでない開発者が直観的にユーザインタフェースを設計できるように意図されている。
  • ZUMLと他のマークアップ言語(Mozilla XUL、XHTMLなど)を同じページ内にシームレスに混合して記述できる。
  • ZUMLでは、Java言語にスクリプトを埋め込むことができ(BeanShellが解釈実行する)、EL式を使ってコンポーネントやアクセスデータを操作できる。

バージョン 5.0 での仕様強化

JavaScriptを使うことなく Ajaxな WebアプリケーションのリッチなGUIを作成できることを売りにしていたが、5.0 から Jquery(JavaScriptライブラリ)を開発者が積極的に利用し、 サーバ中心型の手法だけでなく、サーバ クライアント融合型の手法もとれるようになった[15][16]。

バージョン 6.0 での仕様強化

ZK Databinding2
次に述べるMVVMデザインパターンを実現するための、新しいタイプのデータバインディングシステム。
ZK MVVM Model-View-ViewModel(MVVM)
モデル-ビュー-ビューモデル(MVVM)デザインパターンはモデル/ビュー/コントローラ(MVC)デザインパターンの進化形で、プレゼンテーションから、容易にデータとロジックを分離することができるようになる。
Generic enhancements
ZKは従来のJava1.4 からJava1.5 への変更で、ジェネリックスを使用して、よりタイプセーフなコードをかけるようになった。
Servlet 3 Enhancements
サーブレット3でCometの非同期通信をサポート。
Advanced templates
ZULページの中にテンプレートを作成し、これをmodelとして追加のJavaコード無しに、デザインをレンダーできる。

バージョン 6.5.0 での仕様強化

デスクトップとタブレットのUIとタッチエクスペリエンスの領域を、1つのコードベースおよびコンポーネントのセットで解決して融合し、実デバイスの透過性を最も簡単で最も効率的な方法で実現する。

脚注・出典

  1. ↑ “ZK 10.1.0 release notes”. Potix (2025年6月10日). 2026年6月27日閲覧。
  2. ↑ Chen, Henri (2008). ZK - Ajax without JavaScript. Apress. p. 125. ISBN 978-1590599013
  3. ↑ Staeuble, Markus (2008). ZK Developer's Guide. Packt Publishing. p. 184. ISBN 978-1847192004
  4. ↑ Van der Schyff, Andre (2009年3月31日). “A look at MVC frameworks”. ITWeb. 2009年4月14日閲覧。 “MVC frameworks provide limited functionality when compared to ZK, Echo and other Java Web frameworks.”
  5. ↑ “ZK 2.0: AJAX ohne Javascript-Arbeiten” (2006年6月13日). 2009年4月14日閲覧。
  6. ↑ “ZK Explorer”. 2009年5月11日閲覧。
  7. ↑ ZK Live Demo
  8. ↑ BeanShell
  9. ↑ Rhino:JavaScript for Java
  10. ↑ Ruby
  11. ↑ Jython
  12. ↑ Groovy
  13. ↑ ZK MVC Made Easy
  14. ↑ The zscript Element
  15. ↑ Clare, Timothy. ZK 5.0 and jQuery
  16. ↑ Clare, Timothy. ZK 5.0 and jQuery part 2

外部リンク




英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ZK (フレームワーク)」の関連用語

ZK (フレームワーク)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ZK (フレームワーク)のページの著作権

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのZK (フレームワーク) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2026 GRAS Group, Inc.RSS