Welcome to Zope - a new generation of software that we call a web application platform. Like web application servers, Zope provides very high performance and a strong framework for dynamic applications.
| This QuickStart is built with Zope objects -- take a look! |
Zope, though, is distinguished by its integrated object database which, when combined with a revolutionary object model, provides a completely unique facility for servicing content managers and web application developers. This outline, implemented in Zope, talks about the various strengths of the Zope platform and some of the other products available for it.
Application Development
|
|||||||||||||||||
Content Management
|
|||||||||||||||||
Database Integration
|
|||||||||||||||||
| A Basic Example | |||||||||||||||||
| High Performance | |||||||||||||||||
| Multi-Platform | |||||||||||||||||
|
Zope (and therefore Aqueduct) runs on many platforms. This list is always growing! The lastest list of supported platforms and databases can be found on our website. As of April 1998, Digital Creations supported:
| |||||||||||||||||
| SQL and HTML in Harmony | |||||||||||||||||
|
Here's a common problem... The people that are experienced and talented in the development of efficient SQL queries are often not the people that have the best eye for aesthetics and presentation. Similarly, an organization's best graphics specialists and HTML authors might not be qualified to write efficient SQL. What to do?! The combination of Zope and Aqueduct allows website managers to segregate the responsibility for the SQL queries from the responsibility for developing a visually attractive and appealing interface. Consider the following SQL query (note the template variable substitution is highlighted in red:
This query is certainly not the most complex or complicated query that's ever been devised. However, it does involve joining two relational tables and sorting/ordering the output. So, while not terribly complex, it might very well be beyond the expertise of an HTML developer or graphics artist. No problem! Just get your local SQL guru to create a Zope SQL Method that implements this SQL query. Let's call it
With the
When the query was run, it would return data which would, in turn, be merged with the template to produce the folllwing HTML:
<table>
<tr>
<th>Order<br>Number</th>
<th>Quantity</th>
<th>Shipped</th>
</tr>
<tr>
<td>2</td>
<td>4</td>
<td>3</td>
</tr>
<tr>
<td>3</td>
<td>6</td>
<td>0</td>
</tr>
</table>
Which when rendered in a browser would appear as follows:
| |||||||||||||||||
| Multiple Data Sources | |||||||||||||||||
| Multi-Tiered | |||||||||||||||||
|
Arguably the most powerful and complex implementation of Zope is one which involves a multi-tier architecture and multiple datasources. Consider the following common scenario: For various and sundry reasons Plutonia Computer's (our example company) webmaster has chosen to run the main Plutonia website on the Linux operating system and use Apache as the web server. Unfortunately for our webmaster, Plutonia's corporate database standards are Oracle® and Sybase®. Last we checked, neither Sybase or Oracle had (or were planning on having) client-side drivers for Linux. If they did a clever and efficient webmaster could develop interesting CGI applications against the client-side drivers. Alas, no drivers, no integration... Until Zope and Aqueduct that is! Using Zope's unique Network Client capabilities, Zope developers can publish searchable objects from one Zope to another. In the scenario above a developer can use Zope on a platform for which there are Oracle/Sybase client drivers. From this platform they would publish one or more query objects. For example, Oracle client drivers are available for the Solaris operating system. We can use Zope on Solaris to publish (over the network) queries against an Oracle database. This Oracle database is either a) on the same Solaris machine, or b) available to the Solaris machine over the network. In any case, the following queries can be published by the Solaris server.
We can now return to our Linux web server where we use a Network Client to access the remote searchable objects published from the Solaris server. Once we correctly configure a Network Client we have access to all of the data on Linux!!! This architecture works perfectly whether you are Security and Performance is critical! The network connection between the Linux web server and the Solaris machine that is publishing searchable objects is both encrypted (for strong security) and compressed (for strong network performance). The scenario described above is illustrated in the following software component diagram. Note that while not depicted on the diagram it is certainly possible (and, in fact, common) for the Linux webserver the be publishing databases (e.g., SOLID, mySQL, mSQL, etc.) directly in conjunction with the Oracle and Sybase databases.
| |||||||||||||||||
| Publish Databases | |||||||||||||||||
What's the secret?It's no longer a secret... The fastest way to show significant demonstrable returns from your internet/intranet/extranet website is to web-enable existing operational databases. A close second is the design and development of new web-centric databases designed to deliver enhanced sales, marketing and customer service capabilities to your organization. Like we said, what needs to be done is no longer a secret. How to do it...Today's most precious commodity? Your time. In Zope (our web application development and delivery platform) and Aqueduct (our relational database publishing solution) Digital Creations has developed a suite of software that lets you work smarter, not harder. Take for example, Aqueduct. Aqueduct packages your database queries (i.e., the SQL queries) into reusable objects that are made available throughout your website in accordance with the security parameters you establish. Aqueduct supports two-tier and n-tier implementations. Consider the following diagram which depicts a single-tier Aqueduct implementation. This diagram might depict a centralized web server serving data from a centralized database server.
| |||||||||||||||||
Web to Objects
|
|||||||||||||||||