Java a to Z

Uploaded from authorPOINT Lite
Download as
 PPT
Presentation Description 

No description available

By:
 (2 month(s) ago)  
hello i need this slide today only.plz allow me to download immediately

By:
 (4 month(s) ago)  
Waiting in the que - How can i download this presentation

By:
 (6 month(s) ago)  
Same Q

By:
 (12 month(s) ago)  
I like this presentation.. How can i download this presentation.?

By:
 (17 month(s) ago)  
How can i download this presentation?

Views: 2109
Like it  ( Likes) Dislike it  ( Dislikes)
Added: March 22, 2008 This Presentation is Public 
Presentation Category : Education All Rights Reserved
Presentation Transcript

Java: A to Z: Java: A to Z Delivered By: Alexander Day Chaffee, Purple Technology Original Creator of Gamelan (http://java.developer.com/ - EarthWeb) alexc@purpletech.com


Purple Technology: Purple Technology Java Training and Consulting All levels of courses http://www.purpletech.com/


Introduction: Introduction A is for Applet B is for Bean C is for Class D is for...


What is Java?: What is Java? Largest island of the equatorial achipelago of Indonesia Famous for beaches and coffee An island


What is Java?: What is Java? A language developed by Sun open specification


What is Java?: What is Java? An architecture Virtual Machine


What is Java?: What is Java? A platform Libraries / APIs Applications Applets


What is Java?: What is Java? An Operating System (OS) Tailored for NCs and Embedded Systems Not an OS for PCs


What is Java?: What is Java? A really good buzzword Coined by Kim Polese


Why Java?: Why Java? High Productivity Low Cost Run Anywhere N-tier Applications


Why Java?: Why Java? Forrester Research (1997) Firms have embraced Java for: Cross-platform support 42% Heart of Internet/Intranet 16% Increased productivity 12% More robust applications 12%


Why Java?: Why Java? Zona Research (1997) The top reasons for deploying Java: Web-browser linkage 72% Cross-platform compatibility 66% Programmer interest 62% Lower cost 49%


Where is Java heading?: Where is Java heading? Clients (Network, Distributed Computing with Nodes) Servers (Web servers, collaboration services) Embedded (TV Set-top, cell phones, smart cards)


Facts and Figures: Facts and Figures


Number of Java Developers (IDC): Number of Java Developers (IDC)


Java's First 800 Days (August 1997): Java's First 800 Days (August 1997) 0 to 70 million seats Over 400,000 Java developers Over 1,000,000 downloads of JDK 1.1 70,000+ subscribers of Java Developer ConnectionTM Over 1000 shipping Java applications


Java's First 800 Days (cont.): Java's First 800 Days (cont.) 150 Java licensees 200+ universities offering Java courses 25+ Java IDEs (Integrated Development Environment) available 800 Java programming/computing books


Java's First 800 Days (cont.): Java's First 800 Days (cont.) Over 650 Java applications being developed for Sun's JavaStation(TM) computers More than 200 JavaStation Pilot programs underway


Java's First 800 Days (cont.): Java's First 800 Days (cont.) 61 100% Pure Java(TM) certified applications as of August 21, 1997 More than 100 applications in the queue for 100% Pure Java certification as of August 21, 1997 On Web pages, Java applets outnumber Microsoft's Active X applications by a factor of seven


Java's First 800 Days (cont.): Java's First 800 Days (cont.) 100,000+ downloads of the Beans Development Kit 29 JavaBeans(TM) development tools Over 150 JavaBeans components available


Java Tools Market: Java Tools Market 1996 retail sales of tools Q196 Q296 Q396 Q496 Java 3,000 49,000 25,000 145,000 C++ 60,000 20,000 20,000 20,000 Other 190,000 145,000 115,000 95,000 (Source: PC Data) Note: 145,000 is greater than 20,000 + 95,000


Java Tools Market: Java Tools Market Java-based or Java enabled development environment products will exceed 50 percent of the overall Internet-centric market in the year 2000 The market for Java IDE commercial seats will jump from about 400,000 programmers in 1997 to 750,000 programmers in 2000. Forecast revenues for the Java IDE market will jump from 120 million in 1997 to 300 million in 2000, a 65.5% aggregate growth rate Source: IDC


Andersen Consulting: Andersen Consulting 60,000 employees who travel to client sites VERY heterogeneous computing environments On-line travel system for their in-house needs Privileges according to employee status


Andersen Consulting (cont.): Andersen Consulting (cont.) "Java is absolutely ready for prime time. It's the most bulletproof language we've used. We don't have to worry about memory leaks. If we had done this in C, we would still be debugging." -Elmer Baldwin, President, via World Network.


CSX railway shipping: CSX railway shipping Find out which train(s) have your freight on map of USA Click on train and see what freight belongs to your company Saving CSX $10M in next year


CSX railway shipping (cont.): CSX railway shipping (cont.) CSX, using Java, has halved the time to write code and moved to a zero cost software distribution model. At the same time, CSX has moved to a multi-client environment, improved satisfaction, expanded reach and self-enabled the customer


CSX (cont.): CSX (cont.) "Java is CSX's enterprise computing solution Java is deployed everywhere and at every level of CSX. And we are working on architecturally purifying CSX development," said Marshall Gibbs, assistant VP of enterprise solutions at CSX Technology in Jacksonville, FL, the IT unit of CSX Corp. "Our ROI on projects where we use Java has increased by 10 percent."


Dun & Bradstreet: Dun & Bradstreet On-line office supply catalogue for in-house use Privileges according to status at company


Federal Express : Federal Express "Java is our primary targeted application platform for internal apps." says FedEx CIO Dennis Jones. "No internal application work is occurring for the client aside from Java development." Using Symantec Café


Ford Motor Credit Company.: Ford Motor Credit Company. "Ford Credit is using Java and the Internet to better serve our customers. Ford Credit is currently using Java to provide customers a convenient way to access account information - 24 hours a day, 7 days a week." -Terry Bone, Ford Motor Credit Company


National Library of Medicine (NIH) : National Library of Medicine (NIH) Using Java for health and information professionals to access database Users' displays tailored to suit information (instead of line-oriented displays) "The development of Java saved us the cost of developing to platform-specific window environments and greatly speeded up our delivery of a working prototype version of HSTAT (roughly six months from design to delivery)."


First Union Corp.: First Union Corp. "Java gives us greater selection of what applications we can use. Well over 90% of development is Java based," said Michael Love, vice president of the smart card initiative at First Union Corp in Charlotte, NC.


Java Future: Java Future Forrester Research, April 1997 52% of IT execs said Java is or would become part of their strategy within the year -- 16% have deployed production applications Among companies doing Java development, 81% will be using it for mission critical development in the next two years


Java Future: Java Future Forrester Research, April 1997 92% of IT execs said Java is or would become part of their strategy by 1999 -- with 68% deploying production applications Currently 14% use Java for server logic and database connections, but 74% expect to do this by 1999. Even more important, Java apps to drive database updates will jump from 4% to 54% in 2 years


Java Future: Java Future Zona Research, July 1997 By July 1998 - July 1999, nearly 60% of companies will have 1-10 full-time Java developers and 8% of companies will have 50+


Java Foundations: Java Foundations


Java Code: Java Code Simple Object Oriented Distributed Interpreted Robust Safe Secure Architecture Neutral Portable High Performance Multi-Threaded Dynamic (GC)


Boy Scout Code: Boy Scout Code trustworthy loyal helpful friendly courteous kind obedient cheerful thrifty brave clean reverent


History: History Green Project / FirstPerson / Oak Consumer electronics Set-top boxes James Gosling, Patrick Naughton


History: History LiveOak (1993) Arthur van Hoff WebRunner (1994) Patrick Naughton, Jonathan Payne Java Kim Polese


History: History Fall 1994: WebRunner written Spring 1995: Java/HotJava announced at SunWorld ‘95 Fall 1995: Java Day New York Birth of Gamelan Spring 1996: First JavaOne (San Francisco)


Platform Independent: Why?: Platform Independent: Why? Write once, run anywhere One code base to develop Upwardly compatible with new technology Writing code that will run on machines that haven't been invented yet Cross-compatible with existing installed base


Cross-Platform: Cross-Platform Write-Once-Run-Anywhere AIX, HP-UX, MacOS, OS2, Win95, WinNT, Netware, UnixWare, Irix, Solaris, and others


Platform Independent: How?: Platform Independent: How? Virtual Machine Application Application Application Windows MacOS Unix


Java Class Lifecycle : Java Class Lifecycle Source -> Bytecode -> Interpreter


Java Class Lifecycle: Java Class Lifecycle Source File (.java) Class File (.class) Compiler (javac) Java Virtual Machine (JVM) ClassLoader Bytecode Verifier Interpreter Just-in-time compiler Security Manager Operating System Network or File System = security gateway


Security Architecure: Security Architecure Has to go through Verifier on one side and Security Manager on the other Sandbox Cryptography / signed applets


Secure: Secure Java: Adjustable security: “untrusted” through levels of trust ActiveX: Binary trust: all or nothing


Java vs. ActiveX: Java vs. ActiveX Java ActiveX File IO yes yes Network IO yes yes Applet Caching yes yes Erase hard disk no yes Upload confidential information no yes


Object-Oriented: Object-Oriented Encourages more flexible and reliable designs Fosters reuse of code and design Reduces maintenance costs


Automatic Memory Management: Automatic Memory Management Greatly improves developer productivity Reduces “memory leakage” problems


Powers of ten: Powers of ten Cost of fixing problems Design = $1 Development = $10 Debugging = $100 Deployment = $1000 Brooks, The Mythical Man Month Java helps at early stages Problems are caught early


Distributed Computing: Distributed Computing Applications reside where they’re needed saving valuable desktop space Accessible from any connected location Native support for distributed app development (java.net, RMI, CORBA, DCOM)


Server-side strength: Server-side strength Built-in support for networking makes development easy


3-tier and n-tier development: 3-tier and n-tier development Flexible implementations separate user interface from business logic and from database storage


Java Libraries and APIs: Java Libraries and APIs


Java API Strategy: Java API Strategy


Core Libraries (APIs): Core Libraries (APIs) UI JFC IO Net JDBC RMI


Extended APIs: Extended APIs Electronic Commerce Network Management Security JavaBeans - GUI Components Enterprise Java - Enterprise Wide Backend Database Connectivity Server - Web Server or Distributed Applications JavaMedia - Multimedia


User Interface: AWT: User Interface: AWT Based on native widgets Native look-and-feel Simple components


Swing/JFC: Swing/JFC Builds on AWT and IFC Pluggable look and feel Rich set of pre-defined components Fully customizable Simplify commercial GUI development Open component market


AFC / WFC: AFC / WFC Microsoft's alternative Write once, run on Windows Out as of March 11, 1998


Standard Extensions: Standard Extensions Servlets InfoBus Java Help JavaMail


Java and Business: Java and Business JDBC JNDI (Java Naming and Directory Interface) Java Transaction Services Enterprise Java Beans


Distributed Computing: Distributed Computing


java.net: java.net uses TCP/IP works on all Java platforms all open protocols of the Internet HTTP, FTP, SMTP, IMAP Source code: Socket s = new Socket (“www.internet.com”,80);


RMI: RMI sits on top of java.net allows distributed computing connect to objects running on remote servers


CORBA: CORBA OMG standard for distributed computing alternative to RMI works with other languages (C, C++, Smalltalk) and existing programs portable, but not interoperable Java does CORBA Java Interface Definition Language JIDL/CORBA


JDBC: JDBC connects to SQL databases allows access to existing corporate data 100% Pure Java drivers for most major database engines Oracle, Sybase, Informix, etc.


JDBC Tools: JDBC Tools JBMS from CloudScape EPIC from Novera JavaBlend from JavaSoft/SUN Visual Café Databse Development Edition JDBC Beans dbAnywhere Beans


JDBC Middleware: JDBC Middleware Symantec dbAnywhere Borland DataGateway WebLogic several others


Components: Components


Spaghetti Code: Spaghetti Code Business logic mingled with systems code Ported to legacy systems Complex to develop Expensive to maintain


Java Beans: Java Beans Marketable software parts Business applications as reusable components Leverages legacy systems Easy to build/extend Easy to distribute


What is a component?: What is a component? Software “part” Self-contained, independent Plug-and-play, drag-and-drop Interact and interoperate with other components Assemble components to create an application Ready for use by visual programming tools Marketable


Split Development: Split Development JavaBeans producers Create components for user-interface and business-logic JavaBeans consumers Use JavaScript Applet Embedding for web pages Use JavaStudio and other visual development tools


Commercial User-Interface JavaBeans: Commercial User-Interface JavaBeans JScape (www.jscape.com) KL Group (www.klg.com) Lotus Kona project (www.lotus.com) Rogue Wave Dundas Many more: see http://www.javasoft.com/beans/


Enterprise Java Beans: Enterprise Java Beans Adds business services to Java Transactions, naming, etc. Simplified development don’t need to worry about threading, locking, transaction issues IBM heavily involved


Client-side Java: Client-side Java


Applets: Applets Are delivered through the internet or intranet On-demand, when needed Run inside a Java-enabled web browser Are secure Limited or no access to the local machine (“client”)


Browser compatibility: Browser compatibility Browsers, yuck Navigator 2.x, 3.x, 4.x Internet Explorer 3.x, 4.x


The Activator: The Activator


Activator, yay: Activator, yay uses latest JRE to deploy Java on intranets eventually, on Internet


Microsoft's Java: Microsoft's Java


Java vs. HTML: Java vs. HTML HTML is a presentation format Was never meant to be used for interactive applications Latency, or turn-around time, is too high Dynamic HTML is really just window dressing


Java vs. HTML: Java vs. HTML Java is a full-fledged application language High-level of interaction with low-latency More powerful and easier to use interfaces Flexible enough to play any part in a solution


Java can do it all: Java can do it all Server-side or back-end processing Middleware to transport and translate information Front-end user interface Adapts to client: from PC’s, NC’s to Hand-held devices


Java Applications: Java Applications Marimba Castanet delivers applications Changes nature of software No more upgrades! Just automatic updates http://www.marimba.com/ Founded by four original Java team members


Server-side Java: Server-side Java


Servlets: Servlets Cross-platform server-side scripting Like CGI, only cooler


Java Web Server: Java Web Server Server written in Java Runs servlets Cheap


Java Application Server: Java Application Server Based on Java Web Server High-performance Enterprise Java Beans


Enterprise Java Beans: Enterprise Java Beans Framework for enterprise servers Adds transactions, persistence, multithreading to server Deals with tough issues, keeping server-side business objects simple Many EJB servers (IBM, Weblogic, JavaSoft, etc.)


Java Myths: Java Myths


Myth: Java is Proprietary: Myth: Java is Proprietary Truly open standards Developed in collaboration with other partners IBM, Symantec, Intel, Oracle, … Long period of public comment and revision Several "clean-room" implementations underway Kaffe Sun does not compete with application developers Or does it? (Java Application Server, HotSpot) Java is an ISO Publically Available Standard approved 20 to 2


Myth: Java has poor performance: Myth: Java has poor performance Video Games Frag Island – Quake Rendering Engine (http://fragisland.fragzone.se/) Warp - Karl Hornell is God (http://www.tdb.uu.se/~karl/java/warp.html) Built-in Multi-threading improves performance


Myth: Java has poor performance: Myth: Java has poor performance Interpreter is fine for IO-bound apps (including UI) Very fast with Just-in-time (JIT) compilers Now available on most platforms HotSpot Object-oriented optimization Generational Garbage Collection malloc/free test: JVM 18 sec, MSJVM 8 sec, C++ 6 sec, HotSpot 2 sec. Many other enhancements


Myth: Java has poor performance: Myth: Java has poor performance Compile to native code where possible Compile server-side applications directly to the platform on which they’ll be used SuperCede and Symantec Café/Visual Café support this Note: lose some benefits of Java (notably dynamic linking)


Myth: Java is immature : Myth: Java is immature Compiler Bugs Almost none in real-world experience Java Compatibility Test required by all JavaVM licensees


Myth: Java is immature : Myth: Java is immature Class Library Bugs AWT in JDK 1.1 much improved JFC takes Java UI to the next level


Myth: Java is immature: Myth: Java is immature Java Virtual Machine problems Most are from implementations in browsers They lag behind JDK releases Affects “cross-platform” compatibility 100% Pure Java crusade, run seamlessly across platforms Activator


Myth: Write once, run anywhere: Myth: Write once, run anywhere Should be, “Write once, debug everywhere, run anywhere” Need a good debugger (like Café)


Java Myths: NCs vs. PCs: Java Myths: NCs vs. PCs PC vs NC: reality both will co-exist and overlap in functionality Network and server load issues: reality careful system administration and caching required Don't need to throw everything away and start from scratch


Myth: Java vs. Microsoft: Myth: Java vs. Microsoft Java works great under Microsoft OS IIS has full Java integration for ASPs


Other Java Initiatives/Environments: Other Java Initiatives/Environments


JavaPC: JavaPC Turn old PCs into NCs


Personal Java: Personal Java Tailored for products such as mobile phones, set top boxes, screenphones, mid-range mobile phones Designed to fit in devices with 2 Mb or less


Embedded Java: Embedded Java tailored for small memory, high volume products Tailored for products such as industrial controllers, pagers, routers, switches Designed to fit in devices < .5 Mb ROM Doesn't require general purpose applet downloading capabilities Includes the Java VM and core set of APIs


Java Card: Java Card Use in Smart Cards Java Ring Dallas Semiconductor 32K program RAM, 6K data RAM Serial port interface Contains private key crypto Runs off the “1” bits Auto-zeroing RAM


Other Companies: Other Companies


Netscape: Netscape First Java licensee Recently announced they're canceling their Java program Java will still work in Netscape with Activator etc. Also working (halfheartedly) on Javagator


Microsoft: Microsoft COM integration IIS AFC / WFC Visual J++ 6.0 SDKJ 3.0 just released in beta Write once, run on Windows Did someone say “lawsuit?”


Symantec: Symantec First with first out with dev tools, an IDE, a RAD IDE, a JIT, and a database-oriented product Developing JFC core technologies Developing JFC look-and-feels Just-in-time compiler keeps getting better Enhancing debugger support


IBM: IBM VisualAge for Java - nice RAD tool San Francisco Enterprise Java Beans Licensing picoJava


Developing Java: Developing Java


Developing Java:IDEs: Developing Java:IDEs Best ones are on PC Symantec Café Borland JBuilder Microsoft Visual J++


Developing Java: Java Studio: Developing Java: Java Studio


Java Third-Party Class Libraries: Java Third-Party Class Libraries


Java Generic Library: Java Generic Library http://www.objectspace.com/jgl Collections sequences, maps, sets, queues, stacks Algorithms sorting, searching, transforming


ACME collection: ACME collection Jef Poskanzer http://www.acme.com/java/software/ Cryptography Widgets and Common Dialog Boxes Graphic encoding/decoding


IBM’s San Francisco Initiative: IBM’s San Francisco Initiative Common Business Objects: general ledger, sales, inventory Will support EJB


Java Testing & Analysis Tools: Java Testing & Analysis Tools SunTest - Sun Microsystems division JavaStar Test Java applications through GUI interaction JavaSpec Test Java applications through APIs JavaScope Code-coverage tool


Other Testing Tools: Other Testing Tools Plum Hall, Inc. Test Conformance Suite Optimization Software Engineering Columbo - performance analysis optTest for Java - stress testing


Conclusion: Conclusion


Slide126: [APPLAUSE]


Slide127: [LUNCH]


Relevant Books:: Relevant Books: Rapid Development, by Steve McConnell, Microsoft Press Design Patterns, by Gamma, Helm, Johnson, Vlissides, Addison-Wesley Object-Oriented Software Construction, 2nd Ed., Bertrand Meyer, Prentice-Hall/PTR


Relevant Web Site Resources: Relevant Web Site Resources Javasoft & Sun: www.javasoft.com & www.sun.com Developer.com: java.developer.com Symantec: www.symantec.com IBM: www.ibm.com/java Borland: www.borland.com SuperCede: www.supercede.com


Credits: Credits Purple Technology Java Training and Consulting Symantec Corp. Java Development Tools Advanced Web Technologies Java-only training, mentoring, and consulting company Sun Microsystems JavaOne presentations: Lew Tucker, Alan Baratz, James Gosling Personal Thanks Lew Tucker, Gerry Seidman, Ian McFarland