Research Presentation for CS616 By Hai Huang April, 2001 ActiveX and The Web ActiveX and The Web Architectural & Technical Overview Architectural & Technical Overview
Dec 20, 2015
Research Presentation for CS616By Hai HuangApril, 2001
ActiveX and The WebActiveX and The WebArchitectural & Technical OverviewArchitectural & Technical Overview
What is ActiveX?
Elements of ActiveX
COM/DCOM, Controls, Java Applets,
Documents, Scripting
ActiveX and Internet Explorer
Building the browser from reusable components
OutlineOutline
ActiveXActiveX
1. ActiveX is a marketing name for a set of technologies and services, all based on the Component Object Model (COM).
2. ActiveX is a technology built on the COM that allows the developer to create objects or controls that can be used to "activate" content on the World Wide Web.
3. ActiveX enable software components to interact with one another, regardless of the language in which the components were created.
4. Many popular Web sites contain ActiveX controls to provide user interface objects such as list boxes and buttons.
JavaApplet
JavaApplet
JavaScript™JavaScript™
VBScriptVBScriptActiveXControl
ActiveXControl
HTMLDocument
HTMLDocument
Non-HTMLDocument
Non-HTMLDocument
ActiveX Bridges the “Islands”ActiveX Bridges the “Islands” Makes it easy to integrate and reuse any componentMakes it easy to integrate and reuse any component
Software Developers - want to easily create, reuse and integrate software components
Web Producers - want to build rich, engaging Web sites quickly and easily End Users - want an intriguing, exciting experience
DevelopersDevelopers
WebWebProducersProducers
End UsersEnd Users
Motivation For ActiveXMotivation For ActiveXBring Component-based Development to the InternetBring Component-based Development to the Internet
Component-based Web Development
Editing and Editing and Layout ToolsLayout Tools Content creationContent creation Visual content layoutVisual content layout Integrated scriptingIntegrated scripting One button publishingOne button publishing Content managementContent management
ActiveX ControlsActiveX Controls
Pre-fabricated componentsPre-fabricated components Packaged by programmersPackaged by programmers Components for animation, Components for animation, video, sound, 3D, etc. video, sound, 3D, etc. Include visual andInclude visual and design-time behavior design-time behavior
High Impact High Impact ContentContent
EntertainmentEntertainment CommerceCommerce Information Information gathering gathering
HTML contentHTML content(text and images)(text and images)
HTTP HTTP serverserver
HTTPHTTP
ActiveX Control ActiveX Control or Java applet or Java applet downloaddownload
ActiveX Control ActiveX Control or Java appletor Java applet
COM objects or COM objects or ActiveX ControlsActiveX Controls
(D)COM(D)COM
COM objects or COM objects or ActiveX ControlsActiveX Controls
ActiveX ScriptActiveX Script
User Experience: How It WorksUser Experience: How It Works
Component Object Model (COM)Component Object Model (COM)Standard component packagingStandard component packaging
Windows®Windows® UNIX®UNIX®Macintosh®Macintosh®
Distributed COMDistributed COMInternet/distributed computingInternet/distributed computing
Components and ServicesComponents and ServicesURLs, hyperlinking, browser frame, HTML, Java VM, etc.URLs, hyperlinking, browser frame, HTML, Java VM, etc.
Controls and AppletsControls and AppletsC++, Delphi®, Java, Visual Basic®, etc.C++, Delphi®, Java, Visual Basic®, etc.
ScriptingScriptingVisual Basic, Scripting Edition, JScript, Tck/Tk, etc.Visual Basic, Scripting Edition, JScript, Tck/Tk, etc.
Web Pages, Documents, and Applications/ContainersWeb Pages, Documents, and Applications/Containers
Elements Of ActiveXElements Of ActiveX
COMCOM COM is Microsoft's framework for developing and supporting
program component objects. COM is aimed at providing similar capabilities to those defined
in CORBA, a framework for the interoperation of distributed objects in a network that is supported by other major companies in the computer industry.
Whereas Microsoft's OLE provides services for the compound document that users see on their display, COM provides the underlying services of interface negotiation, life cycle management, licensing, and event services
COM includes COM+, DCOM, ActiveX interfaces and programming tools.
The COM ArchitectureA scaleable programming model
In the sameIn the same
process process Fast, direct Fast, direct function callsfunction calls
On the same On the same machinemachine
Fast, secure Fast, secure IPCIPC Across machinesAcross machinesSecure, reliable Secure, reliable and flexible DCE-and flexible DCE-RPC based RPC based DCOMDCOM protocolprotocol
ClientClientComponentComponent
ComponentComponent
ComponentComponent
ClientClient
ClientClient
COMCOM
COMCOMDCERPCCOMCOM
Client ProcessClient Process
Client MachineClient Machine
Server ProcessServer Process
Server MachineServer Machine
ServerServerClientClient
COM/DCOMCOM/DCOMLets ActiveX components run anywhereLets ActiveX components run anywhere
CO
MC
OM
Remote object onRemote object onany server any server
Object runningObject runningon clienton client
Object runningObject runningon clienton client
COM
Pluggable Transports
COMCOMClientClient
COM Runtime ArchitectureCOM Runtime Architecture
Component
CO
M R
unti
me
Server MachineClient Machine
TCP, UDP
SPX,IPX
Net BUI
HTTP
“Falcon”CO
M R
unti
me
Proxy
Other Component
Pluggable Security Providers
COMCOMClientClient
COM Runtime ArchitectureCOM Runtime Architecture
Component
CO
M R
unti
me
Server MachineClient Machine
DCE
NT Kerberos
SSL, Certs.
NTLM
CO
M R
unti
me
Proxy
Other Component
Controls are components that can be manipulated visually by GUI development tools
Distinction between design-time and run-time user interface
Code that makes the Web come alive
Programmable by other components and scripts
What Are ActiveX Controls?What Are ActiveX Controls?
ActiveX controlActiveX control ActiveX control can be created in any programming language that
recognizes Microsoft's Component Object Model (COM). ActiveX control is a component or self-contained program package that
can be created and reused by many applications in the same computer or in a distributed network (DCOM). In implementation, an it is a Dynamic Link Library (DLL) module.
ActiveX control runs in a container, an application program that uses the COM program interfaces. This re-useable component approach to application development reduces development time and improves program capability and quality.
Windows 95,98/NT application development programs such as Powerbuilder and Microsoft Access take advantage of ActiveX controls
An ActiveX control is a user interface element created using ActiveX technology. ActiveX controls are small, fast, and powerful, and make it easy to integrate and reuse software components.
ActiveX Control Pad ActiveX Control Pad
Microsoft® Internet Explorer 3.x and ActiveX™ technologies provide a smart, compelling Web development platform: Microsoft ActiveX Control Pad.
The ActiveX Control Pad is an authoring tool that lets you add ActiveX controls and ActiveX scripting ( VBScript or JavaScript ) to your HTML pages with point and click ease.
Using the ActiveX Control Pad, you can easily author pages that include advanced layout and multimedia features--such as exact object placement, object layering, and transparency effects.
What the ActiveX Control Pad DoesWhat the ActiveX Control Pad Does
With the ActiveX Control Pad, you can create interactive, multimedia Web sites and applications that go beyond the capabilities of standard HTML. You can create Web pages that combine HTML code, ActiveX controls, HTML Layouts, and VBScript or JavaScript.
The ActiveX Control Pad uses an HTML file as the master container for each Web page you create. You can write and edit HTML directly using the HTML Source Editor.
You can add a single ActiveX control, such as a TextBox or a ScrollBar, onto an HTML page using the ActiveX Control Editor. The ActiveX Control Editor lets you set properties for the control, then places an <OBJECT> tag into HTML at the insertion point.
The ActiveX Control Pad introduces the concept of the HTML Layout to Web design. An HTML Layout is a WYSIWYG drawing board to which you can add multiple controls. You can draw controls in the precise sizes and locations you want, group and align them, and even put one control on top of another.
The ActiveX Control Pad saves each HTML Layout in a file format with an .alx extension. You insert the HTML Layout into HTML, which incorporates the HTML Layout at run time. You can use multiple HTML Layouts on a single Web page.
Using the Script Wizard, you can assign events and actions to each of the controls you’ve added. You can also create custom scripts in VBScript or JavaScript. The Script Wizard then inserts the appropriate <SCRIPT> tag into HTML.
The result for each Web page is a single HTML file that, at run time, can display all of the elements described above.
Mapping Controls To HTML
Use the W3C <OBJECT> tag <EMBED> also supported for plug-ins ID = name used by scripting language CLASSID=Globally unique identifier for the ActiveX Control CODEBASE = Control to download <PARAM> = Properties of the Control
<OBJECT<OBJECTALIGN=CENTER CLASSID="clsid:99B42120-6EC7-11CF-A6C7-ALIGN=CENTER CLASSID="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2" WIDTH=200 HEIGHT=200 ID=MyObject 00AA00A47DD2" WIDTH=200 HEIGHT=200 ID=MyObject CODEBASE="http://foo/bar/myoc.ocx#ver=4,70,0,1062">CODEBASE="http://foo/bar/myoc.ocx#ver=4,70,0,1062"><PARAM NAME="ScrollStyleX" VALUE="Circular"><PARAM NAME="ScrollStyleX" VALUE="Circular"></OBJECT></OBJECT>
ActiveX and JavaActiveX and JavaWhat is Java?What is Java?
Programming language Virtual machine/Byte codes
Virtual Virtual Machine (VM)Machine (VM)
Internet BrowserInternet Browser
Java Development Java Development ToolTool
JavaJavaAppletApplet
ActiveX Complements JavaActiveX Complements Java
ActiveX and Java DO NOT COMPETE!ActiveX IS a set of integration technologies
– Every Java object IS an ActiveX object!
ActiveX is NOT– A language– A platform– An operating system
How Does Java Fit With ActiveX?How Does Java Fit With ActiveX?
Java VM is an ActiveX component– Run Java applets in any application, not just
browser
Java component is an ActiveX component Automatic integration of Java applets with other
languages and scripts– Lets Java applets talk to other Java applets– Lets Java applets talk to ActiveX components– Gives Java applets access to all PC functionality
ActiveXActiveXControlControl
(C++, VB, etc.)(C++, VB, etc.)
ActiveXActiveXScriptingScripting
(VBScript, JScript, (VBScript, JScript, etc.)etc.)
JavaJavaappletapplet
ActiveX Java VM
SecurelySecurelyinvoke methodsinvoke methods
How Does Java Fit With ActiveX?How Does Java Fit With ActiveX?
Microsoft’s Java CommitmentMicrosoft’s Java Commitment Microsoft is hard core about Java the language
– Reference Java VM for Windows– Fastest Just-in-Time Java Compiler– Visual J++ development tool– Java support on the server
Windows is the best execution environment for Java applets– Fastest safest, most functional
Microsoft will compete with Java the operating system
What Are ActiveX Documents?
Lets users view and edit non-HTML documents through the browser
ActiveX Documents Use the entire client area Provides printing support Menu merging Toolbars Integrates existing documents into browser or any other application
What Is ActiveX Scripting?What Is ActiveX Scripting?
Mechanism for rapid “wiring” together of diverse set of components
Supports any scripting language - VBScript, JScript, Perl, PowerScript, Tck/Tk, etc.
Scripting languages are the most broadly accessible development tools
Scripting plus HTML is the fastest and easiest cross platform solution
Internet Explorer 3.0 ships with VBScript, JScript runtimes
Scripting: A Simple SolutionPioneered by Visual Basic
Objects expose events for the purpose of coordinating their activity with the rest of the world Script code can be attached to an object’s events to customize behavior - this is “scripting”
ButtonButtonObjectObjectButtonButtonObjectObject
ClickClickEventEventClickClickEventEvent
Sub Button_ClickSub Button_Click MsgBox “Hello world”MsgBox “Hello world”End SubEnd Sub
Sub Button_ClickSub Button_Click MsgBox “Hello world”MsgBox “Hello world”End SubEnd Sub
ContainersContainers
Office BinderOffice BinderOffice BinderOffice Binder
MosaicMosaicMosaicMosaic
Internet ExplorerInternet ExplorerInternet ExplorerInternet Explorer
Windows ShellWindows ShellWindows ShellWindows Shell
Architecture OverviewArchitecture Overview
Internet ExplorerInternet ExplorerInternet ExplorerInternet Explorer
HTMLHTMLHTMLHTML
VRMLVRMLVRMLVRML
WordWordWordWord
VisioVisioVisioVisio
MicroGrafxMicroGrafxMicroGrafxMicroGrafx
ActiveX documentsActiveX documents
HTMLHTMLHTMLHTML
VRMLVRMLVRMLVRML
MPEGMPEGMPEGMPEG
VRMLVRMLVRMLVRML
RealAudioRealAudioRealAudioRealAudio
HTMLHTMLHTMLHTML
ActiveX controlsActiveX controls
ShockwaveShockwaveShockwaveShockwave ODBCODBCODBCODBC
VRMLVRMLVRMLVRML HTMLHTMLHTMLHTML
Visual Basic Visual Basic ScriptScript
Visual Basic Visual Basic ScriptScript
JavaScriptJavaScriptJavaScriptJavaScript
REXXREXXREXXREXX
ActiveX scriptingActiveX scripting
PERLPERLPERLPERL
Visual BasicVisual BasicScriptScript
Visual BasicVisual BasicScriptScript
JavaScriptJavaScriptJavaScriptJavaScript
ServicesServices URL resolutionURL resolutionHTTP, FTPHTTP, FTP
URL resolutionURL resolutionHTTP, FTPHTTP, FTP
HyperlinkingHyperlinkingHistoryHistory
FavoritesFavorites
HyperlinkingHyperlinkingHistoryHistory
FavoritesFavorites
Code downloadCode downloadand securityand security
Code downloadCode downloadand securityand security