Content Manager: "Knowledge Base":"Articles"LiveHelp  Back  Reload  Home  Feedback  Help   

Article detail



    Direct Mail  Article List  Print
Active component technology selection for browser based applications 
Category: Articles 
Title: Active component technology selection for browser based applications 
Summary: Active component technology selection for browser based applications 
Keywords: ACTIVE COMPONENT BROWSER ACTIVEX HTML PLUGIN JAVA APPLET 
Others:  Prepared by Vladimir Nekrachevitch on 7/29/2002 
Active component technology selection for browser based applications

Introduction

Due to Internet growth, many software developers are moving their applications to on-line work with a client. Browser based client applications are the most attractive types of Internet applications from a marketing point of view. In this case, the end user without installation of additional software gets full functionality. The Browser plays the role of the client application. There are occasions when the end user cannot fully utilize the standard product, but this will help him to understand the product’s facilities better than from trial version or the documentation, thereby increasing the possibility of a sale.
In an ideal situation, HTML/DHTML and JavaScript will realize full functionality of browser based applications, but this will be an uncommon situation, because these technologies don’t have much facilities, and a developer has to use some active components on the pages - ActiveX controls, Java applets or Plugins.
Further in the article I attempt to present comparative analysis of foregoing types of active components as well as recommendations for using these technologies.

Part 1. Plugin technology brief review

Plugin technology is not new. Since the large-scale products appeared, the partner-firms and just independent programmers expressed the wish to upgrade and maintain them. In this connection many interfaces were developed to support other products in attaching their modules to a ready-to-go product. Unfortunately, these interfaces were not standardized. Every base application or application family (For example, Microsoft Office) has its own interface (API, Application Program Interface) for interaction with plugins. They have almost different instances, but the general idea and the principles of functionality are the same. Within some products such modules are called addins, but it doesn’t change the point, so later the term “plugins” will be used. The life cycle of a plugin consists of the following steps:

-    Module registration in base application;
-    Module initial loading;
-    Creating of plugins instance(s);
-    Deleting of plugins instances(s);
-    Module unloading;
-    Module unregistration.

Plugin modules for Win32 in fact are dynamic libraries (dll library) with some additional external functions for interaction with base application. For example, Netscape plugin must have the following external functions: NP_GetEntryPoints, NP_Initialize and NP_Shutdown. These terms speak for themselves, that these functions support module loading (initialization), unloading and interaction between module and program shell.
As a result of such implementation plugins can provide wide range of functionality. They may or may not have user interface, work as components in the blackboard of base application window and create their own windows, they can interact with base application by all the available message exchange means in operating system; they can use base application resources and create their own ones. The negative side is low level security of base application and operating system on the user’s computer when plugin is used, which is an equal module of the system and has access right almost to all the resources.

Part 2. ActiveX controls

Let’s have a look at ActiveX controls from two aspects. First we can try to understand the place of this technology in the long line of OLE (Object Linking and Embedding) based Microsoft technologies. Then we can try to understand how it works and how we can use it.
In the first case we will go to absorbing and intricate world of marketing games of Microsoft, but the latter is not the goal of the article. Just let’s confine to saying that ActiveX technology is Internet adapted OLE technology, and ActiveX controls is one of the particular methods of its realization.
In the second case we may say that ActiveX control is just dynamic library (dll), which supports COM (Component Object Model is a new name of OLE ideas) interfaces for the interaction with its base application. The second definition is more practical and it reverts us to the Plugin technology. Everything mentioned about plugins also fully concerns ActiveX controls. In other words, ActiveX controls are the same plugins, which support COM and use it for interaction with base application. This is a very common definition, but it is enough for now and for understanding that all advantages and disadvantages of plugins we can repeat for ActiveX controls, that is wide range of functionality and low level security on the user’s computer. The main advantage of ActiveX over plugins is the support of the interface, which is universal for Windows - COM, and it makes easier its writing process and its usage. Nevertheless it’s natural that any advantage is connected with a disadvantage, here it’s nothing else than importability to Unix platform and problems in interaction with different from IE browsers.

Part 3. Java applets

The main distinctive feature of Java applets is that they are run not directly by operating system of the user’s computer, but by so-called java virtual machine (JVM). JVM is a browser’s component and as a result it may be considered to be absolutely trustworthy and so to be safe for the user’s computer. Applet is run inside JVM address space and interacts with operating system only through its transient functions. As far as functionality is concerned the applet has a number of restrictions.
-    Applet cannot read information from local disks of the user’s computer and save its own information on local disks;
-    Applet cannot have interconnection with any other Internet server except the one from which it was loaded;
-    Applet does not have direct access to the operating system functions;
-    Applet cannot interact with any other program on the user’s computer;
-    All the independent elements of the user’s interface (text boxes), created by the applet, will be specially labeled as “applet window”.

Another considerable applet’s disadvantage is slow response and heightened demands as for the user’s computer resources, though today it’s a problem only for really serious applications, as low pricing of computer configuration allows developers to make rather high demands of the user’s computer.
Thus, applets is a rather safe choice, but it has some serious restrictions as well, which sometimes cannot allow a developer to realize full, necessary for an application functionality.

Part 4. Comparative analysis of active components development technologies

Let’s try to highlight the main demands made by a client as for browser-based products. In other words, we are going to enumerate the advantages of the application of the kind.
First the preinstallation should be mentioned. A would-be user having entered the company’s site can install the full or demonstration product’s version and operate on it. Another advantage is the well-known application user interface. A client does not have to study a new covering; he is working in a usual environment. Such an advantage supports an on-line mode. Such a mode implies the possibility of obtaining the latest information from the Internet and presenting it to a user as an application. And finally there is demands lowering as for a user’s software and hardware, as the main charge in data processing is moved to the server. The foregoing advantages in their turn are also the demands made by a client concerning the product. A developer has to carry them out, and the right choice of the product’s realization technology is a guaranty of success in this not easy task.
As it was mentioned before, any advantages are always connected with disadvantages. And it’s not always possible to satisfy all the client’s demands. Let’s point out the compromises, which will inevitably be made while the browser based applications development:
-    Increased security level of a client’s information creates some considerable restrictions concerning the product’s functionality;
-    Transference to the server of the main charge while application realization often leads to network traffic rise;
-    Increase of demands concerning the server part of an application; spending more time on clients’ demands processing, that is the slow down working process of a client’s application;
-    The demand of the continuous staying in on-line mode decreases the product’s attraction, but the off-line mode increases the expenditures on the development and makes a client’s application more complicated;
-    The demand of a user’s interface standard type makes the product featureless and in many cases it just decreases ease of usage; and in its turn creation of such a peculiar interface increases development expenditures and extend the program.


Drawing the conclusion of the aforesaid information, we can say, that there is nothing perfect in the world and we should make choice of what is really available. Let’s hallmark the choice criteria:
-    The full realization of the demanded functionality;
-    Development time and money outgoing;
-    Compatibility with different browser’s types and versions;
-    Working with different operating systems;
-    User’s security support.

Let’s consider each of them in details.

Thus, if the application should have extensive functionality configuration, moreover which is realizable on the user’s computer (local disk storage; the close interaction with operating system, device handler, etc.), then we should forget about many security aspects and there is an alternative of Plugins and ActiveX.
In case the server is the most charged one and most of attention is paid to the security and wide range of platforms, then Java applets can get rid of the security and browsers’ compatibility with operating systems problems.
Development expenditures wholly depend on a developer’s company staff skills and they are almost equal. The products’ cost calculation used while active components development is beyond the questions viewed in this article.
In closing, a point of compatibility with different types of browsers and operating systems should be covered in details. Any favorable solution of this question increases the product’s success with customers. Whereas it is acceptable but not advisable for the corporative systems to use the certain browser and operating system on the user’s computers, it is extremely undesirable for the program products, which are developed for general use. Today the lowest-sufficient support for the browser based applications is IE (Internet Explorer, Microsoft) and NC (Netscape Commander, AOL) one, from the version 4 and higher, all the operating systems support for Windows platform, and the support of Unix/Linux, compatible with operating system, is extremely desirable. Following this criterion, ActiveX yields to other technologies. Being the Microsoft product, ActiveX controls can interact only with IE and only on Windows compatible platforms. It is possible to use ActiveX controls in NC, using an additional plugin module (for example, Esker’s one; www.esker.com), but it is a rather controversial solution from an expedient point of view. Java applets are fully compatible with up-to-date browsers and can work on different operating systems. Plugin support is also realized in most of browsers, but plugins’ versions for Windows and Unix/Linux platforms most likely will be developed independently. Only the simplest code can be compatible, but it looks more like an exception, but not a rule.
As it was mentioned before, the productivity issues are not crucial, but disputable. Among the mentioned technologies the slowest and the most exacting to computer resources are Java applets, then ActiveX controls come, and the most rapid are Plugins modules, which are not hampered by any additional technological surveys.
Figure 1 shows algorithm for active component technology selection.

img=www.vladicon.com/images/art_sch.gif


This article has been published in the ITtoolbox C++ Knowledge Base
( http://C.ITtoolbox.com ), the ITtoolbox Java Technologies Knowledge
Base ( http://Java.ITtoolbox.com/ ) and the ITtoolbox Visual Basic
Knowledge Base ( http://VisualBasic.ITtoolbox.com/ ).

Here is the exact URL for this publication:
http://C.ITtoolbox.com/documents/document.asp?I=1656

 

  Copyright © 2000-2018 FOSS Software Inc. All rights reserved. WWW Support, v 2.2.7