About the Demo - Cont'd

Copyright © 2011 by Gladesoft. All Rights Reserved.


About this demo

Secure Dynamic Demo
username: glade
password: soft

CGI Demo

Graphics Demo

Application Framework Demo


Seminole has a extensible architecture. Handler objects are registered with an instance of the server. Handlers can register for all requests or for a particular subset of the URL space. This keeps the core of Seminole small and allowing a variety of functions to be added easily. A simple logging mechanism was added with a few lines of code.

To help generate dynamic HTML Seminole includes a template system. Templates separate the presentation from the application logic. Using the template engine application engineers can build a well-defined interface that web-developers can follow to design content for your particular interface.

Seminole's templates are compiled and do not require any parsing at runtime. All the offsets within the template are pre-computed at compile time where performance is not a problem.

To assist content developers Seminole also includes a variety of tools that run on the development host to preprocess content. Redundant white-space can be removed to reduce the size of the content. Simply view the source code for this web page to see the end results. For tougher jobs there is also a full preprocessor mechanism that can transform content on the host machine. So its possible to get a consistent look and feel without the penalty of massaging content at runtime.

While on the topic of performance, it should be mentioned that Seminole is fast. The small footprint helps avoid cache thrashing on the tiny caches of low-cost, low-power processors. The code also makes good use of const and other techniques to give an optimizing compiler the best chance of producing tight, efficient code.

Seminole is scalable. If for some reason your embedded system is going to have lots of HTTP traffic then Seminole can be configured to perform faster at the expense of size.

If security is your primary concern then you can rest easy knowing that Seminole supports a variety of SSL stacks. In fact, Seminole is agnostic as to the actual transport. It is possible to plug in additional transports (such as HTTP directly over serial) in a table-driven fasion.