HomeProducts
 
   

21st July, 2003

Parallel Java thread performance with NPTL

We've been testing the scalability of some performance modifications to JBoss 3.2.x. Whilst doing the testing we discovered what can best be described as noise in the results. Some variability is expected but the magnitude of the noise was making it difficult to determine performance effects of changes.

As a result of this, we began questioning our underlying assumptions on Java threading. We had at our disposal an 8-way multiprocessor system and decided to check parallel processing throughput on a RedHat 9 Linux system that implemented the Native POSIX Thread Library

With one JVM under test, we discovered the time to complete a task increased in an exponential fashion as the number of parallel threads increased. The other JVM delivered a linear increase in completion time.

The results were surprising although we have yet to determine the magnitude of the contribution to our particular issues. You can read more about it in the technical note in our documents section.


1st July, 2003

Optimizing with GNU Trove

Our technology relies on caching to deliver performance benefits but we also make it our goal to ensure that we balance that against memory usage. So when we discovered GNU Trove, it was inevitable that the library would be used in our products.

As part of our on-going involvement with JBoss, we have also started investigating areas of performance using our expertise in performance code measures for Java. We hope to see these improvements incorporated at some time into the code base. We'll keep you informed.


25th June, 2003 to 26th June, 2003

WebSphere Portal Express

We attended the workshop for building portals using WebSphere Portal Express. The premise was impressive - to build a portal using the back-end talents of Lotus Domino, LDAP and DB2. The course was presented by the competent Nizam Ishmael Jr.

The only problem is that infrastructure is complex and debugging becomes a bit of a nightmare. You have to combine a team with skills in these areas to determine what has gone wrong. The portal creation technology, using WebSphere Application Developer (WSAD) and the Portal express plugins works admirably. Non-Java developers can build portals fairly easily. But if things break, you need to be able to dig up the right artefacts - generally a good developer can figure these things out, particularly if you have had experience with J2EE developments.

The installation process was quite long - 3 hours in our case, as the server had to deal with running DB2, Lotus Domino and LDAP services before beginning the Portal Express installation. These are required for detection. Also, we have yet to see a classroom development environment running Portal Express that is properly networked. The main problem is pushing out image builds - a problem if educational institutions want to run this. As with all things, the technology and the expertise for support on this will come with time. We wait to see such a seamless delivery.


15th June, 2003

Optimization documents for JBoss 3.2.0

Based on our testing with JBoss 3.2.0, we have released some documentation on the effect of bytecode optimizations and the impact of the JVM on applications running on JBoss 3.2.0. The documentation is available here. The bundled optimization scripts and documentation is available here.


12th June, 2003

Measuring performance limits

Using Apache JMeter, we tested our application framework in different configurations and noted the effects of changing the JBoss container configuration.

We found that compiling JBoss with Java optimizations and debugging removed had a dramatic effect on our test framework, with a reduction of over 35 percent on the response time. Our framework already has its Java code optimized so the improvements related to the container and runtime environment. The virtual size of the program and in-memory portion was also significantly reduced.

We performed the testing under a moderate load, with 90 simulated users accessing the system, with a user repeatedly making a randomly distributed request for a document page composed of information from four database tables, within a 20 second window. We used two configurations:

  • A Pentium II 500MHz RedHat 7.2 Linux system with 192Mb of RAM running JBoss/Jetty 3.2.0 with IBM SDK 1.4.0 and a Pentium II 333MHz RedHat 7.2 Linux system with 96Mb of RAM running Postgresql 7.3.2 connected by a 10Mbps LAN with the clients accessing the system over an 11Mbps wireless LAN
  • A Pentium III 1.2GHz Windows 2000 system with 384Mb of RAM running the JBoss/Jetty 3.2.0 with Sun JDK 1.4.1_01, Postgresql 7.3.2 in a Cygwin environment and the clients.

The former configuration obtained an average response of between 123ms to 125ms, and CPU load on the application server did not exceed 30% with an average of 20%. The latter achieved an average response of between 40ms and 41ms.

Later this week, we will make available documents and modification kits on the JBoss recompiles and more information on the testing.


5th June, 2003

JVM tweaks

During our work with the ECperf 1.1 testing, we took the opportunity to incorporate some JVM intra-container performance enhancements into our code. It now detects co-located servlet and EJB containers and uses the optimal communication method to transport data between containers, otherwise falling back to available across-the-wire communication.


13th May, 2003 to 15th May, 2003

Emerging technologies

IBM is now bringing out technology for emerging markets such as DB2 Everyplace and WebSphere Everyplace Access designed to meet the challenges of pervasive computing. The series of workshops this week gave a taste of the uses of the technology. These SPC workshops were run from the St Leonards, Sydney centre and they were ably presented by Reema Gupta.

The development tools are still in the formative phase, with feedback from development and testing cycles still to flow back to the product management group. Certain development interfaces, and test and debugging patterns to be sufficiently documented. We spent the best part of an hour examining a problem that turned out to be the DB2 synchronisation service locking to a no longer existing PDA. Worse, the Voice-Over-IP voice recognition service doesn't recognise the Australian accent very well and that made the lab work very frustrating. Nevertheless, these tools show promise and we look forward to the continuing refinement of the technologies presented.


8th May, 2003

EJB 2.0 tweaks

Once we were happy with stability on EJB 2.0 compliant application servers we began some migration of core code to take advantage of local interfaces introduced in the EJB 2.0 specifications. These improve the intrabean communication speeds when beans reside in the same container. While our caching systems already take care of the majority of performance overheads, we believe that it is good coding practice to update code to reflect the best and latest specification improvements. All of the FlexCorp framework and the software suites have now been updated.


6th May, 2003

J2EE performance

As part of our on-going investigations into platforms and underlying architectures, we spent the past few days looking at JBoss with different JDKs/SDKs and different web containers. It was interesting as we found that Jetty was faster and smaller than Tomcat and that the IBM Java 2 SDK 1.4.0 was faster than the Sun JDK 1.4.1_01 but had a much larger memory footprint. We reported our findings in the JBoss performance tuning forums.

We also checked on the Internet for corroborating evidence and found the following articles, which may be of interest. @Bench Web services performance benchmark study and Servlet container performance report. Finally, to provide some indicative information on the JDK/SDK comparisons, there are these articles: The Volano report and Java number crunching.


22nd April, 2003

Migration to JBoss 3.2.x

We keep current with JBoss as they rapidly align with changes in J2EE and related technologies. They also integrate a lot of open source components that are slowly being accepted by many of the larger corporate players. Our alignment ensures that we can interface with technologies most people already are or will be using. For us, that is an integration advantage we can't afford to overlook.

The migration was not difficult but it was time consuming. The lack of consolidated information hindered the migration. With our knowledge of the basics and previous JBoss releases, access to the source code, our experience with Tomcat and some luck allowed us to complete the migration in only a few days. We've posted our observations to the JBoss installation and configuration forum if you wish to understand some of the operational changes. We were fortunate that we required no coding changes, but our code remains compliant with J2EE specifications and we have found no changes have ever been necessary when migrating between JBoss versions.


16th April, 2003

Separation and simplification

We've been reviewing some areas of the CardFlex architecture and took some time out to re-organise the tasks. In our original design, the approvals management unit also took care of the notification of approvers and card holders. While acceptable, the operation of the unit was dependent on the availability of the communications systems and its task was to an extent, secondary to the increasingly complex communication management.

At this point, we decided to separate this into two units. With some J2EE infrastructure, we were able to create two independent systems coupled asynchronously. Using JMS (Java Messaging Service), the approvals unit generates notifications and places them in a message queue. The communications unit reads the queue, locates the destination and the preferred method of contact and delivers the message. The benefit is that both systems are simpler, their function more obvious, and the approvals unit is not dependent on problems in the communications infrastructure.


10th April, 2003

Tweaks in CardFlex

As with all our products, there are on-going changes to make the products easier for users. This month, we've added a few changes in the display to make navigation easier and to identify the user's position in the hierarchy.

Visit the CardFlex demonstration and log in as an expense approver or a purchase card user and view the functionality. You can submit an expense statement for approval or approve a statement. Go to CardFlex for further information before continuing on to the product demonstration.


27th March, 2003 to 28th March, 2003

IBM and Linux

As part of the Development Partner programme, we attended a new workshop on IBM software installation on Linux. The workshop is fairly new and with a few rough edges. Casey Paxton delivered the course and Drew Tait provided the hands-on help for getting around the practical points of installation.

There were some assumptions with the course, particularly with the level of Linux experience. While it was straight forward for us, we can see that you get into trouble with some of the installations by not knowing the operating system. The course will continue to develop and we expect that the information delivered will improve. One thing we hope to see is that there is more emphasis on how the products co-operate and integrate.


23rd March, 2003

Web services with FlexCorp

FlexCorp has an ability to re-arrange, limit and deliver information. This structural flexibility brings the capability of on the fly changes to the content of your XML document. With standards of data exchange in all parts of the business yet to be decided, having the ability to change the composition of your data can save you time and money as the business requirements change. And FlexCorp simplifies the programming for delivering your web service.

Look at the example we provide on web service code and see how it simplifies your web service development. You can find the tutorial in the downloads area. We even provide a sample client to download, coupled with Axis for you to test the web service with FlexCorp.


18th March, 2003 to 20th March, 2003

Web services in WebSphere

This week the organisation was getting a first glimpse at web services in the WebSphere development environment. An impressive integration effort makes it simple to transform your J2EE infrastructure into one capable of supplying web services. Casey Paxton ably ran the course and Graham Crooks made sure that all the little development glitches were smoothed over.

Ironically enough, it was about a year ago we received our training in web services the SilverStream way. Unfortunately, we didn't have the same pleasure building the demos in that training. But the creation of the services in SilverStream was much more in-depth, requiring interpretation of the XML and glueworks to get a web service running.

We look forward to the new developments IBM will bring to connect all their J2EE infrastructure to deliver coherent web services in long business transaction chains.


10th March, 2003

MobileWAP - WAP information for field-service

Want customer directory and contact information on your mobile? MobileWAP uses the same services as MobileFlex, delivering a subset of the information available, direct to your mobile. Organised by customer site, you have access to customer site addresses and key contacts. With next-generation mobile browsers, you can also direct dial the contact numbers from the application.

Using the existing data services of MobileFlex, we reformat and redirect the data with the FlexCorp framework. So there are no middle-tier programming changes. The same JSP framework in MobileFlex is employed in the application, although we team this with the OUI system to create an enhanced user experience.


5th March, 2003

MobileFlex - information for field-service

After some final tweaks with the system, we're happy to announce the release of version 2.0 of the field-service application, MobileFlex. It provides a management interface for customer site information, with easy user ownership of information formats. Format the information to your liking; take control and stay in control.

Using the FlexCorp system, the application delivers full control of information content while minimising and in most cases, eliminating the need for a programmer. We've also tuned performance significantly to squeeze the most out of the hardware.


28th February, 2003

Flexcorp - JBoss 3 port

Now that we've completed our testing with WebSphere AS 5.0, we had some time to revisit the testing of the FlexCorp code with JBoss 3 which we've given some time to reach release maturity.

The code changes we required were with the object-caching MBean. The only challenge we had was with the increased sensitivity of JBoss 3 to byte code optimisations. We employed a different optimiser on the broken jar and that resolved the problem.


21st February, 2003

Flexcorp engine - improvements

Our continued work with the engine in new applications has led to some changes in the engine to increase performance and to improve memory usage.

The work has been carried out and tested against Oracle, DB2 and Postgresql. The effort was brought about by some testing with large informational clusters where a large amount of binary data was contained for business entities. We quickly realised the pattern of usage would allow us to modify the behaviour. It significantly reduces the memory requirements for these binary-heavy entities and we have taken the opportunity to cache certain information, removing assembly time during operation.


28th January, 2003 to 3rd February, 2003

Application Testing at IBM's Solution Partnership Centre

As part of the ongoing development of the FlexCorp framework and applications, extensive testing of the products was conducted on the IBM range of hardware at their Solution Partnership Centre in St Leonards. The tests were performed on AIX and Linux platforms running WebSphere Application Server 5.0 and DB2 UDB 7.2.


15th January, 2003

Receipt processing added to CardFlex

CardFlex has now been enhanced with an approval process for managing receipts as may be encountered in petty cash claims.