| |
| <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"> </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 "tickle"). 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 |
| "flexibility". <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> 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> . 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> 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> | <a href="docu.html">documentation</a> | <a href="support.html">support</a> | <a href="resources.html">resources</a> | <a href="download.html">download</a> | <a href="credits.html">credits</a> | <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>© 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> |
| |