ActiveX Overview

Download Report

Transcript ActiveX Overview

An Overview of ActiveX
Charlie Kindel
Architect & Chief Technical Advisor
Microsoft Developer Relations Group
Outline
What is ActiveX?
The Component Object Model
Current Status
What is ActiveX?
A marketing name for a set of
technologies and services, all based on
the Component Object Model (COM)
It’s just COM!
“DCOM” is just COM with a longer wire
Wanted: Software
Components
“Active wave” requires applications, content,
operating systems, networking, distributed
services to be integrated as never before
Monolithic solutions won’t work
No one vendor or one team of programmers can
move fast enough
Need to leverage others’ work and to build and ship
smaller pieces incrementally
Need to evolve smaller pieces asynchronously
without sacrificing the whole
Solutions…
“WOSA” architecture was Microsoft’s 2nd
generation component technology
API (often with different “levels”)
System (Microsoft) -supplied intermediary DLL with
out-of-band management routines
SPI for real components/servers to plug in
“underneath”
Works great (e.g. ODBC) but has crucial
limitations
No safe decentralized extension or evolution
COM: 3rd Generation
Components
Unified programming model
Between OS and apps — unification of system
handle-based “objects” and variety of app models
Between in-process and remote interaction —
unification of DLLs and RPC
Standards for binary deployment, connection
Software pieces or “components” find and connect to
each other through clearly defined interfaces
Solves fundamental problems of software
integration, independent evolution
Examples
Manufacturing process control
Controls on the Interent/Intranet client
Component based server applications
Active Server Pages
Microsoft Transaction Server (Viper)
Multi-tier “client/server” applications
3 Tier Client/Server
“Desktop” - Compound Documents, Controls, Scripting
H
T
T
P
C
O
M
Mid-Tier - HTTP, Biz Objects, Active Server Pages, Scripting
C
O
M
SNA
etc...
CORBA
Third-Tier - Databases, Legacy Data
ActiveX Builds on COM
COM’s initial thrust: integrating desktop
applications with OLE
COM technology is generically useful, being
applied to a range of other areas
Inherently distributed
1000’s of shipping, commercially
available, products.
World class development tools
VB, VC, VJ, Delphi, PowerSoft…
Who Benefits?
Independent software vendors
Build components in any language, any development
process
Sell independently or in bundles
No central coordination required
Corporate developers
Buy from competitive market rather than build
Large projects benefit from component discipline
Anyone doing software integration
COM Architecture
The Model
The “ORB”
The Services
Component Object Model
Components, Components, Components
Binary standard
Wire-level standard
COM Fundamental Principles
What the designers of COM were striving for...
Binary components
Any programming language
Any location (in-process, cross-process,
cross-machine)
No centralized authority
Zero sacrifice in-proc performance
Simplest model possible
Enable extensibility and adaptability
COM Principles
Rigorous Encapsulation
Black box -- no leakage of implementation
details
All object manipulation through strict
interfaces
Polymorphism
IUnknown
via multiple interfaces per class
“Discoverable”: QueryInterface
IDispatch
IRobot
COM
Object
Isn’t COM about “Objects”?
No … COM sets out to solve system software
problems that arise when hooking up randomly
evolving combinations of binaries
Yes … from the perspective of these new kinds
of objects also called “components”
Traditional object concepts used (but adapted) to
solve a different (but overlapping) set of
requirements in a different problem space
Component services can be called more naturally
from O-O languages
Systems OT complements language OT
COM Architecture
Client
COM
run time
Security
provider
COM
run time
Security
provider
RPC
Inprocess
Protocol stack
LPC
Component
RPC
Protocol stack
Local
DCOM networkprotocol
Remote
Distributed COM
Just COM “with a longer wire”
All COM components communicate in the
same way
on the same machine
In-process, Out-of-process
across a Local Area Network
across a Wide Area Network
across the Internet
Same tools, knowledge, code
Distributed COM
Wire Protocol
Based on DCE RPC Specification
Interoperable with OSF DCE RPC implementations
We call it “ORPC”
Efficient and Scalable
Documented in Internet-Draft
ftp://ietf.org/internet-drafts/draft-brown-dcom-v1spec-01.txt
The COM “ORB”
The “model” is about how the technology
is used
The “ORB” is how it’s implemented
We call it the COM Runtime
COM Runtime Architecture
Flexible and extensible
Pluggable Transports
Proxy
Other
Component
TCP, UDP
SPX,IPX
Net BUI
HTTP
“Falcon”
COM Runtime
COM
Client
Server Machine
COM Runtime
Client Machine
Component
COM Runtime Architecture
Flexible and extensible
Pluggable Security Providers
Proxy
Other
Component
NTLM
SSL, Certs.
NT Kerberos
DCE
COM Runtime
COM
Client
Server Machine
COM Runtime
Client Machine
Component
Efficient and Scalable
 Multiplexing - Single Port per-protocol, per server
process, regardless of # of objects
 Scalable - Connection-Less Protocols like UDP Preferred
 Established Connection-Oriented (TCP) Sessions Reused
by same client
Client
Client
Server
Efficient and Scalable
Low Bandwidth
Header is 28 bytes over DCE-RPC
Keep-Alive Messages bundled for all connections
between Machines
Client Machine
Client #1
Client #2
Keep-Alive Traffic
for all
connections
Server Machine
Server
COM Runtime Architecture
Secure - Security is designed and built in.
Not an option.
Inherently Distributed
Pluggable
Security
Transports
The COM “ORB”
Highly debugged and tuned
The COM Runtime first shipped in 1993
Used by 1000s of commercial applications
Available today on Win95, NT, Solaris
DEC UNIX, HPUX, Linux, MVS, VMS, Mac,
and others rolling out this year
The COM “ORB”
Full source code licensable from The Open
Group (formerly OSF and X/Open)
With conformance test suite
Free! (Built-into Win32 Platforms)
No separate client access license or
expensive “developer” version
Structure of the COM “ORB”
Components and Applications
The COM Runtime
Core Services
(Automation, Monikers, Storage, ComCat, Data Transfer, IR)
COM and Distributed COM
Registry
MS-RPC
Pluggable Security
(SSPI)
Pluggable Transports
TCP
UDP
IPX
SPX
HTTP “Falcon”
NTLM DCE
Kerberos ETC...
Core COM Services
Security
Lifecycle Management
Type Information
(Interface Repository)
Monikers (Naming)
Automation (Dynamic
Invocation)
Data Transfer
Component
Categories
Registry
COM Summary
The Model
The “ORB”
The Services
So What is ActiveX?
A marketing name for a set of
technologies and services, all based on
COM (the model, the “ORB”, and the
services)
User Experience: How It
Works
HTML content
(text and images)
ActiveX Control
or Java applet
download
HTTP
server
HTTP
ActiveX Control
or Java applet
(D)COM
ActiveX Script
Internet Explorer 3.x/4.x
COM objects or
ActiveX Controls
COM objects or
ActiveX Controls
Active Components
ActiveX Controls
Are COM components with “design-time” UI
Can be written in C++, Java, VB, Delphi, ...
Self-registering
Optimized for download and execute
Java applets
Simple applications
Work on both Active Client or Server
Can talk indirectly over HTTP or directly over COM
Microsoft Java VM
Java VM is a COM component
Use Java classes from any
application/language, not just browser/Java
Any Java object is a COM object
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
Transaction Server
“Viper”
Runtime execution
environment for serverbased components
Extends COM architecture with transaction
semantics
Provides concurrency,
multi-threading, queuing, atomicity, etc.
Makes is easy to encapsulate business logic in
middle-tier
ActiveX Core Product Status
“D”COM first released in Windows NT 4.0,
August 1996
Win95 version released January 1997
Solaris 2.x release imminent
Other UNICES, MVS, and VMS to follow
Macintosh version in H1 1997
Active Group source licenses available by mid1997; DCE integration project by end of 1997
Resources
 Great Overview Book
Understanding ActiveX and OLE (by David Chappell)
 Implementations
Win95 version
<http://www.microsoft.com/oledev/>
Solaris and other non-Win32 versions
<http://www.sagus.com/>
 Technical info
<http://www.microsoft.com/workshop/> and
<http://www.microsoft.com/oledev/>
Inside COM (by Dale Rogerson)
 Mailing list
http://www.microsoft.com/workshop/resources/email.htm
Questions?
Thank you!
™