Sigma Web Framework
The BMC Defender Server Sigma Web Framework is a comprehensive, flexible, and lightweight system for creating web sites and web-based applications. In particular, this framework forms the basis for the BMC Defender Security and Log Monitor Server.
The BMC Defender Server Sigma Web Framework shares similarities with a variety of other frameworks, but is designed to be extraordinarily lightweight, simple to use, and extensible.
This topic is intended for use by web administrators, responsible for installing and maintaining the BMC Defender system, developers who intend to use the BMC Defender system to develop web based systems, and also end-users who will be using the BMC Defender system to access web based information.
This documentation covers only the BMC Defender Server Sigma Web Framework, and does not address individual applications that may possibly be running within the BMC Defender system. In particular, specific information on the BMC Defender Server and other applications can be found in the documentation for these individual components.
For users wishing to immediately assess what Sigma does, consider the following important Sigma information:
- After installing Sigma, you can access the Sigma server via a web browser at port 80 or port 88, or port 888 or port 8888. (The particular port number is displayed and configured in the installation dialog, and is by default port 80, but may also default to one of the other port numbers if port 80 is busy.) You can typically access Sigma via a desktop shortcut on the machine where Sigma is installed, or via the Windows "Start" menu.
- The default login to Sigma is username "admin", password "admin". After logging into the system, you can click on the tabs, at the top of the browser display, selecting first "System" and then "Logins". This will permit you to view and modify the login username or password, or add other user logins. For more information, see Sigma Web Framework features (later in this topic).
- Note the signature characteristic of "Sigma", which is a system of nested tabs at the top of the display. You click on these tabs to access applications. The precise nesting order of tabs is strictly defined by the directory structure residing in the very important "sigma-web" directory of the system.
- To create new tabs, you can either create files within "sigma-web", or create new directories. The naming convention of these files and directories is somewhat specific. Each file or directory name must begin with a three-digit integer number and underscore. Each file or directory name must end with a specific supported suffix. This yields file and directory names such as "100_Welcome.html" or "900_System.dir".
As described above, to add a new web page to the system, simply copy the web page into the "sigma-web" folder of the system, using the specific naming conventions described above (and in detail in later sections.) This will create a tab on the web browser display. If you create a directory, you can then copy files and more directories into that directory in order to create nesting of applications.
Finally, the "sigma-web" directory can contain either files or executables. In particular, the "sigma-web" directory can contain programs, scripts, and batch files. For example, you can create a very simple "000_Hello.bat" file and copy this file into the "sigma-web" directory. This will add a "Hello" tab to the display. When a user clicks on this tab, the server executes the batch file and displays the resulting standard output of the batch file.
Further sections will describe in detail the various other features, adaptations, customizations, and applications associated with the Sigma system. The reader is encouraged to experiment with the system. In particular, almost all of the information required to understand the essentials of the Sigma Web Framework has now been explained; so feel free to get started!
Why another web framework?
A programming framework is an implementation of a system that supports rapid development of usable software for a specific purpose, typically including libraries, utilities, services, programs, and methodologies. The term "Framework" is also often used to describe programming languages, methodologies and Interactive Development Environments IDEs), although this may be too general a usage of the term Framework, which is often used inappropriately as a "buzz word".
Sigma is a web-programming framework. Additionally, Sigma may also refer to customized applications that run within the Sigma framework. These Sigma applications include the BMC Defender Syslog Agent, Sigma RSS Aggregator, Sigma DEX Data Extraction Engine, Sigma SLED Correlation Engine, and Sigma Reporting facility. These particular Sigma applications all rely on the Sigma Web Framework. (For information on a specific Sigma application, including those above, refer to the appropriate application manual.)
Web-programming frameworks proliferate. There are many good web-programming frameworks already in existence, including "Ruby on Rails", "CakePHP", "and Symfony", and many others. This begs the question: Why yet another web framework? Given that many different frameworks have come into existence, become popular, and then faded from the scene, is it worthwhile to spend the effort to learn and implement yet another framework system?
The answer is simple: Sigma is intended to be extraordinarily simple, quick to install, and flexible. It is an ultra-light weight, flexible framework that operates as a simple extensible web shell that is independent of any particular programming language or methodology. It does not enforce any particular programming language, Sigma does not include an IDE which has to be learned by a programmer, and does not require any substantial learning curve. As the Greek letter "Sigma" implies, this framework is designed to act as a "summing" program that permits often-trivial integration of various web-based applications. Considering that Sigma can be up and running almost instantly, the return on investment in using Sigma is very high.
Sigma is intended as a framework that promotes an exceptionally long life cycle, since it works with new and old software systems. It is designed to be learned quickly, and allow easy customization and extensibility that greatly prolongs its usability and life span in the face of rapidly changing fads and styles of software development.
Sigma Web Framework features
Some of the specific features of Sigma are discussed below:
- Automatic generation of nested tabs. One of the most characteristic and powerful elements of the Sigma framework is its function of automatically creating nested, tabbed folders. This permits easy access and navigation between multiple screens and applications.
- HTTP authentication management. Sigma incorporates read-to-run HTTP authentication as a standard feature. This permits selective access to various areas of the website based upon admin, user, and guest privileges.
- User login management. Sigma includes a user login management interface, which allows an administrator to create user logins and permission sets via the web interface. Developers can easily limit access to certain applications based upon the role of the user.
- CGI interface support. In addition to serving simple HTML and JavaScript pages, Sigma allows a developer to easily create dynamic applications in a variety of programming language, including C, C++, Java, PHP, Perl, Ruby, VB, and others. Unlike many frameworks, which are dependent on particular programming languages and methodologies, Sigma is independent of these.
- Support for Windows batch file programs. Although Sigma is ideal as a framework for professional programmers, the system also supports creation of dynamic CGI screens using trivial Windows Batch files. (This demonstrates how easy it is to add new screens to Sigma using minimal programming power.)
- Windows Service Manager interface. Sigma incorporates an interface to the Window Service Manager, which allows developers to run programs as background processes, and as standard windows services. This is accomplished via configuration files, and requires no programming of the Windows SCM or registry updates.
- Built in scheduler program. Sigma provides a built in scheduler program, that can be used to automatically run programs on system startup, shutdown, and ad certain intervals. This provides one way for developers to create dynamic web pages (which are constructed as background processes at periodic intervals.)
- Easily customizable features. Sigma provides various "signature" elements, such as its navigation tables. However, Sigma also incorporates many customizable features that allow a developer to change screen colors, screen headers and footers, and modify the look and feel of the user experience.
- Ready-to-run Apache server. As part of the Sigma framework, this system incorporates a pre-configured version of the industry standard Apache HTTP server, which has been tuned to provide fast, simple, and secure web services with minimal intrusion on CPU, memory, or disk space.
- Support for Microsoft IIS. Sigma additionally supports the IIS server, including support for authentication using membership in Windows user groups, to simplify the assignment of permissions. Sigma can also be easily integrated with other third-party and specialty HTTP servers, including Apache Tomcat.
- C / C++, other API services. Sigma works with any programming language and methodology, and furnishes libraries, examples, and templates, and documentation to permit developers to rapidly create CGI programs and screens, including macro based web pages.