40
CSE333 JR&B-1.1 The Risks and Benefits of The Risks and Benefits of Software Engineering with Software Engineering with Java 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 Department The University of Connecticut 371 Fairfield Road, Box U-255 Storrs, CT 06269-2155 [email protected] http://www.engr.uconn.edu/ ~steve http://www.engr.uconn.edu/cse (860) 486 - 4818

CSE333 JR&B-1.1 The Risks and Benefits of Software Engineering with Java † † This work was supported by a contract from the Mitre Corporation. Prof. Steven

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

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.14

Just-In-Time CompilationJust-In-Time Compilation

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.