Zope QuickStart

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.

Start working in the management screens

+ 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:

  • Linux v2
  • BSDI v3
  • OSF1v3
  • Solaris 2.5
  • Solaris 2.6
  • HP/UX 10.x
  • Irix 6.46
  • Windows NT Server v4
  • Windows NT Workstation v4

- 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:

SELECT
parts.part_id, description, price,
order_number, quantity, shipped,
customers.name, customers.address
FROM parts, orders, customers
WHERE
parts.part_id = orders.part_id
AND
orders.customer_id = customers.customer_id
AND orders.order_number = <!--#VAR order_number-->
ORDER BY order_number

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 qryListOrderInformation.

With the qryListOrderInformation object created our HTML developers and graphics artists can do what they do best... make the site look visually appealing. Our graphic designer can now access the data returned from the query using the Document Template Markup Language (DTML) as follows:


<table>
  <tr>
    <th>Order<br>Number</th>
    <th>Quantity</th>
    <th>Shipped</th>
  </tr>

  <!--#in qryListOrderInformation-->
    <tr>
      <td><!--#var order_number--></td>
      <td><!--#var quantity--></td>
      <td><!--#var shipped--></td>
    </tr>
  <!--#/in-->
</table>

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:

Order
Number
Quantity Shipped
2 4 3
3 6 0


+ Multiple Data Sources
+ Multi-Tiered
- 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.

Key Description
1
"Standard" web-browser (whatever that means!)
2
A "Standard" web server: (e.g., Apache, Netscape's Enterprise Server, Open Market's web server and others). Zope's long running process is messaged by very small CGI programs launched by the web server. This elegant architecture allows Zope to easily scale into higher transaction rates.
3
Zope Server Process: Zope is based on a strong web-to-objects model that marries an object-oriented database and scripting envrironment with user sessions, an Undo capability and more. It is the well-matched interface between this object-orientation and underlying relational databases that is Aqueduct's most distringuishing feature.
4
Aqueduct SQL Method(s): SQL Methods expose templated SQL statements to the Zope object system. This exposure allows you to take advantage of Zope capabilities like Acquisition, hierarchical security and authentication, Folder Properties and Document Template Markup Language.
5
Aqueduct Database Adapter: On Unix-variant operating systems Aqueduct uses native database libraries and persistent database connections for high-performance database operations. On Linux Database Adpaters are available for mySQL, miniSQL, and SOLID. However, the list of supported databases is growing all the time. Please check our website for the most current list.
6
A "Standard" Database Server: Examples include SOLID, mySQL, mSQL and others.

+ Web to Objects