Zopeの概念とアーキテクチャ

  

1.基本的な概念

Zopeフレームワークには、Zopeを最大限に活用するのに役立つと理解されているいくつかの基本的な概念があります。

1.1。Zopeはフレームワークです。

Zopeはウェブアプリケーション開発者が扱う必要がある多くの根本的な詳細、例えばデータの持続性、データの完全性、データアクセス制御などをカバーしています。これにより、問題解決に集中することができます。他の言語やフレームワークと比べて、ZopeはZopeが提供するサービスを利用してWebアプリケーションをより速く構築することを可能にします。 ZopeはあなたがPython言語を使ってWebアプリケーションの論理処理部分を書くことを可能にします、もちろんPerl。 Zopeはまた、テンプレートのように、テキスト、XML、HTMLなどのデータを扱うための2つの方法、単一テキストテンプレートマークアップ言語(DTML)とZopeページテンプレート(ZPT)を提供します。

1.2。オブジェクト指向

ASPやPHPのようなファイルベースのWebテンプレートシステムとは異なり、Zopeは非常にオブジェクト指向のWeb開発プラットフォームです。 ZopeのPython言語を書くことを含む多くの言語はオブジェクト指向の概念をサポートします。 PerlやPHPなどの一般的なWebスクリプト言語は、オブジェクト指向の機能をサポートしています「オブジェクト指向」の章を読むと、概念を深く理解するのに役立ちます。

1.3。オブジェクトの公開


Zopeの基本的な考え方はWebの基盤がオブジェクト指向であるということです。 WebリソースへのURLは、実際にはオブジェクトコンテナ内のオブジェクトへのパスです。 HTTPプロトコルは、オブジェクトがメッセージを送信したり応答を受信したりする方法を提供します。

Zopeのオブジェクト構造は階層的です。つまり、典型的なZopeサイトはオブジェクトで構成されており、そのオブジェクトは他のオブジェクトを含んでいるかもしれません。オブジェクトの名前に応じて、Zopeは階層構造でURLによってオブジェクトにマッピングします。たとえば、URL "/Marketing/index.html"を使用して、フォルダオブジェクト "Marketing"内の "index.html"という名前のドキュメントオブジェクトにアクセスできます。

Zopeはあなたが作成したオブジェクトをそのような直接的な方法で "公開"しています。基本的なプロセスは以下の通りです:

ブラウザはZopeサーバにリクエストを送ります。要求されたURLフォーマットは次のとおりです。protocol://host:port /path?クエリ文字列。例:

http://www.zope.org:8080/Resources?batch_start=100

Zope URLは "host"、 "port"、 "path"、および "query string"に分類されます。

(それぞれhttp://www.zope.org、8080、/Resourcesおよび?batch_start = 100)

Zopeはパス(path、つまり/Resources)に従ってオブジェクトデータベース内を検索します。オブジェクトZopeは渡された引数でこのオブジェクトを実行します。オブジェクトの実行結果が値を返す場合、その値はブラウザに送り返されます。通常はHTML、ファイルデータ、またはグラフィックデータを返します。ブラウザは受信したデータを解釈して表示します。

ZopeオブジェクトのURLは、/シンボルで区切られた、オブジェクトを含むフォルダのIDとオブジェクトから構成されます。例:/Uncles /Bob、UnclesディレクトリのBobを呼び出します。

もいいね:

/おじさん/Rick

/おじさん/ダニー

/おじさん/Louis

完全なURLははい:http://localhost:8080 /Bobです。より詳しい説明については、Zope開発ガイドのObject Publishingを参照してくださいObject Publishing

1.4。Web経由の管理

Zopeはブラウザを通して様々なタイプを作成し処理することができます。オブジェクトZopeが提供する管理インターフェースはWindowsのリソースマネージャのようなものです。オブジェクトは階層内のどこにでも配置でき、サイトマネージャはオブジェクトのさまざまなビューをクリックしてオブジェクトを管理します。オブジェクトが異なればビューも異なります。たとえば、 "DTMLメソッド"オブジェクトにはコードを編集できる "編集"というラベルの付いたビューがあり、 "データベース接続"には接続とパラメータを変更するビューがあります。すべてのオブジェクトには、アクセス制御を管理するための「セキュリティ」ビューがあります。

1.5。セキュリティとライセンス

Zopeの他のアプリケーションサーバーとの大きな違いは、WebオブジェクトモデルとWeb開発モデルの密接な統合です。これは、多くの異なる人々が参加することを可能にし、そしてZopeは異なるユーザのために安全な承認を許可し、ページデザイナー、データベース管理者、そしてコンテンツ管理者が一緒に働くことを可能にします。

成功するWebサイトには、アプリケーション開発者、SQL管理者、コンテンツ管理者、さらにはエンドユーザーでさえも参加する必要があります。この時点で、セキュリティ問題が重要になります。制御方法およびアクセス許可の割り当て方法Zopeのオブジェクトは、伝統的なファイルベースのシステムよりもはるかに豊かなセキュリティライセンスを提供します。たとえば、「SQLメソッド」オブジェクトの場合は、ユーザーにそのオブジェクトの呼び出しを許可することはできますが、ソースコードを変更したり表示したりすることはできません。ユーザーがフォルダやDTMLドキュメントなどの特定の種類のオブジェクトのみを作成し、SQLメソッドオブジェクトを作成しないように制限することもできます。

Zopeは "User Folders"を通してユーザーを管理します。ユーザー情報はこの特別なフォルダに含まれています。ユーザーフォルダは、リレーショナルデータベースまたはLDAPディレクトリを介して管理できる拡張子を追加することによっても拡張できます。新しいユーザーフォルダーを追加する機能は、下位フォルダー内のユーザーに割り当てることができ、承認されたユーザーがサイトのセクションを管理できるようにします。

1.6。ローカルオブジェクトの永続性とトランザクション(永続性とトランザクション)

Zopeオブジェクトはトランザクションメカニズムをサポートする高性能オブジェクトデータベース、すなわちZopeオブジェクトデータベース(ZODB)に格納されています。データベースは各Web要求を別々のトランザクションと見なします。 Webリクエスト中に実行中にエラーが発生した場合、加えられた変更はキャンセルされます。オブジェクトデータベースはマルチレベルのアンドゥもサポートしており、サイト管理者は「アンドゥ」ボタンをクリックするだけで変更を元に戻すことができます。 Zopeフレームワークでオブジェクトの永続化とトランザクションを実装するすべての方法は開発者には見えません。リレーショナルデータベースはZopeフレームワークではまだ有効です。

1.7。獲得

獲得はZopeにとって非常に重要な概念です。他のオブジェクト(フォルダなど)に含まれています。オブジェクトは、そのコンテナオブジェクトのプロパティと動作を「取得」できます。

全てのZopeオブジェクトはフェッチをサポートしています。これは様々なリソースを管理するための非常に強力な方法を提供します。たとえば、頻繁に使用されるSQLクエリや小さなHTMLコードをフォルダ内に定義し、そのようなメカニズムを「取得」することで下位のフォルダを自動的に呼び出すことができます。このSQLクエリが変更されている場合は、下位フォルダについては心配しないでくださいこの変更は、すべての下位フォルダに有効です。

検索対象はカレントディレクトリから階層的に取得されるため、有効範囲の指定は簡単です。たとえば、スポーツコンテンツを含むフォルダ "Sports"があり、このフォルダに新しいヘッダファイルとフッタファイルを作成できます。これにより、2つのファイルを "Sports"フォルダとその下位フォルダに呼び出すことができます。 "Sports"親フォルダ内のファイルは呼び出されません。

この概念については "Getting"の章で詳しく説明します。

1.8。Zopeは拡張可能です

Zopeは非常にスケーラブルで様々な方法で使うことができます。 Python言語で新しい拡張モジュールを書くか、あるいは完全にWeb上で作成することによって、新しいZopeオブジェクトを作成してください。 Zopeはすでに拡張機能を手助けすることができる多くの組み込みコンポーネントを含んでいます。 Zopeには、新しいZopeオブジェクトを作成するときに詳細を扱うために使われる一連のフレームワーククラスが既に含まれています。

Zopeには、フォーラムの追加、データ処理、XMLツール、eコマースプログラムなど、Zopeの機能を強化するための拡張機能がすでにいくつもあります。これらのプログラムのほとんどはZope愛好家によって書かれていて、そしてほとんどがオープンソースです。

2.基本的なZopeコンポーネント

ZopeはあなたがWebアプリケーションを構築するのを助けるためにいくつかの異なるコンポーネントで構成されています。

Zopeのアーキテクチャ


概要:

ZServer

これはZopeに組み込まれたコンテンツサービス用のWebサーバーです。 Webサーバーはまた、FTP、WebDAV、およびXML-RPCプロトコルを介してサービスを提供します。


Webサーバー(Web Server)

Zopeは、ApacheやMicrosoft IISなどの既存のWebサーバーや他の一般的なゲートウェイインターフェースのサポートと組み合わせることもできます( CGI)Webサーバー。

Zopeコア(Zopeコア)

これはZopeのコアエンジンで、表示方法を管理したり、管理インターフェースやオブジェクトデータベースを制御します。

オブジェクトデータベース

Zopeを使うとき、ほとんどの場合Zopeオブジェクトデータベースに保存されているオブジェクトを処理しています。

リレーショナルデータベース

データをZopeオブジェクトデータベースに保存する必要はありません。Zopeは他のリレーショナルデータベース、例えばOracle、PostgreSQL、Sybase、MySQLなどを使うことができます。待って。

ファイルシステム

Zopeはサーバーのファイルシステムに保存されている文書や他のファイルを使うこともできます。

ZClasses

Web管理インタフェースを使用して、新しいオブジェクトを追加できます。 ZClasses?はそのようなオブジェクトです。

製品

ZopeはZopeサーバーのファイルシステムに "product"ファイルをインストールすることによって新しいオブジェクトを追加することもできます。

Copyright © Windowsの知識 All Rights Reserved