Title: SCO Java and Web Services Roadmap Jonathan Schilling, SCO Engineering
1SCO Java and Web Services RoadmapJonathan
Schilling, SCO Engineering
2Topics and Agenda
- What is Java?
- Java 2 Standard Edition
- Java 1.4.2
- Java 2 Enterprise Edition
- solutions for SCO platforms
- Java Serial and Parallel I/O Support
- Java Desktop Technologies
- Web Services
- For Java and for other languages
3What is Java ? (First Things)
- A language
- object-oriented, concurrent,
distributed, self-aware - A portable runtime environment
- similar to an OS but platform-independent
- A set of APIs covering the breadth of an OS
- A set of APIs enabling application layers
- A good base for web services
- A development environment
4The State of Java
- Dominant technology for modern programming
- Portability
- Enterprise
- Server-side
- Middleware
- Web services
- Also used as client GUI or as browser plug-in
- Guided by Sun, built by whole industry
- Java Community Process governs evolution
5The Microsoft .NET Challenge
- Does have interesting and useful technology
- Imitates Java in several respects
- C language similar to Java
- CIL intermediate form similar to Java bytecode
- Common Language Runtime similar to JVM
- but Java now imitating .NET in a few places
- Suffers from vendor and platform lock-in
- Newer, less mature
- Microsoft now collaborating with Sun and IBM
- Although Ballmer says interop progress has
slowed - Mono .NET implementation is scheduled for SCO
Fusion
6SCOs Java Involvement
- SCO was a member of the Java Community Process
(JCP) Executive Committee - voted on JSRs that define/evolve Java standard
- promote adoption/growth of the Java technology
- 2000 - 2004
- SCO is a Sun Java source code licensee
- since 1996
- basis of SCO UNIX J2SE
http//www.sco.com/java/
7The Pieces of Java
J2EE
Web Services
Specialty APIs javax.comm
J2SE
DesktopPlug-in, WebStart
Development Tools
8What is Java 2 Standard Edition?
- The central core of Java provided with OS
- Includes the following execution pieces
- Java Virtual Machine (JVM)
- the underlying execution engine
- transparent runtime compilers for performance
- just-in-time or dynamic or adaptive
- basic API libraries
- language support, utilities, math, I/O
- applets, AWT, JFC/Swing, 2D, images, media
- networking, compression, and security
- distributed/component programming core
- XML, RMI, Java Beans parts of JDBC, JNDI, CORBA
- various commands
- keytool, rmic, rmiregistry, serialver,
native2ascii, idlj, etc. - a/k/a the Java Runtime Environment (JRE)
9What is Java 2 SE (contd)?
- Includes the following (command-line) development
pieces - javac source-to-bytecode compiler,
- jdb command-line debugger,
- javah header/stub generator for native method
support - javap bytecode disassembler,
- javadoc documentation formatter,
- jar archiving tool,
- appletviewer browser for applet testing
- a/k/a Java Software Development Kit (JDK, SDK)
10SCO UNIX Java Release History
11J2SE 1.4.2 for SCO UNIX Platform Support
- SCO OpenServer 6.0.0
- UnixWare 7.1.4
- UnixWare 7.1.3 Update Pack 4
- essentially equivalent to UW 7.1.4
- SCO OpenServer 5.0.7 MP3 UP3/SuppCD3
- requires OSRcompat v. 8.0.2 or higher
- uses new user-space OSR5 UDK threads library
12J2SE 1.3.1 for SCO UNIX Platform Support
- Unixware 7.1.4
- UnixWare 7.1.3
- UnixWare 7.1.2 (a/k/a Open UNIX 8)
- requires Maintenance Pack 3 (ou800m3) or higher
- UnixWare 7.1.1
- requires Maintenance Pack 1 (uw711pk1) or higher
- requires libc, libm, libC, libthread 8.0.0 or
higher - SCO OpenServer 5.0.7
- requires OSRcompat 8.0.1 or higher
- SCO OpenServer 5.0.6
- requires OSRcompat 8.0.1 or higher
- requires OSS643A
13J2SE 1.4.2 for SCO UNIX Packages
- Package j2jre142
- runtime support
- Package j2sdk142
- developer support, demos
- Package j2plg142
- Java Plug-in support for Mozilla browser
- All of above installed by default
- install from download site for later patch
releases - pkgadd format for UW7, custom format for OSR5 and
OSR6 - /usr/java/ReleaseNotes.html is release doc
- go to http//java.sun.com/j2se/1.4.2/docs/ for
all Sun doc
14Java Virtual Machines
- Classic VM (1.3.1)
- the original VM from Sun
- well-exercised code base
- green threads or native threads
- performance can be improved with a JIT
- HotSpot (1.4.2)
- the newer VM technology from Sun
- now well-exercised too
- dynamic, adaptive
- re-engineered for better performance,
maintainability - native threads only
15What Java Runtime Compilers Do
- Make Java run faster
- In background, compile bytecodes of methods into
native IA-32 machine code - On subsequent invocations of method, machine code
is executed instead of bytecode being
re-interpreted - Compilation is done while the application or
applet is running - hence runtime or just-in-time (JIT) in name
- an execution component, not development!
16Different Java Runtime Compilers
- Classic VM sunwjit JIT (1.3.1)
- enhanced by SCO
- JIT heuristics
- faster start-up for GUI and other apps
- http//www.sco.com/developers/java/news/jit-heur.p
df
- HotSpot client compiler (1.4.2)
- for short-, medium-lived apps
- for fast start-up time, then good performance
- the default
- HotSpot server compiler (1.4.2)
- maximal performance for long-running applications
- longer time to start up
- java -server
17Java Threads Models
- green threads Java Virtual Machine does its
own multithreading and context switching all
Java threads operate within one OS thread - Java 1.3.1 OSR5
- many limitations
- native threads JVM maps Java threads,
operations 1-to-1 onto OS threads - Java 1.3.1 UW7
- works ok but can be slow
- HotSpot native threads JVM optimizes mapping
of Java threads and operations onto OS threads - e.g. Java synchronizations only rarely become OS
mutex_lock calls - Java 1.4.2 UW7 OSR6
18Native Threads on OpenServer 5 !?
- SCO OpenServer 5 UDK threads library
- UW7 libthread ported to OSR5 under UDK
- available LWPs always equals one model
- required for Java 1.4.2
- green threads are gone
- also use for UDK C/C apps
- SCO OpenServer 5 ABI threads library?
- no, this is UDK only
- not needed for Java
19SCO Java 1.4.2 vs. 1.3.1 Benchmark Results
- SPEC JVM98 -s10 (medium-sized clients)
- Java 1.4.2 is 38 faster than Java 1.3.1 on UW7
- 26 faster on OSR5
- SPEC JVM98 -s100 (large-sized clients)
- Java 1.4.2 is 63 faster than Java 1.3.1 on UW7
- 60 faster on OSR5
- UW7 and OSR5 roughly comparable on JVM98
- SPEC JBB2000 (large three-tier server app)
- Java 1.4.2 is 685 6.8x faster than 1.3.1 on
UW7!! - using server compiler
- really shows effect of runtime compilation and
threads optimizations - No such figure on OSR5
- green threads hangs on 1.3.1
- UW7 much faster than OSR5 for Java 1.4.2
- benchmark needs kernel threads to do well
- OSR6 results similar to UW7
20The moral is
- If youre using Java on an older OSR5
- Upgrade to OSR6!
- If youre using Java on an older UW7
- Upgrade to UW7.1.4!
- Java 1.4.2 will not be backported to earlier
releases - Java 1.5 will not be made available on back
releases
21Java as a First-class Executable
- UnixWare 7.1.x, OpenServer 6 feature
- When javac is used to compile one or more classes
that contain main methods, the execute bit will
be set on the resultant .class files - Then do a link ln -s foo.class foo
- Now you can now execute a Java program named foo
as follows foo - The class foo must both be in PATH (like any
other executable) and in CLASSPATH (like any
other class) - Purpose Can now write utilities in Java without
users knowing it
22Native Methods
- Allows Java to call C or C or vice versa
- Must use UDK
- Not OSR5 Dev Sys
- Not OSR5 GCC
- Not OSR6 Kosr mode
- UW7 gcc ok
- UW7 g not advised
- JNI, JNI Invocation both supported
- /usr/java/demos/native/ for commands to use
- dont guess at it!
- Use debug(1) to debug see Release Notes
- Use native methods sparingly
- today, most Java apps are 100 Java!
- Java 1.3.1 on OSR5 green threads I/O wrapping
can cause troubles
23Conformance
- SCO Java 2 SE implementations make no API
extensions or subsets compared to the Sun/JCP
baseline - SCO Java 2 SE implementations pass the latest
applicable Sun/JCP Java Compatibility Kit
(JCK/TCK) test suites
24J2EE Enterprise Edition
- a/k/a Java app server
- The Java middleware standard for servers
- For many end user app builders and ISVs, this is
what you program to - Many vendors
- Typically not provided by OS
- is this changing?
- JDBC (Database)
- Enterprise Java Beans
- JavaServer Pages
- Servlets
- Web Services, XML
- JNDI (Naming Directory)
- CORBA
- Java Message Service
- Transactions
- and much more
25J2EE Vendors
- Proprietary
- BEA WebLogic
- IBM WebSphere
- Pramati
- various others
- Open Source
- Jboss most mindshare of open source
implementations - Sun Java System Application Server recently
open sourced - Apache Geronimo recently completed cert
milestone - ObjectWeb JOnAS from French consortium
26J2EE on SCO UNIX
- Enterprise features not just for Enterprises
- useful for SMB and replicated sites too
- BEA WebLogic Server 8.1
- BEAs most recent release
- certified for native UnixWare 7.1.4 and Java
1.4.2! - Jboss open source implementation
- Just download it and run, no porting necessary
- UW7 users report good success with it
- Will be packaged for UW 7.1.4 mp3 (Nov 2005),
OSR6 mp2 (Dec) - Dont always need the whole enchilada!
- for just servlets JSP, use Tomcat 4.1.31
package - JDBC usually comes from database vendor
- for SOAP/XML web services, see later on
27Java Serial and Parallel I/O Support
- javax.comm API is an extension to Java
- RS-232 based serial I/O
- IEEE 1284 based parallel I/O
- Available on OSR 5.0.7, OSR6 mp1, and UW 7.1.4
- based on RXTX open source implementation
- a good number of users on OSR5
- see /usr/java/javax.comm-ReleaseNotes.html for
guidelines on how to use
28Java Serial and Parallel I/O Support
- Parallel I/O guidelines
- supports basic printing
- status APIs not supported
- isPaperOut, isPrinterBusy, isPrinterError, etc.
- USB support?
- full-blown USB support is a different API
- javax.usb (JSR 80)
- but behave-like-serial will work with javax.comm
- may depend on the actual driver
- success stories on OSR5
29Java Desktop Technologies
- Java Plug-in
- Allows modern Mozilla 1.2.1 through 1.7.x
browsers on OSR5.0.7, OSR6 UW7.1.4 to use SCO
J2SE 1.4.2 implementation - no alternative! Mozilla doesnt have an internal
JVM - Allows old Netscape 4.x browsers on OSR5 UW7 to
use SCO J2SE 1.3.1 implementation - big improvement over out-of-date, broken Netscape
internal JVM - Java Web Start
- Launch application (not applet) from desktop
or browser - Insufficient market demand so far
30SCO Java Futures
- Java 1.4.2_xx and 1.3.1_xx
- updates with Sun patch levels (usually security
fixes) - Java 1.5 (now renamed by Sun to Java 5.0)
- language changes generics, autoboxing, for
loops, enums, varargs, printf - Sun FCS late Sept 2004
- SCO UNIX version for OSR6, UW7 is under way
- scheduled for UW7.1.4mp4 (Apr/May 2006), OSR6 mp
- Packaged JBoss in earlier UW7.1.4, OSR6 maint
packs - Web services
31Web Services
32Web Services Basics
- Web Services What are they?
- Provide layer of software abstraction
- Make apps available via Internet to other apps
- OS, hardware, language, location agnostic
- Industry-standard specifications
- SOAP, XML, WSDL, UDDI
- Dont need to know, tools auto generate
- Bridge between J2EE and .NET
33A Simple Sample in Java
34A Simple Sample in Perl
!/usr/bin/perl use SOAPLite my zip_code
shift print "The temperature at zip code ",
zip_code, " is " print SOAPLite -
service('http//www.xmethods.net/sd/TemperatureSer
vice.wsdl') - getTemp(zip_code) print "\n"
35SCO Web Services Platform Support
- Three operating systems
- OSR 6.0.0 mp1
- OSR 5.0.7 supp3
- UW 7.1.4
- Two web service servers
- Apache
- Tomcat
- Five languages
- Java, Perl, PHP included in eachs default set
of libraries - C, C at /usr/lib/gsoap/
- Demos of client use in /usr/scox/language_demos/
36SCOx Web Services Language Support
37Why Java fits in with Web Services
- Java excellent language to use Web Services in
- Part of J2EE 1.4 specification
- Can also use stand-alone apart from J2EE
- Language is flexible, dynamic, self-aware
- proxy classes, complex types, XML data binding
... - Java web services bindings are standards
- JAXP, JAXB, JAX-RPC, etc.
- not true of other languages (C, C, PHP ...)
- Java encourages powerful middleware layers
38SCOx Web Services Substrate (WSS)
- A set of tools for modernizing applications
- WebFace, WebFace Studio
- rich, browser-based, web services-based UIs
- uses AJAX approach, ahead of its time
- SQLe
- expose SQL database as a web service
- WAM
- manage Tomcat-deployed Java web services
- Ericom HostPublisher
- extend legacy green screen apps via web
services
39Availability of SCOx WSS
- Now a set of tools and services for use in
modernizing applications - Engage via SCO Professional Services
40SCOs Java and Web Services Goals
- Enable ISVs, partners, users to develop and
deploy Java applications on SCO platforms - The same with web services
- Comformance with standards
- Compatibility with other implementations
- Commitment to support
- Reliability, Performance, Scalability
- Legacy code connectivity
- SCOx Professional Services
41Questions Answers