Date post: | 28-Jan-2016 |
Category: |
Documents |
Upload: | shanna-rose |
View: | 224 times |
Download: | 0 times |
JavaBeans vs. ActiveXJavaBeans vs. ActiveX
Noah MendelsohnNoah Mendelsohn
Lotus Development Corp.Lotus Development Corp.
August 27, 1997August 27, 1997
™ ™
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page 1
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
AgendaAgenda
Why software components?Why software components?
Histories of ActiveX and JavaBeansHistories of ActiveX and JavaBeans
Features of Component ModelsFeatures of Component Models
JavaBeans and ActiveX ComparedJavaBeans and ActiveX Compared
Two Visions for JavaTwo Visions for Java
Conclusion: Making the choiceConclusion: Making the choice
2
PageNoah Mendelsohn Session JT2: JavaBeans vs. ActiveX
Why Software Components?
3
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Software ComponentsSoftware Components
The promise: a 2nd industrial revolutionThe promise: a 2nd industrial revolution
Reuse: same components used in many Reuse: same components used in many types of applicationtypes of application
Cross-vendor integrationCross-vendor integration
Powerful tools: "assembly" of Powerful tools: "assembly" of components replaces programmingcomponents replaces programming
4
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Builder components & widgets (e.g. for Builder components & widgets (e.g. for building query applications)building query applications)
Compound documentCompound document
ServerServer
ƒ Server extensionServer extensionƒ Computational & business logicComputational & business logicƒ TransactionalTransactional
Your own special purpose componentsYour own special purpose components
Types of Components & Types of Components & ApplicationsApplications
5
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Building with PartsBuilding with Parts
6
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Building with PartsBuilding with Parts
7
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Characteristics of Characteristics of Interchangeable PartsInterchangeable Parts
The value of a component rises with the The value of a component rises with the number of places you can use itnumber of places you can use it
Tight tolerances & complete specificationTight tolerances & complete specification
Well characterized environmentWell characterized environment
"Architecture" for the parts system: the "Architecture" for the parts system: the key to design, assembly & inventorykey to design, assembly & inventory
ƒ part number, weight, etc.part number, weight, etc.
8
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Standard "plumbing" supports generic Standard "plumbing" supports generic assembly toolsassembly tools
Key to interchangeability & reuseKey to interchangeability & reuse
Cross-vendor integrationCross-vendor integration
Inventory management: repositoriesInventory management: repositories
The value of a component The value of a component architecturearchitecture rises with the number of places you can rises with the number of places you can use ituse it
Why a Software Component Why a Software Component ArchitectureArchitecture??
9
PageNoah Mendelsohn Session JT2: JavaBeans vs. ActiveX
Introduction to ActiveX
10
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
1991 1997
ActiveX
OLE 1.0
Evolution of OLE and ActiveXEvolution of OLE and ActiveX
OLE 2.0
1993
OCX
1994
11
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
> 5 years experience> 5 years experience
Very broad acceptance on WindowsVery broad acceptance on Windows
IE Browser & ActiveX Web componentsIE Browser & ActiveX Web components
Broad range of tools and applications Broad range of tools and applications from many vendorsfrom many vendors
http://www.microsoft.com/activeplatform/http://www.microsoft.com/activeplatform/
ActiveX "core technology" offered as ActiveX "core technology" offered as standardstandard
OLE & ActiveX StatusOLE & ActiveX Status
12
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Interactive ActiveXComponent
Win 32 API'sCOM
(ActiveX Core Technologies)
ServerComponent
Client Side ActiveX API's
Is ActiveX an Open Standard?Is ActiveX an Open Standard?
13
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Interactive ActiveXComponent
Win 32 API'sClient Side ActiveX
API's
Is ActiveX an Open Standard?Is ActiveX an Open Standard?
COM(ActiveX Core Technologies)
ServerComponent
14
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
NT
Unix
MVS
Other
Is ActiveX an Open Standard?Is ActiveX an Open Standard?
15
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
NT
Unix
MVS
Other
ActiveX Core
Technology
Is ActiveX an Open Standard?Is ActiveX an Open Standard?
15
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
NT
Unix
MVS
Other
ActiveX Core
Technology
ProprietaryActiveX Client
API's
Is ActiveX an Open Standard?Is ActiveX an Open Standard?
15
PageNoah Mendelsohn Session JT2: JavaBeans vs. ActiveX
Introduction to JavaBeans
16
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Why Beans?Why Beans?The value of a component rises with the The value of a component rises with the number of places you can use itnumber of places you can use it
ƒ Java: Java: "write once, compile once, deploy once, run "write once, compile once, deploy once, run anywhere"anywhere"
ƒ Beans: Beans: universal componentsuniversal components
The value of a component The value of a component architecturearchitecture rises rises with the number of places you can use itwith the number of places you can use it
ƒ All traditional client & server platformsAll traditional client & server platformsƒ The natural component model for systems of the future The natural component model for systems of the future
(NC, palmtop, cell phone, etc.)(NC, palmtop, cell phone, etc.)ƒ The natural component model for the Web.The natural component model for the Web.
17
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Brief History of JavaBeansBrief History of JavaBeans
June 1996: JavaSoft & partners June 1996: JavaSoft & partners announce JavaBeans initiativeannounce JavaBeans initiative
Fall 1996: Beans 1.00 SpecificationFall 1996: Beans 1.00 Specification
January 1997: Beans ships with JDK 1.1January 1997: Beans ships with JDK 1.1
June 1997 announcements June 1997 announcements
ƒ Enterprise Beans announcedEnterprise Beans announcedƒ Lotus Infobus becomes part of BeansLotus Infobus becomes part of Beans
18
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Beans HighlightsBeans Highlights
Integrated w/Java Integrated w/Java languagelanguage
Simplicity: any Java Simplicity: any Java class or applet is a class or applet is a BeanBean
Limitation: Java onlyLimitation: Java only
Write once, run Write once, run anywhereanywhere
Medium/fine grain Medium/fine grain components (like components (like OCX)OCX)
Targets: Targets:
ƒ Now: Web, Java Now: Web, Java buildersbuilders
ƒ Soon: Server & Soon: Server & Transaction ProcessingTransaction Processing
ActiveX interop from ActiveX interop from Sun & MicrosoftSun & Microsoft
19
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Microsoft Supports JavaBeansMicrosoft Supports JavaBeans
1997: Microsoft endorses JavaBeans1997: Microsoft endorses JavaBeans
Beans automatically exposed as ActiveX Beans automatically exposed as ActiveX componentscomponents
Beans can embed ActiveX components Beans can embed ActiveX components (on Windows)(on Windows)
Microsoft tools build Beans (but are they Microsoft tools build Beans (but are they portable?)portable?)
20
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
JavaBeans StatusJavaBeans Status
Broad industry acceptanceBroad industry acceptance
StrategicStrategic endorsements by Sun, endorsements by Sun, IBM/Lotus, Netscape, Oracle IBM/Lotus, Netscape, Oracle
Corba/Beans integrationCorba/Beans integration
Broad range of development toolsBroad range of development tools
21
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Is JavaBeans Open?Is JavaBeans Open?
Specification owned by SunSpecification owned by Sun
Partnership with industry leadersPartnership with industry leaders
Public reviewsPublic reviews
See: http://splash.javasoft.com/beans/See: http://splash.javasoft.com/beans/
22
PageNoah Mendelsohn Session JT2: JavaBeans vs. ActiveX
Features of Component Architectures
23
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Architecture Feature SummaryArchitecture Feature Summary
Programming Programming language(s)language(s)
Portability modelPortability model
Security & code Security & code downloaddownload
Object ModelObject Model
ScriptingScripting
Data interchangeData interchange
PersistencePersistence
UI MergingUI Merging
Identification / Identification / Registration / Registration / ActivationActivation
24
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Programming LanguageProgramming Language
What language do you use to write components?
ActiveX
C, C++BasicJavaCoboletc.
JavaBeans
Java Only
25
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Portability ModelPortability Model
How portable is the source and object code for a component?
Compiles to platform code (except Java)
Calls platform API's (usually)
Source may be portable.DLL usually not
ActiveX
Compiles to class fileCommon core Java API's on all platforms
Same bean runs everywhere: common source & object code
JavaBeans
26
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
How is untrusted code moved through a network and executed?
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) code
How is untrusted code moved through a network and executed?
ActiveX
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) codeCode signing: establishes trust
How is untrusted code moved through a network and executed?
ActiveX
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) codeCode signing: establishes trust
Java ActiveX's use Java security, but..
How is untrusted code moved through a network and executed?
ActiveX
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) codeCode signing: establishes trust
Java ActiveX's use Java security, but..
JDirect encourages use of platform code
How is untrusted code moved through a network and executed?
ActiveX
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) codeCode signing: establishes trust
Java ActiveX's use Java security, but..
JDirect encourages use of platform code
Java byte codes
How is untrusted code moved through a network and executed?
ActiveX JavaBeans
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) codeCode signing: establishes trust
Java ActiveX's use Java security, but..
JDirect encourages use of platform code
Java byte codesJava sandbox or 1.2 domains
How is untrusted code moved through a network and executed?
ActiveX JavaBeans
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) codeCode signing: establishes trust
Java ActiveX's use Java security, but..
JDirect encourages use of platform code
Java byte codesJava sandbox or 1.2 domains
Optional code signing establishes trust
How is untrusted code moved through a network and executed?
ActiveX JavaBeans
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Security & Code DownloadSecurity & Code Download
Native (e.g. Intel) codeCode signing: establishes trust
Java ActiveX's use Java security, but..
JDirect encourages use of platform code
Java byte codesJava sandbox or 1.2 domains
Optional code signing establishes trust
Java API's designed for security
How is untrusted code moved through a network and executed?
ActiveX JavaBeans
27
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Object ModelObject Model
How are component API's structured?
Properties
Text = "Click Me"
IsClicked = False
Events
ClickDown
Methods
Redraw
Click Me!
A Button Component
28
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Object ModelObject Model
How are component API's structured?
Push Me!
Properties
Text = "Click Me"
IsClicked = False
A Button Component
PushButton pb = new PushButton;
PB.setText("Push Me!");
29
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Object ModelObject Model
ActiveX
Component Object Model (COM)
JavaBeans
Java language extended for Bean Properties / Methods / Events
CORBA integrationRMI
How are component API's structured?
30
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Properties
Text = "Click Me"
IsClicked = False
Events
ClickDown
Methods
Redraw
Click Up
BeginAnimation
Object ModelObject Model
How are component API's structured?How are components "subclassed"?
Click Me!
A BetterButton Componentextends Button
31
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Object ModelObject Model
COM AggregationRumor: subclassing?
ActiveX
Java Langugae SubclassingFuture: aggregation?
JavaBeans
How are component API's structured?How are components "subclassed"?
32
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
ScriptingScripting
ActiveX
Component Object ModelIDispatch & dual interfacesTypeInfo for API descriptions
JavaBeans
Bean Properties / Methods / Events exposed
Introspection and BeanInfo for API descriptions
How is the API of a component exposed to scripting languages?
33
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Data InterchangeData Interchange
ActiveX
Bound properties
JavaBeans
Bound Properties
Lotus InfoBus
How is data sent from one component to another?
34
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
PersistencePersistence
ActiveX
Multiple COM persistence API's (IPersistStream, etc.)
JavaBeans
Automatic serialization integrated w/Java language
Externalization
How can the state of a component instance be saved by a container?
35
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
UI MergingUI Merging
OLE, ActiveX API's for menu merge, drag/drop, etc.
Many Windows specificActiveX: IE look n' feel
How do components in an application share the screen, keyboard, etc.?
ActiveX
Uses Java AWT / JFC libraryNested UI layoutDrag/drop coming soon
JavaBeans
36
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Registration & ActivationRegistration & Activation
Name: 128 bit GUIDWindows registry or URLCOM Activation
How are components named, registered, and activated?
ActiveX
BeanName = Java Class Name or .ser file
Beans.instantiate()Activates using Java newInstance or Serialization
JavaBeans
37
PageNoah Mendelsohn Session JT2: JavaBeans vs. ActiveX
JavaBeans and ActiveX Compared
38
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Summary of FeaturesSummary of Features
ActiveX JavaBeans
Programming Lang. Any Java
Object Model COM Java & Corba
Scripting Yes Yes
Persistence Yes Yes
UI Merging Yes (Windows/IE) Limited (awt & jfc)
Registration/Activate Yes Yes
Security Code SigningCode Signing + Java Sandbox
Portability Limited Excellent
39
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Summary of FeaturesSummary of Features
X = Significant Advantage (Noah's opinion)
ActiveX JavaBeans
Programming Lang. X Any ? Java
Object Model COM Java & Corba
Scripting Yes Yes
Persistence Yes Yes
UI Merging X Yes (Windows/IE) Limited (awt & jfc)
Registration/Activate Yes Yes
Security Code Signing XCode Signing + Java Sandbox
Portability Limited X Excellent
40
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
ActiveX JavaBeans
Windows Integration X Yes Limited
Java Integration ? MS Specific X Yes
Corba Integration Limited X Good
Intranet support Good Good
World Wide Web Fair X Excellent
NC & Future Platforms
Probably Not X Yes
Industry Support Excellent Excellent
Open Standard At server only Pretty good
Complexity High Low
Maturity/Robustness X Excellent Improving
Other Points of Comparion Other Points of Comparion
41
PageNoah Mendelsohn Session JT2: JavaBeans vs. ActiveX
Conclusion: Making the Choice
42
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
ƒ Distribution based on CORBA and RMIDistribution based on CORBA and RMI
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
ƒ Distribution based on CORBA and RMIDistribution based on CORBA and RMIƒ Build Beans & pure Java - invest for the futureBuild Beans & pure Java - invest for the future
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
ƒ Distribution based on CORBA and RMIDistribution based on CORBA and RMIƒ Build Beans & pure Java - invest for the futureBuild Beans & pure Java - invest for the future
Microsoft & Friends: Microsoft & Friends:
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
ƒ Distribution based on CORBA and RMIDistribution based on CORBA and RMIƒ Build Beans & pure Java - invest for the futureBuild Beans & pure Java - invest for the future
Microsoft & Friends: Microsoft & Friends:
ƒ The future is WindowsThe future is Windows
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
ƒ Distribution based on CORBA and RMIDistribution based on CORBA and RMIƒ Build Beans & pure Java - invest for the futureBuild Beans & pure Java - invest for the future
Microsoft & Friends: Microsoft & Friends:
ƒ The future is WindowsThe future is Windowsƒ Java: a language to support the visionJava: a language to support the vision
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
ƒ Distribution based on CORBA and RMIDistribution based on CORBA and RMIƒ Build Beans & pure Java - invest for the futureBuild Beans & pure Java - invest for the future
Microsoft & Friends: Microsoft & Friends:
ƒ The future is WindowsThe future is Windowsƒ Java: a language to support the visionJava: a language to support the visionƒ Distribution based on COMDistribution based on COM
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
Visions of the FutureVisions of the Future
Sun/IBM/Netscape/Oracle & Friends:Sun/IBM/Netscape/Oracle & Friends:
ƒ 100% Pure Java: the platform for portable, 100% Pure Java: the platform for portable, ubiquitous componentsubiquitous components
ƒ Distribution based on CORBA and RMIDistribution based on CORBA and RMIƒ Build Beans & pure Java - invest for the futureBuild Beans & pure Java - invest for the future
Microsoft & Friends: Microsoft & Friends:
ƒ The future is WindowsThe future is Windowsƒ Java: a language to support the visionJava: a language to support the visionƒ Distribution based on COMDistribution based on COMƒ Decreasing support for pure JavaDecreasing support for pure Java
43
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
It's Up to YouIt's Up to You
Two powerful technologies...two clear but Two powerful technologies...two clear but different visions of the futuredifferent visions of the future
Tell the companies that build these Tell the companies that build these technologies what you needtechnologies what you need
The future of Java, Beans and ActiveX is The future of Java, Beans and ActiveX is in your handsin your hands
Where do you want to go....Where do you want to go....
44
Noah Mendelsohn Session JT2: JavaBeans vs. ActiveX Page
It's Up to YouIt's Up to You
Two powerful technologies...two clear but Two powerful technologies...two clear but different visions of the futuredifferent visions of the future
Tell the companies that build these Tell the companies that build these technologies what you needtechnologies what you need
The future of Java, Beans and ActiveX is The future of Java, Beans and ActiveX is in your handsin your hands
Where do you want to go....Where do you want to go....tomorrow?tomorrow?
44