The Java Revolution: From Enterprise to Gaming MaIrcCh,E 2005IS Conference May 26th, 2005 Raghavan N. Srinivas CTO, Technology Outreach Sun Microsystems, Inc. Who is a Technology Evangelist?
● Developer by heart ● “preach” and “teach” ● I speak and publish extensively. I also teach. ● Strive for credibility: ● In the developer and OS community ● Aptitude to simplify complexity and seperate the wheat from the chaff ● My Evangelical Mission: ● It's better to have an unanswered question than a unquestioned answer Speaker’s Qualifications
Raghavan “Rags” N. Srinivas is a Technology Evangelist at Sun Microsystems TM Rags writes frequently for JavaWorld and other online publications Rags is an adjunct faculty at Brandeis University Agenda
History: Open * computing and Java Present: java and java.net Many, many examples Future: Demos (when possible and relevant) Resources and Summary Open * Computing and Java
March, 2005 Computing (simplified)
Input
Processing
Output
Computing = Input + Processing + Output Secure Computing
Secure Computing = Computing + Public Key algorithm Ubiquitous Computing
Browser Request
http/https + Processing HTML applets Browser Response
Ubiquitous Computing = Computing + Public Key algorithm + Public Standards + Public Protocols Portable Computing
Browser Transcoder Processing HTML Container
XML Components
MIDP Devices XHTML/WML
XMLP/SOAP Portable Computing = Ubiquitous Computing + “trans”latable output Open * Computing
Browser Transcoder Processing HTML Container Public static void main(...) { } XML Components
MIDP Devices XHTML/WML
XMLP/SOAP Open * computing = Portable Computing + Open Source + Open Processes Network of Open * Computing
Browser Transcoder HTML
MIDP Devices XHTML/WML XML Applications vs. The Swarm.
Web Apps. Standards ● Location/Identity { ● Interface ● Network Data
Applications Value Metcalfe's ● Private Agreements Law
Applications
Participation Open * computing – Notable Milestones
Year What? Who? 1975 Public Key Infrastructure Diffie and Hellman 1979 Berkeley Software Distribution Bill Joy 1983 Free Software Foundation Richard Stallman 1991 Linux Linux Torvalds 1993 http and web Tim Berners Lee 1994 Apache Software Foundation Brian Behlendorf 1995 Java James Gosling 1998 J2EE Java Community 1998 mozilla Mozilla Foundation 1999 XML W3C 2000 ? ? 1995 – 1991 – The world 2003 – Duke gets on gets to know 1999 – J2ME, J2SE the stage with about Java in J2 enters with J2EE leads the Oak on *7 from the form of the “Family” adoption of WS Project Green HotJava 1996 – and Mobility JavaOne
SServerservers DeDesktopsktop mmachinesachines Optional High-endHigh-end Packages consumconsumerer devices Low-endLow-end Optional devices Packages consuconsummerer devicesdevices SSmmart-art- Java 2 Java 2 Personal Profile ccardsards Enterprise Standard Edition Edition Foundation Profile MIDP (J2EE) (J2SE) Java CDC CLDC Card APIs
Java Virtual Machine KVM CardVM
Java 2 Micro Edition (J2ME) Computing before Java
C or Fortran Compile Relocatable Source
Executable Link
Platform
Operating System
Hardware Java – Portable Code : WORA Write Once Run Anywhere
Java Source Compile Java Byte Code
Platform Virtual Machine Virtual Machine Platform
OOppeerraatitningg S Syystsetemm
HHaarrddwwaarree Java: It’s a Language
● Language Requirements – Secure – Powerful – Robust – Network Ready
=> Language for Distributed Applications Why did Java become Popular
● Simple & Familiar – like C, C++ ● Object-Oriented language ● Portable - – executes anywhere Java Virtual Machine exists ● Robust, Secure ● Garbage Collection – No memory leaks ● Distributed – Network Ready HTML Portable Content for Browsers
HTML
Browser
Platform
Operating System
Hardware Java Platform The Java “Glue”
choose
choose
Write with
Developers Only runs on Only runs on J2ME Devices
V60i V66i 9290 T280i 6650
6600 I50sx i55rx i85s 7650 N-Gage i90c i95cl i80s 7210 6310i A388 A 008 3410 A820 T720 5100
A009
I90c SE TP226 I58sr 3510i 8910i 6610 V600 388c A835 6800 3650 9210i 3585 3590 V67 E380 T725 9210
G8000 SD1100 Nexio
5350 Cnain CX300L 2100 SL45i M50 SL42 M46 CX-300L Cnain Info SCH 2000 iBook Ez-X1 SCH SD2100 Comm VX1 X350 Rainbow 460 SCH-X110 SCH I300 I330 SCH X250 N400 X120
CT56 C55 MT50 U10
SCH X140
SCH SCH X570 SCH SCH SCH X230 SCH SPH P800 S300 X600 X700 X130 S56 S55 S100 S4209 SO503i A3014S SO504i T62U Clie 5 Mhz 1970 2 KB of RAM PDP-8/I Less horsepower 1/4 Mhz than Java Card 8K of RAM
Java Card examples
● Belgium, Malaysia,Thailand: Electronic National Identity card ● Switzerland: SWISSCOM GSM operator 500,000 JavaCards ● Taiwan Health care Id ● Singapore's Road Toll ● U.S. Department of Defense ● American Express, Visa Java + HTTP
Portable Code Java
HTTP
Internet transport
Portable, Networked Systems code + transport functions + communication Java + XML + Internet
Portable Data Portable XML Code Java
HTTP
Internet transport
Portable, Networked Systems code + data + transport Verbs + nouns + communication Mars Rovers Mission Collaborative Information Portal
● Provide a central place to access mission information ● Provide a Mars time clock ● Navigate, search, and view mission data, plans, reports and schedules from various perspectives ● Provide notification of updates of various mission data Brazilian National Health Project Data and Information Captured
Identification and treatment data
● Patients ID
● Professional ID
● Provider Info
Point-of-Care Device Servers ● Encounter Information 130M inhabitants Brazilian National Health Project
XML Federal
External Systems State
Backbone
L XM Regional
XML Municipal
Point of Care Customer Pre-SOA (Service Oriented Architecture)
Credit Card Mortgage
Balance Fraud Credit Credit Balance Interest Check Detection Check Check Check Calc
Partner Customer Back-End Partner Credit Data Back-End Customer Data System Credit Data System Data Enterprise Post-SOA
WSRP Auto Mutual Access Unified Manager Loans Bill Pay Stocks Funds (Liberty) Role-Based View (Portal) BPEL Services Reusable Registry Business (Regrep Credit Card Components Mortgage UDDI) (Integration) Reusable Services (App Server) WS-I BP Payment Credit Fraud Detection Access Interest Balance Customer Trade Management Execution Check Service Calc Check Data Service Service Service
Internet Increased Agility
Partner Credit Data Back-End System Back-End System Customer Data Present: java and java.net – java getting more open
March, 2005 A Licensing Primer
SOFTWARE Free? Redist Unlimit Source Source Public Derivat Exampl ribute? ed Availab Modifi Check- ives e Usage le? able? ins Free? Commercial Shareware Almost! Royalty Free Y Y Y Binaries Royalty Free Y Y Y Y Libraries Open Source Y Y Y Y Y BSD Open Source Y Y Y Y Y Y Apache (Apache) Open Source (GNU, Y Y Y Y Y Y Y GNU, Linux) Linux Characteristics of Open * computing
Pros Cons
• Choice • Chaos
• Code • Code-centric
• Community • Coterie Open Source makes Money
Enterprise Developer Technologist Coding Java Studio Required Enterprise Corporate Integrator/ Developer Orchestrator
Java Studio Project Creator Kitty Hawk
Complexity java and java.net
March, 2005 Proliferation of Standards
WS-* Java Community Process ● Java: – Compatibility. No tolerance to forks ● Open Source: – Forks are OK ● Project Geronimo: – Open Source implementation of J2EE 1.4 application server with branding via the Technology Compatibility Kit (TCK) One River? ● Rhetorically, the Amazon is one river. ... or many? ● Practically, it is many.
Photo credit: European Space Agency, http://esamultimedia.esa.int/images/EarthObservation/amazon_river.jpg Freedom In Common ● Objective of OSI (open standards initiative) – Freedom through standards ● Objective of FSF – Freedom through source access ● Objective of Java & JCP – Freedom through compatibility ● Objective of OSI (open source initiative) – Freedom through licensing ● Each solving a different part of the same problem; freedom is the goal Java Community (diverse and rich)
applications products solutions services End-use “consumers” of Academia/ Opensource Research ISV Java Technology Community tools
Content Sites Standards Body n
i
a
Gaming Disparate online h Community Code
resources, tools, C
ISV sites, code, etc. e
u
java.sun.com l
●
downloads a ● information
V
Core Java JCP determines change to Java Platform java.net (collaboration is key)
applications products solutions services End-use “consumers” of
d d d E F c c c e G Java Technology
e e H t t o o t y o y y c t a a y t a t m i t m m i r r o r i i e e n n m e m m m un d u d un u d m e e u u u m e m m m F F u n n n F m m
n n i i i m java.net will o o t t t om i y y y c c i t o c y
B c A C D facilitate multiple a
Java communities, h
C
with collaboration •Content •Tools
e •Opensource •Code tools for development
u
l
java.sun.com a
● downloads V ● information
Core Java JCP determines change to Java Platform java.net—Building the community Community “Home” for Java ● The “playground” for Java open source and open development projects Status: ● 130,000+ members ● ~1,800 projects, 110 JUGs ● 18 active communities ● Blogs, Wikis, RSS, lots of dialogs! ● Interesting projects (Visible development of Mustang) ● James Gosling and other key Java technology leaders participate Many, many examples
March, 2005 NetBeans.org
● Center for Innovation, News and Support ● 3.5 Million Downloads of NetBeans tool ● 100 add-ons and extensions ● Visitors from 160 countries ● Active Community supporting developers in English, French, Russian, Japanese, and simplified Chinese NetBeans: Core IDE Features
● State-of-the-art Editor ● Ant-based project system ● Versioning: CVS, PVCS, VSS, and more ● Debugging: Multi-session, multi-threaded ● Testing: JUnit ● Refactoring and JavaDoc generation ● JDK version management ● Highly configurable ● Extensive templates OpenOffice.org
● 60 million downloads and growing
● 100,000 community members
● Over 40 community localisations
● 15 local-language mail lists for self-help
● Community ports to virtually every known platform
● Archival document formats!
● Conversion to and from Microsoft Office formats
● No virus problems ● Open APIs ● StarOffice has enterprise-level support & warranty Java: The Future
March, 2005 Project Looking Glass
Existing 2D Applications
New 3D Applications Looking Glass High-level Architecture Overview
3D Window Manager or Project Looking Glass-aware 3D Application
API X Client Application Project Looking Glass Libraries
Display Server X Server
X Client Capture Java 3DTM API
Graphics Platform J2SE 6.0 “Mustang” Themes
● Compatibility, Stability, Quality! ● Diagnosability, Monitoring & Management ● Ease of Development ● Corporate / Enterprise Desktop ● XML & Web Services
● Transparency “Mustang” Component JSRs
● JSR 105: XML Digital Signature ● JSR 199: Java Compiler API ● JSR 202: Java Class File Specification Update ● JSR 221: JDBC 4.0 ● JSR 222: JAXB 2.0 ● JSR 223: Scripting for the Java Platform ● JSR 224: JAX-RPC 2.0 ● JSR 260: Javadoc Tag Update ● JSR 268: Java Smart Card I/O API ● JSR 269: Pluggable Annotation Processing API ● JSR TBD: JAXP.next Please note: JSRs may be added or removed. Open development w/Java
● “Visible Development” Project: J2SE initiative for open development – Improve collaboration with developer community
● Publish weekly Mustang build sources and binaries
● Encourage contribution of bug fixes & enhancements
● Simplify build process so anyone can participate – Provide visibility into Sun engineering processes ● Encourage R&D using Java source code https://jdk.dev.java.net Resources and Conclusions
March, 2005 Java.net topical poll Resources
Netbeans http://www.netbeans.org java.net http://java.net http://j2se.dev.java.net http://lg3d-core.dev.java.net Open Solaris http://opensolaris.org Open Office http://openoffice.org Call for Action!
Develop on Java and Open * computing Use a platform that is robust and evolving Participate in java.net and open source java.net http://java.net [email protected]
March, 2005