CSE333 JR&B-1.1 The Risks and Benefits of Software Engineering with Java † † This work was...
-
date post
21-Dec-2015 -
Category
Documents
-
view
214 -
download
0
Transcript of CSE333 JR&B-1.1 The Risks and Benefits of Software Engineering with Java † † This work was...
CSE333
JR&B-1.1
The Risks and Benefits of Software The Risks and Benefits of Software Engineering with JavaEngineering with Java††
††This work was supported by a contract from the Mitre Corporation.This work was supported by a contract from the Mitre Corporation.
Prof. Steven A. Demurjian, Sr.
Computer Science & Engineering DepartmentThe University of Connecticut371 Fairfield Road, Box U-255
Storrs, CT 06269-2155
[email protected]://www.engr.uconn.edu/
~stevehttp://www.engr.uconn.edu/cse
(860) 486 - 4818
CSE333
JR&B-1.2
Identifying Relevant IssuesIdentifying Relevant IssuesStrongest Potential RisksStrongest Potential Risks
Unclear Standardization - A Political Hot PotatoUnclear Standardization - A Political Hot Potato Microsoft and Apple - Partnership’s Impact on Microsoft and Apple - Partnership’s Impact on
JavaJava Security Flaws and Java - A Constant ConcernSecurity Flaws and Java - A Constant Concern Performance - Will (Has?) HotShot VM Solve Performance - Will (Has?) HotShot VM Solve
Problem?Problem? Portability and Look-and-Feel: Has Platform Portability and Look-and-Feel: Has Platform
In(De)pendence been Achieved?In(De)pendence been Achieved?
CSE333
JR&B-1.3
Identifying Relevant IssuesIdentifying Relevant IssuesLearning, Language, EnvironmentsLearning, Language, Environments
Similarity to C/C++/OO - Strong Ties to Core OO Similarity to C/C++/OO - Strong Ties to Core OO ConceptsConcepts
Teaching Perspective - Easy to Learn/Teach/UseTeaching Perspective - Easy to Learn/Teach/Use Complexity of APIs - Excellent Breadth/DepthComplexity of APIs - Excellent Breadth/Depth Lack of Generics - Reduces Reuse and Slows Lack of Generics - Reduces Reuse and Slows
ProductivityProductivity IDEs and JavaBeans: Development/Prototyping IDEs and JavaBeans: Development/Prototyping
EnvironmentEnvironment
CSE333
JR&B-1.4
Identifying Relevant IssuesIdentifying Relevant IssuesMost Significant Potential BenefitsMost Significant Potential Benefits
Programming Language Interactions - Cross Programming Language Interactions - Cross Compilation, Byte-Code Generators, TranslatorsCompilation, Byte-Code Generators, Translators
Client/Server and DOC - CORBA, ORBs, JNI, Client/Server and DOC - CORBA, ORBs, JNI, Legacy/COTSLegacy/COTS
Database/Persistence - Interactions with Database/Persistence - Interactions with Relational/OO DBSRelational/OO DBS
ALL THREE INVOLVE ENTERPRISE COMPUTING!!!ALL THREE INVOLVE ENTERPRISE COMPUTING!!!
CSE333
JR&B-1.5
Assessing Risks and BenefitsAssessing Risks and Benefits
Java is Rapidly EvolvingJava is Rapidly Evolving What are the Key Issues that Software Managers What are the Key Issues that Software Managers
and Engineers Must Understand to Successfully and Engineers Must Understand to Successfully Utilize Java?Utilize Java?
What are the Strongest Potential Risks for What are the Strongest Potential Risks for Switching to Java?Switching to Java?
What Capabilities of Java Provide the Strongest What Capabilities of Java Provide the Strongest Case for the Technology?Case for the Technology?
How Quickly Can Software Professionals Learn How Quickly Can Software Professionals Learn Java?Java?
What are the Long-Term Benefits of Java?What are the Long-Term Benefits of Java? How Can Java Interact with PLs, Legacy, and How Can Java Interact with PLs, Legacy, and
COTS?COTS?
CSE333
JR&B-1.6
Overview of Remainder of TalkOverview of Remainder of Talk
Explore Risks and Benefits of JavaExplore Risks and Benefits of Java Classified Issues According to:Classified Issues According to:
Strongest Potential Risks Learning, Language, and Environments Most Significant Potential Benefits
Clearly Identify the Pros, Cons, and Unknowns Clearly Identify the Pros, Cons, and Unknowns Associated with Each Risk/Benefit IssueAssociated with Each Risk/Benefit Issue
Detail Future Plans Concerning JavaDetail Future Plans Concerning Java Summarize and QuestionsSummarize and Questions
CSE333
JR&B-1.7
Potential Risk 1: StandardizationPotential Risk 1: Standardization
Unsettled Issue May Impact on Potential of JavaUnsettled Issue May Impact on Potential of Java Standardization Needed by Business/GovernmentStandardization Needed by Business/Government Sun asked International Standards Organization Sun asked International Standards Organization
(ISO) to Declare Java as International Standard(ISO) to Declare Java as International Standard However, Sun wanted to Retain Sole OwnershipHowever, Sun wanted to Retain Sole Ownership US Delegation Against this Move - Supported by US Delegation Against this Move - Supported by
HP, Intel, TI, IEEE, etc.HP, Intel, TI, IEEE, etc. Other Nations (France, Great Britain) Back SunOther Nations (France, Great Britain) Back Sun Final Vote 20-2 in Favor of Sun: November 14, Final Vote 20-2 in Favor of Sun: November 14,
19971997 Current Status: Java Standard May be Turned Current Status: Java Standard May be Turned
Over to Third Party Independent of SunOver to Third Party Independent of Sun
CSE333
JR&B-1.8
Potential Risk 1: StandardizationPotential Risk 1: Standardization
Without a Single Standard, Companies May Only Without a Single Standard, Companies May Only Support Subsets of JavaSupport Subsets of Java
For Example, Sun Suing Microsoft Claiming that For Example, Sun Suing Microsoft Claiming that Internet Explorer Omits Vital Parts of JavaInternet Explorer Omits Vital Parts of Java
Does Microsoft’s Version of Java Contain Does Microsoft’s Version of Java Contain Features/Capabilities not in Sun’s Version?Features/Capabilities not in Sun’s Version?
Multiple and Varied Subsets will Destroy Multiple and Varied Subsets will Destroy Platform IndependencePlatform Independence
Why Should One Switch to Java if Multiple Why Should One Switch to Java if Multiple Versions of ‘Same’ Software Maintained for Versions of ‘Same’ Software Maintained for Different Platforms?Different Platforms?
This is a Significant This is a Significant ConCon that Must be that Must be Monitored!Monitored!
CSE333
JR&B-1.9
Potential Risk 2: Microsoft/ApplePotential Risk 2: Microsoft/Apple
August 1997 Announcement of $150 Million August 1997 Announcement of $150 Million Microsoft Infusion into Apple includes Microsoft Infusion into Apple includes Cooperative Java WorkCooperative Java Work
Is Microsoft Attempting to Wrest Control of Java Is Microsoft Attempting to Wrest Control of Java from Sun?from Sun?
Will (Are?) there be Two Java Camps - Sun vs. Will (Are?) there be Two Java Camps - Sun vs. Microsoft?Microsoft?
What is the Potential Downside of Competing What is the Potential Downside of Competing Java Camps?Java Camps? Hampering of Standardization Incompatible Versions of Java Frustrated User Community
CSE333
JR&B-1.10
Potential Risk 2: Microsoft/ApplePotential Risk 2: Microsoft/Apple
Con: Competing/Incompatible Java Versions will Con: Competing/Incompatible Java Versions will Significantly and Adversely Reduce its Significantly and Adversely Reduce its AttractivenessAttractiveness
IBM, Sun, and Netscape Announced an Alliance to IBM, Sun, and Netscape Announced an Alliance to Cooperate on Java to Counter Microsoft’s MoveCooperate on Java to Counter Microsoft’s Move
Striving for Compatibility on All Platforms Striving for Compatibility on All Platforms Including Win95 and NTIncluding Win95 and NT
Pro:Pro: Microsoft Move May Force Sun to Change Microsoft Move May Force Sun to Change their Standards Positiontheir Standards Position
Unknown:Unknown: Strength and Productivity of Alliances Strength and Productivity of Alliances
CSE333
JR&B-1.11
Potential Risk 3: Security FlawsPotential Risk 3: Security Flaws
Announcements in Mainstream Press of Flaws in Announcements in Mainstream Press of Flaws in Netscape or ExplorerNetscape or Explorer
Flaw in Browser (or Software Application) May Flaw in Browser (or Software Application) May Result in a Java Applet Causing Damage During Result in a Java Applet Causing Damage During ExecutionExecution
August 1997 Bug in Internet ExplorerAugust 1997 Bug in Internet Explorer Permitted an Applet to Open Network Permitted an Applet to Open Network
Connection to a Server Different from its OriginConnection to a Server Different from its Origin Violates Java Security ModelViolates Java Security Model Bug in Explorer Rather Than JavaBug in Explorer Rather Than Java
CSE333
JR&B-1.12
Potential Risk 3: Security FlawsPotential Risk 3: Security Flaws
Java across the Internet is Powerful, but there Java across the Internet is Powerful, but there must be Assurances Related to Security!must be Assurances Related to Security!
Security Critical and Pervasive ConcernSecurity Critical and Pervasive Concern Protecting Government Sensitive DataProtecting Government Sensitive Data Insuring Consistency of Information in Financial Insuring Consistency of Information in Financial
SectorSector Maintaining Confidentiality of Health Care and Maintaining Confidentiality of Health Care and
Personal InformationPersonal Information Con:Con: Must be Tracked for Both Browser Applets Must be Tracked for Both Browser Applets
and within Java Applications!and within Java Applications!
CSE333
JR&B-1.13
Potential Risk 4: PerformancePotential Risk 4: Performance
Java has Poor Performance ReputationJava has Poor Performance Reputation Execution Speed May Differ Substantially Execution Speed May Differ Substantially
Across PlatformsAcross Platforms One Solution: Third-Party JVM Customization One Solution: Third-Party JVM Customization
(Kaffe)(Kaffe) Another Solution: Microsoft’s Win95 Java Another Solution: Microsoft’s Win95 Java
Performs Better than Sun’s Win95 Version of Performs Better than Sun’s Win95 Version of Java Java
Yet Another Solution: Sun’s HotSpot JVM in Yet Another Solution: Sun’s HotSpot JVM in 1.2 with Just-in-Time Compilation1.2 with Just-in-Time Compilation
Con:Con: Microsoft’s Own Version is Workable Microsoft’s Own Version is Workable Assuming a Java Standard to Force Assuming a Java Standard to Force Completeness!Completeness!
CSE333
JR&B-1.15
Potential Risk 5: Potential Risk 5: Portability and Look-and-FeelPortability and Look-and-Feel
Performance Problems Related to PortabilityPerformance Problems Related to Portability Is Java Truly Portable?Is Java Truly Portable? We’ve had Success at Bytecode Level in Porting We’ve had Success at Bytecode Level in Porting
Same Code from Solaris to Win95 to Linux after Same Code from Solaris to Win95 to Linux after CompilationCompilation
However, at Source Code Level, Case Sensitivity However, at Source Code Level, Case Sensitivity in Unix Files Impact When Moving to/from in Unix Files Impact When Moving to/from Win95 (Class Names and File Names Must Match)Win95 (Class Names and File Names Must Match)
GUI Differences Across Platforms Yield Look-GUI Differences Across Platforms Yield Look-and-Feel Differencesand-Feel Differences
Unknown:Unknown: Can Platform Independence with Can Platform Independence with Reasonable Performance be Achieved?Reasonable Performance be Achieved?
CSE333
JR&B-1.16
Potential Risk 5: Potential Risk 5: Portability and Look-and-FeelPortability and Look-and-Feel
First Experience: CSE230 First Experience: CSE230 50+ Students given 41 “.class” Files and 4
“.java” Files with 3 weeks to Learn Java, html, and Modify/Extend Code
All But 1 or 2 Finished Project CSE230 Now Java Based
Platforms Utilized:Platforms Utilized: “.class/.java” Files Built on Solaris Students Used Solaris, Win95/98/NT, Linux Projects Graded on Solaris Java Release Versions Caused Problems
Successful from Learning/Course PerspectiveSuccessful from Learning/Course Perspective Students Indicated High Satisfaction with ProjectStudents Indicated High Satisfaction with Project
CSE333
JR&B-1.17
Learning, Language, Environment 1Learning, Language, Environment 1::Similarity to C/C++/OOSimilarity to C/C++/OO
Non-OO Language Constructs of Java Non-OO Language Constructs of Java (Statements, Operators, Precedence, Declarations, (Statements, Operators, Precedence, Declarations, etc.) Identical or Similar to C++etc.) Identical or Similar to C++
OO Features Class, Inheritance, Exceptions - OO Features Class, Inheritance, Exceptions - Strong Syntactic and Semantic Ties to C++Strong Syntactic and Semantic Ties to C++
Experience at UConn In Learning/Using Java Experience at UConn In Learning/Using Java 30 Juniors/Seniors One Semester Significant
Team Projects 50 Juniors Modify/Extend Existing Code
Individual Project 50 Juniors with Java as CSE230 Language
Background of SW Engineering, OO, and C++Background of SW Engineering, OO, and C++ Pro:Pro: Similarity to C++ and Ease of Learning! Similarity to C++ and Ease of Learning!
CSE333
JR&B-1.18
Learning, Language, Environment 1Learning, Language, Environment 1::Similarity to C/C++/OOSimilarity to C/C++/OO
Superiority of Java to C++ from Software-Superiority of Java to C++ from Software-Engineering Practices PerspectiveEngineering Practices Perspective
Package Construct in Java - No Analog in C++Package Construct in Java - No Analog in C++ Varied Choices to Control Visibility of Classes Varied Choices to Control Visibility of Classes
within Packages and Between Packages within Packages and Between Packages Basic APIs for GUIs, Remote DB Access, Basic APIs for GUIs, Remote DB Access,
Threading, etc., Easily Learned and Used in Threading, etc., Easily Learned and Used in SemesterSemester
Con:Con: Complex APIs and Advanced Features More Complex APIs and Advanced Features More Difficult to Learn and UseDifficult to Learn and Use
Pro:Pro: OO of Java More Robust /Versatile than C++ OO of Java More Robust /Versatile than C++
CSE333
JR&B-1.19
Learning, Language, Environment 2Learning, Language, Environment 2::Teaching PerspectiveTeaching Perspective
Java has Emerged as an Excellent Teaching Java has Emerged as an Excellent Teaching LanguageLanguage Platform Independence - Instructor Can Avoid
HW/OS Differences ‘Free’ Compilers Across Platforms: Students
Use/Download Familiar Platforms! Easy to Learn if Know C++ Enforcement of Abstraction and
Modularization with Class/Package Paradigms Hiding Allows Controlled Sharing Between
Classes with Alternate Visibility Choices Pro: OO Java More Robust /Versatile than C+
+
CSE333
JR&B-1.20
Learning, Language, Environment 2Learning, Language, Environment 2::Teaching PerspectiveTeaching Perspective
In a University Setting Java is Easily Established In a University Setting Java is Easily Established on Existing Hardware with Ease and Without Coston Existing Hardware with Ease and Without Cost
Students have Downloaded and Installed Java on Students have Downloaded and Installed Java on Win95, NT, and LinuxWin95, NT, and Linux
Availability of Shareware IDEs Provides Powerful Availability of Shareware IDEs Provides Powerful Tools that Assist in Effectively Utilizing JavaTools that Assist in Effectively Utilizing Java
Java APIs Support Breadth of Domains and Java APIs Support Breadth of Domains and Applications Including Business, Engineering, Applications Including Business, Engineering, GUIs, Embedded Systems, Databases, etc.GUIs, Embedded Systems, Databases, etc.
Pro:Pro: Java in Classroom is a Strong Benefit! Java in Classroom is a Strong Benefit!
CSE333
JR&B-1.21
Learning, Language, Environment 3:Learning, Language, Environment 3:Complexity of APIsComplexity of APIs
Core Language is Simple and Straightforward to Core Language is Simple and Straightforward to UseUse
APIs - Wide Range of ComplexityAPIs - Wide Range of Complexity Select APIs Require Sophisticated SW Engineer Select APIs Require Sophisticated SW Engineer
with Significant Expertise with Significant Expertise Simple APIs Include: AWT for GUIsSimple APIs Include: AWT for GUIs Complex APIs Include: Networking, Java Native Complex APIs Include: Networking, Java Native
Interface (JNI)Interface (JNI) Pro:Pro: Simplicity of Language Simplicity of Language Con:Con: Difficult to Learn and Effectively Use Select Difficult to Learn and Effectively Use Select
APIsAPIs
CSE333
JR&B-1.22
Learning, Language, Environment 3:Learning, Language, Environment 3:Complexity of APIs: Breadth & DepthComplexity of APIs: Breadth & Depth
Java Targeted for Breadth of DomainsJava Targeted for Breadth of Domains Enterprise, Media, and Personal APIs JVM in Consumer Products Embedded, Commerce, Management APIs
Breadth of Domains Achieved by Depth of Breadth of Domains Achieved by Depth of LanguageLanguage Package/API Concept: Easily Extend
Capabilities to Emerging Domain or Market Segment
APIs are Rich Set of Current/Future Tools Example: Java Card API - Smart Card
Technology Pro:Pro: Potential to Dominate Programming Arena Potential to Dominate Programming Arena
CSE333
JR&B-1.23
Learning, Language, Environment 4:Learning, Language, Environment 4:Lack of GenericsLack of Generics
Generics in Programming LanguagesGenerics in Programming Languages Ada95 (Generic Packages) and C++
(Templates) Promote Code Reuse and Increase Productivity
Java Supports Design-Level GenericsJava Supports Design-Level Generics Single Interface Implemented by Multiple
Classes No Shared Implementation - Hence No Code
Reuse No Gain in Productivity - Only Consistent
Interface Con:Con: Generics Not Supported - Hence Reuse and Generics Not Supported - Hence Reuse and
Productivity Impaired!Productivity Impaired!
CSE333
JR&B-1.24
Learning, Language, Environment 5:Learning, Language, Environment 5:IDEs and JavaBeansIDEs and JavaBeans
Proliferation of Commercial and Shareware Proliferation of Commercial and Shareware Interactive Development Environments (IDEs)Interactive Development Environments (IDEs) Microsoft’s Visual J++ /Borland’s Jbuilder Symantec’s Visual Café and Super Mojo ObjectShare’s Parts for Java, etc…
Available IDEs with Minimal or No CostAvailable IDEs with Minimal or No Cost Strong Incentive for Colleges/Universities Business/Government Also Benefits
ContrastContrast with $50,000 Validated Ada83 with $50,000 Validated Ada83 Compilers Compilers
Pro:Pro: Availability of Inexpensive IDEs Major Availability of Inexpensive IDEs Major Benefit that Should Spur/Bolster Java Popularity!Benefit that Should Spur/Bolster Java Popularity!
CSE333
JR&B-1.25
Learning, Language, Environment 5:Learning, Language, Environment 5:IDEs and JavaBeansIDEs and JavaBeans
JavaBeans Supports Component-Based, Plug-and-JavaBeans Supports Component-Based, Plug-and-Play Design and DevelopmentPlay Design and Development Promote Construction of New Applications by
Combining Existing Components (Beans) Allow Non-Experts to Build Significant
Applications Visual IDEs for JavaBeans Visual IDEs for JavaBeans
Transition Away from Sequential/File-Based Coding
Promote Acceptability of Java Pro:Pro: Companies are Making Choices Companies are Making Choices Unknown:Unknown: Emerging Capability with Much Emerging Capability with Much
Promise But Largely Unproven!Promise But Largely Unproven!
CSE333
JR&B-1.26
Most Significant Potential Benefits 1:Most Significant Potential Benefits 1:Programming Language InteractionsProgramming Language Interactions
Automated Language-Level Translation - Source Automated Language-Level Translation - Source CodeCode Synkronix’s PERC: Cobol to Java Cross
Compiler Allows Existing Cobol Code to Be Reused in
New Java-Based Applications Minimize Retraining: Cobol Programmers May
Not Need Retraining Opens Potential Markets for Java Generated
Code Assumes Completeness of Translator
Non-Commercial Translators Include JCC (Java to Non-Commercial Translators Include JCC (Java to C) and C2J++ (C++ to Java)C) and C2J++ (C++ to Java)
CSE333
JR&B-1.27
Most Significant Potential Benefits 1:Most Significant Potential Benefits 1:Programming Language InteractionsProgramming Language Interactions
Automated Language-Level Translation - Automated Language-Level Translation - BytecodeBytecode Change Compilation of Language from
Native Assembly to Java Bytecode JVM Executes Bytecode - Source Code
Irrelevant AppletMagic Generates Bytecode from Ada95AppletMagic Generates Bytecode from Ada95
Fully Translate Ada95 Packages/Types to Java Packages/Classes
Allows Direct Use of Java API Packages applet, awt, io, lang, net, and util
Unclear if All Ada95 Constructs/Programs are Translatable to Java Bytecode
CSE333
JR&B-1.28
Most Significant Potential BenefiMost Significant Potential Benefits ts 1:1:Programming Language InteractionsProgramming Language Interactions
Kawa IDE for Scheme Written in JavaKawa IDE for Scheme Written in Java Compiles Scheme Programs Directly to Java
Bytecodes Translation Nearly Complete from Scheme to
Java Defines Java APIs to Support Scheme Types
Products Like PERC, AppletMagic, and Kawa Products Like PERC, AppletMagic, and Kawa Forerunners for Future IDEs that Support C, C++, Forerunners for Future IDEs that Support C, C++, Pascal, etc., Bytecode TranslationPascal, etc., Bytecode Translation
Pro:Pro: If Source/Bytecode Translation is 100% If Source/Bytecode Translation is 100% Con:Con: Otherwise Otherwise Unknown:Unknown: Products Still Emerging! Products Still Emerging!
CSE333
JR&B-1.29
Most Significant Potential Benefits 1:Most Significant Potential Benefits 1:Programming Language InteractionsProgramming Language Interactions
OS Level Interactions Across LanguagesOS Level Interactions Across Languages Separate Process Per Language with
Communication via Pipes, Sockets, etc. Employ Message Passing Paradigm Interprocess Communication Between
Programs Written in Same/Different Languages Well-Understood Problem with Known Solutions
Alternatively, Attempt to Make Direct Calls from Alternatively, Attempt to Make Direct Calls from a Program Written in One Language to a a Program Written in One Language to a Program Written in Another Language Program Written in Another Language
CSE333
JR&B-1.30
Most Significant Potential Benefits 1:Most Significant Potential Benefits 1:Programming Language InteractionsProgramming Language Interactions
Java Native Interface (JNI) Bridge Between Java Java Native Interface (JNI) Bridge Between Java Applications and Native InterfaceApplications and Native Interface JNI Supports Calls from Java to C/C++ Also Supports Calls from C/C++ to Java JNI Trap-Door that Circumvents Platform
Indep. JNI Eliminates 100% Portability JNI Requires Significant Skill and Expertise
for Correct and Consistent Usage JNI Opens Security Door with Inclusion of
Native Code
CSE333
JR&B-1.31
Most Significant Potential Benefits 1:Most Significant Potential Benefits 1:Programming Language InteractionsProgramming Language Interactions
Summary of Programming Language Summary of Programming Language InteractionsInteractions Source Code and Bytecode Translators Offer
Potential to Reuse ‘Old’ Code and Minimize Retraining
Also Facilitates Upgrade of Existing Applications to Platform Independent Java Framework
TwinPeaks, a Beta Product from Sun, Provides Higher Level Abstraction to Integrate Java to C/C++ Applications (Built on Top of JNI)
TwinPeaks Facilitates Building of Java Wrappers
CSE333
JR&B-1.32
Most Significant Potential Benefits 2:Most Significant Potential Benefits 2:Client/Server and DOCClient/Server and DOC
Distributed Object Computing and Client/Server Distributed Object Computing and Client/Server Paradigm are Norms for Today’s ApplicationsParadigm are Norms for Today’s Applications
Main Support for Both via Java’s Enterprise APIMain Support for Both via Java’s Enterprise API JDBC: Java Clients Interact with Relation
DBS RMI: Remote Method Invocations Between
Clients and Servers When Both Written in Java
Java IDL: Integration with CORBA/ORBs JNDI: Platform Independent Access to Native
Naming and Directory Services JNI: Java Native Interface
CSE333
JR&B-1.33
Most Significant Potential Benefits 2:Most Significant Potential Benefits 2:Client/Server and DOCClient/Server and DOC
Enterprise API and JDBC, RMI, Java IDL, JDNI, Enterprise API and JDBC, RMI, Java IDL, JDNI, and JNI Offer Significant Potential forand JNI Offer Significant Potential for Integration of Legacy and Relational & OO
DBs Upgrade of Legacy Applications with Java
Wrappers Incorporation of Current and Future COTS Development of New Java Clients and Servers Yields a Common Java Framework
Reliance on CORBA and ORBs to Facilitate Next Reliance on CORBA and ORBs to Facilitate Next Generation of Integrated and Distributed Generation of Integrated and Distributed ApplicationsApplications
CSE333
JR&B-1.34
Most Significant Potential Benefits 2:Most Significant Potential Benefits 2:Client/Server and DOCClient/Server and DOC
Pro:Pro: If All Promises of Java/CORBA Achieved! If All Promises of Java/CORBA Achieved! Legacy Applications, Current/Future COTS,
Database Applications can be Integrated Cross Platform, Heterogeneous, Distributed
Applications with Underlying Java/CORBA Unknown:Unknown: Technologies Largely Unproven Technologies Largely Unproven
CORBA in Infancy: Must Stabilize and Come Into Widespread Successful Usage
Will (Has?) HotShot VM Improve Java’s Performance?
Java for DOC Very Immature Up to 5 Years to Assess Technologies
CSE333
JR&B-1.35
Most Significant Potential Benefits 3:Most Significant Potential Benefits 3:Database/PersistenceDatabase/Persistence
Three Forms of Persistence Supported in JavaThree Forms of Persistence Supported in Java Object Serialization: Flatten Instances to
Stream of Bytes that can be Stored in Files or Shipped to Another JVM
JDBC: Integration with Relational DBSs Emerging Java Integration with OO DBSs
JDBC Integration at Query Language and JDBC Integration at Query Language and Embedded LevelsEmbedded Levels
OO DBS Integration Provided by OO DBS OO DBS Integration Provided by OO DBS VendorsVendors ObjectStoreObjectStore Jasmine by CAIJasmine by CAI
CSE333
JR&B-1.36
Most Significant Potential Benefits 3:Most Significant Potential Benefits 3:Database/PersistenceDatabase/Persistence
Pro:Pro: Various Alternatives have Positive Benefits Various Alternatives have Positive Benefits Object Serialization: Elegant Technique for
Storing, Transmitting, and Recovering Instances
Integration with Relational and OO DBS Critical to Allow New Java Clients Access to Existing Data
UnknownUnknown: Two Potential Risks: Two Potential Risks JDBC API is Incomplete: Many Planned and
Proposed Features OO DBC Interactions in Infancy: Products Just
Beginning to Emerge
CSE333
JR&B-1.37
Pros of JavaPros of Java
Pros Pros Java is Free Easy to Teach: Short Learning Curve if Know
C++ Tighter Language than C++ Platform (In)dependence Breadth of Domains and APIs Potential Interactions with other PLs (JNI) Java Linkages to Legacy, COTS, CORBA Relational/OO Database Interoperability Available IDEs, JavaBeans, and Components Promise of All Things to All People
CSE333
JR&B-1.38
Cons of JavaCons of Java
Cons Cons Standards Issue Unresolved Performance and Portability Problems Language Continues to Evolve Security Flaws Must be Carefully Tracked Lack of Generics, Multiple Inheritance
Impacts on Productivity Advanced APIs are Difficult to Learn and Use Potential Split of Java into Two Competing
Camps Automated Language Translation Tools
Lacking Promise of All Things to All People
CSE333
JR&B-1.39
Unknowns of JavaUnknowns of Java
UnknownsUnknowns Standardization Issue Must be Resolved Performance May Take Time to Improve 100% Platform Independence May Not be
Achieved! Client/Server, DOC, Legacy, and COTS
Promises are Largely Unproven at this Point in Time
Database Interoperability, CORBA Links Must be Fully Explored
JavaBeans/Component Based Development in Infancy and Rapidly Changing
CAUTION! CAUTION! CAUTION!!!!
CSE333
JR&B-1.40
The Future of JavaThe Future of Java
Future Directions are Fluid and MutableFuture Directions are Fluid and Mutable Java Continues to Rapidly EvolveJava Continues to Rapidly Evolve Ongoing Future Directions Ongoing Future Directions
JavaOS: Complete OS Around Java Microprocessors: picoJava, microJava, Ultra-
Java PersonalJava: Java in Game Consoles, Smart
Phones, Remote Controls, Touch Screens, etc. Embedded Java: Java in Mobile Phone,
Process Control Network Routers, etc. Java Card: Smart Card Technology - Credit
Card Computer to Store Personal, Health Data, etc.