380 likes | 556 Views
Outline. What is ActiveX?The Component Object ModelCurrent 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 ap
E N D
1. An Overview of ActiveX
Charlie KindelArchitect & Chief Technical AdvisorMicrosoft Developer Relations Group
2. Outline What is ActiveX?
The Component Object Model
Current Status
3. 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
4. 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
5. 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
6. 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
7. 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
8. 3 Tier Client/Server
9. 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…
10. 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
11. COM Architecture The Model
The “ORB”
The Services
12. Component Object Model Components, Components, Components
Binary standard
Wire-level standard
13. COM Fundamental PrinciplesWhat 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
14. COM Principles Rigorous Encapsulation
Black box -- no leakage of implementation details
All object manipulation through strict interfaces
Polymorphism
via multiple interfaces per class
“Discoverable”: QueryInterface
15. 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
16. COM Architecture
17. 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
18. 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-v1-spec-01.txt
19. 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
20. Pluggable Transports
COM Runtime ArchitectureFlexible and extensible
21. Pluggable Security Providers
COM Runtime ArchitectureFlexible and extensible
22. 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
23. Efficient and Scalable Low Bandwidth
Header is 28 bytes over DCE-RPC
Keep-Alive Messages bundled for all connections between Machines
24. COM Runtime Architecture Secure - Security is designed and built in. Not an option.
Inherently Distributed
Pluggable
Security
Transports
25. 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
26. 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
27. Structure of the COM “ORB”
28. Core COM Services Security
Lifecycle Management
Type Information (Interface Repository)
Monikers (Naming)
Automation (Dynamic Invocation) Data Transfer
Component Categories
Registry
29. COM Summary The Model
The “ORB”
The Services
30. 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)
31. User Experience: How It Works
32. 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
33. 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
34. Transaction Server“Viper” Runtime executionenvironment for server-based components
Extends COM archi-tecture with transactionsemantics
Provides concurrency,multi-threading, queuing, atomicity, etc.
Makes is easy to encapsulate business logic in middle-tier
35. 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 mid-1997; DCE integration project by end of 1997
36. 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
37. Questions?
38. Thank you!