|
|
Internet Applications |
The TruthYou must have heard this debate before. Talk filled with buzzwords and confusing acronyms, does anyone know the real truth? The truth is, there really isn't a debate because ActiveX and Java couldn't really meet up in the ring, they are in a separate weight class altogether. OK, a simpler analogy, it is like comparing apples and oranges. Java is a programming language; one that happens to have an API/Compiler built into the interface of most Web Browsers. ActiveX is a component-level technology, a tool for building applications from another language, like perhaps VB or C++ and maybe even Java. So you can see, how comparing them isn't really fair. Why do people compare them? Well, to be honest, you could choose Java or ActiveX to get some of the same results. That is were comparisons come from but there are just simply some things you can do with ActiveX that cannot be done with JAVA. However there are few, if any, things that can be done with JAVA that cannot be done with ActiveX. The one thing you can't do in ActiveX that you can do with Java, is write one set of code and release it. However, that sounds like a larger limitation than it is, the Newest versions of C++ and VB from Microsoft allows for the porting of code to several platforms, thereby saving developers a lot of time. For an Internet application development environment is much easier to address what you can do with ActiveX by saying almost with out limitation, "if you can do it in windows, you can do it on the web". Now, don't you folks at Microsoft steal that, I said it first! With Java, you have limitations of what you can and cannot do at the user end. The main reason is one of security. We do not want some prankster to write a Java applet that deletes files or rids us of important data. Sun incorporated restrictions into the Java Virtual Machine for Internet Browsers that stops certain calls to the local machine, as well as calls to other Web Servers, the later restriction may go away soon. Locking out local access may take a bit longer to resolve. ActiveX gets around this by adding encrypted signatures and delivery of the ActiveX Code via a repository server. After all, if you write something that does damage, it won't be allowed to stay around for long and Software Publishers Signatures will point the finger at the guilty party! Tampering with the code won't work either since the signature is content oriented, that is, part of the signature depends upon the exact content of the original code, change the code and the signature won't match, the control won't run! All of this security is hard to evolve into a programming language, although Sun may be working on this as we speak. (Admission: They are working on JavaBeans, this is the only clue I will give you!) Let us address problem "number one" of the Internet-download time! Java classes are binary code, uncompressed, and take much longer to download than the complied or compress code of ActiveX. To add to this speed, compiling means the ActiveX code runs faster once you get it, the Java Virtual Machine has to compile and launch in order to run, again more speed lost! To make matters worse, ActiveX controls stay on the users machine until they expire or the user deletes them, if you visit the site again you are running before you know it! Java on the other hand MUST download each time you visit a site. |
|
About Active XBasic Concept: ActiveX implementation is simple, it allows a piece of computer code (a program) to run from inside a Web page. Microsoft has published a score of so of Active X controls that do such things as create scrolling marquees, display animated buttons, and handle streaming video. One important ActiveX Control implements a Java virtual machine, allowing IE to download and run Java applets. Other ActiveX Components included with IE 3.0 include extensions to HTML that give you precise control over Web-page layout, an Internet phone/whiteboard system and a VRML viewer. What Active X Isn’tUnlike Java, ActiveX isn’t a programming language. Active X Applications and controls can be written in any programming language that contains interfaces to the ActiveX API, meaning that software developers can create ActiveX controls using mature development tools like Visual C++ Another aspect of the ActiveX System with wide ramifications is that the software components are distributed in native binary form. This ensures that ActiveX Controls will run at full speed. The controls are recompiled for each combination of operating system thus providing operation in most platforms. Microsoft has provided mechanisms on the server and client sides for automatically selecting and downloading the correct version of the control to download. ActiveX Controls do not have the same security-related restrictions that Java applets do. Once a control has been installed on your system, it has the same access as any other applications to the system resources such as files, devices and printers. Instead of restricting ActiveX control capabilities, Microsoft uses a system of "software signatures." Each ActiveX Control downloaded across the Internet is signed with a software developer’s signature that can’t be forged, tampered with, or repudiated. This signature, which uses the same public-key cryptographic techniques used to create secure Web-server certificates, allows users to download ActiveX controls from trusted software developers. To further increase security, ActiveX digital signature incorporate a hash of the control’s contents, preventing the control from being Modified and the software-archive site or tampered with en route. |
|
A problem with Java applets is that Java has no built-in way to protect an applet from unauthorized redistribution. Anyone can hijack on applet by downloading its byte code class file. With a small amount of effort, the applet hijacker can remove identifying information form the class file. |
Microsoft marketing manager for DCOM (the Distributed implementation of the Component Object Model, or COM) argues that ActiveX is the more language-independent technology because its components are binary files that can be created from any language. |
Other Issues to Consider |
|
StandardsMicrosoft marketing manager, James Utzschneider, expects DCOM to quickly become the distributed object standard because "it’s an extension of the ActiveX technology that exists on 80 million desktops today." Because COM already has a larger installation that COBRA (the Common Object Request Broker Architecture created by vendors whose applications implement Java applets), it makes more sense for CORBA technology to move toward compatibility with COM, rather than the other war around, he said. Protocols, PlusWhen you download a Java applet, you download several object-oriented classes. Those classes aren’t compiled for any specific operation machine, so a "virtual machine’ embedded in the browser must interpret them. Since the "virtual Machine" is platform dependent Java is not truly platform dependent, especially when it comes to the workaround necessary to access local computer components are taken into consideration. Applets are designed so that they download each time the user accesses them. The ActiveX component, by contrast, is a self-contained binary file, and the components must be compiled differently for every platform. They are designed to install themselves automatically on the user’s system and to remain there until the user specifically removes them. |
SecurityActiveX and Java take very different approaches to security. Java works to protect the user’s system from harm by curtailing the functionality of Java code-you can't for instance access the client's computer’s file system, of the history of recently visited Web pages. This is the Java "sandbox": each program can safely play within a limited space (the Java virtual machine) while observing strict rules, but can’t affect the outside world (i.e. the computer itself, attached devices, or SmartCard readers). ActiveX applications aren’t limited to playing in the sandbox. Instead, they have free reign over the client computer-if, and only if, the user deems that he trusts the individual or company that generated the code. "You have a lot more flexibility developing ActiveX then you do developing Java applets because of the security issue. Making the DecisionIt is suggested that it makes sense to use ActiveX for local application that can be updated and accessed over the Internet, Java Applets should be used to move around the Internet, because there’re relatively small and cross-platform. Does it really make sense to move your applications around the network? If you don’t move you apps, then the cross-platform capability isn’t really an issue." |
References: Webmaster’s Domain: ActiveX: the Empire Strikes Back by Lincoln C. Stein Web Techniques magazine, December 1996 Object by David F. Carr, Internet World magazine, February 1997 Web Page Workshop: Activating ActiveX by Aaron Weiss Internet World magazine, January 1997 ActiveX vs. Java by Kevin M. Savetz, Web Developer , magazine, January/February 1997
For information on HealthData products and services, please send e-mail to webmaster@hdata.com, phone us at (512)306-1916, or FAX your request to (512)306-1926. Our main site is located at www.hdata.com. This page, and all contents, are Copyright (C) 1998 by HealthData Resources, Inc. All rights reserved.
HDR, INC 1998 VER 4.0