Saké Mail features Saké documentation download purchase

Saké Mail is built on top of an original Endymion technological framework called Saké. The Saké framework has been designed from the very beginning to offer the most scalable web-based applications available. The Saké framework is entirely based around 100% pure Java servlets. This architecture is literally orders of magnitude faster and far more scalable than the traditional CGI approach to building web-based applications, for several reasons:

Memory resident architecture

CGI applications must be read from the file system and initialized every single time they are invoked. Saké applications are loaded and initialized once and then stay running indefinitely. User requests are handled as lightweight threads instead of heavyweight processes, which reduces overall load on the server and allows a much greater degree of reliability and scalability. This also eliminates the most significant amount of lag time that a user experiences when they interact with the application and makes the application seem much faster from a user's perspective. More information...


Figure 1: A Saké application acts as a part of the web server instead of as a separate process, and handles user requests in lightweight threads instead of heavy processes.


Inherent Scalability and Free Clustering
Saké takes advantage of the inherent scalabilty of Java Servlets. Many exciting options are available for scaling a servlet application, and the hyper-competitive application server market is creating new and exciting options every day. For example, the JRun servlet container from Macromedia can be used to create a cluster of web servers through simple pointing and clicking. More information on building clusters with JRun is available in their collection of whitepapers. Many other enterprise-class application servers are designed to allow clustering as well, including newer releases of the free product Jakarta Tomcat. Saké sessions are specifically designed to be squirted back and forth between different servers in a cluster for load-balancing. With the inherent efficiency of a memory-resident servlet that handles requests in threads, you may be surprised to find that you don't even need to set up clusters in the first place.

XML or HTML Templates

The interface for a Saké application can be defined either by simple HTML template files or by XML/XSL template files that allow you to make modifications in just one place that affect the entire application. More information...

Well-Documented XML Configuration Files

Saké applications do not use arcane or highly delicate formats for initialization files. We don't want to make configuring Saké applications a challenge, so each application is configured via a simple initialization file that is as simple as editing HTML. Each parameter in each file is clearly documented in simple English to make your life simple.

<!-- Top Frame                                                  -->
<!-- Some installations may need to be hosted within a specific -->
<!-- frame other than "_top".  Occasionally Sake applications   -->
<!-- need to aim contents at specific frames.  Use this to set  -->
<!-- the name of the frame that will be the top level for this  -->
<!-- installation.                                              -->
<entry name="sake.topframe" value="_top" />
Figure 3: An example of a simple, well-documented entry in a Saké configuration file.

XML Data Files
If you're getting the impression that we really like XML, then you're correct. XML is also an extremely simple, clear, and precise way of building data files. Since Saké application data like user options files or user messages is stored in XML files with the content marked up in plain English, your data is always available. In the event of a massive system failure of any kind, your data is still extremely comprehensible to a wide variety of different applications, as well as to the human eye. If you would like to build third-party utilities that access Saké application data directly, it is readily digested. If you need to be able to migrate data to or from Saké applications, the simple XML structured data formats makes it easy.

<options name="rap@orpheus">
  <entry name="sake.mail.options.sortstyle" value="date" />
  <entry name="sake.mail.options.messagesperpage" value="20" />
  <entry name="sake.mail.options.deleteproxy" value="true" />
Figure 4: An example of the simple XML format that Saké uses to store your data. This is a file that stores user options for a Saké Mail user.