SCO Java and Web Services Roadmap Jonathan Schilling

  • Slides: 41
Download presentation
SCO Java and Web Services Roadmap Jonathan Schilling, SCO Engineering 1

SCO Java and Web Services Roadmap Jonathan Schilling, SCO Engineering 1

Topics and Agenda What is Java 2 Standard Edition Java 1. 4. 2 Java

Topics and Agenda What is 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 2

What is Java ? (First Things) A language object-oriented, concurrent, distributed, self-aware A portable

What 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

The State of Java Dominant technology for modern programming Portability Enterprise Server-side Middleware Web

The 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 4

The Microsoft. NET Challenge Does have interesting and useful technology Imitates Java in several

The 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” 5

SCO’s Java Involvement SCO was a member of the Java Community Process (JCP) Executive

SCO’s 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 J 2 SE 6 http: //www. sco. com/java/

The Pieces of Java Web Services J 2 EE Specialty APIs: javax. comm Development

The Pieces of Java Web Services J 2 EE Specialty APIs: javax. comm Development Tools 7 J 2 SE Desktop: Plug-in, Web. Start

What is Java 2 Standard Edition? The central core of Java; provided with OS

What 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, 2 D, 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, native 2 ascii, idlj, etc. a/k/a the Java Runtime Environment (JRE)

What is Java 2 SE (cont’d)? Includes the following (command-line) development pieces: javac source-to-bytecode

What is Java 2 SE (cont’d)? 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)

SCO UNIX Java Release History 10

SCO UNIX Java Release History 10

J 2 SE 1. 4. 2 for SCO UNIX Platform Support SCO Open. Server

J 2 SE 1. 4. 2 for SCO UNIX Platform Support SCO Open. Server 6. 0. 0 Unix. Ware 7. 1. 4 Unix. Ware 7. 1. 3 Update Pack 4 essentially equivalent to UW 7. 1. 4 SCO Open. Server 5. 0. 7 MP 3 [UP 3/Supp. CD 3] requires OSRcompat v. 8. 0. 2 or higher uses new user-space OSR 5 UDK threads library 11

J 2 SE 1. 3. 1 for SCO UNIX Platform Support Unixware 7. 1.

J 2 SE 1. 3. 1 for SCO UNIX Platform Support Unixware 7. 1. 4 Unix. Ware 7. 1. 3 Unix. Ware 7. 1. 2 (a/k/a Open UNIX 8) requires Maintenance Pack 3 (ou 800 m 3) or higher Unix. Ware 7. 1. 1 requires Maintenance Pack 1 (uw 711 pk 1) or higher requires libc, libm, lib. C, libthread 8. 0. 0 or higher SCO Open. Server 5. 0. 7 requires OSRcompat 8. 0. 1 or higher SCO Open. Server 5. 0. 6 requires OSRcompat 8. 0. 1 or higher requires OSS 643 A 12

J 2 SE 1. 4. 2 for SCO UNIX Packages Package j 2 jre

J 2 SE 1. 4. 2 for SCO UNIX Packages Package j 2 jre 142 runtime support Package j 2 sdk 142 developer support, demos Package j 2 plg 142 Java Plug-in support for Mozilla browser All of above installed by default install from download site for later patch releases pkgadd format for UW 7, custom format for OSR 5 and OSR 6 /usr/java/Release. Notes. html is release doc go to http: //java. sun. com/j 2 se/1. 4. 2/docs/ for all Sun doc 13

Java Virtual Machines “Classic VM” (1. 3. 1) the original VM from Sun well-exercised

Java 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 14 “Hot. Spot” (1. 4. 2) the newer VM technology from Sun now well-exercised too dynamic, adaptive re-engineered for better performance, maintainability native threads only

What Java Runtime Compilers Do Make Java run faster In background, compile bytecodes of

What 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 reinterpreted Compilation is done while the application or applet is running hence “runtime” or “just-in-time” (JIT) in name an execution component, not development!

Different Java Runtime Compilers Classic VM “sunwjit” JIT (1. 3. 1) enhanced by SCO

Different 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/developer s/java/news/jit-heur. pdf Hot. Spot “client” compiler (1. 4. 2) for short-, medium-lived apps for fast start-up time, then good performance the default Hot. Spot “server” compiler (1. 4. 2) maximal performance for long-running applications longer time to start up java -server [… ] 16

Java Threads Models “green threads”: Java Virtual Machine does its own multithreading and context

Java 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 OSR 5 many limitations “native threads”: JVM maps Java threads, operations 1 -to-1 onto OS threads Java 1. 3. 1 UW 7 works ok but can be slow 17 Hot. Spot “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 UW 7 & OSR 6

Native Threads on Open. Server 5 !? SCO Open. Server 5 UDK threads library

Native Threads on Open. Server 5 !? SCO Open. Server 5 UDK threads library UW 7 libthread ported to OSR 5 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 Open. Server 5 ABI threads library? no, this is UDK only not needed for Java 18

SCO Java 1. 4. 2 vs. 1. 3. 1 Benchmark Results SPEC JVM 98

SCO Java 1. 4. 2 vs. 1. 3. 1 Benchmark Results SPEC JVM 98 -s 10 (mediumsized clients) Java 1. 4. 2 is 38% faster than Java 1. 3. 1 on UW 7 … 26% faster on OSR 5 SPEC JVM 98 -s 100 (largesized clients) Java 1. 4. 2 is 63% faster than Java 1. 3. 1 on UW 7 … 60% faster on OSR 5 UW 7 and OSR 5 roughly comparable on JVM 98 19 SPEC JBB 2000 (large threetier server app): Java 1. 4. 2 is 685% [6. 8 x] faster than 1. 3. 1 on UW 7!! using “server compiler” really shows effect of runtime compilation and threads optimizations No such figure on OSR 5 green threads hangs on 1. 3. 1 UW 7 much faster than OSR 5 for Java 1. 4. 2 benchmark needs kernel threads to do well OSR 6 results similar to UW 7

The moral is … If you’re using Java on an older OSR 5 Upgrade

The moral is … If you’re using Java on an older OSR 5 Upgrade to OSR 6! If you’re using Java on an older UW 7 Upgrade to UW 7. 1. 4! Java 1. 4. 2 will not be backported to earlier releases Java 1. 5 will not be made available on back releases 20

Java as a First-class Executable Unix. Ware 7. 1. x, Open. Server 6 feature

Java as a First-class Executable Unix. Ware 7. 1. x, Open. Server 6 feature When javac is used to compile one or more classes that contain 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

Native Methods Allows Java to call C or C++ or vice versa Must use

Native Methods Allows Java to call C or C++ or vice versa Must use UDK Not OSR 5 Dev Sys Not OSR 5 GCC Not OSR 6 –Kosr mode UW 7 gcc ok UW 7 g++ not advised JNI, JNI Invocation both supported /usr/java/demos/native/ for commands to use don’t 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 OSR 5: green threads I/O wrapping can cause troubles

Conformance SCO Java 2 SE implementations make no API extensions or subsets compared to

Conformance 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

J 2 EE — “Enterprise Edition” a/k/a “Java app server” The Java middleware standard

J 2 EE — “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? 24 JDBC (Database) Enterprise Java Beans Java. Server Pages Servlets Web Services, XML JNDI (Naming & Directory) CORBA Java Message Service Transactions and much more

J 2 EE Vendors Proprietary BEA Web. Logic IBM Web. Sphere Pramati various others

J 2 EE Vendors Proprietary BEA Web. Logic IBM Web. Sphere 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 Object. Web JOn. AS – from French consortium 25

J 2 EE on SCO UNIX “Enterprise” features not just for “Enterprises” useful for

J 2 EE on SCO UNIX “Enterprise” features not just for “Enterprises” useful for SMB and replicated sites too BEA Web. Logic Server 8. 1 BEA’s most recent release certified for native Unix. Ware 7. 1. 4 and Java 1. 4. 2! Jboss open source implementation Just download it and run, no porting necessary UW 7 users report good success with it … Will be packaged for UW 7. 1. 4 mp 3 (Nov 2005), OSR 6 mp 2 (Dec) Don’t 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 … 26

Java Serial and Parallel I/O Support javax. comm API is an extension to Java

Java 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, OSR 6 mp 1, and UW 7. 1. 4 based on RXTX open source implementation a good number of users on OSR 5 see /usr/javax. comm-Release. Notes. html for guidelines on how to use 27

Java Serial and Parallel I/O Support Parallel I/O guidelines supports basic printing status APIs

Java Serial and Parallel I/O Support Parallel I/O guidelines supports basic printing status APIs not supported is. Paper. Out, is. Printer. Busy, is. Printer. Error, 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 OSR 5 28

Java Desktop Technologies Java Plug-in Allows modern Mozilla 1. 2. 1 through 1. 7.

Java Desktop Technologies Java Plug-in Allows modern Mozilla 1. 2. 1 through 1. 7. x browsers on OSR 5. 0. 7, OSR 6 & UW 7. 1. 4 to use SCO J 2 SE 1. 4. 2 implementation no alternative! Mozilla doesn’t have an internal JVM Allows old Netscape 4. x browsers on OSR 5 & UW 7 to use SCO J 2 SE 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 29

SCO Java Futures Java 1. 4. 2_xx and 1. 3. 1_xx updates with Sun

SCO 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 OSR 6, UW 7 is under way scheduled for UW 7. 1. 4 mp 4 (Apr/May 2006), OSR 6 mp Packaged JBoss in earlier UW 7. 1. 4, OSR 6 maint packs Web services 30

Web Services

Web Services

Web Services Basics Web Services – What are they? Provide layer of software abstraction

Web 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 Don’t need to know, tools auto generate Bridge between J 2 EE and. NET 32

A Simple Sample in Java 33

A Simple Sample in Java 33

A Simple Sample in Perl #!/usr/bin/perl use SOAP: : Lite; my $zip_code = shift;

A Simple Sample in Perl #!/usr/bin/perl use SOAP: : Lite; my $zip_code = shift; print "The temperature at zip code ", $zip_code, " is "; print SOAP: : Lite -> service('http: //www. xmethods. net/sd/Temperature. Service. wsdl') -> get. Temp($zip_code); print "n"; 34

SCO Web Services Platform Support Three operating systems OSR 6. 0. 0 mp 1

SCO Web Services Platform Support Three operating systems OSR 6. 0. 0 mp 1 OSR 5. 0. 7 supp 3 UW 7. 1. 4 Two web service servers Apache Tomcat Five languages Java, Perl, PHP included in each’s default set of libraries C, C++ at /usr/lib/gsoap/ Demos of client use in /usr/scox/language_demos/ 35

SCOx Web Services Language Support 36

SCOx Web Services Language Support 36

Why Java fits in with Web Services Java excellent language to use Web Services

Why Java fits in with Web Services Java excellent language to use Web Services in Part of J 2 EE 1. 4 specification Can also use stand-alone apart from J 2 EE 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 37

SCOx Web Services Substrate (WSS) A set of tools for modernizing applications Web. Face,

SCOx Web Services Substrate (WSS) A set of tools for modernizing applications Web. Face, Web. Face 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® Host. Publisher® extend legacy “green screen” apps via web services 38

Availability of SCOx WSS Now a set of tools and services for use in

Availability of SCOx WSS Now a set of tools and services for use in modernizing applications Engage via SCO Professional Services 39

SCO’s Java and Web Services Goals Enable ISVs, partners, users to develop and deploy

SCO’s 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 40

Questions & Answers

Questions & Answers