View
63
Download
1
Category
Preview:
DESCRIPTION
JavaOne 2002 http://servlet.java.sun.com/javaone/. Greg White, March 24-29th 2002. Content. J2SE Interoperability with XML based protocols Real-time java Performance tuning References to Best picks. J2 Standard Edition (J2SE). The basic (default) Java package, freely distributed - PowerPoint PPT Presentation
Citation preview
JavaOne 2002http://servlet.java.sun.com/javaone/
Greg White,
March 24-29th 2002
Greg White, ESD
Content
• J2SE
• Interoperability with XML based protocols
• Real-time java
• Performance tuning
• References to Best picks
Greg White, ESD
J2 Standard Edition (J2SE)
• The basic (default) Java package, freely distributed• Now in v1.4. Stability, scalability, compatibility• Includes V1.3 of Java2D ~ 100% faster than v1.2, X support 4-5 times faster• Includes CORBA• “New I/O”. Much faster IO, file/screen/socket, abstract data type buffer
manipulation• 1 VM : many threads on many cpus. • 64bit clean, now in Spark, soon on itanium.• Logging API included. Simple assertion.• Exception chaining• Core XML support bundled, include JAX*, SAX, DOM• Connectivity: IPv6 addressing, new URI class.• Security: JSSE Secure Socket Extension (ssl, HTTPS), kerberos
Greg White, ESD
J2SE continued
• JFC/Swing gives full drag and drop.
• Deployment: Web Start now in SDK
• v1.4.1 (autumn)
– >1 VM Sharing loaded libraries, so SHR, GBL
• v1.5 (late next year)
– Templates!
– Compiler conversion of primitive types
Greg White, ESD
Interoperability XML based Protocols (“Web Services”)
• WSDL, defines a “service” in XML, CORBA like– SOAP, MIME, http bindings. W3C Spec and Example
• UDDI (Universal Description Discovery Integration)– A standard for Name and Directory services
• JAX-RPC, can be used to implement the service according to the WSDL with SOAP implementation
• JAXP, Parses XML, both SAX and DOM. It’s a XML implementation independent layer and API for XML document processing.
• JAXR, Access to XML based registries, like name or directory services.
• JAXM, An API for XML based messaging.• JAXB, Maps XML tags and types to Java language types
Greg White, ESD
Why Might Web Services be Important to Us down the line?
• If we package application data in XML
• E.g. in SDDS like model
App
X-bean
Web
Servlet
BPM data
XML format data
JAX-RPC
Greg White, ESD
Why Might Web Services be Important to Us down the line?
• If we package application data in XML
• JAXP for parsing, JAXM for messaging, JAXB for mapping XML data to objects
App
X-bean
Web
Servlet
AIDA
XML format data
History
EPICS
BPMDir/Svc
UDDI
SO
AP
/W
SD
L
JAXM
Greg White, ESD
Real Time Java
• RTSJ - Real Time Specification for Java
– Predictable execution > fast execution: “Real Time != Real fast”
– No syntax extensions, but more APIs and Extensible Classes• Scheduler class
• Timer class
• Asynch event handling
• Asynch Transfer of Control (ACT) like setjmp/longjmp
• High resolution time (~1ns)
– Objects not managed by regular Garbage Collection• “Immortal Memory Area”
• Physical memory control
– Ref: http://www.rtsj.org
Greg White, ESD
RT Java con’t
• Tools for smaller class– Jopt, JAX, DashO, javac -g:none
• Implementations– VxWorks implementation: Insignia Solutions impl of Personal Java (PersonalJ)
http://java.sun.com/products/personaljava/– jStamp: HW aJile chip and PS. 1x2in, DIP40 pins http://jstamp.systronix.com/
Talks:
J2ME in Lindholm Tech Keynote
RT Java in Deeply Embedded Sys: TS-3190
Greg White, ESD
Performance Tuning
• Do’s– Architect to call-by-reference (ie use reference types)– Avoid JNI if Java enabled database driver– Threading
• Size thread pool appropriately• In v1.4 1 JVM/cpu can manage >1 thread (because Java/JVM threads !=
kernel threads).• Use thread monitoring tool (Hpview).• Kill -QUIT on JVM will give you a thread dump
– Hotspot:• Choose carefully between “-client” and “-server”• Use -verbose:gc to see what its doing. Resize generations (“eden” and
“old”) wisely• -Xincgo for better pauses• -? For better throughput• Try bigger heap (-Xmx), or bigger new generation
Greg White, ESD
Programming for Performance
• Array sizing: Size array in declaration (otherwise it does dbgetc-like remalloc).
• Don’t use exception based flow-control (!)• Use New I/O buffer classes for array manipulation• Minimize object creation - do it at init. Pool objects. Design methods
to modify existing objects, not create new ones.• Avoid synchronization• Avoid serializing• Understand how lib methods work.• Use external caching support (eg HTTP Cache-control tags)• Use long instead of java.util.Date• Use arguments and locals in preference to member variables• Use char array instead of StringBuffer• Use db connection pooling
Greg White, ESD
Best Picks
• Graham Hamilton, Tech Keynote– http://servlet.java.sun.com/javaone/sf2002/conf/keynotes/index.en.jsp
• Optimizing for the Java(TM) Servlet API and Java DataBase Connectivity(TM) (JDBCTM) Technology TS-1355. Speakers: Tim Kientzle
– Performance optimization tools, what to look for, practical actions for improvement• A Programmer Survivor's Guide for Java(TM) Technology, Using Mature Programming
Practices, Patterns and Principles TS-2758• Performance Tuning for 'Big Iron' TS-2008• The Java(TM) 2 Platform, Standard Edition (J2SETM) 1.4 Release and Beyond TS-1756
, Speakers: Graham Hamilton• Best Practices for CORBA TS-1663 Speakers: Ken Cavanaugh,Hemanth Puttaswamy• New I/O APIs for the Java(TM) Platform TS-3477, Speakers: Mark Reinhold• Performance Technologies for the Java(TM) Platform, for Deeply Embedded and Real-
Time Systems TS-3190• An Introduction to the Java(TM) Native Interface (JNI) TS-2253: Speakers: John
Chamberlain• The Java(TM) 2 Platform, Enterprise Edition (J2EETM) Tutorial TS-1715
Speakers: Stephanie Bodoff,Dale Green,Kathy Walrath
Recommended