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" />
</options>
|
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.
|
|