www.mcobject.com
Fast and Compact
Core Engine
Bullet-proof
Transaction Logging
High Availability
Industry-standart SQL
New Open Source Java Database

eXtremeWS

Welcome to the eXtremeWS Beta Program web page. This page is the main source of information about eXtremeWS, McObject's embedded web server for intelligent connected devices. Based on feedback and support from our beta customers, our development team will iron-out any defects discovered and incorporate additional features into the commercial release of eXtremeWS.

Overview

Embedded web servers are a fast evolving technology for internet devices. There are many application areas, such as telecommunication devices, industrial controllers, measuring instruments and consumer electronics devices that use web servers to provide efficient and convenient access to the embedded device. An embedded web server allows users to monitor and control their embedded applications using any standard browser. Before the emergence of HTTP, embedded devices were controlled via a front panel, a dumb terminal, or a custom client connected to the device via a proprietary protocol. That increased the size of the target code and required the programmer to implement the additional functionality on the device and quite frequently to implement the client side GUI as well. Integrating a web server with the embedded device almost eliminates the need for target programming and provides an excellent implementation option for embedded internet user interfaces. Web-based device management offers many advantages over the proprietary solutions. To list just a few:

  • No client software needs to be distributed, and the device management software does not need to be ported from one desktop platform to another
  • A device with an embedded web interface is accessible almost anywhere
  • A web interface can link to internal systems such as help systems, problem report systems, etc, reducing the cost of the device maintenance
  • Web interfaces are relatively easy to develop and maintain
  • The browser-server connection can be made secure
  • In most cases it is possible to simulate device functions on the host machine and develop the user interface in parallel with the embedded application.

There are many web servers available today to choose from, so why do we need a new one? The answer is that most web servers available today were designed for use as high-volume enterprise servers and to serve public web sites. Enterprise servers, for example, should scale to hundreds of simultaneous users, support virtual servers, provide remote maintenance and a search engine, provide SSL support and incorporate a SNMP agent. An embedded web server has a very different set of requirements:

  • Minimize CPU usage and memory footprint. Small memory footprint is an important requirement as internet appliances and other connected devices are usually very cost constrained; memory and CPU resources are often at a premium.
  • Support for devices without a disk or file system. An embedded web server needs to provide support for devices without a file system, since a hard disk or another permanent storage are commonly missing from embedded devices. Such devices still should be accessible from and controlled via the Web. For these devices, static web pages should be encoded and linked directly into the embedded web server.
  • Easy integration with embedded applications. Easy integration with the main functions of the device and the operating system is essential to reducing time-to-market. The availability of the web server's source code helps with this task tremendously.
  • Configurability. The ability to configure the server based on the requirements of a particular embedded application and the operating environment of the device the server is embedded into. As with any embedded software, it is vital to be able to exclude and include features on an as needed basis, as well as to adjust to existing runtime services and constraints.
  • Portability. In today's market, the life span of the hardware design is often less than the life span of software applications. Therefore, the portability of all the components of the device software, including the web server, is highly desirable.

eXtremeWS Feature Set

eXtremeWS is McObject's embedded web server and was designed specifically for the needs of embedded devices. It implements a rich set of capabilities that are essential for embedded development and can be tightly integrated with eXtremeDB, providing a unique environment for implementing a complete data management solution for intelligent connected devices.

eXtremeWS is a library archive and distributed with the complete source code. The library defines the server interface that programmers use to exploit the functionality of the server. The source code helps if the application requires that the web server be integrated into existing code or that the event loop of the web server be accessible.

Below is a list of features currently supported by eXtremeWS:

  • HTTP 1.1 (RFC2616) compliant
  • HTTP 1.0
  • Small footprint of 15K to 35K depending on the operating system and configuration
  • Configurable thread pool. The server could be run as single-threaded or multi threaded and the number of threads serving the incoming HTTP requests is configurable via a simple #define statement
  • Multiple network interfaces
  • Configurable heap manager. Some embedded OS lack effective heap managers, therefore eXtremeWS can be configured to use the efficient eXtremeDB heap manager
  • Configurable transport layer. TCP/IP can be replaced with other transports
  • Multiple and configurable reporting capabilities
  • Support for sessions. A configurable maximum number of sessions and session timeouts. Some applications require that the state information is established and maintained by a server to provide context for a series of operations.
  • Support for HTTP basic authorization. The web server can restrict access to certain pages and require users to enter a login name and password
  • Dynamic content generation methods:
    • Template-based
    • In-process CGI as well as the traditional CGI. Traditional CGI processing results in the creation of a new process for each request to a CGI URL. Since CGI is often the means of implementing user input, this could be very slow and resource intensive. In-process CGI is a method of supporting dynamic content that is more suitable for high performance and resource constrained embedded systems. eXtremeWS in-process CGI procedures run in-process without creating a new execution path for each browser connection, and can access the full request context directly.
      In the case of in-process CGI, the server implements three content buffering schemes and can be configured to use one of them:
      -- no buffering (not HTTP 1.1 compliant)
      -- full buffering
      -- chunked content
  • Application-defined HTTP header fields
  • Content Compiler. A utility that reads a directory with HTML files and encodes it into a C source code file. This file is then compiled and linked with the other eXtremeWS object code to produce a web server with all the static HTML content built right into it ? thus eliminating dependence on a file system from which to serve static HTML content
  • Optional static content compression.
  • Optional built-in in-memory database to store and manipulate dynamic content and other data
  • eXtremeWS is extremely portable and we are continually expanding the list of supported platforms. Currently, McObject provides support for the following:
    • Windows platforms
    • Embedded Linux and Linux
    • Lynx OS
    • QNX

The eXtremeWS documentation is available for download. Please note that this documentation is for the beta release of eXtremeWS and is subject to change without notice.

Reference Designs

Web-based device management is quickly becoming an industry standard. It allows separation of the embedded software and the user interface code, use of markups to access and control device internal parameters and on-device embedded data management. The eXtremeWS package includes a number of reference designs that demonstrate how the web server can be used to communicate with remote devices running eXtremeDB-based applications. Complete source code for the reference applications is available.

Electronic Programming Guide

Digital television technologies, such as set-top boxes and home gateways have sophisticated data management requirements. The Electronic Programming Guide (EPG) manages TV listings, program and channel descriptions, IRD tuning parameters and other related information. The EPG application demonstrates how eXtremeWS can be used to query and control EPG databases. The embedded application communicates with the eXtremeDB runtime via in-process CGI, and provides for the initial loading and querying guide data and displaying the guide on the screen.


The web interface for the EPG application contains static and dynamic content. The dynamic content is generated from the eXtremeDB-based EPG database via the in-process CGI functionality provided by eXtremeWS. Static content is processed (compiled) by the eXtremeWS Content Compiler (mkcontent) and linked into the EPG application executable. The EPG application uses a statistically accurate snapshot of programming guide for 14 days of programming on 400 channels. Depending on the platform, the snapshot resides in plain text or compressed files from which the EPG is loaded. In a real-life EPG, the content is received from satellite, cable or terrestrial sources, eliminating the need for a file system.

Automatic Weather Station

This application demonstrates a communication session between the browser and the eXtremeDB database running in the context of eXtremeWS. The automatic weather station (AWS) collects meteological and diagnostic data and communicates this data to the internet browser in form of HTML documents.


The application simulates the process of collecting temperature, pressure and humidity measurements from sensors, which are then stored in the eXtremeDB database. The METEO database is accessed remotely via an HTML interface that is a mix of static content (such as images) and dynamic content implemented via templates.

Preventive Maintenance Monitoring System

This application demonstrates how eXtremeDB and eXtremeWS can be used to create system health advisory systems for Pulp and Paper mills. An automatic monitoring and management system for industrial paper machines diagnoses various process and paper machine component conditions and communicates the data to the client which presents the data analysis in an easy-to-use display. That allows production and maintenance personnel to quickly isolate problems and make immediate adjustments to the process.

The application simulates the process of monitoring the machine with sensors attached to various parts of the paper machine. Accelerometers and thermometers attached to the machine's felt, rollers and bearings collect real-time vibration and temperature data in the database. This data is analyzed in real-time and communicated to the client computer over HTTP. A “Status” page contains the last registered “events” ? measurements that indicate an alarm, danger or warning state of the controlled equipment. A “Reports” page displays the history for each sensor. Finally, a “Configuration” page allows changes to sensors' threshold values.


The web interface consists of dynamic content generated at runtime via templates, and static content compiled into the application. The application is very configurable - the amount of RAM and the number of threads used can be established based on the available resources.

High Availability Device Management

Process control, telecom and network gear, and other systems with demanding “five-nines” reliability (99.999% up-time) requirements comprise a fast-growing segment of embedded software. Like embedded systems overall, these applications are managing greater volumes of more complex data ? creating a need for fast, lightweight databases that can meet their reliability imperative.

The HA Device Management Console application presents a control panel that allows management, control and display of the state of multiple connected devices running eXtremeDB-HA - based applications. Each application reports its current state to the Management Console via a HTTP connection to eXtremeWS.


The web interface for the high availability reference application is divided into two parts. The first part of the web interface catches the output of the eXtremeDB-HA-enabled application running on the controller and transmits it to the second part of the web interface. The second part is an HTTP application that aggregates the state data received from the controller's application and displays this information in the browser. It also includes the HA cluster "control panel" from which the high availability processes can be initiated and terminated.

This application uses in-process CGI and the "template" technology provided by eXtremeWS.

How to become a beta tester

If you are interested in becoming a beta tester for eXtremeWS, please visit the beta program page. If the information that you provide matches the needs of the project, you will be invited to participate in the beta test. If you don't wish to become a beta tester, but would like to suggest a feature or an improvement, please e-mail us. We appreciate your input and will try to accommodate your suggestion.

 

ハイライト
26 Sep 2008
McObject社の組込みDBMSとTI社のDaVinci™プロセッサのテクノロジが実現する

09 Jul 2008
Maximizer Software社とMcObject社、BlackBerryデバイス上のモバイルCRMソフトウェアにおいてパートナーシップを強化

09 Jun 2008
DIRECTV社が自社のSet-Top Box用に採用した



© 2007 McObject LLC
All rights reserved.

e-mail: info@mcobject.com
web-support: Imperatif
製品 / テクノロジー | デザイン方針 | eXtremeDB | eXtremeWS | オープンソースデータベース | 開発キット | ダウンロード    サポート / FAQ | サービス | お問い合わせ    企業情報 / McObject について | 日本市場への取り組み | マーケット | お問い合わせ