The Revolution: From Enterprise to Gaming MaIrcCh,E 2005IS Conference May 26th, 2005 Raghavan N. Srinivas CTO, Technology Outreach , 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 1983 Foundation Richard Stallman 1991 Linux Torvalds 1993 http and web Tim Berners Lee 1994 Apache Software Foundation Brian Behlendorf 1995 Java 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 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 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: – 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 Office formats

● No virus problems ● Open APIs ● StarOffice has enterprise-level support & warranty Java: The Future

March, 2005

Existing 2D Applications

New 3D Applications Looking Glass High-level Architecture Overview

3D 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: 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 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