[ZF-10089] Zend_Log
[zend.git] / documentation / manual / en / tutorials / multiuser-intro.xml
blob0732e7e4db8ff3aef08b8704fe5803dac0493d43
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <sect1 id="learning.multiuser.intro">
4     <title>Building Multi-User Applications With Zend Framework</title>
6     <sect2 id="learning.multiuser.intro.zf">
7         <title>Zend Framework</title>
9         <para>
10             When the original "web" was created, it was designed to be a publishing platform
11             for predominantly static content. As demand for content on the web grew, as did
12             the number of consumers on the internet for web content, the demand for using the
13             web as an application platform also grew. Since the web is inherently good at
14             delivering a simultaneous experience to many consumers from a single location,
15             it makes it an ideal environment for building dynamically driven, multi-user,
16             and more commonly today, social systems.
17         </para>
19         <para>
20             <acronym>HTTP</acronym> is the protocol of the web: a stateless, typically short
21             lived, request and response protocol. This protocol was designed this way because
22             the original intent of the web was to serve or publish static content. It is this
23             very design that has made the web as immensely successful as it is. It is also
24             exactly this design that brings new concerns to developers who wish to use the
25             web as an application platform.
26         </para>
28         <para>
29             These concerns and responsibilities can effectively be summed up by three questions:
30         </para>
32         <itemizedlist>
33             <listitem>
34                 <para>
35                     How do you distinguish one application consumer from another?
36                 </para>
37             </listitem>
39             <listitem>
40                 <para>
41                     How do you identify a consumer as authentic?
42                 </para>
43             </listitem>
45             <listitem>
46                 <para>
47                     How do you control what a consumer has access to?
48                 </para>
49             </listitem>
50         </itemizedlist>
52         <note>
53             <title>Consumer Vs. User</title>
55             <para>
56                 Notice we use the term "consumer" instead of person. Increasingly, web applications
57                 are becoming service driven. This means that not only are real people ("users") with
58                 real web browsers consuming and using your application, but also other web
59                 applications through machine service technologies such as <acronym>REST</acronym>,
60                 <acronym>SOAP</acronym>, and <acronym>XML-RPC</acronym>. In this respect,
61                 people, as well as other consuming applications, should all be treated in same with
62                 regard to the concerns outlined above.
63             </para>
64         </note>
66         <para>
67             In the following chapters, we'll take a look at these common problems relating to
68             authentication and authorization in detail. We will discover how 3 main components:
69             <classname>Zend_Session</classname>, <classname>Zend_Auth</classname>, and
70             <classname>Zend_Acl</classname>; provide an out-of-the-box solution as well as the
71             extension points each have that will cater to a more customized solution.
72         </para>
73     </sect2>
74 </sect1>