Thursday, June 19, 2008

Summit Session - Agile Business Processes: Follow the Rules

This session was presented by Burr Sutter, Technical Product Manager - SOA: ESB, jBPM, Rules.

"FTP is the clear winner for system to system integration." Organizations very frequently perform integration by dumping data from one system, transferring it to another location (typically FTP), and sucking it up into another system.

Custom applications have business rules and process flows. Typically business rules and process flows are embedded in application logic. JBoss jBPM and JBoss Rules provide the capability to extract process flows and business rules from code and write them declaratively. This results in applications that are more agile.

Wednesday, June 18, 2008

Summit Session - JBoss EAP Tuning

This one is being presented by Andy Miller, VP of Engineering. Trying to do performance tuning in a very short time frame.

Agenda performance tuning basics, EAP tuning, Linux specific tuning, database and storage performance tuning, performance tuning as applied to an actual EJB 3 application.

Performance Tuning Basics - Understand your performance requirements. If this is replacing an existing system then look at that system's usage. If this is a new system, then understand expected usage scenarios. In either case, need to understand the peak time periods an how that will differ from non-peak times. Focus on peak usage, not averages.

Instrumentation - Applications need to be instrumented for performance analysis. Without instrumentation, you don't have data to work with. Use asynchronous logging. Wrap debug log statements with if(debugEnabled()). This is more efficient than just using log.debug(). For example, if a string is being build in a log.debug() statement, the string will still be created even if the logging level is set above debug. This can cause the creation of a lot of unnecessary temporary Strings.

Understand where time is being spent in the application. Need to know where time is being spent in various transactions. Avoid the "shotgun method" of performance tuning. You can spread performance tuning all over the place, but without supporting performance data, you will likely not hit the real performance bottlenecks.

Connection Pooling. Database connection pooling are expensive to setup and tear down.. The EAP has robust connection pooling, and yo should monitor your connection usage from the database to determine proper sizing. Too small a pool will also throttle the application as the EAP will queue the request for a default of 30,000 milliseconds before giving up and throwing an exception. You can monitor the connection pool from the JMX Console.

Thread Pooling - The EAP has robust thread pooling, that should be sized appropriately. The EAP server has a file called jboss-service.xml in the conf directory that defines the system thread pool. In server.xml of the JBoss Web, there is a maxThreads setting.

Logging - The default configuration is that the console log is turned on. Very good for developers, but very bad for production. The JBoss log4j configuration (jboss-log4j.xml in the conf directory) will hot deploy.

Caching - JBoss Cache is an integral part of the EAP and can be sued directly by your application to cache anything you want. By far, one of the easiest potential performance enhancements you can make is caching of EJB 3 entities. You simply define what entities you want cached in the persistence.xml that you deploy with your EJB 3 application. Warnings - review the cache eviction policy and the overall memory space your cache will take.

Clustering and Replication - Use buddy replication. Configure buddy replication in the jboss-service.xml that is in the server//deploy/jboss-web-cluster.sar/META-INF.

From the 2008 Red Hat Summit in Boston...

I'm in Boston this week attending the Red Hat Summit in Boston. As I talk with people this week and attend sessions, I'll blog about interesting things that come up throughout the week.

Currently, I'm in a session titled JBoss Enterprise Platforms and Roadmap being presented by Rob Cardwell. This is an overview of the JBoss Enterprise Middleware platforms and frameworks.


  • JBoss Developer Studio - June 2008: JBoss Developer Studio 1.1, updated with JBoss EAP 4.3, JBoss WS Tools
    Dec 2008: JBoss Developer Studio 2.0: Updated with JBoss EAP 5.0, SOA Platform pluggins

  • Seam 1.2 - Seam integrates JavaSever Faces (JSF) and EJB3. It also provides a number of significant enhancements to JSF such as enhanced error handling, PDF generation, etc.

  • JBoss Enterpirse Application Platform
    Q4 2008: JBoss EAP 5.0 - JEE5 Certification, JBoss Microcontainer: POJO - based kernel, new deployer architecture, new configuration API, new classloading architecture, Apache Portable Runtime, latest hibernate, Seam 2 with enhanced integration: JBoss WS, Hibernate search

  • JBoss Operations Network
    JBoss ON 2.0 (May 2008) Advanced Configuration Management

  • JBoss Enterprise Portal Platform
    2.7: Sept 2008 - Support for Portlet 2.0 specification, page parameters, administration tool support for portlet 2.0 spec
    2.8 Early 2009 - Pure AJAX platform similar to iGoogle

  • MetaMatrix Data Services Platform
    What Does it do? Standards-based read/write access to distributed, heterogeneous enterprise data stores. Service-enable data to meet SOA demands. Transforms data structure and semantics. Consolidates data into a "single view" without the need to move data. Centralized access control, auditing through robust security infrastructure.
    5.5 SP3 - Sept 2008 - Designer usability Improvements, integration with other JBoss components - ESB & Hibernate, JON integration, Caching improvements, Salesforce.com support, Improved text output capability, SAP connector improvements, additional data source connectors (e.g. Oracle 11g, Netezza), provisioning via RHN, security accreditation.
    Version 6.0 - Dec 2008 - Transaction improvements, caching/staging improvements including use of distributed cache, DB drivers (specifically open source drivers).

  • JBoss Enterprise SOA Platform
    SOA P V4.3 - Sept 2008 - Transports - S-FTP, HTTPS, etc, Gateways - RMI, POP#, SQL, Web Services - .NET interoperability, Platform based security - SSO, Consolidate consoles, JON 2.0
    JBoss Dev Studio - Dec 2008 - ESB XML Editor, Drools and jBPM plug-ins
    BRMS Product - Dec 2008 - Add-on to JBoss Rules Framework and SOA-P
    SOA-P 5.0 - 3Q 2009 GA, EAP 5.0, MRG support, JBI, SLA/Policy management and enforcement, OEM BPEL or ODE
    JBDS SOA Tooling - 3Q 2009 GA, Updated web services, SCA, OEM BPEL or ODE

Labels: , ,

Thursday, May 29, 2008

Using the JBoss Portlet Bridge

I'm currently working on a good recipe to deploy Seam and Ice Faces JSF applications as portlets in the JBoss Portal. Check back for more soon...

Link to the JBoss Portlet Bridge

Tuesday, May 8, 2007

Adventures in AJAX

Here is what we have been doing in the new world of AJAX...