 |
|
|
|
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.
|
|
|
|
|