ZKはイベント駆動型コンポーネントをベースにした、豊富なユーザーインターフェイスのあるウェブアプリケーションを可能にするフレームワークです。ZKはAjJaxをベースにした駆動型エンジンと豊富なXUL・XHTMLコンポーネント集とZUMLと呼ばれる(ZKユーザーインターフェースマークアップ言語)マークアップ言語を提供しています。
ZKの特徴のある多彩なXULとXHTMLコンポーネントでアプリケーションを表現することができます。何年間もデスクトップアプリケーションの中でしてきたように、ユーザー操作によって行われるイベントはXULとXHTMLにより処理しています。ほとんどの構成とは違い、AJAXは舞台裏の技術です。コンポーネントの同期とイベントの並行処理はZKエンジンにより自動的に行われます。
デスクトップアプリケーションを開発する簡単なレベルで、同じ程度の対話と応答ができます。
シンプルなモデルと豊富なコンポーネントに加え、ZKはZUMLと呼ばれるマークアップ言語をサポートしています。ZUMLはXHTMLのようなもので、開発者にユーザーインターフェイスをプログラムなしでデザイン可能にしています。XMLのネーム空間を用いて、ZUMLはシームレスな、異なったタグ[2]セットを同じページに組み込むことができます。現在、ZUMLはXULとHTMLの二つのタグセットに対応しています。
迅速なプロトタイピングやカスタマイズ化するため、開発者はZUMLにてELまたはJava[3], JavaScript[4], Ruby[5] and Groovy[6]等のスクリプトを使用することができます。必要がなければ開発者はスクリプトを使わなくても結構です。JavaScriptがHTMLに埋め込まれているのと違って、ZKはサーバー側でスクリプトを実行します。
ここで全てのタスクはサーバー側で実行しているというのは開発者の立場で言ったものです。コンポーネントを開発するデベロッパーは対話とシンプルのバランスを取りながら、それぞれのタスクがサーバー側またはクライアント側いずれかで決定しなければなりません。