You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by le...@apache.org on 2003/01/29 17:06:17 UTC

cvs commit: jakarta-avalon-site/site/history/images server-01.gif server-02.gif server-03.gif server-04.gif

leosimons    2003/01/29 08:06:17

  Modified:    site/history index.html
  Added:       site/history call-to-vote.html changes.html
                        need-for-avalon.html what-is-a-server.html
               site/history/images server-01.gif server-02.gif
                        server-03.gif server-04.gif
  Log:
  look! ancient history! :D
  
  Revision  Changes    Path
  1.2       +168 -1    jakarta-avalon-site/site/history/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/jakarta-avalon-site/site/history/index.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- index.html	27 Jan 2003 19:51:38 -0000	1.1
  +++ index.html	29 Jan 2003 16:06:16 -0000	1.2
  @@ -1 +1,168 @@
  -<html><head><title>Resource not Found</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>Cocoon 2 - Resource not Found</h1><hr size="1" noshade="noshade"/><p><b>type</b> resource-not-found</p><p><b>message</b> <u>Page Not Available.</u></p><p><b>description</b> <u>The requested resource couldn't be found.</u></p><p><b>sender</b> org.apache.cocoon.Main</p><p><b>source</b> Cocoon commandline (Main.java)</p><p><b>request-uri</b><pre>history/index.html</pre></p><p><b>missing-file</b><pre>site\history\index.html</pre></p><hr size="1" noshade="true"/></body></html>
  \ No newline at end of file
  +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  +<html>
  +<head>
  +<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  +<link rel="stylesheet" href="../skin/tigris.css" type="text/css">
  +<link rel="stylesheet" href="../skin/site.css" type="text/css">
  +<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
  +<title>History of Avalon</title>
  +</head>
  +<body bgcolor="white" class="composite" marginheight="0" marginwidth="0">
  +<!--================= start Banner ==================-->
  +<div id="banner">
  +<table width="100%" cellpadding="8" cellspacing="0" border="0">
  +<tbody>
  +<tr>
  +<!--================= start Group Logo ==================-->
  +<td align="left">
  +<div class="groupLogo">
  +<a href="http://www.apache.org/"><img border="0" class="logoImage" alt="Apache" src="../images/group-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Group Logo ==================-->
  +<!--================= start Project Logo ==================--><td align="right">
  +<div class="projectLogo">
  +<a href="http://avalon.apache.org/"><img border="0" class="logoImage" alt="Apache Avalon" src="../images/project-logo.gif"></a>
  +</div>
  +</td>
  +<!--================= end Project Logo ==================-->
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Banner ==================-->
  +<!--================= start Main ==================-->
  +<table width="100%" cellpadding="0" cellspacing="0" border="0" id="breadcrumbs">
  +<tbody>
  +<!--================= start Status ==================-->
  +<tr class="status">
  +<td>
  +<!--================= start BreadCrumb ==================--><a href=""></a><a href=""></a><a href=""></a>
  +<!--================= end BreadCrumb ==================--></td><td id="tabs">
  +<!--================= start Tabs ==================-->
  +<div class="tab">
  +<span class="selectedTab"><a href="../index.html"><font color="#000000">Home</font></a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/framework/">Framework</a></span> | <span class="unselectedTab"><a href="../components/index.html">Components</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/phoenix/">Phoenix</a></span> | <span class="unselectedTab"><a href="../seca/index.html">SECA</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/apps/">Apps</a></span>
  +</div>
  +<!--================= end Tabs ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Status ==================-->
  +<table id="main" width="100%" cellpadding="8" cellspacing="0" border="0">
  +<tbody>
  +<tr valign="top">
  +<!--================= start Menu ==================-->
  +<td id="leftcol">
  +<div id="navcolumn">
  +<div class="menuBar">
  +<div class="menu">
  +<span class="menuLabel">About</span>
  +        
  +<div class="menuItem">
  +<span class="menuSelected">Introduction</span>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="call-to-vote.html">Call To Vote</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="need-for-avalon.html">Need For Avalon</a>
  +</div>
  +        
  +<div class="menuItem">
  +<a href="what-is-a-server.html">What is a Server?</a>
  +</div>
  +    
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Menu ==================-->
  +<!--================= start Content ==================--><td>
  +<div id="bodycol">
  +<div class="app">
  +<div align="center">
  +<h1>History of Avalon</h1>
  +<h2></h2>
  +</div>
  +<div class="h3">
  +
  + 
  +
  +
  +
  +
  +<div class="h3">
  +<h3>History</h3>
  +</div>
  +
  +
  +
  +<p>
  +    This document tracks the history of the Avalon project. Avalon was originally started with 
  +    a realisation that Java is a great platform for developing server products and a 
  +    <a href="call-to-vote.html">call to vote</a>. There was a lot of work 
  +    formalizing what exactly a <a href="what-is-a-server.html">server</a> consists
  +    of and why this project was <a href="need-for-avalon.html">needed</a>. These
  +    discussions led to the initial development of the Java Apache Server Framework.
  +</p>
  +
  +
  +<p>
  +    Over time the Java Apache Server Framework project was renamed Avalon. This was in 
  +    recognition that the original ideas have evolved over time. Avalon became a 
  +    repository of general utility code, a design and testing ground for component based 
  +    solutions, a micro kernel and set of generalized server oriented services. This combined 
  +    with a move from the Java Apache project to the Jakarta project prompted the revision.
  +    At this time the kernel code was repackaged under the name Phoenix, core services 
  +    under the name Cornerstone and the general components was packaged under name Excalibur.
  +</p>
  +
  +
  +
  +
  +
  +<div id="authors" align="right">by&nbsp;Avalon Documentation Team,&nbsp;Peter Donald</div>
  +</div>
  +</div>
  +</div>
  +</td>
  +<!--================= end Content ==================-->
  +</tr>
  +</tbody>
  +</table>
  +<!--================= end Main ==================-->
  +<!--================= start Footer ==================-->
  +<div id="footer">
  +<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
  +<tbody>
  +<tr>
  +<!--================= start Copyright ==================-->
  +<td colspan="2">
  +<div align="center">
  +<div class="copyright">
  +              Copyright &copy; 2002&nbsp;The Apache Software Foundation.. All rights reserved.
  +            </div>
  +</div>
  +</td>
  +<!--================= end Copyright ==================-->
  +</tr>
  +<tr>
  +<td align="left">
  +<!--================= start Host ==================-->
  +<!--================= end Host ==================--></td><td align="right">
  +<!--================= start Credits ==================-->
  +<div align="right">
  +<div class="credit"></div>
  +</div>
  +<!--================= end Credits ==================-->
  +</td>
  +</tr>
  +</tbody>
  +</table>
  +</div>
  +<!--================= end Footer ==================-->
  +</body>
  +</html>
  
  
  
  1.1                  jakarta-avalon-site/site/history/call-to-vote.html
  
  Index: call-to-vote.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <link rel="stylesheet" href="../skin/tigris.css" type="text/css">
  <link rel="stylesheet" href="../skin/site.css" type="text/css">
  <link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
  <title>History</title>
  </head>
  <body bgcolor="white" class="composite" marginheight="0" marginwidth="0">
  <!--================= start Banner ==================-->
  <div id="banner">
  <table width="100%" cellpadding="8" cellspacing="0" border="0">
  <tbody>
  <tr>
  <!--================= start Group Logo ==================-->
  <td align="left">
  <div class="groupLogo">
  <a href="http://www.apache.org/"><img border="0" class="logoImage" alt="Apache" src="../images/group-logo.gif"></a>
  </div>
  </td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td align="right">
  <div class="projectLogo">
  <a href="http://avalon.apache.org/"><img border="0" class="logoImage" alt="Apache Avalon" src="../images/project-logo.gif"></a>
  </div>
  </td>
  <!--================= end Project Logo ==================-->
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Banner ==================-->
  <!--================= start Main ==================-->
  <table width="100%" cellpadding="0" cellspacing="0" border="0" id="breadcrumbs">
  <tbody>
  <!--================= start Status ==================-->
  <tr class="status">
  <td>
  <!--================= start BreadCrumb ==================--><a href=""></a><a href=""></a><a href=""></a>
  <!--================= end BreadCrumb ==================--></td><td id="tabs">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <span class="selectedTab"><a href="../index.html"><font color="#000000">Home</font></a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/framework/">Framework</a></span> | <span class="unselectedTab"><a href="../components/index.html">Components</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/phoenix/">Phoenix</a></span> | <span class="unselectedTab"><a href="../seca/index.html">SECA</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/apps/">Apps</a></span>
  </div>
  <!--================= end Tabs ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  <!--================= end Status ==================-->
  <table id="main" width="100%" cellpadding="8" cellspacing="0" border="0">
  <tbody>
  <tr valign="top">
  <!--================= start Menu ==================-->
  <td id="leftcol">
  <div id="navcolumn">
  <div class="menuBar">
  <div class="menu">
  <span class="menuLabel">About</span>
          
  <div class="menuItem">
  <a href="index.html">Introduction</a>
  </div>
          
  <div class="menuItem">
  <span class="menuSelected">Call To Vote</span>
  </div>
          
  <div class="menuItem">
  <a href="need-for-avalon.html">Need For Avalon</a>
  </div>
          
  <div class="menuItem">
  <a href="what-is-a-server.html">What is a Server?</a>
  </div>
      
  </div>
  </div>
  </div>
  </td>
  <!--================= end Menu ==================-->
  <!--================= start Content ==================--><td>
  <div id="bodycol">
  <div class="app">
  <div align="center">
  <h1>History</h1>
  <h2></h2>
  </div>
  <div class="h3">
    
    
      
  <div class="h3">
  <h3>Introduction</h3>
  </div>
  
        
  <p>
          I spent some time thinking about some of the issues that were discussed on this
          list in the last month, after the first release of Apache JServ 1.0b and after the
          development pressure was reduced. 
        </p>
        
  <p>
          It is clear, to me and to others on this list, that Apache JServ 1.0 just barely
          scratched the potentials of this project in sharing IQ and ideas aiming to fill
          those gaps the advent of the Java technology on the server world produced. 
        </p>
        
  <p>
          It is also clear, from different perspectives (users, developers, software
          engineers, management people), that servers are a big part of the present/future
          of everyday work and that Java allows the creation of performance oriented, solid and
          rapid-delivered server solutions. Other languages do not perform as good when
          all these three "forces" are evaluated together (besides, maybe, SmallTalk, but
          this is another issue). 
        </p>
        
  <p>
          Java is trendy, that's true, but we all know that Java is a well-designed object
          oriented language. May not be the best, I grant that, but it's the only one that came
          to please all those people I listed above. 
        </p>
        
  <p>
          Following this direction, and feeling the lack of professional Java server
          solutions on many fields, the Java Apache Project was created to fill this gap
          using the power of open source. We don't want to compete with Apache or with
          any other server implementation. We are betting on Java for the server side, but
          we will never "rewrite" some server implementation in Java, unless this can
          lead to significant improvements and doesn't go against other open source
          projects. 
        </p>
        
  <p>
          The final goal is a family of 100% pure server solutions for the Java Virtual
          Machine. 
        </p>
        
  <p>
          Since server applications share lots of logic/code between them, it is obvious
          that a common server framework, along with design rules and abstract
          implementations, would allow faster time-to-market, easier code management,
          parallel development, bug fix reflection on all projects and tight integration
          between the different server solutions. 
        </p>
        
  <p>
          I do believe that the time taken to design and develop such a framework will be
          "invested" by this project and its developers. The creation of this project doesn't
          mean other projects can't continue to evolve: the final goal is to integrate
          existing server solutions (JServ) into the framework but this is not a short term
          goal so this doesn't influence it's evolution/time-to-market for future
          releases/features.
        </p>
      
      
  <div class="h3">
  <h3>Request For Vote</h3>
  </div>
  
        
  <p>
          For the reasons above, I propose the creation of a new project to handle the
          design of a the Java Apache Server Framework that will be the foundation on
          which all server projects hosted by the Java Apache Project will be based on. 
        </p>
        
  <p>
          This project goals are: 
        </p>
        
  <ol>
          
  <li>
            Design and documentation of the Java Apache Server Framework.
          </li>
          
  <li>
            Creation and implementation of this framework (interfaces, abstract classes,
            and shared modules).
          </li>
          
  <li>
            Centralized management of the evolution/fixing/patching of both the shared
            code and the framework design.
          </li>
        
  </ol>
      
      
  <div class="h3">
  <h3>What the Java Apache Server Framework Is</h3>
  </div>
  
        
  <p>
          It's a design methodology that allows design reuse as well as code reuse between
          different server projects. These projects gain the advantage of software reuse
          and the simplicity of developing/managing only the different logic. 
        </p>
        
  <p>
          This framework will be based on Java technology and would allow: 
        </p>
        
  <ol>
          
  <li>
            Partition of shared logic context into polymorphic modules that are used
            through their public interfaces and not through their actual implementation (Log
            systems, Object stores, Virtual File Systems, Configuration repository,
            Concurrency Strategies, etc..)
          </li>
          
  <li>
            Creation of a common lifecycle for server operations (the Service
            interface)
          </li>
          
  <li>
            Creation of a ServiceManager for service management (maybe both internal
            or external the JVM: native wrapping and control via JNI would allow
            better fault tolerance for the JVM through process separation)
          </li>
          
  <li>
            Shared resources can be either centralized or duplicated for each service,
            allowing the use of a single JVM for multiple servers and common logic
            sharing (i.e. common thread pools, log systems and configuration
            repositories...)
          </li>
          
  <li>
            A central access point for configuration (via HTTP, SMTP, voice, RMI,
            SNMP, IIOP, depending on the services implemented)
          </li>
          
  <li>
            Reduced effort in service development since they become plugins for this
            framework and reuse big parts of the code base. The design and behavior is
            also documented and shared between different services.
          </li>
        
  </ol>
      
    
  
  <div id="authors" align="right">by&nbsp;Stefano Mazzocchi</div>
  </div>
  </div>
  </div>
  </td>
  <!--================= end Content ==================-->
  </tr>
  </tbody>
  </table>
  <!--================= end Main ==================-->
  <!--================= start Footer ==================-->
  <div id="footer">
  <table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
  <tbody>
  <tr>
  <!--================= start Copyright ==================-->
  <td colspan="2">
  <div align="center">
  <div class="copyright">
                Copyright &copy; 2002&nbsp;The Apache Software Foundation.. All rights reserved.
              </div>
  </div>
  </td>
  <!--================= end Copyright ==================-->
  </tr>
  <tr>
  <td align="left">
  <!--================= start Host ==================-->
  <!--================= end Host ==================--></td><td align="right">
  <!--================= start Credits ==================-->
  <div align="right">
  <div class="credit"></div>
  </div>
  <!--================= end Credits ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  jakarta-avalon-site/site/history/changes.html
  
  Index: changes.html
  ===================================================================
  <html><head><title>Resource not Found</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;} BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color : white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;} --></STYLE> </head><body><h1>Cocoon 2 - Resource not Found</h1><hr size="1" noshade="noshade"/><p><b>type</b> resource-not-found</p><p><b>message</b> <u>Page Not Available.</u></p><p><b>description</b> <u>The requested resource couldn't be found.</u></p><p><b>sender</b> org.apache.cocoon.Main</p><p><b>source</b> Cocoon commandline (Main.java)</p><p><b>request-uri</b><pre>history/changes.html</pre></p><p><b>missing-file</b><pre>C:\gump\cvs\jakarta-avalon-site\build\site\history\changes.html</pre></p><hr size="1" noshade="true"/></body></html>
  
  
  1.1                  jakarta-avalon-site/site/history/need-for-avalon.html
  
  Index: need-for-avalon.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <link rel="stylesheet" href="../skin/tigris.css" type="text/css">
  <link rel="stylesheet" href="../skin/site.css" type="text/css">
  <link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
  <title>History</title>
  </head>
  <body bgcolor="white" class="composite" marginheight="0" marginwidth="0">
  <!--================= start Banner ==================-->
  <div id="banner">
  <table width="100%" cellpadding="8" cellspacing="0" border="0">
  <tbody>
  <tr>
  <!--================= start Group Logo ==================-->
  <td align="left">
  <div class="groupLogo">
  <a href="http://www.apache.org/"><img border="0" class="logoImage" alt="Apache" src="../images/group-logo.gif"></a>
  </div>
  </td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td align="right">
  <div class="projectLogo">
  <a href="http://avalon.apache.org/"><img border="0" class="logoImage" alt="Apache Avalon" src="../images/project-logo.gif"></a>
  </div>
  </td>
  <!--================= end Project Logo ==================-->
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Banner ==================-->
  <!--================= start Main ==================-->
  <table width="100%" cellpadding="0" cellspacing="0" border="0" id="breadcrumbs">
  <tbody>
  <!--================= start Status ==================-->
  <tr class="status">
  <td>
  <!--================= start BreadCrumb ==================--><a href=""></a><a href=""></a><a href=""></a>
  <!--================= end BreadCrumb ==================--></td><td id="tabs">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <span class="selectedTab"><a href="../index.html"><font color="#000000">Home</font></a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/framework/">Framework</a></span> | <span class="unselectedTab"><a href="../components/index.html">Components</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/phoenix/">Phoenix</a></span> | <span class="unselectedTab"><a href="../seca/index.html">SECA</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/apps/">Apps</a></span>
  </div>
  <!--================= end Tabs ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  <!--================= end Status ==================-->
  <table id="main" width="100%" cellpadding="8" cellspacing="0" border="0">
  <tbody>
  <tr valign="top">
  <!--================= start Menu ==================-->
  <td id="leftcol">
  <div id="navcolumn">
  <div class="menuBar">
  <div class="menu">
  <span class="menuLabel">About</span>
          
  <div class="menuItem">
  <a href="index.html">Introduction</a>
  </div>
          
  <div class="menuItem">
  <a href="call-to-vote.html">Call To Vote</a>
  </div>
          
  <div class="menuItem">
  <span class="menuSelected">Need For Avalon</span>
  </div>
          
  <div class="menuItem">
  <a href="what-is-a-server.html">What is a Server?</a>
  </div>
      
  </div>
  </div>
  </div>
  </td>
  <!--================= end Menu ==================-->
  <!--================= start Content ==================--><td>
  <div id="bodycol">
  <div class="app">
  <div align="center">
  <h1>History</h1>
  <h2></h2>
  </div>
  <div class="h3">
    
    
      
  <div class="h3">
  <h3>Hardware vs. Software</h3>
  </div>
  
        
  <p>
          One thing that always puzzled me is the different quality meters used
          on hardware and software by users: little flaws in software systems
          are accepted as inevitable, while hardware flaws (even small ones) may
          even create market panic if discovered. It's hard to tell why this is
          so, but today's software quality standards are becoming more and more
          selective, especially when monopolies are broken and users are able to
          judge the differences between products and solutions.
        </p>
      
      
  <div class="h3">
  <h3>Open Source as Quality Management</h3>
  </div>
  
        
  <p>
          The open source development model has emerged as a powerful way to
          control and improve software quality. The most important assumption,
          in this case, is the fact that debugging and code testing are
          parallelizable tasks. For this reason, different individuals are able
          to track down problems right into the source code, independently from
          one another. In open source projects, compared to closed source ones,
          the complexity of the software system grows slower than the ability to
          debug it, due to this parallelizable effort.
        </p>
        
  <p>
          Open source processes are auto-organizative: when a   seed of ideas
          and goals is thrown in the right place at the right time, it catalyzes
          the development process. Usually, when this happens, the user base
          expands, the complexity of the software system grows to meet the
          requirements of this bigger user base, incorporating new ideas,
          solutions and code and creating a positive feedback that keeps the
          process going.
        </p>
      
      
  <div class="h3">
  <h3>Software Engineering and Open Source</h3>
  </div>
  
        
  <p>
          Software engineering doesn't fit well into an auto-organized system
          driven by user requirements. Still, I believe that careful software
          design may allow the development process to <em>know</em> the ability
          of its developers and to provide them guidelines to reduce the work
          and to increase parallel capabilities. Of course, due to the extreme
          flexibility that open source projects show, software engineers should
          carefully design the system to match this flexibility and to avoid any
          restriction that may create friction with users and developers.
        </p>
        
  <p>
          It is evident how the use of modern object oriented programming
          languages like Java helps the development and reduces the debugging
          efforts because most error prone tasks are handled automatically by
          the language itself. Still, the most important object oriented
          solutions (such as Interfaces and abstract classes) are very much
          unused in auto-organized project, where the work is usually done with
          the smallest possible effort to get something working.
        </p>
        
  <p>
          The incredible improvement in time-to-market offered by these
          programming languages that reduce the debugging process to logical
          bugs rather than developer's programming mistakes, is a great feature
          and it's well appreciated, but it may lead, on the longer term, to
          code maintenance problems.
        </p>
        
  <p>
          In all software systems, the maintenance costs greatly exceed the
          first development ones. In open source software systems, the cost is
          measured in terms of <em>time</em> and <em>energy</em> spent by
          developers to meet the new requirements and to expand the complexity
          of the software system. It has been shown (in the Apache JServ
          project) that the wrong use of object oriented features may lead to
          project stall and create friction between developers and users about
          the need for <em>revolutions</em> instead of <em>evolutions</em>
          driven by the need of a complete code redesign.
        </p>
        
  <p>
          The rules "if it works it's good enough" and "if it
          works don't change it" may fit well in those programming contexts
          where developers need to design the code on their own to make it work.
          In object oriented systems, more than ever, working code is not
          automatically good code.
        </p>
      
      
  <div class="h3">
  <h3>Frameworks and Patterns</h3>
  </div>
  
        
  <p>
          The solution I propose is the introduction of coding guidelines to
          place   new requirements to meet the "working" state: by
          introducing the use of software frameworks and design patterns, we are
          able to <em>shape</em> the work of developers without restricting
          their creativity. While object oriented languages don't pose such
          limitations or guidelines, the introduction of carefully designed
          engineering rules, contracts and patterns would create some additional
          requirements to the development process, but will allow better code
          maintenance, a more coherent parallel development process and, in the
          longer run, easier maintenance.
        </p>
      
      
  <div class="h3">
  <h3>Conclusions</h3>
  </div>
  
        
  <p>
          The use of development guidelines and frameworks is proposed as a way
          to reduce internal tensions that produce revolutionary development
          processes rather than evolutionary ones. Even if such ability is yet
          to be demonstrated, it has been shown how object oriented languages
          require different approaches and more careful design stages to be
          successful in the long run.
        </p>
      
    
  
  <div id="authors" align="right">by&nbsp;Stefano Mazzocchi</div>
  </div>
  </div>
  </div>
  </td>
  <!--================= end Content ==================-->
  </tr>
  </tbody>
  </table>
  <!--================= end Main ==================-->
  <!--================= start Footer ==================-->
  <div id="footer">
  <table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
  <tbody>
  <tr>
  <!--================= start Copyright ==================-->
  <td colspan="2">
  <div align="center">
  <div class="copyright">
                Copyright &copy; 2002&nbsp;The Apache Software Foundation.. All rights reserved.
              </div>
  </div>
  </td>
  <!--================= end Copyright ==================-->
  </tr>
  <tr>
  <td align="left">
  <!--================= start Host ==================-->
  <!--================= end Host ==================--></td><td align="right">
  <!--================= start Credits ==================-->
  <div align="right">
  <div class="credit"></div>
  </div>
  <!--================= end Credits ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  jakarta-avalon-site/site/history/what-is-a-server.html
  
  Index: what-is-a-server.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <link rel="stylesheet" href="../skin/tigris.css" type="text/css">
  <link rel="stylesheet" href="../skin/site.css" type="text/css">
  <link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
  <title>History</title>
  </head>
  <body bgcolor="white" class="composite" marginheight="0" marginwidth="0">
  <!--================= start Banner ==================-->
  <div id="banner">
  <table width="100%" cellpadding="8" cellspacing="0" border="0">
  <tbody>
  <tr>
  <!--================= start Group Logo ==================-->
  <td align="left">
  <div class="groupLogo">
  <a href="http://www.apache.org/"><img border="0" class="logoImage" alt="Apache" src="../images/group-logo.gif"></a>
  </div>
  </td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td align="right">
  <div class="projectLogo">
  <a href="http://avalon.apache.org/"><img border="0" class="logoImage" alt="Apache Avalon" src="../images/project-logo.gif"></a>
  </div>
  </td>
  <!--================= end Project Logo ==================-->
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Banner ==================-->
  <!--================= start Main ==================-->
  <table width="100%" cellpadding="0" cellspacing="0" border="0" id="breadcrumbs">
  <tbody>
  <!--================= start Status ==================-->
  <tr class="status">
  <td>
  <!--================= start BreadCrumb ==================--><a href=""></a><a href=""></a><a href=""></a>
  <!--================= end BreadCrumb ==================--></td><td id="tabs">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <span class="selectedTab"><a href="../index.html"><font color="#000000">Home</font></a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/framework/">Framework</a></span> | <span class="unselectedTab"><a href="../components/index.html">Components</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/phoenix/">Phoenix</a></span> | <span class="unselectedTab"><a href="../seca/index.html">SECA</a></span> | <span class="unselectedTab"><a href="http://avalon.apache.org/apps/">Apps</a></span>
  </div>
  <!--================= end Tabs ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  <!--================= end Status ==================-->
  <table id="main" width="100%" cellpadding="8" cellspacing="0" border="0">
  <tbody>
  <tr valign="top">
  <!--================= start Menu ==================-->
  <td id="leftcol">
  <div id="navcolumn">
  <div class="menuBar">
  <div class="menu">
  <span class="menuLabel">About</span>
          
  <div class="menuItem">
  <a href="index.html">Introduction</a>
  </div>
          
  <div class="menuItem">
  <a href="call-to-vote.html">Call To Vote</a>
  </div>
          
  <div class="menuItem">
  <a href="need-for-avalon.html">Need For Avalon</a>
  </div>
          
  <div class="menuItem">
  <span class="menuSelected">What is a Server?</span>
  </div>
      
  </div>
  </div>
  </div>
  </td>
  <!--================= end Menu ==================-->
  <!--================= start Content ==================--><td>
  <div id="bodycol">
  <div class="app">
  <div align="center">
  <h1>History</h1>
  <h2></h2>
  </div>
  <div class="h3">
    
    
      
  <div class="h3">
  <h3>Introduction: Servers and Services?</h3>
  </div>
  
        
  <p>
          It's somehow difficult to give a proper definition of "server",
          due to the confusion created in the time so far by the different meanings
          that term had, facing the different evolution of the technologies.
        </p>
        
  <p>
          The term "server" is commonly used with at least three different
          meanings:
        </p>
        
  <ul>
          
  <li>
            
  <strong>"Server" as computer:</strong> With this meaning the
            server term is intended to be the computer sharing resources.
            <br>
            
  <em>
              Ex. Our corporate "server" is a double Pentium II
              running at 450 MHz with 12 GB of SCSI hard disk running Linux.
            </em>
          
  </li>
          
  <li>
            
  <strong>"Server" as a program:</strong> With this meaning the
            server term is intended to be the application that enables the
            resource sharing, not caring about the network protocols it
            implements.
            <br>
            
  <em>
              Ex. Our Mail server is FlosieTek FTGate release 2.1 which
              implements the SMTP and POP3 protocols.
            </em>
          
  </li>
          
  <li>
            
  <strong>"Server" as a protocol handler:</strong> With this meaning
            the server term is intended to be the application that enables
            the access to shared resources via a specified protocol.
            <br>
            
  <em>
              Ex. Our HTTP server is Apache 1.3.4.
            </em>
          
  </li>
        
  </ul>
        
  <p>
          While we can clearly see the difference between the first definition of
          "server" (computer) and the other two (applications), it's hard
          to see the difference between the second definition ("server" as
          a multi-protocol handler) and the third ("server" as a single
          protocol handler).
        </p>
        
  <p>
          Since it's crucial for all developers involved in the Avalon project to
          share the same common idea of "server", I would like to define
          a server as a <strong>protocol handler</strong>. We would, then, have HTTP servers,
          SMTP servers or POP3 servers, but we cannot use the term MAIL server.
        </p>
        
  <p>
          What we called the mail server is in fact the union of two (or more)
          different "server"s (in our example the union of a SMTP and a
          POP3 server).
        </p>
        
  <p>
          We can clearly see, anyway, that a POP3 and an SMTP server will have to
          share most resources and code to build up a complete mailing system, like,
          for example, a central repository where messages could be stored. We would
          then define the union of the SMTP server, the POP3 server and the central
          messages repository (we could call it <strong>Mail Engine</strong>) as a Mail
          "service". To clarify things a little bit, maybe a picture would
          help:
        </p>
        
  <div align="center">
  <img class="figure" alt="Server 1" src="images/server-01.gif"></div>
      
      
  <div class="h3">
  <h3>Dividing the code</h3>
  </div>
  
        
  <p>
          We can clearly see, however, how this approach to the problem brings to
          a monolithic implementation of the code, not allowing, or making really
          difficult, for other persons to add features, for example, integrating an
          IMAP server within our Mail Service.
        </p>
        
  <p>
          In fact, if we don't clearly separate the code (and a good developer
          should always keep in mind his server expansion) adding a feature like an
          IMAP server into our service could become hell, and, most developers will
          try to find other solutions already in the market rather than using and
          improving what we have done.
        </p>
        
  <p>
          The solution would be to have a sort of "in-core" modularization of our
          server.... To be continued...
        </p>
        
  <div align="center">
  <img class="figure" alt="Server 2" src="images/server-02.gif"></div>
        
  <div align="center">
  <img class="figure" alt="Server 3" src="images/server-03.gif"></div>
      
      
  <div class="h3">
  <h3>The concept of a Block</h3>
  </div>
  
        
  <div align="center">
  <img class="figure" alt="Server 4" src="images/server-04.gif"></div>
      
      
  <div class="h3">
  <h3>The Avalon Framework</h3>
  </div>
  
        
  <div class="frame fixme">
  <div class="label">Fixme (
                 PF
  
                 )</div>
  <div class="content">We need some info in here.</div>
  </div>
      
    
    
  
  <div id="authors" align="right">by&nbsp;Pierpaolo Fumagalli</div>
  </div>
  </div>
  </div>
  </td>
  <!--================= end Content ==================-->
  </tr>
  </tbody>
  </table>
  <!--================= end Main ==================-->
  <!--================= start Footer ==================-->
  <div id="footer">
  <table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
  <tbody>
  <tr>
  <!--================= start Copyright ==================-->
  <td colspan="2">
  <div align="center">
  <div class="copyright">
                Copyright &copy; 2002&nbsp;The Apache Software Foundation.. All rights reserved.
              </div>
  </div>
  </td>
  <!--================= end Copyright ==================-->
  </tr>
  <tr>
  <td align="left">
  <!--================= start Host ==================-->
  <!--================= end Host ==================--></td><td align="right">
  <!--================= start Credits ==================-->
  <div align="right">
  <div class="credit"></div>
  </div>
  <!--================= end Credits ==================-->
  </td>
  </tr>
  </tbody>
  </table>
  </div>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  jakarta-avalon-site/site/history/images/server-01.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-avalon-site/site/history/images/server-02.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-avalon-site/site/history/images/server-03.gif
  
  	<<Binary file>>
  
  
  1.1                  jakarta-avalon-site/site/history/images/server-04.gif
  
  	<<Binary file>>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: avalon-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: avalon-cvs-help@jakarta.apache.org