
        <html>
        <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <title>Websh - Welcome</title>
        <script language="JavaScript" src="buttons.js"></script>
        <link href="websh.css" rel="styleSheet" type="text/css">
        <meta name="description" content="Websh - the rapid development environment to build powerful web applications.">
        <META NAME="keywords" CONTENT="websh, Websh, e-commerce, web application, apache, perl,  php, asp, cold fusion">
        </head>
    
        <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0"
        bgcolor="#ffffff" link="#006699" alink="red" vlink="#006699">
    
        <map name="grafik_navi">
        <area href="mailto:websh-dev@tcl.apache.org" coords="94,2,154,26" shape="rect">
        <area href="./" coords="4,2,64,26" shape="rect">
        <area href="contact.html" coords="184,2,244,26" shape="rect">
        </map>
        <table border="0" cellpadding="0" cellspacing="0" width="100%" height="76">
        <tr valign="top">
    
            <td width="500" bgcolor="#006699"><img height="50" width="300" src="images/grafik_navi_home.gif" alt="" border="0" usemap="#grafik_navi"><img height="50" width="200" src="images/grafik_index.gif" alt=""></td>
        
        <td><img height="50" width="270" src="images/logo.gif" alt="Websh"></td>
	<td width="5000" bgcolor="#000000">&nbsp;</td>
        </tr>
        <tr>
        <td width="500">
        <table border="0" cellpadding="0" cellspacing="0" width="500" height="40">
    
            <tr bgcolor="#006699">
            <td width="120"><br></td>
            <td><a href="/websh/docu.html"  onmouseover="swap('docu','b_docu_b')"  onmouseout="swap('docu','b_docu_a')"><img height="20"  width="100"  src="/websh/buttons/b_docu_a.gif"  name="docu" border="0" alt="documentation"></a></td>
            <td><a href="/websh/support.html"  onmouseover="swap('supp','b_supp_b')"  onmouseout="swap('supp','b_supp_a')"><img height="20"  width="70"  src="/websh/buttons/b_supp_a.gif"  name="supp" border="0" alt="support"></a></td>
            <td><a href="/websh/resources.html"  onmouseover="swap('ress','b_ress_b')"  onmouseout="swap('ress','b_ress_a')"><img height="20"  width="110"  src="/websh/buttons/b_ress_a.gif"  name="ress" border="0" alt="resources and links"></a></td>
            <td><a href="/websh/download.html"  onmouseover="swap('down','b_down_b')"  onmouseout="swap('down','b_down_a')"><img height="20"  width="100"  src="/websh/buttons/b_down_a.gif"  name="down" border="0" alt="download"></a></td>
            </tr>
            <tr height="20">
            <td width="120" height="20"><img height="20" width="120" src="buttons/b_prod_c.gif"></td>
            <td width="100" height="20"><img height="20" width="100" src="images/title.gif"></td>
            <td width="70" height="20"><img height="20" width="70" src="images/title.gif"></td>
            <td width="110" height="20"><img height="20" width="110" src="images/title.gif"></td>
            <td width="100" height="20"><img height="20" width="100" src="images/title.gif"></td>
            </tr>
        
        </table>
        </td>
        <td><img height="40" width="270" src="images/logo_strich.gif"></td>
        </tr>
        </table>

<div style="padding: 15px; color:#fff; background-color: #069; font-weight: bold; width: 730px; margin: 5px;">
  We are sorry but we discontinued Websh support and development for lack of resources.
  Also the discussion mailing list was closed, so if you're interested in taking up this subproject within the Apache Tcl project to bring it back into life please contact private@tcl.apache.org
</div>
    
    <table border="0" cellpadding="0" cellspacing="0" width="770">
    
        <tr height="30">
        <td width="10" valign="top"></td>
        <td width="150" height="30"></td>
        
                    <td width="455" height="30">
		    <h1>Websh described</h1>
                    </td>
                    <td width="10" height="30"><br>
                    </td>
                    <td width="145" height="30">
		    <h1>characteristics</h1>
                    </td>
                
        </tr>
    
    <tr valign="top">
    
	
	<td width="10"><img height="1" border="0" width="10" src="images/stuntFFFFFF001010.gif"></td>
        <td width="150">
        <table border="0" cellpadding="0" cellspacing="0" width="141">
    
        
        <tr valign="top">
        <td width="10"><img height="11" width="10" src="images/pfeil.gif"></td>
        <td class=nav>
        <b>product description</b><br>
	
	    - <a href="#history">history</a><br>
	
	    - <a href="#tcl">based on Tcl</a><br>
	
	    - <a href="#design">design</a><br>
	
	<br></td></tr>
    
	
        </table>
        </td>
    
    
    <td width="455">
      <img height="160" width="150" src="images/ausschnitt_product.gif" align="left" alt="graphics">

      Websh is a rapid development environment for building
      powerful, fast, and reliable web applications. Websh is
      versatile and handles everything from HTML generation to
      data-base driven one-to-one page customization. We have been
      using it for years for virtually all our customer projects,
      which typically are E-commerce shops or electronic banking
      applications. Websh is extensible and portable, and its
      comprehensive set of commands is quickly learned.

      <h2>Open Source Software</h2>

      Websh is released as open source software. The source code as
      well as binaries for a selection of platforms are available for
      download for free. Websh users have full control over and
      insight into Websh. This is protection of investment.

      <h2>Apache 2 module</h2>

      Websh is scalable.  Its CGI interface ensures that Websh
      can be employed virtually everywhere, using off-the-shelf web
      servers.  If performance is key, the Websh Apache 2 module
      gives you lightening-fast one-to-one content.  And the nice
      thing: for both the CGI environment and for the Apache 2 module,
      you use exactly the same Websh application.  <br><br>
    </td>
    <td width="10"></td>
    <td width="145">
      <table border="0" cellpadding="0" cellspacing="0" width="145">
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>Open Source
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>Apache 2 module
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>Tcl Extension
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>Thread Safe
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>Modular Design
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>Extensible
        </td>
        </tr>
    
      <tr>
        <td colspan="2" height="30">
          <br><h1>key features</h1>
        </td>
      </tr>
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>web transaction state management
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>session management
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>strong encryption (extensible)
        </td>
        </tr>
    
      
        <tr valign="top">
        <td width="10"><img height="10" width="10" src="images/punkt_rot.gif"></td>
        <td>fast logging facility (extensible)
        </td>
        </tr>
    
      </table>
    </td>
  </tr>
    
	<tr valign="top">
	
	<td width="10"><img height="1" border="0" width="10" src="images/stuntFFFFFF001010.gif"></td>
        <td width="150">
        <table border="0" cellpadding="0" cellspacing="0" width="141">
    
        <tr valign="top">
        <td width="10"><a href="product.html"><img height="10" border="0" width="10" src="images/uppfeil.gif"></a></td>
	<td></td>
	</tr>
	
        </table>
        </td>
    
	<td width="455">
	<h2 class="nomargin"><a name="history">Websh history</a></h2>
	</td>
	</tr>
    
    <tr valign="top">
      <td width="10"></td>
      <td width="150"></td>
      <td width="455">
	The development of Websh began in 1996. Websh
	has since been successfully used in virtually all customer
	projects of Netcetera. Why does a technology-driven company
	like Netcetera rely on a tool with such a slow release cycle ?
	Good design pays off.<br><br>

	While the Internet changes at a rapid pace, the underlying
	technologies remain stable, and Websh has been built to
	handle them. The practical experience gained from the
	day-to-day use of Websh has now been channeled into the
	current release, Websh 3.  <br><br>
    </td>
    </tr>
    
	<tr valign="top">
	
	<td width="10"><img height="1" border="0" width="10" src="images/stuntFFFFFF001010.gif"></td>
        <td width="150">
        <table border="0" cellpadding="0" cellspacing="0" width="141">
    
        <tr valign="top">
        <td width="10"><a href="product.html"><img height="10" border="0" width="10" src="images/uppfeil.gif"></a></td>
	<td></td>
	</tr>
	
        </table>
        </td>
    
	<td width="455">
	<h2 class="nomargin"><a name="tcl">Based on Tcl</a></h2>
	</td>
	</tr>
    
    <tr valign="top">
    <tr valign="top">
      <td width="10"></td>
      <td width="150"></td>
      <td width="455">
	  Websh is based on the Tool Command Language (Tcl,
	  pronounced &quot;tickle&quot;). Tcl is a fast, comprehensive
	  scripting language as well as a library.  The Tcl
	  development started 1987 at the University of California at
    Berkeley with John K.Ousterhout. Development continues through a large group of volunteers coordinated by the <a href="http://www.tcl.tk/community/coreteam/">Tcl Core Team</a>, who also perform the majority of the work.<br><br>

	  The decision to build Websh on top of Tcl has several
	  advantages which can be summarized as
	  &quot;flexibility&quot;. <b>Figure 1</b> gives an overview
	  of the Websh Architecture.<br><br>

	  <img src="images/ws3ov.gif" alt="Websh Architecture"><br>
	  <b>Figure 1</b> - Websh Architecture<br><br><br>

	  Most Web-based applications need to separate items with a
	  high change rate from other, static parts. In other words,
	  <b class=blue>configurability</b>&nbsp; is needed.  For
	  example, HTML output must be changeable without the need to
	  recompile the application.<br><br>

	  Using Tcl as an embedded system, such configurable parts can
	  be designed as Tcl code snipplets and configuration files.
	  <br><br><br>

	  Web-based applications demand a high degree of flexibility
	  or <b class=blue>extensibility</b>&nbsp;.  In particular, it
	  must be straight-forward to add new functionality.  Websh
	  does not manage data base access, for example, but rather
	  relies on proven Tcl extensions for this task. Choosing Tcl
	  for Websh thus ensures the extensibility of Websh
	  itself.
	  <br><br><br>

	  Finally, Web-based applications must be deployable on a wide
	  range of platforms. Tcl has been ported to all important
	  operating systems. Embedding Tcl thus ensures the <b
	  class=blue>portability</b>&nbsp; of Websh.  <br><br><br>

    </td>
    </tr>
    
	<tr valign="top">
	
	<td width="10"><img height="1" border="0" width="10" src="images/stuntFFFFFF001010.gif"></td>
        <td width="150">
        <table border="0" cellpadding="0" cellspacing="0" width="141">
    
        <tr valign="top">
        <td width="10"><a href="product.html"><img height="10" border="0" width="10" src="images/uppfeil.gif"></a></td>
	<td></td>
	</tr>
	
        </table>
        </td>
    
	<td width="455">
	<h2 class="nomargin"><a name="design">Websh Design</a></h2>
	</td>
	</tr>
    
    <tr valign="top">
    <tr valign="top">
      <td width="10"></td>
      <td width="150"></td>
      <td width="455">

	  Websh has a modular design, particularly for thread
	  safety.Each module manages its own data, and locking
	  mechanisms are used where needed. Websh modules are
	  extensible through plug-Ins.<br>

	  <b>Figure 2</b> gives an overview of the Websh
	  modules. In the following, each module is shortly
	  described.<br> <img src="images/ws3arch.gif" alt="Websh 3
	  Design"><br>

	  <b>Figure 2</b> - Websh 3 modules<br>

	  <h2>request and url management</h2>

	  The Websh application developer does not need to get
	  involved with the details of the HTTP protocol or the
	  parsing of data.  Rather, he concentrates on the application
	  logic and leaves the rest to Websh.  This module parses
	  input from the browser, e.g.  HTML form data, and makes it
	  available to Websh. <br><br>

	  One of the distinctive features of Websh is its state
	  management capability. Web-based applications often need to
	  carry information from one HTTP transaction to the next.  As
	  an example, the user will choose his preferred language.
	  Applications for electronic commerce systems, Internet
	  banking and so on also need mechanisms to identify and group
	  transactions into longer transactions which cover more than
	  one single HTTP request and its response. This Websh
	  module introduces state.

	  <h2>session management</h2>

	  Websh provides sessions for transaction data management as
	  well. For example, a Websh application would store the
	  items in a "shopping cart" in a session context. The session
	  management module handles session data, which can be stored
	  on the client side using Netscape cookies; or on the server
	  side using the file system (fs), a data base management
	  system (DBMS), or the Netcetera cache manager (ncm).  The
	  module provides a uniform interface to access the session
	  context regardless of the storage used.  It is implemented
	  in Tcl and makes extensive use of namespaces.

	  <h2>output management</h2>

	  Websh provides commands to format HTTP-compliant output
	  to be sent back to the client. output can be directed to Tcl
	  channels or to Tcl variables for buffering purposes. The
	  output management module is fully configurable to give the
	  user control over the generated output.

	  <h2>conversion</h2>

	  Need HTML compliant input ? Want to send data via an URL, or
	  in a form field ? This module converts umlauts to their
	  proper HTML entities or their URI encoded equivalent, for
	  example.  As do all Websh modules, the conversion module
	  manages its data on its own, thus ensuring thread safety.


	  <h2>security by encryption</h2>

	  The proper handling of sensitive data is crucial for banking
	  or E-commerce applications. Three aspects are important:
	  Data transfer, data storage, and session hijacking. This
	  Websh module provides the commands to encode and decode
	  data, and to manage pass-phrases and encryption methods.
	  <br><br>

	  Websh relies on well-known and well-tested encryption
	  methods, which are made available to Websh by means of
	  plug-ins.<br>

	  <h2>messages on streams</h2>

    This Websh module implements a simple protocol to facilitate
    communication over Tcl channels. Particularly, it is used for
    communication over TCP/IP connections.

	  <h2>logging facility</h2>

	  Web applications need a versatile logging mechanism to
	  report errors and other information. In fact, Websh
	  itself makes heavy use of the logging facility. Logging must
	  be easy to use, fast, and extensible. Typically, Websh
	  applications handle hundreds of requests per second, and the
	  logging facility has been designed with this kind of load in
	  mind.  <br><br>

	  The logging module is extensible through plug-Ins.
	  <br><br><br>
	  Find more information in the
	  <a href="whitepaper.html">Websh white paper</a>.

	</td>
      </tr>
    </table>
    
        <table border="0" cellpadding="0" cellspacing="0" width="770" height="45">
        <tr valign="top">
        <td colspan="2">
        <hr noshade size="1">
        </td>
        </tr>
        <tr valign="top">
        <td width="10"></td>
        <td width="760">
	<span class="blue">description</span>&nbsp;|&nbsp;<a href="docu.html">documentation</a>&nbsp;|&nbsp;<a href="support.html">support</a>&nbsp;|&nbsp;<a href="resources.html">resources</a>&nbsp;|&nbsp;<a href="download.html">download</a>&nbsp;|&nbsp;<a href="credits.html">credits</a>&nbsp;|&nbsp;<a href="copyright.html">copyright</a>
	</td></tr>
        <tr valign="top">
        <td colspan="2">
        <hr noshade size="1">
        </td>
        </tr>
        <tr valign="top">
        <td width="10"></td>
        <td width="760">
        <span class="klein"><b>&copy; Websh - an <a href="http://tcl.apache.org">Apache Tcl</a> project - part of the <a href="http://www.apache.org/">Apache Software Foundation</a></b></span></td>
        </tr>
        </table>
        </body>
        </html>
    