Extreme Java G22.3033-007 Session 1 - Main Theme Introducing Extreme Java Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 1 Agenda Review Java s Programming Language Features Course Logistics, Structure and Objectives Enterprise Software Foundations Application Performance Enhancements Limitations of the Java Environment Readings Class Project & Assignment #1a 2 Java Features Review See Handout on Java Review Language Categories Imperative Functional Logic-based Model-based PL Comparison Framework Data Model Behavioral Model Event Model Execution, Persistence, etc. 3 1
Course Logistics Course Web Site http://cs.nyu.edu/courses/spring01/g22.3033-007/index.htm http://www.nyu.edu/classes/jcf/g22.3033/ Password: extjava Review syllabus Textbooks Building Java Enterprise Systems with J2EE Advanced Techniques for Java Developers, Rev.Ed. 4 Enterprise Software Foundations Enterprise Architecture Model Business Architecture Application Architecture Technical Architecture Object-Oriented Software Development Iterative/Incremental Development Process OO Concepts (modularity, encapsulation, abstraction, reuse) Component-Based Software Development Process paired with OO Development Canned component models 5 Enterprise Architectures Enablers User Interfacing HTML, XML, AWT, Swing Distributed Communications Enabling TCP/IP, CORBA, RMI/IIOP, COM+ Services for Distributed Communications JNDI, CORBA Trading, JINI, Activation, JMS, JavaMail, JTA, JTS, etc. Data Enabling JDBC Systems Assurance Security, Reliability, Availability, Maintainability, Safety Web Enabling Applets, Servlets, JSP, XML Application Enabling EJB, EAI 6 2
Software Development Infrastructure OO Development UML OOPLs (Java, C++, etc.) Component-Based Development UML (patterns, frameworks), MOF, XMI Applets, JavaBeans, CORBA, RMI/IIOP, COM+, Java APIs (J2SE foundation classes), J2EE (Servlets, JSPs, EJBs), CORBAcomponents, Microsoft DNA, etc. 7 Distributed Communications Enabling Underlying Protocols TCP/IP Web/HTTP, SSL CORBA/IIOP, GIOP RMI/JRMP RMI/IIOP DCOM 8 Distributed Communications Enabling Core Common Services Naming DNS, JNDI Directory NIS, NDS, LDAP, Microsoft Active Directory Trading CORBA Trading Service, JINI Activation CORBA LifeCycle Service, Java Activation Framework Messaging JMS, JavaMail, CORBA Events/Messaging/Notification Transaction CORBA OTS, JTS, JTA 9 3
Sample Enterprise Application Design See Sub-Topic 1 Presentation: Best Practices in Technical Architectures for Fixed Income Market Participants 10 Application Performance Monitoring Java Profiling java -Xrunhprof:cpu=samples,file=prof.txt Pgm Jprobe from KLGroup (www.klg.com) OptimizeIt from Intuitive Systems (www.optimizeit.com) Timing measurement java.lang.system s currenttimemillis (current time in ms since 12:00 AM GMT, Jan 1 1970 Heap monitoring, System Tools java -ms280k -mx1665k -verbose:gc Pgm JIT and Static Compilation 11 Java Performance Problem Areas JIT (e.g., HotSpot) and Static Compilation Creating and Reusing Objects Using Constants (e.g., static final int X = 5;) Using Strings (String, StringBuffer, char arrays) Exception Usage Loop Techniques loop constants/variables, early termination Casting (unecessary casts and instanceofs) Synchronization Garbage collection Collections 12 4
Limitations of the Java Environment Behavioral Reflection Reification is the inverse of reflection (e.g., class loader) Structural reflection reifies structural aspects of a program (inheritance/data type) Behavioral reflection reifies computation and their behavior http://www4.informatik.uni-erlangen.de/projects/pm/java/ http://www.dcc.unicamp.br/~oliva/guarana/ http://www4.informatik.uni-erlangen.de/tr/pdf/tr -I4-97-10.pdf Execution State Control Agglets Performance etc. Previous slides 13 Assignment Readings Building Java Enterprise Systems: Part I (1-3) Advanced Techniques: Chapter 1 Handouts posted on the course web site Assignment #1a: C++/Java Comparison MetaJava VM installation/exploration Read Papers on Behavioral Reflection Project Framework Setup IBM4J/LotusXSL, Apache s Xerces/Xalan TreeViewer Sample Application 14 5