<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about="http://www.myuniportal.com/blog/">
    <title>MyUniPortal</title>
    <link>http://www.myuniportal.com/blog/</link>
    <description></description>
    <items>
      <rdf:Seq>
        
        <rdf:li resource="http://www.myuniportal.com/blog/2008/06/30/1214811611437.html" />
        
        <rdf:li resource="http://www.myuniportal.com/blog/2008/06/30/1214811532156.html" />
        
        <rdf:li resource="http://www.myuniportal.com/blog/2008/06/30/1214811359875.html" />
        
      </rdf:Seq>
    </items>
  </channel>

  
  <item rdf:about="http://www.myuniportal.com/blog/2008/06/30/1214811611437.html">
    <title>Unification</title>
    <link>http://www.myuniportal.com/blog/2008/06/30/1214811611437.html</link>
    
      
        <description>
          &lt;p&gt;
Your first reaction probably is “Am I at the right web site?” and the answer is yes this is a blog about advanced systems development. So why that title you ask yourself? My answer is this article is about unifying several important requirements regarding quality into a system that not only satisfy the Customer and Business but also the Information Technology groups such as Operations, Application Support and Development. This is the first article of a series that will focus on dimensions of quality that when incorporated into a system will have your customers calling your boss in praise, your system administrator can sleep at night and have your CIO complementing you on your work your boss and customers mentioned in a high level meeting.

The dimension of quality discussed this article is about performance. It is usually thought about but may not have been given enough attention in design, only partially implemented and not tested completely.

Performance - To me this means never saying you are sorry to your customer that it took over a second to logon or display data and make your CIO happy that IT does not need to keep buying new hardware. In MyUniPortal I did this by using multi-tier caching, and paying close attention to data types and size of data. This was easier to accomplish when using a Rich Internet Application so I could cache at that level and check to see if there was newer data at the middle tier cache. Checking the type of data and it’s structure was equally important thus using complex objects was to be avoided and arrays a must. Also, using tags that were small in number of characters helped for the SOAP messages. By doing that I was able to keep message sizes below 1500 bytes or one network packet.

For performance verification I added timers to measure round trip times at the client or RIA, middle tier or servlet layer and at the Integration tier or Enterprise Java Bean layer. I later added a metric service for monitoring performance at each tier for each service. Not satisfied with just that I implemented logging such that if performance requirements were not met at each tier then the violation was logged so as to use for later analysis if the human monitor was not watching the metrics.

So why all this effort? Being able to be proactive in isolating and correcting performance issues in production in minutes is critical before the service desk or system calls. If done correctly you may never have to purchase an expensive monitoring system that itself may use precious server resources. Also, if you have sub-millisecond response times then scalability is met within a multi-socket, multi-core single blade or server for most requirements and allow resources for hosting more applications through virtualization.

As mentioned in a previous blog I was down to 6-7msec round trip times as measured at the client but by using more efficient protocols, updateing the jvm and a small upgrade of the CPU I am down to 4-5msec typically for requests and expect at the server itself around 1-2msec with perhaps to 100-200usec response times if the CPU is upgraded from a desktop grade CPU to a server grade extreme performance CPU.


&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://www.myuniportal.com/blog/2008/06/30/1214811532156.html">
    <title>The Architecture Goes Round and Round The Architecture Goes...</title>
    <link>http://www.myuniportal.com/blog/2008/06/30/1214811532156.html</link>
    
      
        <description>
          &lt;p&gt;
I am sure you have heard this before but after so many years (I lost count long ago) in software development you begin to see patterns emerge in the evolution of Software Architecture. You all probably read Gartner reports or published papers but it is true we seemed to be headed back towards more processing on the client in a multi-tier architecture. Part of the drivers is the need for greater flexibility and a richer user experience. Since we now have fairly powerful processors even multi-core desktops and laptops are becoming common. One of the unsung benefits will be reduced resources needed at a data center and thus greater profit margins.   

To achieve these benefits and take advantage of the available hardware resources a system like MyUniPortal needs to be architected, designed, implemented and tested. For example the Rich Internet Application (RIA) or client uses multi-threading to achieve faster response times. Each child window in MyUniPortal has it’s own handler thread and indeed even various areas such as tree navigation, toolbar and content area have threads so work can be done concurrently. Factory and message adaptors patterns are used to further enhance maintainability and adaptability thus quicker turn around for changes requested by the user community. To further provide quality a Metrics pattern was designed and implemented to support development efforts by providing instant performance information and future proactive customer satisfaction feedback. In some ways this goes beyond the “My Dads Architecture” of the 70’s and 80’s but takes advantage of lessons learned by that generation and in MyUniPortal’s case provides architecture enhancements for the next generation. 


&lt;/p&gt;
        </description>
      
      
    
  </item>
  
  <item rdf:about="http://www.myuniportal.com/blog/2008/06/30/1214811359875.html">
    <title>RIA and Web Services</title>
    <link>http://www.myuniportal.com/blog/2008/06/30/1214811359875.html</link>
    
      
        <description>
          &lt;p&gt;
As you all know Rich Internet Applications (RIA) like MyUniPortal are being mentioned more in articles and blogs all over the world. In order to provide dynamic content from multiple sources Web Services are proving to be a great resource for content. MyUniPortal initally used Axis and currently uses JAX-WS for it’s Web Services and has used it since it was known as Java Web Services Developer Pack (JWSDP) from version 1.6 onward.

The reason for that is JAXWS has provided the best performance for web services and is supported by JRE 1.6 which MyUniPortal uses on both the client and server side along with JBoss. Also, web service implementation with AOP on the server side is much easier compared to the early days of Axis and JWSDP. JAXWS is currently at version 2.1 EA 3 and I use it on the server side of MyUniportal with JBoss and remain with JAX-WS 2.0 on the client side to reduce the number of Java Archives (jars) and total download size of MyUniPortal. Currently for small requests/responses from the MyUniPortal Web Service it takes under 6milliseconds for transaction response time measured at the client and I have measured under 60milliseconds round trip time months ago when away on business in Minnesota where the physical location of the server was here in Idaho. When I ran the tests I was using a Dual Core Centrino laptop with the MyUniPortal RIA as the client downloadable via Java Web Start and the server is Windows 32-bit running on a simple P3 3.0Ghz DDR2 800 2GB of Memory. That was several months ago and I have upgraded the server to a AMD64 X2 4200+ processor with 1GB of DDR2 800 but have not made measurements yet but hopefully soon in 64-bit mode.

Hope that helps the blog readers out there.

&lt;/p&gt;
        </description>
      
      
    
  </item>
  

</rdf:RDF>
