Epsylon Technologies - main page
BEAST  BEAST Software Concept  FREE Download  Prices
 Articles  Technical Support  Documentation  
Products


 

About us

Products
Events

Demo

Partners




 
main pagee-mailadd to favorits

 

BEAST Software Concept Networks that make the world go round

What problems should Internet technologies solve?
BEAST story
Principles, that formed BEAST software concept
What is the BEAST
Multi-user applications save operation system resources
Low Traffic
Security
Stability to connection failure
Performance and stability during overloads
Interaction of Users and Servers
Development tools
Application development methods
Conclusion

The world without borders - the globally networked world - is here for everybody. The Internet has come to everyone – businesses, homes, employees, schoolchildren, sellers, buyers, scientists, housewives – everyone can use data physically located any place on Earth through hyperlinks, dynamic generated pages, Java applets and other technologies.

 

What problems should Internet technologies solve?

Internet technologies are intended to provide execution of relatively simple tasks:

People communication. E-mail, chat-servers and real time interaction technologies like ICQ or AOL Instant Messenger let people communicate with each other through the Internet

Data publishing. There are static and dynamically generated information resources published on the Internet. Static data is accessible via Web-servers, ftp-servers and other similar server applications. Dynamically generated resources will be considered later.

Automatic collection of information from numerous sources. If there are many information sources, the problem is to collect such information and to tailor it to a common "template". The useful technologies are Internet-spiders, agents for network infrastructure managing and software that implement the "situation room" concept.

Distributed computing. If you have used ActiveX, or uploaded Java, or downloaded a dynamically generated page, that was executed according to your request to a database. Or, if you have talked to several people through the Internet at the same time, you have dealt with distributed computing.

All the above mentioned tasks require the two following operations:

Access to remote data. A bad dial-up line, or a network with very high traffic, or an interrupted connection can make work with the Internet difficult or impossible..

Load balancing, capability to increase performance and scalability. An Internet technology must have a reserve to increase performance; otherwise, when the number of users increases or more complex software is installed on a network system that is based on this technology, some unsolvable problems can occur that can lead to high expenses for system reconstruction.

 

BEAST story

BEAST was developed to solve such general problems, but in the development process it was learned that BEAST also can good manage with certain assignments. Therefore, it is difficult to answer the question "what intention has BEAST software?” At such times I want to ask, "what intention has UNIX or X-Windows?” Nevertheless I will explain it.

BEAST software can be divided in three parts:

  • BEASTapplication servers assigned to be the base of a network system;
  • Tools for rapid development of server side applications;
  • Special server side applications

To date, there are BEAST commercial versions for Windows NT and Windows 95/98 and beta-versions for AIX, Linux and Solaris. BEAST supports development in Borland Delphi and Borland C++ Builder (Borland Jbuilder in beta-testing stage). In fact, we have developed a technology that can easy enable development of multi-user server side applications in any other RAD environment.

 

Principles, that formed BEAST software concept

BEAST technology is designed for the Global Network as a future infrastructure for any enterprise or person. We know that network hardware and other devices will be improved, but we are also very aware of contemporary weaknesses such as low bandwidth and unreliability of dial-up lines. Therefore, BEAST is oriented to maximum low traffic, support of several network protocols and operation with low quality dial-up lines.

Universal application scope. We assumed that if BEAST could carry out the general tasks of Internet technologies, its application aspects would become quite universal. Now its practical use has proved this supposition: with BEAST you can develop a network system with any assignment - turnover and billing systems, workflow systems, event processing systems, geoinformation systems, network games, electronic commerce applications, etc.

Emphasis on server side computing and providing maximum high performance. This principle was implemented very successfully. BEAST application server was tested by Intel European Center for Software Solutions Optimization and showed very good results (referred to later).

Low TCO (Total Cost of Ownership) of a network information system. The cost of a computer is no more than 20% of TCO. The 80% consists of costs for administration, employees training, maintenance, upgrades, etc. We have created a method that significantly reduces TCO through application of "thin" as well as "fat" clients.

Maximum openness and scalability of the technology and its compatibility with other software. It is clear that all these factors depend on each other. BEAST allows use of any legacy software so that a developer with legacy software can easily deploy his developments on a BEAST based network system; he just publishes his applications and then can immediately use them. Instead of creating new extensions representing BEAST own data sources, we created a mechanism that allows use of widespread and standard data sources (e.g., SQL servers of Oracle, Informix, IBM, Microsoft and Borland).

Because BEAST is intended for large enterprise information systems with thousands users, we gave data security our special attention from the beginning. . Security is a complex problem and we take into account all security aspects and secure all tiers of the system - client, communication channel and server.

One of our main tasks was to enable visual component development of applications for BEAST server, and that has been successfully implemented.

These principles formed the BEAST technology base.When development began, there was a team of highly-qualified programmers experienced in development of distributed real-time information systems and client-server systems, as well as programming in Delphi and C++. For the basis of BEAST server architecture, we used architecture of a telecommunications monitor for mainframes.

 

What is the BEAST

Let's consider an enterprise network developed using TCP/IP standard with direct connections to the Internet and a security system. Traffic in opened parts of the network has to be encrypted, and users through their client applications can operate only with certain resources identified via individual access rights. All remote programs are started on the central server. A network of this type can operate with tens of thousands of users.

What applications can run on the server? It depends on the demands of the enterprise. It can be a system to read and write records about current business processes (shipment, remote department activities, booking, inventories, etc.).

User work locations and the server can be on opposite sides of the world, other users in the same office can work with the server, and they can work with the central server using several interaction methods; e.g., with a modem switched to ISDN line or through Radio Ethernet or through a local network. Because BEAST does not demand much bandwidth, BEAST is undemanding to the bandwidth, the system shows the same performance for a dial-up line as for a local network.

Type of the client software depends of what server resources the client operates with. He can work through an Internet browser (e.g., Microsoft Internet Explorer or Netscape Navigator), through a Java-machine (it can be a separate application or it can be embedded in a browser as a Java-applet), through special hardware (Network Computer) or through the special ultra thin client Taxxi Taxxi can be implemented as simple software in a normal computer or as a part of ROM of a hardware terminal.

Besides thin and ultra thin client applications, there are so-called fat clients - applications that can represent an interface for user interaction with the remote server and can also perform some information processing. The fat client can be a word processor or, for example, an ordinary mail application can be treated as a fat client of BEAST server when it starts the relevant server-side application through SMTP, POP3 or IMAP4 protocols.

The main task of the server is to process client requests. A client application sends a request (or a set of requests) and the server starts the applications or connects the client to an already started multi-user application and transfers client's request to the application, then it sends reply data, returned by the application to the client. Here there’s no need to consider different network protocols, because independent of the type of communication protocols, the server carries out the same operations - data threads (requests and replies) communication between clients and server side applications.

It should be noted that, unlike other similar technologies, BEAST launches a "valuable" exe-unit, a normal application. But a usual application is not intended for effective operation in multi-user mode through the Internet. This technology is most frequently assigned for applications that have been developed with BEAST RAD tools special component libraries. When a developer uses these tools, he is building applications just like local ones in, for example, Borland Delphi environment. But the result is a network application optimized for BEAST server. In this way multi-user applications (one copy of an application for all users, but with individual data for each user) as well as single-user applications (a new copy of an application for each user) can be developed.

 

Multi-user applications save operation system resources

A server side application generates input-output thread for each client. BEAST controls these threads. An interesting detail is that a special driver (in mainframe terms) or parser (in state-of-the-art terms) is written for each protocol. Therefore BEAST supports not only existing protocols, but also any new, user-defined protocol, which can be embedded in the system without changing server structure. An addition of a new protocol is as simple as simply adding a new parser to the server.

If we would talk only about the ultra-thin client (i.e., about client application that only represents information from the server), BEAST could be compared with such software as Microsoft WTS or X/Windows Á UNIX or Citrix Winframe. However, definitions of user interface in these products and in BEAST are quite different.

In BEAST, the term "screen surface interface" was replaced by "object surface interface". At first glance there is no difference. Actually, is it important if a painter paints on a canvas, or on a wall? - Surface is a surface anyway, isn’t it? Oh, but it is important! The server-side application "paints" on the object surface. That is the essence of the client application.

The analogy is absolutely clear for an Internet browser - HTML-elements represented as objects in the programming environment where the development is carried out (e.g., in Delphi or C++ Builder). For Java-machine, representative Java-elements correspond with server side application objects. For Taxxi, representative Java-elements also correspond with server side application objects.

But look how easily we can turn to fat client in this technology - we only have to set "thin" representative server object in correspondence with "fat" client object, for example, a word processor. In this example the server side application "draws" changes on non-visual word processor interface, and we got a multi-user system, in which instead of browser, word processors operate with Internet remote data (this product is called Samara-98). Or, instead of browser, we can use an accountancy program of virtual reality modeling tool – can you smell the Future?!

 

Low Traffic

BEAST use and its testing have shown that traffic for data flow between object surfaces of ultra-thin (as well as fat!) client is significantly lower than traffic between the client and the server sending information about screen surface changes.

 

Security

Because consideration of all security aspects can take quite a long time, we'll consider only key factors.

All BEAST supported protocols can be protected by SSL 2.0 and SSL 3.0 standards. This means that all input and output traffic can be secured by any algorithm, including 128-bit ones, or, any encryption algorithm can be embedded in SSL frame. We have already got such experience.

Traffic coding and setting of a secure connection for the application server are not the only necessary security measures. Traffic coding secures data only during its transmission in a communication channel. To provide the "perfect" information system security, we must also secure the client and server sides.

Let's consider the following hacker attack method:
During a connection with the server, "a conspirator" exchanged the "right" server for a "wrong" one. A code from the "wrong" server (even when the "wrong " server disconnected) can be installed on a client computer and provide non-sanctioned loading of confidential information or other harmful actions. The key moment in this scheme is installation of the conspirator's code-agent into the client computer. The danger is especially great if the client-server interactions scheme requires transfer of active codes from the server to the client (e.g., ActiveX or Java-applets loading)

But, fortunately, if you work with BEAST you can solve any applied problem without code downloading from the server to the client. BEAST can ensure implementation of any information system functions without this operation. This capability of BEAST technologies (operation mode, when no active data can be transferred) is an important and positive factor for client security.

The server is protected from non-sanctioned access by a user authentication mechanism and hierarchical system of remote users rights and permissions to server information resources (user security profile). If a user called "John Smith" is not permitted to transfer money from specified accounts, he never can do it and doesn't even know that there is such an operation in the information system. If our John is allowed to start the application "X-files Viewer", but not allowed to access the file "XXX-reports", he can run the viewer but can't view "XXX-reports" file.

In some cases extra strong security is required. Because BEAST can operate with ultra-thin client, there is opportunity to record, for example, analytical browser Taxxi or JAT-application in Network Computer ROM or in special terminal. In this way we can create a hardware solution for the information system with extra high security requirements.. Such a special terminal can be a one-chip computer without hard or floppy disks and with a network adapter and coded input/output traffic.

 

Stability to connection failure

This parameter also relates to security factors. When a connection breaks, BEAST enables restoration of the session in the context of the failure moment according to all security requirements. Of course, the client has to enter his login information again, but he does not have to begin his session from the beginning. He "comes" to the "place" where the dialogue has been interrupted. If the connection has been broken for a long time, the server side application that was started by the user will be closed according to the end of the time-out period. Time-out value can be set by the system administrator, individually for each application, or by a developer during the application development.

 

Performance and stability during overloads

In complex systems based on application servers, system performance depends not only on server performance. An application server must react extremely rapidly on requests and be well-adapted to concurrent computing. But even if these requirements are completed, some software will work too slowly in the system. It happens because besides server performance there are some mechanisms which affect system performance.

One of the most important mechanisms is the method of data transfer between server side applications and the server itself. BEAST theoretically uses the fastest mechanism.

Other factors affecting the performance are well known - ability to perform concurrent computations and the size of input and output traffic.

The size of accessible RAM also has an effect on the performance. BEAST server itself does not require too many RAM, usually it is mostly occupied by server-side applications. Even multi-user applications that are quite economical with RAM resources depend on accessible RAM volume.

BEAST works very effectively on multi-processor platforms. When the number of processors increases from 1 to 4, BEAST server performance increases fourfold, from 1 to 2 - doubled.

If BEAST operates as a source of static hypertext information (i.e., it receives many requests for static files), its capabilities to perform concurrent computing are lower. This can be easily explained: files transferring through one port are a task that can hardly be sub-sequenced.
Nevertheless, when the number of processors increases from 1 to 4, performance of such type operations becomes 2.24 times higher, and from 1 to 2 processors - 1.6 times.

These indexes of BEAST server performance were obtained by Intel European Center for Software Solutions Optimization. The objective of this testing was not only to measure the maximum values of server performance parameters, but also to test the server in different operation modes and to find its weaknesses. The tests were carried out in two months (February and March, 1998) and the most interesting results were obtained in tests, when the server had to operate in maximum high loading modes.

One of the tests emulated concurrent requests from 10,000 users to 760 multi-user applications. Important results were obtained through tests that modeled sudden load increasing. In these tests we checked solutions, which had been implemented during the server development. For example, mechanisms for compensation of sudden increase of user requests.

Nevertheless, one can imagine a system with such a large number of users that the server performance is not fast enough. BEAST has been used as an industrial server since 1996. Since then, we never found objectives that BEAST failed to meet. However, to be ready for such a situation. BEAST supports server clusters and virtual server mechanisms and performs load-balancing functions. All servers in a server cluster send and receive data about the current load. Received request is to be transferred to the minimally loaded server.

 

OK

The essence of high tech information systems lays in a very sophisticated combination of clients, server, tasks and threads. When new technologies announced themselves to networks, it’s difficult even for a specialist to say - is it a useful or a useless feature and what effect will this  new technology have on everything. Sometimes even studying numerous specifications and documentation can't give a clear understanding of technological perspectives and applied scope.

A short description of some application aspects of BEAST technologies follows:

One of the standard BEAST operations is to send a user a resource according to his request. In this operation BEAST is not principally different from other servers supporting http protocol.
If a user sent the request http://www.taxxi.com/log/baikstat.exe, it means that the user requested access to baikstat.exe application.

In this case the user was the request initiator and the server didn't reply. Baikstat.exe can be a multi-user application; i.e., the server doesn't launch the second application copy according to a new user request, but transfers this request to the already launched application. An event occurs in the application, in the object responsible for interactions between the application and the server. What will the application do in this event depends only on developer's fantasy.

One of the options is organization of interaction between some users (e.g., a chat-server, or a multi-user application providing consolidated activities of some people, or a network game, or a financial application). In such an interaction scheme, information that was entered by User 1, immediately causes changes in User 2’s interface.

Some application servers can simultaneously operate in an enterprise even if there is no need to cluster servers or to increase the performance. Each department of an enterprise can have its own information service. The user of such a system can simultaneously access all enterprise servers, collecting accessible (according to the user’s security profile) information in his computer. So, the user creates his personal situation room in his computer.

BEAST server is an active server. That means that the server can not only reply to user requests, but also initiate connection to another server (or, with the analytical browser Taxxi - to a client). This ability is unique to BEAST and very unusual for http-servers. A developer can create an application that can automatically connect to other servers, collect information from several sources or transfer business (probably encrypted) information to a similar server.

For example, imagine a system where users work with an application responsible only for user interface and data processing is performed by a set of remote servers to which the users have no direct access. All interactions with a set of "hidden" servers can be implemented through special interaction applications.

 

Development tools

Because of historical reasons, most of development tools for BEAST application server are intended for Borland programming environments. Scalability of Delphi, C++ Builder and Jbuilder environments allows us to complement them with our own visual component libraries. Using these libraries, the developer can create multi-user applications in the same way as he used to create local applications. In addition, the developer can use standard debuggers. From this point of view the fact that BEAST server is in the developed infrastructure changes nothing.

The visual component development should be used when the developer solves applied tasks in the system (e.g., product shipment and turnover system for an enterprise with many departments located far from each other).

The visual approach reduces design time, a very important factor because for enterprise chiefs any delay in introducing the working application leads to lost profit. For these reasons, we paid great attention to visual components for development tools.

Incidentally, BEAST itself wasn't developed in Delphi. It is written in C ANSI and partially (some libraries) in C++.

The technology is not bound to a certain programming environment. All BEAST development tools can be adapted to any environment. Moreover, we are planning to create tools for development of server-side applications in some new or alternative programming languages such as Modula-2, Eiffel, Lisp, Prolog, Smalltalk, Occam and others in the very near future.

We already have such experience. Before BEAST was developed, Epsylon Technologies had developed the programming environment "XSimp" - it was combination of capabilities of Lisp, Prolog, Smalltalk and procedure approach to programming process.

There is low level interface (BEAST API Low) in BEAST, intended for embedding of libraries and programming environments That is why BEAST is perfectly scalable software. Extension of the set of development tools is a task for a system programmer, but it is such a complicated task? – Not really!

 

Application development methods

The choice of tools for information system development depends on the developer's tasks.

If the developer has to rapidly create an intranet system where only Web browser will be used as client desktops, he should choose Delphi or C++ Builder and develop the system visually with HTML-components.

A good example of advantages of dynamically generated information use is a Web site of the Buryatian department (near Lake Baikal) of Electrosvyaz concern. You can find it at http://www.buryatia-online.ru.

In cases when HTML is not interactive enough for normal work of the users and the standard Windows interface are required, server side applications should be developed with JAT-components. If there are several types of client computers in an enterprise network, JAT-applet can provide users with a common interface. Such applet is to be loaded only once and then can operate with any type of server JAT-applications without reloading. Unfortunately, I can say nothing positive about Java-machine performance. To date there are no methods to make Java-codes execution faster.

Therefore for Windows 95-98 and Windows NT platforms, Epsylon Technologies has developed a special client application for operation with dynamic information-analytic browser Taxxi. An application developed with JAT-components works very well with Taxxi (10-15 times faster that JAT-applet).

It is interesting that to "translate" an already developed client-server application into intranet-architecture, you only have to exchange visual components used in the project with the corresponding JAT-analogs according the context. It can take about ten minutes. Then the application is has to be compiled and placed on the server for execution. Such compatibility is also good because there is no reason to ignore non-visual components included in standard Delphi or C++ Builder libraries For example, components enabling access to databases.

Having BEAST at his disposal, the developer can use the whole spectrum of data sources compatible with Delphi (Oracle, Informix, Sybase, IBM DB/2, Borland IB Database, Microsoft SQL Server and various desktop databases formats - dBase, Paradox, MS Access, FoxPro, etc.). Besides the standard data sources, you can use special third party components. For example, in this way a server side application can access AS/400 or data from SAP R/3. Non-relational data sources can also be used.

Another useful product of the BEAST series - BEAST GIS Toolkit:
This is a set of special components for Delphi and C++ Builder for development of application geo information systems (GIS). BEAST GIS Toolkit includes a component library for development of a desktop GIS and a library for development of a multi-user intranet GIS.

Now a new product - BEAST GIS Server - is ready for release. The modified analytical browser Taxxi is used as a client for BEAST GIS Server, and the visual components are used for the server side applications development. Unlike a normal browser, the client application for GIS Server is much more interactive, and network traffic is minimal.

Non-visual development usually is carried out if a fat client has to be used. For example, component but non-visual development is used for creation of mail systems. The system for enterprise documents storage, "Samara-98", uses the fat client - word processor "Lexicon" developed by Arsenal. Samara-98 development process was fully non-visual.

So, when the system operation logic orders use of ultra thin clients, server side applications should be developed with visual components; when the system requires thin clients, server side applications should be developed in the non-visual way at the base of the low level interface BEAST API Low.

 

Conclusion

BEAST technologies are based on the concept that a universal high performance application server has to be the heart of a major enterprise information system. The server architecture allows construction of scalable information systems, compatible with any legacy software. Component development of server side applications allows cost reductions for system development, debugging and improving. The ultra-thin client concept provides decreasing the TCO of enterprise information system to the minimum.

If an information system requires special functionality or special performance characteristics, non-visual development methods should be applied. There are certain extensions of BEAST base technologies that provide solutions of all information problems of any enterprise – geo information, workflow, event processing, etc. These extensions enable creation of enterprise information systems based on BEAST application server by independent developers. And Epsylon Technologies flexible pricing policy allows the development of such systems with a very low cost.

With BEAST technologies intended for systems simultaneously operating with thousands of user requests, special attention must be paid to security problems. The users of such a system have personal access rights and security profiles, can get information through a coded connection and have to be certain that their work with the system can't violate confidentiality.

The main BEAST concept - application of the telecommunication monitor architecture (that was derived from the mainframe architecture) - allows the continuous development of BEAST technology function (to increase the server performance and functionality) and the application technologies built on this basis - workflow, mail processing, GIS, software for palmtop-computers, hardware secured terminals, OLAP-systems with the special client application (Taxxi), e-commerce systems.

At the same time, BEAST is a universal application server, enabling use of several programming languages and environments for development of server side applications.

We hope to significantly extend the set of BEAST development tools, because BEAST opens radically new opportunities for implementation of global networking projects and development of application software.