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 Avalon Documentation Team, 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 © 2002 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 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 © 2002 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 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 © 2002 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 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 © 2002 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]